我需要帮助编写一个Python脚本来解析这个特定的GO注释文件,并只输出描述生物过程(P)的行。样本输出将如图所示。 这就是我到目前为止......
import sys
import re
file_object = open(sys.argv[[1]])
for some_line in file_object:
some_line = some_line.strip('\n')
list = some_line.split("\t")
if re.search('>', some_line):
sys.stdout.write(list[1]+ "\t")
我想格式化此文件http://downloads.yeastgenome.org/curation/literature/go_slim_mapping.tab,以便仅输出描述生物过程(P)的行。
答案 0 :(得分:0)
正则表达式只是查看第4个值(格式为Value-Spaces-Value-Spaces-Value-Spaces ...),然后检查它是否为带有withespace的'P'。如果匹配则打印行
import sys
import re
regex = re.compile(r'(\S+\s+){2,3}P\s.*')
with open(sys.argv[1]) as file:
for line in file:
line = line.strip() #Consider striping the line if it's necessary
if regex.search(line):
print(line)
答案 1 :(得分:0)
这与@ MrE的回答相同,但未使用re
。
该文件以制表符分隔,因此我们可以这样做:
with open(sys.argv[1]) as inf:
for line in inf:
parts = line.split('\t', 4)
if len(parts) >= 4 and parts[3] == 'P':
print(line, end='')