我该怎么做才能添加此计数并制作正确的数据框?
What can I do add this counts, and make right dataframe?
我在使用 Biopython 时遇到一些问题,计算并求和每个碱基的编号以解析 FASTA 文件。 FASTA文件中,总A是多少?总 T 是?
但是有点问题。
1.
handle2="/home/koreanraichu/sra_data_mo.fasta"
for record2 in SeqIO.parse(handle2,"fasta"):
print(Seq(record2.seq).count("A"))
print(type(Seq(record2.seq).count("A")))
这是代码,它成功读取序列并计数腺嘌呤,但它从未总结每个数字。 list append 和 sum() 都试过了,简单的加,没有效果。 (每个计数类型都是int,但从未单独添加和打印)
for record2 in SeqIO.parse(handle2,"fasta"):
if len(record2.seq) > 100:
i=0
i=i+len(record2.seq)
else:
j=0
j=j+len(record2.seq)
print(i,j)
与上层一样,此代码无效。我的意思是这个代码是一个条件和代码,分别添加 100 bp 或更多的 DNA 和小于 100 bp 的 DNA。但它也永远行不通。它打印最后一条记录的数据。
我能做些什么来解决这个问题?
尝试使用此代码解决第一个问题:
from Bio import SeqIO
# from Bio.Seq import Seq
handle2="Fasta.fa"
for record2 in SeqIO.parse(handle2,"fasta"):
# print(record2.seq, type(record2.seq))
# print(str(record2.seq), type(str(record2.seq)))
print(record2.seq.count("A"))
# print(type(record2.seq).count("A")) ### --> TypeError: count() missing 1 required positional argument: 'sub'
summarize = 0
for i in 'ATGC':
x = record2.seq.count(i)
print(i, ' : ', x)
summarize += record2.seq.count(i)
print(summarize)
鉴于我的测试 fasta :
>Rosalind_4402
GCAGCTAGCTAGCTAGCTGGGATTCGGATCGGCGCCCCGAGAGGATTCTTTCAGCTGTAA
GAATTTATCCTCGATCGGGCTATAAAACCTACGCATATCTGCTAGCTGAGGGGCTATCTT
输出:
27
A : 27
T : 32
G : 32
C : 29
120
第二个密码:
from Bio import SeqIO
# from Bio.Seq import Seq
# handle2="/home/koreanraichu/sra_data_mo.fasta"
handle2="Fasta2.fa"
i=0
j=0
for record2 in SeqIO.parse(handle2,"fasta"):
if len(record2.seq) > 100:
print('>100 : ', len(record2.seq))
i=i+len(record2.seq)
else:
print('else : ', len(record2.seq))
j=j+len(record2.seq)
print('> 100 summarize : ', i, ' else summarize : ',j)
给出的测试法斯塔:
>Rosalind_4402
GCAGCTAGCTAGCTAGCTGGGATTCGGATCGGCGCCCCGAGAGGATTCTTTCAGCTGTAA
GAATTTATCCTCGATCGGGCTATAAAACCTACGCATATCTGCTAGCTGAGGGGCTATCTT
>Rosalind_4403
GCAGCTAGCTAGCTAGCTGGGATTCGGATCGGCGCCCCGAGAGGATTCTTTCAGCTGTAA
GAATTTATCCTCGATCGGGCTATAAAACCTACGCATATCTGCTAGCTGAGGGGCTATCTT
GCAGCTAGCTAGCTAGCTGGGATTCGGATCGGCGCCCCGAGAGGATTCTTTCAGCTGTAA
GAATTTATCCTCGATCGGGCTATAAAACCTACGCATATCTGCTAGCTGAGGGGCTATCTT
>Rosalind_4404
GCAGCTAGCTAGCTAGCTGGGATTCGGATCGGCGCCCCGAGAGGATTCTTTCAGCTGTAA
>Rosalind_4405
GCAGCTAGCTAGCTAGCTGGGATTCGGATCGGCGCCCCGAGAGGATT
>Rosalind_4406
GCAGCTAGCTAGCTAGCTGGGATTCGGATCGGCGCCCCGAGAGGATTCTTTCAGCTGTAA
GAATTTATCCTCGATCGGGCTATAAAACCTACGCATATCTGCTAGCTGAGGGGCTATCTT
CTTTCAGCTGTAAGAATTTATCCTCGATCGGGCTATAAAACCTACGCATATCTGCTAGCT
GAGGGGCTATCTT
>Rosalind_4407
GCAGCTAGCTAGCTAGCTGGGATT
>Rosalind_4408
GCAGCTAGCTAGCTAGCTGGGATTCGGATCGGCGCCCCGAGAGGATTCTTTCAGCTGTAA
GAATTTATCCTCGATCGGGCTATAAAACCTACGCATATCTGCTAGCTGAGGGGCTATCTT
CTTTCAGCTGTAAGAATTTATCCTCGATCGGGCTATAAAACCTACGCATATCTGCTAGC
输出:
>100 : 120
>100 : 240
else : 60
else : 47
>100 : 193
else : 24
>100 : 179
> 100 summarize : 732 else summarize : 131
我在使用 Biopython 时遇到一些问题,计算并求和每个碱基的编号以解析 FASTA 文件。 FASTA文件中,总A是多少?总 T 是?
但是有点问题。
1.
handle2="/home/koreanraichu/sra_data_mo.fasta"
for record2 in SeqIO.parse(handle2,"fasta"):
print(Seq(record2.seq).count("A"))
print(type(Seq(record2.seq).count("A")))
这是代码,它成功读取序列并计数腺嘌呤,但它从未总结每个数字。 list append 和 sum() 都试过了,简单的加,没有效果。 (每个计数类型都是int,但从未单独添加和打印)
for record2 in SeqIO.parse(handle2,"fasta"):
if len(record2.seq) > 100:
i=0
i=i+len(record2.seq)
else:
j=0
j=j+len(record2.seq)
print(i,j)
与上层一样,此代码无效。我的意思是这个代码是一个条件和代码,分别添加 100 bp 或更多的 DNA 和小于 100 bp 的 DNA。但它也永远行不通。它打印最后一条记录的数据。
我能做些什么来解决这个问题?
尝试使用此代码解决第一个问题:
from Bio import SeqIO
# from Bio.Seq import Seq
handle2="Fasta.fa"
for record2 in SeqIO.parse(handle2,"fasta"):
# print(record2.seq, type(record2.seq))
# print(str(record2.seq), type(str(record2.seq)))
print(record2.seq.count("A"))
# print(type(record2.seq).count("A")) ### --> TypeError: count() missing 1 required positional argument: 'sub'
summarize = 0
for i in 'ATGC':
x = record2.seq.count(i)
print(i, ' : ', x)
summarize += record2.seq.count(i)
print(summarize)
鉴于我的测试 fasta :
>Rosalind_4402
GCAGCTAGCTAGCTAGCTGGGATTCGGATCGGCGCCCCGAGAGGATTCTTTCAGCTGTAA
GAATTTATCCTCGATCGGGCTATAAAACCTACGCATATCTGCTAGCTGAGGGGCTATCTT
输出:
27
A : 27
T : 32
G : 32
C : 29
120
第二个密码:
from Bio import SeqIO
# from Bio.Seq import Seq
# handle2="/home/koreanraichu/sra_data_mo.fasta"
handle2="Fasta2.fa"
i=0
j=0
for record2 in SeqIO.parse(handle2,"fasta"):
if len(record2.seq) > 100:
print('>100 : ', len(record2.seq))
i=i+len(record2.seq)
else:
print('else : ', len(record2.seq))
j=j+len(record2.seq)
print('> 100 summarize : ', i, ' else summarize : ',j)
给出的测试法斯塔:
>Rosalind_4402
GCAGCTAGCTAGCTAGCTGGGATTCGGATCGGCGCCCCGAGAGGATTCTTTCAGCTGTAA
GAATTTATCCTCGATCGGGCTATAAAACCTACGCATATCTGCTAGCTGAGGGGCTATCTT
>Rosalind_4403
GCAGCTAGCTAGCTAGCTGGGATTCGGATCGGCGCCCCGAGAGGATTCTTTCAGCTGTAA
GAATTTATCCTCGATCGGGCTATAAAACCTACGCATATCTGCTAGCTGAGGGGCTATCTT
GCAGCTAGCTAGCTAGCTGGGATTCGGATCGGCGCCCCGAGAGGATTCTTTCAGCTGTAA
GAATTTATCCTCGATCGGGCTATAAAACCTACGCATATCTGCTAGCTGAGGGGCTATCTT
>Rosalind_4404
GCAGCTAGCTAGCTAGCTGGGATTCGGATCGGCGCCCCGAGAGGATTCTTTCAGCTGTAA
>Rosalind_4405
GCAGCTAGCTAGCTAGCTGGGATTCGGATCGGCGCCCCGAGAGGATT
>Rosalind_4406
GCAGCTAGCTAGCTAGCTGGGATTCGGATCGGCGCCCCGAGAGGATTCTTTCAGCTGTAA
GAATTTATCCTCGATCGGGCTATAAAACCTACGCATATCTGCTAGCTGAGGGGCTATCTT
CTTTCAGCTGTAAGAATTTATCCTCGATCGGGCTATAAAACCTACGCATATCTGCTAGCT
GAGGGGCTATCTT
>Rosalind_4407
GCAGCTAGCTAGCTAGCTGGGATT
>Rosalind_4408
GCAGCTAGCTAGCTAGCTGGGATTCGGATCGGCGCCCCGAGAGGATTCTTTCAGCTGTAA
GAATTTATCCTCGATCGGGCTATAAAACCTACGCATATCTGCTAGCTGAGGGGCTATCTT
CTTTCAGCTGTAAGAATTTATCCTCGATCGGGCTATAAAACCTACGCATATCTGCTAGC
输出:
>100 : 120
>100 : 240
else : 60
else : 47
>100 : 193
else : 24
>100 : 179
> 100 summarize : 732 else summarize : 131