我编辑了我的数据,如下所示:
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]
如果我从代码中删除“氧化”,它将不会计算整行,这就是问题所在。
我看到了两种方法。一种方法可能是仅将生物素和乙酰基算作修改,我的脚本无法做到这一点。第二种方法是从所有列中删除“氧化”,也不知道该怎么做。欢迎任何建议。
最后一个愚蠢的问题。有没有办法以正确的方式粘贴大量代码,而无需在所有代码行中按 4 倍空格?
编辑:运行整个代码之前的数据集仅涉及 2 列:
Sequence modifications
AAAAGAAAVANQGKK [14] Acetyl (K)|[15] Acetyl (K)
AAIKFIKFINPKINDGE [4] Acetyl (K)|[7] Acetyl (K)
还有更多的行。