我有一个fasta文件。从该文件中,我需要获得包含'CCNNNGG'
(其中'N'
表示随机核苷酸)的序列,并将它们放入一个新的fasta文件中。在
示例(它应该输出第一个序列):
m121012_054644_42133_c100390582550000001523038311021245_s1_p0/7/3312_3597 CGCGGCATCGAATTAATACGACTCACTATAGGTTTTTTTATTG*********CCTACGG***********GTATTTTCAGTTAGATTCTTTCTTCTTAGAGGGTACAGAGAAAGGGAGAAAATAGCTACAGACATGGGAGTGAAAGGTAGGAAGAAGAGCGAAGCAGACATTATTCA
m121012_054644_42133_c100390582550000001523038311021245_s1_p0/7/3708_4657 CAACGGTTTTGCCACAAGATCAGGAACATAAGTCACCAGACTCAATTCATCCCCATAAGACCTCGGACCTCTCAATCCTCGAATTAGGATGTTCTCGTACGGTCTATCAGTATATAAACCTGACATACTATAAAAAAGTATACCAT TCTTATCATGTACAGTAGGGTACAGTAGG
(添加*
s以突出显示)
我的密码是:
from Bio import SeqIO
my_sequences = []
for record in SeqIO.parse(open("example.fa", "rU"), "fasta") :
if "CCTACGG" in record.seq : #Works fine with CCTACGG
my_sequences.append(record)
output_handle = open("my_seqs.fasta", "w")
SeqIO.write(my_sequences, output_handle, "fasta")
output_handle.close()
在{cd8}后面写的是{cd8},而不是^{cd7}的问题。在
您可以通过Python的^{} module 使用正则表达式来执行此操作:
这会将模式中的每个
'N'
替换为'[ACGT]'
,它将匹配这四个字符中的任何一个,然后在每个record.seq
中搜索该模式。在另外,请注意,您的示例不是很好—第二个示例也与该模式相匹配(它包含
'CCCATGG'
)—请参见results!在相关问题 更多 >
编程相关推荐