用python编写统计fasta格式的序列的长度脚本

2 篇文章 0 订阅
1 篇文章 0 订阅

如果用perl来编写统计fasta序列的长度脚本,很简单的几行代码就可以搞定,但是想了想,觉得用python写更时候处理大的文件,尤其是想用python实现多线程处理。因此,就有了用python来编写最初版的统计fasta序列长度的脚本的想法。 

运行方法:nohup python stat_length.py input.fasta > input.len &

运行结果:

>Aquca_005_00607.1_Acoerulea    429
>Aquca_1939_00001.1_Acoerulea   534
>Aquca_005_00568.1_Acoerulea    369
>Aquca_033_00023.1_Acoerulea    447
>Aquca_005_00384.1_Acoerulea    1461


源代码如下:

#!/usr/bin/python
import sys,os,re


def process_file(reader):
    '''Open, read,and print a file'''
    names=[]
    index=0
    dict={}


    for line in reader:
        if line.startswith('>'):
           if index >=1:
               names.append(line)
           index =index+1
           name=line[:-1]
           seq = ''
        else:
           seq +=line[:-1]
           dict[name]=seq
    return dict


if __name__ == "__main__":
    input_file=open(sys.argv[1],"r")
    reader=input_file.readlines()
    items=process_file(reader)
    for key in items:
        length=int(len(items[key]))
        print "%s\t%d" %(key,length)
    input_file.close()


后记:后面会更新用多线程的方法来实现python统计fasta的序列长度,再和这个脚本进行对比。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值