【发布时间】:2022-12-18 03:44:52
【问题描述】:
我有一个序列列表,我正在尝试以百分比计算 GC 含量(意味着序列的百分比是字母“G”、“g”、“C”、“c”)
#series of sequences
seq0,seq1,seq2,seq3,seq4,seq5 = 'CCACGCGTCCGCCGCGACCTGCGTTTTCCTGGGGGTCCGCAACTCTGGCTTGACCCAAGGACCCGGCCAC','attgccattatataACCCGGCCACCCCCATAGGCAGATGTCAGGACAACTCGCATCTCAGCAGAGCAGCCCCTGGCCCAGG','TCXCACCCATAGGCAGATGGCCTCCGCCCCACCCCCGGGAGGATTTCTTAATGGGGTGAAAATGC','CAGTCCCCGAAGCCAGGGTTCCGGGACCCCCGGGGCCGAGCTGGGCGCGGGAAAAGAAttacggacttaGTCAGCCCCGCAGGGG','ATGGGGTGATCGTCGCTCGCGGGCTCTGTCTTCCTGTTCACCCTCCTCTGCCCCCAACTCCATCTCTGAGACCTCCTGCCCCCCCA','AAAAAAGAAGTCGCTCGCGTCGCTCGCGGGCTGGGCTCTGTCTGCGTCGCTCGCGGGCTAGAGAGCCAGGGTGA'
#sequences aggregated into a list
NTs = [seq0,seq1,seq2,seq3,seq4,seq5]
#specifying nucleotides
nucleotides = ['G','A','C','T', 'U']
#checking and removing if there are any non-nucleotide characters present
if any(x not in nucleotides for x in NTs):
print("ERROR: non-nucleotide characters present")
[''.join(i for i in x if i.upper() in nucleotides) for x in NTs]
#calculating GC percent of each sequence using the aggregated list
gCountseq0 = seq0.count('G') + seq0.count('g')
cCountseq0 = seq0.count('C') + seq0.count('c')
gcContentseq0 = ((gCountseq0 + cCountseq0)*100) / len(seq0)
print('The GC content of seq0 is',gcContentseq0,'%')
由此我得到了输出
ERROR: non-nucleotide characters present
The GC content of seq0 is 70.0 %
最终我试图得到看起来像下面输出的东西,但我有点卡住了,我不知道如何将 NTs 列表作为 GC% 计算的参数,这样我就可以完成所有的序列一次而不是一个一个地
ERROR: non-nucleotide characters present in seq2
The GC content of seq0 is x %
The GC content of seq1 is x %
The GC content of seq2 is x %
The GC content of seq3 is x %
The GC content of seq4 is x %
The GC content of seq5 is x %
【问题讨论】:
-
你是说
for?看到:w3schools.com/python/python_for_loops.asp?