最近看到同学用Perl写了一个提取fasta序列前500bp的脚本,于是自己用Python也写了一个实现相同功能的脚本。
脚本内容如下:
"""
@author: will
@Date: July 2019
@E-mail: willgyw@126.com
@Description:
"""
import sys
seq = {}
res = open('500bp.fa', 'w')
with open(sys.argv[1], 'r') as fa:
for line in fa:
if line.startswith('>'):
name = line.strip().split()[0][1:]
seq[name] = ''
else:
seq[name] += line.replace('\n', '')
for k, v in seq.items():
if len(v) <= 500:
res.write('>' + k+ '\n' + v + '\n')
else:
res.write('>' + k+ '\n' + v[:500] + '\n')
res.close()
楼主也是刚刚接触生信的新手,如有错误,欢迎指正。