今天遇到一个小问题,整理的fasta参考序列并不规范,如下图所示:
碱基是小写的,并且还空行了,碱基序列不连续,那怎么变成正常的呢?(见下图)
在服务器里我们创建一个py脚本
nano format_fasta.py
然后把下面代码复制进去
#!/usr/bin/env python
import sys
def format_fasta(input_file, output_file):
with open(input_file, 'r') as infile, open(output_file, 'w') as outfile:
sequence = ''
for line in infile:
line = line.strip()
if line.startswith('>'):
if sequence:
outfile.write(sequence + '\n')
outfile.write(line + '\n')
sequence = ''
else:
sequence += line.upper() # 将序列转换为大写
if sequence:
outfile.write(sequence + '\n')
if __name__ == '__main__':
if len(sys.argv) != 3:
print("Usage: python format_fasta.py input.fasta output.fasta")
else:
format_fasta(sys.argv[1], sys.argv[2])
然后我们运行脚本:
./format_fasta.py reference.fas formatted-reference.fas#其中reference.fas是原来的参考库,formatted-reference.fas是规范后的参考库
大功告成!
关注我,以后的内容更精彩哦。
另外如有错误欢迎指正!
b站号:羽球最强生信人
微信公众号:小秋的R语言笔记
闲鱼号/淘宝号:小秋家的小卖铺