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