7502fb158f663ecc5770b72dabe3d2a2.png

在处理fasta文件的时候我们常常会遇到需要合并多个fasta文件或者分隔单个fasta文件成为每个序列一个文件。这篇文章会告诉你如何做。

  1. 合并

Windows系统下,打开cmd系统。(ctrl+win)

使用cd转换地址到你需要处理的地方

type *.txt>>all.txt

例如:type A.txt B.txt > AB.txt

2. 分隔

方法一:awk

awk '/^>/{s=++num}{print > "example_"s".fa"}' example.fasta

方法二:python 脚本

import sys
def parseFasta(filename):
    fas = {}
    id = None
    with open(filename, 'r') as fh:
        for line in fh:
            if line[0] == '>':
                header = line[1:].rstrip()
                id = header.split()[0]
                fas[id] = []
            else:
                fas[id].append(line.rstrip())
        for id, seq in fas.items():
            fas[id] = ''.join(seq)
    return fas
fas = parseFasta(sys.argv[1])
for i in fas:
    with open(i + ".fa", 'w') as f:
        f.write(">" + i + "n" + fas[i] + "n")

运行方法:

在cmd下:

python splitFasta.py AB.fasta

你就会得到A.fasta和B.fasta

Logo

更多推荐