【发布时间】:2018-08-02 05:38:42
【问题描述】:
我有一个包含多个序列的 fasta 文件。一些序列以'-'结尾,我想从最终序列中修剪它们。有没有一种干净的方法来修剪它们并使用 Biopython 编写一个没有破折号的新 fasta 文件?
我看到这个帖子How to remove all-N sequence entries from fasta file(s) 并尝试修改一些代码但它没有工作......
包含如下序列的文件:
sequence_of_interest CAGGCCATTTCACCTAGAACTTTAAATGCATGGGTAAAAGTAGTAGAAGAGAAGGCTTTTAGCCCAGAAGTAATACCCATGTTTTCAGCATTATCAGAAGGAGCCACCCCACAAGATTTAAACACCATGCTAAACAACAGTGGGGGGACATCAAGCAAGCAATGCAAATGTTAAAAGAGACCATCAATGAGGAAGCTGCAGAATGGGATAGATTGCATCCAGTGCACGCAGGGCCTATTGCACCAGGCCAGATGAGAGAA----------------------------------------------------------------- --------------
def dash_removal(file_in, file_out):
records = SeqIO.parse(file_in, 'fasta')
filtered = (rec for rec in records if any(ch != '-' for ch in rec.seq))
SeqIO.write(filtered, file_out, 'fasta')
dash_removal("dash_removal_test.fasta", "dashes_gone?.fasta")
所有的序列最终都应该被修剪成这样:
sequence_of_interest CAGGCCATTTCACCTAGAACTTTAAATGCATGGGTAAAAGTAGTAGAAGAGAAGGCTTTTAGCCCAGAAGTAATACCCATGTTTTCAGCATTATCAGAAGGAGCCACCCCACAAGATTTAAACACCATGCTAAACAACAGTGGGGGGACATCAAGCAAGCAATGCAAATGTTAAAAGAGACCATCAATGAGGAAGCTGCAGAATGGGATAGATTGCATCCAGTGCACGCAGGGCCTATTGCACCAGGCCAGATGAGAGAA
任何帮助将不胜感激!
【问题讨论】:
-
sed -i~ 's/-*$//' *.fasta将简单地从所有行中删除所有尾随破折号,这就足够了吗? -
嘿。我读了标题,并认为这是“更快地修剪文件”的俚语
-
似乎奏效了!谢谢!
-
如果我想在 python 中运行它,我将如何修改它?
标签: python-3.x trim biopython fasta