所以这个问题基本上给了我 19 个 DNA 序列,并要我制作一个基本的文本表。第一列必须是序列 ID,第二列是序列长度,第三列是“A”的数量,第四列是“G”,第五列是“C”,第六列是“T” ,第7个是%GC,第8个是序列中是否有“TGA”。然后我得到所有这些值并将表写入“dna_stats.txt”
这是我的代码:
fh = open("dna.fasta","r")
Acount = 0
Ccount = 0
Gcount = 0
Tcount = 0
seq=0
alllines = fh.readlines()
for line in alllines:
if line.startswith(">"):
seq+=1
continue
Acount+=line.count("A")
Ccount+=line.count("C")
Gcount+=line.count("G")
Tcount+=line.count("T")
genomeSize=Acount+Gcount+Ccount+Tcount
percentGC=(Gcount+Ccount)*100.00/genomeSize
print "sequence", seq
print "Length of Sequence",len(line)
print Acount,Ccount,Gcount,Tcount
print "Percent of GC","%.2f"%(percentGC)
if "TGA" in line:
print "Yes"
else:
print "No"
fh2 = open("dna_stats.txt","w")
for line in alllines:
splitlines = line.split()
lenstr=str(len(line))
seqstr = str(seq)
fh2.write(seqstr+"\t"+lenstr+"\n")
我发现您必须将变量转换为字符串。当我在终端中打印出来时,我已经正确计算了所有值。但是,我一直只得到第一列的 19,而它应该是 1、2、3、4、5 等。来表示所有的序列。我尝试了其他变量,它只得到了整个文件的总量。我开始尝试制作桌子,但还没有完成。
所以我最大的问题是我不知道如何获取每个特定行的变量值。
我是 python 和一般编程的新手,所以任何提示或技巧或任何东西都会真正有帮助。
我正在使用python 2.7版