情報基礎A 「Cプログラミング」総合演習
このページには、DNAの塩基配列の解析(ORFを探し出す)を行うCプログラムの開発を、演習課題としてまとめました。 「腕試し」として、課題1から順に取り組んでみてください。
準備
課題に取り組む前に、以下のページを読み、内容を把握しておくこと。
課題1
Genbank形式のデータファイル(NC000913.gbk)を読み込み、データ中にA,T,C,Gそれぞれの塩基が何個含まれているか、および、それぞれが全体に占める割合を 出力するプログラムを作成せよ。
要件
- プログラムファイル名は
ga-kadai1.c
に統一 - プログラムの出力フォーマットは、各自の工夫に任せるが、目安として、以下を示しておく。
$ a.out reading: NC000913.gbk 1254 bp T: 433 (34.529506 %) C: 284 (22.647528 %) A: 240 (19.138756 %) G: 297 (23.684211 %)
ヒント
printfを使って%を出力する場合には、printf("a = %f%%\n",a);
のように、そこのところの%を二つ重ねる。
課題2
Genbank形式のデータファイル(NC000913.gbk)を読み込み、対向する側の(相補的な)鎖の塩基配列を記号(T,C,A,G)の列として出力するプログラムを作成せよ。
要件
- プログラムファイル名は
ga-kadai2.c
に統一 - 対向する鎖は「逆順」に読まれることに注意すること。
$ a.out reading: NC000913.gbk 1254 bp TTAAGCGACTTCATTCACCTG・・・
課題3
Genbank形式のデータファイル(NC000913.gbk)について、最初の塩基から順に(3つずつ、3つおきに)読み込んだ場合、対応するアミノ酸の配列を 記号(A,C,D,E,F...)の列で表示するプログラムを作成せよ。
要件
- プログラムファイル名は
ga-kadai3.c
に統一
$ a.out reading: NC000913.gbk 1254 bp MYYLKNTNFWMFGLFFFF・・・
課題4
Genbank形式のデータファイル(NC000913.gbk)について、最初の塩基Aをスキップして二番目から、TGT, ACT,...と読み進んだ場合、 ORF(ATGで始まり、TAA,TAG,TGAで終わる領域:一箇所とは限らない)を全て探し、 その箇所の塩基配列を記号(A,T,G,C)列としてプリントするプログラムを作成せよ。
要件
- プログラムファイル名は
ga-kadai4.c
に統一 ATG ... ATG ... TAG
のような配列の場合、二番目以降のATGはアミノ酸コードとして解釈すること(できるだけ長い系列のORFを見つける)。
$ a.out reading: NC000913.gbk 1254 bp ORF @ 104: ATGACATCAACCATATCAG・・・ ・・・
課題5
Genbank形式のデータファイル(NC000913.gbk)を読み込み、可能な6通りの読み方全てについて、対応するアミノ酸の配列を記号(A,C,D,E,F...)で表示するプログラムを作成せよ。 両端の読み飛ばされた部分の塩基は、無視して構わない。
要件
- プログラムファイル名は
ga-kadai5.c
に統一
課題6
Genbank形式のデータファイル(NC000913.gbk)に対して、可能な6通りの読み方全てについて、ORF(ATGで始まり、TAA,TAG,TGAで終わる領域)を探し、その(それらの)箇所の塩基配列を記号(A,T,G,C)列としてプリントするプログラムを作成せよ。
要件
- プログラムファイル名は
ga-kadai6.c
に統一 - 課題4と同様、出来るだけ長いORFを出力すること。