python_fasta80转60

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值