用python编写统计fasta格式的序列的长度脚本
2015-09-30 22:22
1246 查看
如果用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的序列长度,再和这个脚本进行对比。
运行方法: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的序列长度,再和这个脚本进行对比。
相关文章推荐
- Scikit Learn: 在python中机器学习
- [LeetCode]题解(python):020-Valid Parentheses
- 用python统计scaffold的N50等信息
- Python3 的json 和 PHP的json
- python的list的拷贝
- 关于python的学习
- python实现读取命令行参数
- Ubuntu 下一个 vim 建立python 周围环境 构造
- python派QQ邮件
- python unittest基本介绍
- 我的Python学习收藏夹
- 汉诺塔问题,Python
- 初尝python之环境配置
- Python实现数据处理——每隔一段时间把数据写入excel文件中
- python资源
- python unicode 字节串转成中文问题
- 安装python2.7做django基础环境时遇到的问题
- Python 派生类子类继承类
- Eclipse集成python
- Python抓取网页动态数据——selenium webdriver的使用