序列格式转化推荐看看SeqKit,TBtools等已有软件,能用则用。
fasta格式转fastq格式
- 比对软件比如bowtie并不支持比对fasta格式的文件,所以需要把fasta转为fastq格式,但是fasta和fastq相比缺少质量值,所以只能伪造一个加上去,这里用到seqtk来伪造,从而把fasta格式转fastq格式。作者:今天没回家
seqtk seq test.fa -F "J" > test.fq
参考文章
批量修改fasta文件的序列名
转载自BioInfo Voyager的博客,感谢他的分享!
- 准备输入的fasta序列文件input_file(要求序列名中不包含第二步输入序列集的分隔符)
- 准备输入的替换集replace_file, 两列,/t分隔(分隔符可以在脚本里修改)
- 使用以下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