我有一个有两列的文件
Col1 : Cluster number
Col2: Seq name
序列名称可以有不同的名称:
例如:
NP_XXXXXX
YP_XXXXXX
AMN16433
等等
以及
KQ976470.1:66008-66163(-):Atta_colombica
(Name:number-number(+ or -):Name1_Name2
)
(有很多不同的名称,但我感兴趣的是只保留至少有一个seq名称的Cluster:
(Name:number-number(+ or -):Name1_Name2
)(所以基本上我能认出他们,因为只有他们的名字里会有+
或-
)
因此,如果:
-至少有一个seqname的名称中有+
或-
,并且至少有one other seqname
如果:
-只有名称中带有+
或-
的seqname。
-只有另一个名字
例如:
Cluster1 NP_075076
Cluster1 AMN16433
Cluster1 YP_063711
Cluster1 KQ976470.1:66008-66163(-):Cattus_sylvestris
Cluster1 AJP07295
Cluster1 AMN15329
Cluster2 YP_00999
Cluster2 YP_00989
Cluster2 YP_00971
Cluster2 YP_00988
Cluster2 AJP07295
Cluster3 KI976478.1:66021-66123(-):Canis_lupus
Cluster3 AJP07232
Cluster3 AJP07212
Cluster3 AZ976430.1:66045-66190(+):Cavia_porsellus
Cluster4 AHHYUIIY
Cluster5 AZ976490:66042-66190(-):Felis_porsellus
Cluster5 AA976490:66021-66130(+):Felis_porsellus
所以我应该得到:
我删除Cluster2
,因为没有
Cluster1 NP_075076
Cluster1 AMN16433
Cluster1 YP_063711
Cluster1 KQ976470.1:66008-66163(-):Cattus_sylvestris
Cluster1 AJP07295
Cluster1 AMN15329
Cluster3 KI976478.1:66021-66123(-):Canis_lupus
Cluster3 AJP07232
Cluster3 AJP07212
Cluster3 AZ976430.1:66045-66190(+):Cavia_porsellus
我删除了Cluster2
和Cluster4 because there is no seqname with either a + or a -.
我删除了Cluster5,因为只有seqname带有+
或-
,没有其他seqname
非常感谢
根据您的描述,让我们命名两列
name
和value
。所以您需要找到值包含+
和-
符号的名称列表。然后找到值不包含这些符号的名称列表。然后找到这两个列表的交叉点,例如,找到上面两个列表中出现的姓名的最终列表。然后您需要过滤名称出现在最终列表中的原始数据帧您还可以使用
regex
在线获取它,如下所示结果是
相关问题 更多 >
编程相关推荐