第3回レポート課題

バイオプログラミング第 1 第 3 回レポート
2015 年 6 月 10 日(水)
課題 1
ファイルから DNA 配列を読み込み,開始コドンと終止コドンに挟まれた遺伝子候補領
域(ORF)を見つけて出力するプログラムを作成する.具体的には,次の手順に従ってプ
ログラムを作成する:
• ファイルから DNA 配列を読み込み,読み込んだ DNA 配列を文字配列に格納す
る.DNA 配列は以下のアドレスからダウンロードし,プログラムのソースファイ
ルと同じフォルダに配置する.
http://www.dna.bio.keio.ac.jp/lecture/progen/genome-seq.data
この配列は出芽酵母六番染色体の一部で,塩基数は 1,140 塩基である.このファ
イルをプログラム中でオープンして,中身の DNA 配列を読み込む.読み込んだ
DNA 配列は,次の文字配列をグローバル変数として宣言して,そこに格納する:
#define MAXLENGTH 2000
char genome[MAXLENGTH];
• DNA 配列中から開始コドン “ATG” と終止コドン “TGA” を探す.開始コドン
“ATG” と終止コドン “TGA” は,この DNA 配列中に複数箇所存在する.また,
遺伝子コード領域にはイントロンは存在しないと仮定する.そこで,開始コドンと
終止コドンに挟まれた領域でかつ配列の長さが3の倍数(コドンの並び)になって
いる遺伝子候補領域を見つける.そのような領域が複数ある場合には,すべて出力
する.このような領域は ORF(Open Reading Frame)と呼ばれ,アミノ酸配列
として翻訳される.
• 見つかったすべての ORF 候補領域の配列を出力する.出力例を図 1 に示す.
課題 2(発展課題)
関数を用いてプログラムを書き換える.例えば,
• ファイルから DNA 配列を読み込み,読み込んだ DNA 配列を文字配列に格納し
て,読み込んだ DNA 配列の長さを返す関数を作成する:
int readseq(void)
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
図1
実行例
• 位置 position1 から位置 position2 までの間の配列を出力する関数を作成する:
void outputseq(int position1, int position2) この関数を用いて,見つかった ORF 候補領域の配列を出力する.
レポート様式:
(1) プログラムと実行結果は、いつもの演習と同じように「出席&課題提出システム」
で提出する。
(2) レポート提出用表紙をつける(「バイオプログラミング第1」、学籍番号、名前を
記入)。
(3) 課題を記入する。
(4) プログラムの作成方針を述べる。例えば、変数の取り方、ポイントとなる計算に使
う文、アルゴリズムの検討など。
(5) 考察をする。プログラムの作成過程で間違えた箇所とその理由、プログラム作成上
の注意など。
締め切り: 7 月 1 日(水)10:45
提出先: 講義中に回収
以上