1. 使用python脚本对fasta文件80转60
fa_in = open("genome.fa", "r")
# #读入FASTA文件
fa_Info = []
# #定义一个列表,用于存储序列的信息
fa_Seq = []
# #定义一个列表,用于存储序列
fa_Num = -1
for line in fa_in.readlines():
# #每次从FASTA文件中读取一行
line = line.rstrip()
print(line)
# #去掉行末的换行符
if line[0] == ">":
# # 判断如果是信息行,就存储在fa_Info,否则存储在fa_Seq
fa_Info.append(line)
fa_Num = fa_Num + 1
fa_Seq.append("")
else:
fa_Seq[fa_Num] = fa_Seq[fa_Num] + line
fa_out = open("out.fa", "w")
# #打开一个文件,用于写入
for i in range(fa_Num + 1):
print(i)
fa_out.write(fa_Info[i] + "\n")
while len(fa_Seq[i]) > 60:
# #每行写60个碱基
fa_out.write(fa_Seq[i][:60] + "\n")
fa_Seq[i] = fa_Seq[i][60:]
else:
fa_out.write(fa_Seq[i] + "\n")
2. seqkit软件
今天要将一个fasta文本处理,正常要求fasta碱基序列每行有60个字符,但是这个fasta每行有80个字符。用了python和seqkit,一起跑了下。seqkit几秒钟解决,python到现在还没出结果。于是写一篇公众号记录一下操作。
seqkit是一套针对fasta/fastq序列文件进行各种处理的文件,能够满足常见的需求。
官网:https://github.com/shenwei356/seqkit
安装
conda install -c bioconda seqkit
1.将fasta文件格式化为碱基每行60个
seqkit seq genome.fa -w 60 >genome60.fa
2.将此文件fasta序列转换成一行输出
seqkit seq test.fa -w 0
3.将此文件fasta序列dna转换成rna
seqkit seq --dna2rna test.fa
4.将此文件fasta序列反向互补输出,每行100碱基
seqkit seq -w 100 -p -r test.fa
二级标题
三级标题
四级标题
五级标题
参考文献:
https://mp.weixin.qq.com/s?__biz=Mzk0NDI0MjY2Mg==&mid=2247484186&idx=1&sn=45723f06a7717618d17269a9258e5a11&chksm=c326e993f45160859ed49e741dceda98fa9d0665012800ef7876ac6b63a9c7024def5dad35e9&scene=178&cur_album_id=2148639260592144385#rd