python文本處理---計算fasta文件中不同氨基酸的數目
阿新 • • 發佈:2017-12-13
ros family pos port line import 文本 不同 split
#::!/usr/bin/python3
#-*- coding:utf-8 -*-
#計算fasta文件中各個氨基酸的含量
import sys
args=sys.argv
f=open(args[1], ‘r‘)
fw=open(‘out.txt‘, ‘w‘)
line=f.read()
txt=‘‘.join(line.split(‘\n‘)[1:]) #可以得到氨基酸序列
#構建了各個氨基酸和含量的字典
##註意collections模塊中Counter的用法
from collections import Counter
dict=Counter(txt) # Counter直接返回字典
#文件的write方法只能寫入字符串,
#因此要先將字典轉變為字符串模式;json模塊
import json
strdict=json.dumps(dict)
fw.writelines(strdict)
fw.writelines(‘\n‘)
fw.writelines(str(sum(dict.values())))
fw.writelines(‘\n‘)
#計算指定氨基酸的百分比
‘‘‘
for index in dict.keys():
if index==args[2]:
rate=str(dict[index]/sum(dict.values()))
fw.writelines(‘\n‘)
fw.writelines(rate)
fw.writelines(‘\n‘)
‘‘‘
f.close()
fw.close()
python文本處理---計算fasta文件中不同氨基酸的數目