您好,我是python的新手,希望您能为我提供帮助。我有一个文本文件(称为data.txt),其中包含基因编号的数据以及相应的rs编号和一些距离度量。数据看起来像这样:
rs1982171 55349 40802
rs6088650 55902 38550
rs1655902 3105 12220
rs1013677 55902 0
其中第一列是rs号,第二列是基因号,第三列是某种距离度量。数据要大得多,但是希望以上内容可以使您对数据集有所了解。我要做的是找到与某个基因相对应的所有rs编号。例如,对于上面的数据集,基因55902 = {rs6088650,rs1013677}。理想情况下,我希望我的代码找到与给定基因相对应的所有rs号。由于我现在无法执行此操作,因此我写了一个简短的代码,该代码给出了data.txt文件中包含字符串“ 55902”的行:
import re
data=open("data.txt","r")
for line in data:
line=line.rstrip()
if re.search("55902",line):
print line
这段代码的问题是输出是这样的:
rs6088650 55902 38550
rs1655902 3105 12220
rs1013677 55902 0
我希望我的代码忽略rs号中的字符串“ 55902”。换句话说,由于基因编号不是55902,因此我没有在上述输出中输出第二行的代码。我希望输出为:
rs6088650 55902 38550
rs1013677 55902 0
我如何修改上面的代码来实现我想要的。任何帮助,将不胜感激。提前致谢。
这里不需要正则表达式,因为您需要的只是一个简单的静态序列。这行:
if re.search("55902",line):
可以表示为:
if "55902" in line:
如果只想检查第二列,请先分割行:
if '55902' in line.split()[1]:
由于您现在已经检查了正确的列,因此请检查是否相等而不是成员身份:
if line.split()[1] == '55902':
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句