2016-12-28 27 views
0

R関数パッケージから得た結果から特定の情報を抽出しようとしています。私はPythonに慣れているだけなので、R言語を学ぶと私に混乱が生じます。これは私が必要とするすべてがちょうど最後の2つの数字(1から9)、およびそこから読み出される(それを印刷した後)appnnの出力、タンパク質凝集R出力から特定のテキスト行を抽出する

Prediction: 
$sequence 
[1] "IFYFYGTTY" 

$overall 
[1] 1.076839 

$aminoacids 
      [,1] 
[1,] 1.076839 
[2,] 1.076839 
[3,] 1.076839 
[4,] 1.076839 
[5,] 1.076839 
[6,] 1.076839 
[7,] 1.028888 
[8,] 1.011057 
[9,] 1.011057 

$hotspots 
$hotspots[[1]] 
[1] 1 9 

を予測するパッケージであると仮定すると、

私はこれらの数字で決まる与えられた文字列の一部を抽出しなければなりません(この場合、文字列全体の長さは1から9までです)。

Pythonではかなりシンプルですが、私はRでそれを行う方法はわかりません。 多くのありがとうございます。

+0

'substr(予測$シーケンス、予測$ホットスポット[1]]、予測$ホットスポット[[1]] [2] ) ' –

+0

' appnn'はどこかから作成したRオブジェクトですか?Rオブジェクトは 'Prediction'ですか?それはどこから来ましたか? – Spacedman

+0

あなたのオブジェクトが何であれ、抽出機能がある可能性があるので、それがあなたのオブジェクトなら 'ホットスポット(appnn)'と同じくらい簡単かもしれません。それを作成した関数のドキュメントを読む( 'help(functionname)') – Spacedman

答えて

1

再現可能な例です。私は、この例のようpredictionsと呼ばれるあなたがappnnパッケージを使用してオブジェクトを作成している推測している:

library(appnn) 
sequences <- c('STVIIE','KKSSTT','KYSTVI') 
predictions <- appnn(sequences) 

今、ドキュメントは戻り値について何を言うん:

Value 

A list containing the amyloidogenicity propensity predictions for the 
polypeptides queried. 

    overall 
    The overall amyloidogenicity propensity prediction value for the sequence 

    aminoacids 
    The amyloidogenicity propensity prediction value per amino acid 

    hotspots 
    A list of the amyloidogenic hotspots predicted in the sequence, limited by the first and last amino acid 

だからここに私は」 3つのシーケンスを照会したので、私は3つの要素でRリストを返します。結果の要素を選択することで、それぞれの結果を得ることができます。最初は

> predictions[[1]] 
$sequence 
[1] "STVIIE" 

$overall 
[1] 0.9497568 

$aminoacids 
      [,1] 
[1,] 0.9497568 
[2,] 0.9497568 
[3,] 0.9497568 
[4,] 0.9497568 
[5,] 0.9497568 
[6,] 0.9497568 

$hotspots 
$hotspots[[1]] 
[1] 1 6 

名前付きコンポーネントの別のリストです。ホットスポット成分が(結果は配列のために複数のホットスポットとすることができる多分ため)、ただ一つの成分を持つリストそのものであるので、私は、このようにそれを得ることができる:

> predictions[[1]]$hotspots[[1]] 
[1] 1 6 

Rベクター(ベクターおよびリストを返すこと)は、長さ2の値が1と6の若干異なるものです。

+0

素晴らしい!私はあなたとjoel.wilsonの両方を試してみました。それは魅力のように働いていました。しかし、シーケンスが$ hotspots [1]を返さない場合、別の問題があります。 'KKSSTT'を導入すると、$ hotspots [1]は抽出できない 'list()'として返されます。私はシーケンスを自動的に繰り返すことを計画しているので、それに対処する方法はありますか? – Viet

+0

これは空リストなので、 '$ hotspots'の長さが0より大きいかどうか最初にテストできます。 – Spacedman

+0

ありがとうございます。私は計算後にテキストファイルに与えられた文字列を書き込む関数を書くことに取り組んでいます。 – Viet

関連する問題