生物信息序列格式的批量修改与生物信息序列文件格式的转换

序列格式转化推荐看看SeqKit,TBtools等已有软件,能用则用。

fasta格式转fastq格式

  • 比对软件比如bowtie并不支持比对fasta格式的文件,所以需要把fasta转为fastq格式,但是fasta和fastq相比缺少质量值,所以只能伪造一个加上去,这里用到seqtk来伪造,从而把fasta格式转fastq格式。作者:今天没回家
    seqtk seq test.fa -F "J" > test.fq

参考文章

批量修改fasta文件的序列名

转载自BioInfo Voyager的博客,感谢他的分享!

    1. 准备输入的fasta序列文件input_file(要求序列名中不包含第二步输入序列集的分隔符)
    1. 准备输入的替换集replace_file, 两列,/t分隔(分隔符可以在脚本里修改)
    1. 使用以下python脚本,保存脚本为change_fa_name.py(脚本名称可以自定义)。
from sys import argv
import sys
 
input_file = argv[1]
replace_file = argv[2]
output_file = argv[3]
 
with open(input_file, 'r') as f:
    fasta_lines = f.readlines()
 
replacements = {}
with open(replace_file, 'r') as f:
    for line in f:
        (old_str, new_str) = line.strip().split('\t')
        replacements[old_str] = new_str
 
with open(output_file, 'w') as f:
    for line in fasta_lines:
        if line.startswith('>'):
            seq_id = line.split('>')[1].strip()
            if seq_id in replacements: 
                new_seq_id = replacements[seq_id]
                line = line.replace(seq_id, new_seq_id)
                f.write(line)
            else:
                print(seq_id + ' is not in the replacement set, the program exits running, please check your replacement set!')
                sys.exit()
        else:
            f.write(line)

保存脚本并运行

python change_fa_name.py input_file replace_file output_file
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容