におけるforループIは、forループで次の機能を有する:機能を拡張ヘルプが必要とR
getSequences <- function(input.seq){
peptide.result <- c()
for (i in 1:nrow(peptides.df)) {
peptide.seq <- substr(input.seq, peptides.df$StartAA[i], peptides.df$EndAA[i])
peptide.info <- data.frame(cbind(peptide.name = peptides.df$Name[i], peptide.seq))
peptide.result <- rbind(peptide.result, peptide.info)
}
return(peptide.result)
}
test.results <- getSequences(input.seq)
関数は、アミノ酸配列を受け取り、次いで開始とこの入力およびペプチドのマトリックスを使用して異なる位置で配列のサブセットを抽出して、ペプチドのセットを生成する。 シーケンス:
例のアミノ酸配列:
Name StartAA EndAA
peptide_1 25 48
peptide_2 33 56
peptide_3 41 64
電流出力peptide.result:ここ
input.seq <- ("MRKLYCVLLLSAFEFTYMINFGRGQNYWEHPYQNSDVYRPINEHREHPKEYEYPLHQEHTYQQE")
がpeptides.dfの最初の数行は、次のようになります
peptide.name peptide.sequence
peptide_1 QNYWEHPYQNSDVYRPINEHREHP
peptide_2 QNSDVYRPINEHREHPKEYEYPLH
peptide_3 INEHREHPKEYEYPLHQEHTYQQE
サンプル#とそのデータフレームを持つデータフレームを取得するにはどのように拡張できますかputシーケンス。各サンプル#とそのシーケンスについて、私はこの例のように一連のペプチドを生成したいと思います。
新しい入力:sample_sequences(入力配列と200個のサンプル)でデータフレーム
sample1 MRKLYCVLLLSAFEFTYMINFGRGQNYWEHPYQNSDVYRPINEHREHPKEYEYPLHQEHTYQQE
sample2 MRKLYCVLLLSAFEFTYMINFGRGQNYWEHPYQNSDVYRPINEHREHPKEYEYPLHQEHTYQQE
sample3 MRKLYCVLLLSAFEFTYMINFGRGQNYWEHPYQNSDVYRPINEHREHPKEYEYPLHQEHTYQQE
...
sample200 MRKLYCVLLLSAFEFTYMINFGRGQNYWEHPYQNSDVYRPINEHREHPKEYEYPLHQEHTYQQE
新しい出力:sample_peptides
sample1 peptide_1 QNYWEHPYQNSDVYRPINEHREHP
sample1 peptide_2 QNSDVYRPINEHREHPKEYEYPLH
sample1 peptide_3 INEHREHPKEYEYPLHQEHTYQQE
sample2 peptide_1 QNYWEHPYQNSDVYRPINEHREHP
sample2 peptide_2 QNSDVYRPINEHREHPKEYEYPLH
sample2 peptide_3 INEHREHPKEYEYPLHQEHTYQQE
sample3 peptide_1 QNYWEHPYQNSDVYRPINEHREHP
sample3 peptide_2 QNSDVYRPINEHREHPKEYEYPLH
sample3 peptide_3 INEHREHPKEYEYPLHQEHTYQQE
...
sample200 peptide_1 QNYWEHPYQNSDVYRPINEHREHP
sample200 peptide_2 QNSDVYRPINEHREHPKEYEYPLH
sample200 peptide_3 INEHREHPKEYEYPLHQEHTYQQE
を使用して、単純な
mutate
です。 'for(sample_sequences){getSequences()}'、そうですか? –出力形式は若干異なりますが、 'sapply(df $ sample_sequences、getSequences)'はこれを行うべきです。 –
こんにちは皆さん、ありがとうございます。私は、ユーザーの要件を行うために、問題への私のアプローチを変更してしまった。しかし、私はRのプログラミングを学ぼうとしているので、あなたの提案をそれぞれ使用しています。私の新しいアプローチは、ユーザーが入力した2つの座標(Coord1、Coord2)に基づいて入力シーケンスをサブセット化することです。ライブラリ(dplyr)subset.sample.seq < - sample_sequences%>%mutate(Sequence =サブセット(シーケンス、Coord1、Coord2)) – tkh86