<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                所屬專題:[字符串算法](README.md) &emsp; ## 問題 DNA序列的GC含量,是序列包含的'C'或'G'堿基的百分比(一般省略百分號,范圍0~100)。例如,序列"AGCTATAG"的GC含量為37.5%(或寫作37.5)。請注意,任何DNA序列的反向互補序列之間有著同一個GC含量。 DNA序列在歸入數據庫中時需要做標記。序列標記的常用方法是使用FASTA格式。在該格式中,序列信息開始于以'>'開頭連接著的一行注釋信息(ID);隨后的若干行是序列本身。 **輸入:** 遵循FASTA格式的至多10條DNA序列(每條序列最長為1 kb)。 **輸出:** GC含量最高的序列ID,下一行是該序列的GC含量值。 **樣例數據:** ``` >Rosalind_6404 CCTGCGGAAGATCGGCACTAGAATAGCCAGAACCGTTTCTCTGAGGCTTCCGGCCTTCCC TCCCACTAATAATTCTGAGG >Rosalind_5959 CCATCGGTAGCGCATCCTTAGTCCAATTAAGTCCCTATCCAGGCGCTCCGCCGAAGGTCT ATATCCATTTGTCAGCAGACACGC >Rosalind_0808 CCACCCTCGTGGTATGGCTAGGCATTCAGGAACCGGAGAACGCTTCAGACCAGCCCGGAC TGGGAACCTGCGGGCAGTAGGTGGAAT ``` **樣例輸出:** ``` Rosalind_0808 60.919540 ``` &emsp; ## 背景知識 該問題涉及DNA序列的GC含量計算,以及對生物信息學常用數據格式FASTA格式的認識。詳情請查閱ROSALIND網站上[關于該問題的背景說明](http://rosalind.info/problems/gc/)。 &emsp; ## 解答 ``` def read_fa(fa): """讀入FASTA格式的文件對象fa,將其中的序列用字典結構存儲""" seq = {} for line in fa: if line.startswith('>'): seqid = line.replace('>', '').split()[0] seq[seqid] = '' else: seq[seqid] += line.strip() return seq def gc_content(s): """讀入DNA序列s,計算s中的GC含量""" gcc = (s.count('C')+s.count('G'))/len(s)*100 return gcc ## --main-- with open("rosalind_gc.txt", 'r') as f1: dna_seq = read_fa(f1) dna_gc = {i:gc_content(j) for i,j in dna_seq.items()} maxgc_value = max(dna_gc.values()) maxgc_id = [] for id,gcvalue in dna_gc.items(): if gcvalue==maxgc_value: maxgc_id.append(id) with open("rosalind_gc_out.txt", 'w') as f2: f2.write(','.join(maxgc_id) + "\n") f2.write(str(maxgc_value)) ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看