|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
目的:给出一个fasta格式的文件,只要输入文件名就可以统计数该文件中碱基序列的A、T、C、G数量
我写的代码
- def ATCG_counter(seq):
- a=t=c=g=0
- for each in seq:
- if each == 'A':
- a +=1
- elif each == 'T':
- t +=1
- elif each == 'G':
- g +=1
- elif each == 'C':
- c +=1
- print('A:%d'%(a))
- print('T:%d'%(t))
- print('C:%d'%(c))
- print('G:%d'%(g))
- print('All base:%d'%(a+t+c+g))
-
- import os
- file_name = input('请输入文件名:')
- f = open(file_name)
- sequence = f.read()
- ATCG_counter(sequence)
复制代码
问题:fasta格式文件的第一行是这段序列的基本信息,之后才是序列碱基,但是使用这段代码会使第一行的代码信息中的字母被误以为是碱基,造成统计误差,该如何修改这段代码?
bty 求大神给看看这段代码有何改进之处
好在每行最后有换行符,可以把文件读取作为列表,再用列表切片,去掉第一行。
- f = open('t.txt')
- seq = list(f)
- seq = seq[1:]
- print(seq)
- f.close()
复制代码
|
|