我该怎么做才能添加此计数并制作正确的数据框?

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