我有一个包含序列的文件和另一个包含标识符的文件。我正在尝试仅从序列文件中提取与标识符匹配的文件。
我试图编写一个python脚本,在列表中提取标识符并在序列文件中搜索每个标识符。
def get_seq(seqfile,id_list):
a=0
l=[]
for line in id_list:
l.append(line.rstrip())
for elem in l:
for line in seqfile:
if line[0]==">" and str(line[1:4]) in l:
a=1
elif line[0]==">" and str(line[1:4]) not in l:
a=0
if a==1:
print line
我在这里给了我一个简短的例子,说明了我希望获得的结果。具有以下序列文件:
>111
ababaabababababababababababababababababababa
>1111
abababababaabababababab
>1211
abbbbbbbbbbbaaaaaaaaaaaaaaaa
>1332
abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
>12
aaaassssssssssssaaaaaaaaaaaaaaaa
和以下ID文件:
111
1332
12
我希望将其作为输出
>111
ababaabababababababababababababababababababa
>1332
abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
>12
aaaassssssssssssaaaaaaaaaaaaaaaa
但是,我得到了:
>111
ababaabababababababababababababababababababa
>1111
abababababaabababababab
我很确定在尝试搜索字符串[str(line [1:4])]中的模式时,错误出在代码的第二部分。我这里有一个双重问题:
通常,我该如何搜索字符串中的确切模式?