第3回レポートについて(提出日: 7/10)

課題 1

ファイルから DNA 配列を読み込み,開始コドンと終止コドンに挟まれた遺伝子候補領域(ORF)を見つけて出力するプログラムを作成する.具体的には,次の手順に従ってプログラムを作成する:

  • ファイルから DNA 配列を読み込み,読み込んだ DNA 配列を文字配列に格納する.DNA 配列はここからダウンロードし,プログラムのソースファイルと同じフォルダに配置する.この配列は出芽酵母六番染色体の一部で,塩基数は 1,140 塩基である.このファイルをプログラム中でオープンして,中身の DNA 配列を読み込む.読み込んだDNA配列は,次の文字配列をグローバル変数として宣言して,そこに格納する:
    #define MAXLENGTH 2000
    char genome[MAXLENGTH];
    
  • DNA 配列中から開始コドン “ATG” と終止コドン “TGA” を探す.開始コドン“ATG” と終止コドン “TGA” は,この DNA 配列中に複数箇所存在する.また,遺伝子コード領域にはイントロンは存在しないと仮定する.そこで,開始コドンと終止コドンに挟まれた領域でかつ配列の長さが3の倍数(コドンの並び)になっている遺伝子候補領域を見つける.そのような領域が複数ある場合には,すべて出力する.このような領域は ORF(Open Reading Frame)と呼ばれ,アミノ酸配列として翻訳される.
  • 見つかったすべての ORF 候補領域の配列を出力する.出力例を下に示す.

実行例

gene candidate region: from 22 to 60
ATGATCACGGCTGCGTGCCGGGTAATAAATCAATTTTGA
gene candidate region: from 22 to 84
ATGATCACGGCTGCGTGCCGGGTAATAAATCAATTTTGAGGAAAACTGGAAGTTCACCACTGA
gene candidate region: from 22 to 90
ATGATCACGGCTGCGTGCCGGGTAATAAATCAATTTTGAGGAAAACTGGAAGTTCACCACTGAGAATGA
gene candidate region: from 22 to 153
ATGATCACGGCTGCGTGCCGGGTAATAAATCAATTTTGAGGAAAACTGGAAGTTCACCACTGAGAATGATC
AACGGCAGGGAAACGTTATACCAAACAAAGCATTCTACCTCTAGGGAAGCTGGAAACTTGA
gene candidate region: from 22 to 978
ATGATCACGGCTGCGTGCCGGGTAATAAATCAATTTTGAGGAAAACTGGAAGTTCACCACTGAGAATGATC
AACGGCAGGGAAACGTTATACCAAACAAAGCATTCTACCTCTAGGGAAGCTGGAAACTTGAATTACCCACT
ATAGCTTGTCTTTTAGTGATCCATTATTCCAACCTATTGCAATTCCAAGAAAATAAACTAGGAACTTTTTT
TTTTGGAAGAATAAGAAAAGGAGAAAAAGTAGACATACTGTATATACACGAGGGCGTATCGTTCACCAGAA
AGAATATAAACATAACAAGATAAACATGTCAGGCTTGAGAACTGTTTCTGCTTCATCCGGTAATGGAAAGA
GCTATGACTCTATTATGAAAATTTTATTGATTGGTGATTCTGGTGTTGGGAAATCATGTTTATTGGTTCGT
TTTGTTGAAGACAAATTTAACCCGTCATTTATCACCACCATTGGTATTGATTTCAAAATAAAGACTGTCGA
TATCAACGGTAAGAAGGTAAAGCTGCAACTTTGGGATACCGCTGGTCAAGAACGTTTCCGGACAATCACCA
CAGCGTATTATCGTGGTGCTATGGGTATCATTCTTGTATATGATGTGACAGACGAGAGAACATTTACTAAT
ATCAAGCAATGGTTTAAAACCGTTAATGAGCATGCGAACGATGAAGCACAGCTACTGTTGGTTGGTAACAA
GAGCGATATGGAGACGAGAGTGGTAACAGCTGATCAAGGTGAAGCCTTGGCTAAGGAGCTGGGTATACCAT
TCATCGAGTCCAGTGCTAAGAACGATGACAATGTCAACGAGATTTTTTTCACCTTGGCGAAGTTAATCCAA
GAAAAAATCGACAGTAACAAGCTTGTTGGCGTCGGTAACGGTAAAGAGGGCAATATTAGCATCAATAGTGG
GAGCGGAAACAGTTCTAAATCAAATTGCTGTTGA

課題2(発展課題)

関数を用いてプログラムを書き換える.例えば,

  • ファイルから DNA 配列を読み込み,読み込んだ DNA 配列を文字配列に格納して,読み込んだ DNA 配列の長さを返す関数を作成する:
    int readseq(void)
    
  • 位置 position1 から位置 position2 までの間の配列を出力する関数を作成する:
    void outputseq(int position1, int position2)
    

    この関数を用いて,見つかった ORF 候補領域の配列を出力する.

レポート様式

  1. レポート本体は電子媒体(Wordなど)で作成し、「Canvas LMS」に提出する。
  2. プログラムは、いつもの演習と同じようにreplitに提出する。
  3. プログラムの作成方針を述べる。たとえば、変数の取り方、ポイントとなる計算に使う文、アルゴリズムの検討など。
  4. 考察をする。if 文と switch 文の違い、プログラムの作成過程で間違えた箇所とその理由、プログラム作成上の注意など。
  5. 締め切り: 7月10日(水)10:45

Updated: