lst = ['>CW500.8 \n', 'ATGCTATCATTA\n', '>CW500.9 \n', 'ATGCTATCATTA\n', '>CW500.10 \n', 'ATGCTATCATTT\n', '\n', '$$$\n', '\n', '>WT \n', 'GTGCTATCATTA '] #Fastq formatted file
orgs = []
seqlist1 = []
seqstring = ""
for line in lst:
if line.startswith(">"):
if seqstring != "":
seqlist1.append(seqstring) #makes the sequence a list
seqstring = ""
orgs.append(line.rstrip("\n")) #makes >indv's keys
else:
seqstring += line.rstrip("\n") #adds the seq string to the list
seqlist1.append(seqstring) #must do this or your last line is lost
Output : ['ATGCTATCATTA', 'ATGCTATCATTA', 'ATGCTATCATTT$$$', 'GTGCTATCATTA ']
我需要更改输出,以便将“$$$”后面的读取附加到新列表中。所以我修改了上面的代码:
orgs = []
seqlist1 = []
seqlist2 = []
seqstring = ""
for line in lst:
if line.startswith(">"):
if seqstring != "":
seqlist1.append(seqstring) #makes the sequence a list
seqstring = ""
orgs.append(line.rstrip("\n")) #makes >indv's keys
else:
seqstring += line.rstrip("\n") #adds the seq string to the list
elif line.startswith("$$$"):
seqlist2.append(seqstring)
seqlist1.append(seqstring)#must do this or your last line is lost
seqlist2.append(seqstring)
print seqlist1
print seqlist2
Output: File "/tmp/execpad-49ffac3cc5b6/source-49ffac3cc5b6", line 15
elif line.startswith("$$$"):
^
SyntaxError: invalid syntax
Expected Output:
['ATGCTATCATTA', 'ATGCTATCATTA', 'ATGCTATCATTT']
['GTGCTATCATTA']
有人能告诉我哪里出了问题,我怎样才能进一步修改代码以获得所需的输出吗?你知道吗
我只是把它包装成一个函数。它将拿走你的列表,并将删除/替换空白。然后通过
.isalpha()
检查它是否是字母。我还将输出附加到一个新数组中以返回它,或者您可以只使用打印的输出。你知道吗您有一个
elif
,前面没有相应的if
。这在Python语法中是不允许的。你知道吗相关问题 更多 >
编程相关推荐