データを編集したところ、以下のようになりました。
Sequence modifications No_Ks No_Ks_modif diff
1 AAAAGAAAVANQGKK Acetyl Acetyl 2 2 0
2 AAIKFIKFINPKINDGE Acetyl Biotin Acetyl 3 3 0
3 AAIKFIKFINPKINDGE Acetyl Acetyl 3 2 1
4 IKKVGYNPKTVPFVPIS Acetyl Acetyl Acetyl Oxidation 3 4 -1
No_Ks -> シーケンス内の K の総数 No_Ks_modif -> アセチルまたはビオチンによって変更された K の数 (のみである必要があります) ですが、酸化もカウントされるため、より高い場合は変更された K の数とそれらの総数になります。
以下のコードを使用して、(シーケンスから) 変更された K の数をカウントしました。
# Count of modifications
dataset[, No_Ks_modif := 6]
dataset[V6 == "", No_Ks_modif := 5]
dataset[V5 == "", No_Ks_modif := 4]
dataset[V4 == "", No_Ks_modif := 3]
dataset[V3 == "", No_Ks_modif := 2]
dataset[V2 == "", No_Ks_modif := 1]
dataset[V1 == "", No_Ks_modif := 0]
# Retaining Acetyl/Biotin or no modification only
dataset[, AB01 := TRUE]
dataset[, AB02 := TRUE]
dataset[, AB03 := TRUE]
dataset[, AB04 := TRUE]
dataset[, AB05 := TRUE]
dataset[, AB06 := TRUE]
dataset[V1 != "", AB01 := grepl(V1, pattern = "Acetyl|Biotin|Oxidation")]
dataset[V2 != "", AB02 := grepl(V2, pattern = "Acetyl|Biotin|Oxidation")]
dataset[V3 != "", AB03 := grepl(V3, pattern = "Acetyl|Biotin|Oxidation")]
dataset[V4 != "", AB04 := grepl(V1, pattern = "Acetyl|Biotin|Oxidation")]
dataset[V5 != "", AB05 := grepl(V2, pattern = "Acetyl|Biotin|Oxidation")]
dataset[V6 != "", AB06 := grepl(V3, pattern = "Acetyl|Biotin|Oxidation")]
dataset <- dataset[AB01 & AB02 & AB03 & AB04 & AB05 & AB06]
コードから「酸化」を削除すると、行全体がカウントされず、それが問題です。
2つの方法があります。1 つの方法は、ビオチンとアセチルのみを変更としてカウントすることですが、私のスクリプトでは実行できません。2番目の方法は、すべての列から「酸化」を除去することですが、どちらもその方法がわかりません。どんな提案でも大歓迎です。
最後に愚かな質問。コードのすべての行でスペースを 4 回押すことなく、巨大なコードを適切な方法で貼り付ける方法はありますか?
編集:コード全体を実行する前のデータセットには、2つの列のみが含まれていました:
Sequence modifications
AAAAGAAAVANQGKK [14] Acetyl (K)|[15] Acetyl (K)
AAIKFIKFINPKINDGE [4] Acetyl (K)|[7] Acetyl (K)
そして、はるかに多くの行。