2012-03-12 259 views
0

我想要做的是在基因组文件中将所有非推定的GenBank记录序列制成小写字母。如何修改GenBank记录的序列?

到目前为止,我设法获得gbk中蛋白质的开始和结束位置。 从那里我做到以下几点:

start = feature.location.nofuzzy_start 
end = feature.location.nofuzzy_end 
gb_record.seq[start:end] 

现在我已经在基因组序列的开始和结束位置。但是,我如何修改基因组文件? gb_record.seq[start:end].lower()或类似的东西没有伎俩。

当我指定gb_record.seq = gb_record.seq[start:end].lower时,我更换基因组文件时显然出错。有任何想法吗?

+1

解决方案: 找到了解决办法,但不是一个真正的biopython解决方案。 首先将genome.seq文件放入基因组字符串文件中。 基因组= STR(gb_record.seq) 然后同时通过gb_record.featers去 开始= feature.location.nofuzzy_start 端= feature.location.nofuzzy_end 上部=基因组中[开始:结束] 低级=基因组[开始:结束] .lower() genome = genome.replace(upper,lower).......对不起格式化,但我不能给自己解决方案(不允许) – Jasper 2012-03-12 10:07:52

回答

1

Bio.Seq.Seq对象有一个lower()方法,可以做你想要的。

工作了你的代码,你会得到:

seq_lower = gb_record.seq.lower() 

然后,您应该能够使用SeqIO模块写出来的小写字母序列文件。

from Bio import SeqIO 

with open("example.fasta", 'w') as handle: 
    SeqIO.write(lower_records, handle, 'fasta')