【问题标题】:Change seqID and remove a part after a pattern更改 seqID 并删除模式后的一部分
【发布时间】:2018-05-18 13:53:38
【问题描述】:
我实际上有 fasta 文件,例如:
>seq1:QXQXQWQ:XQWQ
ACTG
>seq3:WCCWHWJ:WGH
ATGC
>seq7:GCGC:G
ATGACA
我想删除第一个“:”之后的所有内容并得到:
>seq1
ACTG
>seq3
ATGC
>seq7
ATGACA
如果可能的话,这与 biopython 一起使用吗?
【问题讨论】:
标签:
python
regex
bioinformatics
biopython
fasta
【解决方案1】:
在 biopython 中使用 SeqIO 很简单,只需修改 record.id 和 record.description,通过适当地拆分字符串:
from Bio import SeqIO
def yield_records(in_file):
for record in SeqIO.parse(in_file, 'fasta'):
record.description = record.id = record.id.split(':', 1)[0]
yield record
SeqIO.write(yield_records('in.fasta'), 'out.fasta', 'fasta')