情報基礎A 「Cプログラミング」総合演習

このページには、DNAの塩基配列の解析(ORFを探し出す)を行うCプログラムの開発を、演習課題としてまとめました。 「腕試し」として、課題1から順に取り組んでみてください。

準備

課題に取り組む前に、以下のページを読み、内容を把握しておくこと。

  1. 遺伝子に書き込まれた情報(基礎編)
  2. プログラミングのための準備
  3. 「支援プログラム」の仕様

課題1

Genbank形式のデータファイル(NC000913.gbk)を読み込み、データ中にA,T,C,Gそれぞれの塩基が何個含まれているか、および、それぞれが全体に占める割合を 出力するプログラムを作成せよ。

要件
    $ 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)の列として出力するプログラムを作成せよ。

要件
    $ a.out
    reading: NC000913.gbk
    1254 bp
    TTAAGCGACTTCATTCACCTG・・・

課題3

Genbank形式のデータファイル(NC000913.gbk)について、最初の塩基から順に(3つずつ、3つおきに)読み込んだ場合、対応するアミノ酸の配列を 記号(A,C,D,E,F...)の列で表示するプログラムを作成せよ。

要件
    $ a.out
    reading: NC000913.gbk
    1254 bp
    MYYLKNTNFWMFGLFFFF・・・

課題4

Genbank形式のデータファイル(NC000913.gbk)について、最初の塩基Aをスキップして二番目から、TGT, ACT,...と読み進んだ場合、 ORF(ATGで始まり、TAA,TAG,TGAで終わる領域:一箇所とは限らない)を全て探し、 その箇所の塩基配列を記号(A,T,G,C)列としてプリントするプログラムを作成せよ。

要件
    $ a.out
    reading: NC000913.gbk
    1254 bp
    ORF @ 104: ATGACATCAACCATATCAG・・・
    ・・・

課題5

Genbank形式のデータファイル(NC000913.gbk)を読み込み、可能な6通りの読み方全てについて、対応するアミノ酸の配列を記号(A,C,D,E,F...)で表示するプログラムを作成せよ。 両端の読み飛ばされた部分の塩基は、無視して構わない。

要件

課題6

Genbank形式のデータファイル(NC000913.gbk)に対して、可能な6通りの読み方全てについて、ORF(ATGで始まり、TAA,TAG,TGAで終わる領域)を探し、その(それらの)箇所の塩基配列を記号(A,T,G,C)列としてプリントするプログラムを作成せよ。

要件