• 検索結果がありません。

Microsoft Word - 小島秀規2.doc

N/A
N/A
Protected

Academic year: 2021

シェア "Microsoft Word - 小島秀規2.doc"

Copied!
17
0
0

読み込み中.... (全文を見る)

全文

(1)

マイコース・プログラム活動報告書

学生番号:0601214358 氏名:小島 秀規 所属分野名:イタリアIFOM-IEO バイオインフォマティクス 期間:9/1/12~10/1/12 活動内容(概略):プログラミングの基礎とその応用 0. はじめに 渡航に関してだが、入学当初から学生のうちに一度は海外留学を経験したいと思っていた。 入学してからも授業で先生方がお話しされる海外の医療事情などを耳にする機会があり、 それを通して、アメリカやヨーロッパ諸国、他発展途上国の医療現場に対して、自分なり の考え方を持つようになっていった。気付いてみると、世界を舞台にアカデミックに取り 組むことは将来の選択肢となっていた。そして、今回の研修が進路の選択や実地生活など、 何らかの形で必ず役立つだろうと考えた。

(2)

1.出発の準備 渡航に際し準備した物は、航空券、パスポート10年用、国際学生証、国際運転免許証、 日本食(主にカップラーメン)で、基本的に1か月前にはすべてそろう形になっていまし た。航空券は時計台の下の生協で購入して、保険も同時にはいりました。 他は教務や芝蘭会に提出する書類や IFOM に送る書類を用意することが主でした。IFOM に送 る書類に関してはやや面倒であるので早めに着手しましょう。 また、研究の準備として武田研の方にプログラミングの概要と学び方などを教わり出発と いう形でした。

(3)
(4)

AC ミラン@san siro チャンピオンズリーグ観戦

2.現地での生活

現地では2回生の原田君とルームシェアしていました。彼とは、ラボも同じだったので四 六時中生活を共にしていました。現地の住まいは、IFOM の建物内の最上階にあり、1カ月

(5)

の滞在なら無料で住める set-up 用の宿舎といった形で学生などはほとんどおらず、ポスド クの方が中心で出入りはまあまあ激しかったです。なので、共用スペースで少しは話をす るものの、あまり仲良くなることは難しい環境だったかなと思います。 IFOM はミラノの中心からトラムで15分ほどのところにありました。トラムの駅は近くに あるので、晩御飯などはしょっちゅうそれに乗り出かけていました。ただ、夜中はさすが ミラノというか、施設の周りに娼婦が立ち並び結構不気味なので帰りが遅くなることには 注意しましょう。その他の注意点などは、IFOM の日本人秘書である住江美緒さんに聞けば 丁寧に教えて下さるので心配ありません。 IFOM ではランチが何とタダです!それもイタリアンでなかなかクオリティも高く、バラエ ティも豊かで毎回のランチが楽しみでした。基本的に毎日ラボの方とランチをとるのです が、イタリアの習慣や言葉を教えてくれたり、時には構内にあるテーブルサッカーで対戦、 ということも頻繁にありました。また、ランチ後には必ず構内のカフェに行きコーヒーを 呼ばれます。イタリアなので、もちろんエスプレッソ。IFOM に行かれる方は、テーブルサ ッカーとエスプレッソを習慣にしていくと、よりスムーズにラボの方と仲良くなれるかも しれませんね笑

(6)

このように、みなさんのイメージ通りイタリアのラボ内は非常にゆったりしています。ラ ンチタイムには高校生のようにテーブルサッカーをして、おしゃれな格好をした女性がカ フェでゆったり語らっています。もちろん、休憩時間がそれぞれ違うだけで皆さん朝から しっかり働いていますが。そして、夜は美味しいご飯を食べに行きます。ミラノでは Happy Hour というビュッフェスタイルのレストランが主流で、観光地ではなかなか見ることはあ りませんが、地元の方たちが集まる場所にはたくさんあります。ドリンク1杯ついて€5∼ 10なのでお得感満載です。 また、スーパーでのワインとチーズの種類がはんぱじゃありません笑 また冷凍ピザのク オリティが異常に高かったです。 宿泊費もランチ代もタダなので、夜はほぼ外食していました。ビュッフェの後にジェラー との美味しい店に行くというのが定番の原田君とのディナーコースでした。僕のジェラー とのお勧めはブドウとピスタチオ、原田君のお勧めはジンジャ―とミントでした。 週末は毎週友達と旅行していました。スケジュールは以下の通り 9/8,9 ロンドン

(7)
(8)

9/21~23 ローマ

(9)

基本的にミラノからは飛行機で移動しました、空港まではミラノ中央駅からバスで 30 分ほ どです。イタリア国内へなら鉄道での移動がベターでしょう。ドイツに行った際はレンタ カーで移動しました。国際運転免許証は簡単に日本で発行できるので ID 代わりとして持っ ていくの良いかもしれません。海外のレンタカーは基本的に乗り捨て無料のようで私はフ ランクフルトからミュンヘンまでドライブしました。ミュンヘンからは飛行機があまり無 いので、夜行列車でミラノまで行きました。決して安くはないので、ユーレイルパスをう まく使うのも良いかもしれません。 3. 実験 そもそもバイオインフォマティクスとは何か? 主な研究対象分野に、遺伝子予測、遺伝子機能予測、遺伝子分類、配列アラインメント、 ゲノムアセンブリ、タンパク質構造アラインメント、タンパク質構造予測、遺伝子発現解 析、タンパク質間相互作用の予測、進化のモデリングなどがある。 近年多くの生物を対象に実施されているゲノムプロジェクトによって大量の情報が得られ る一方、それらの情報から生物学的な意味を抽出することが困難であることが広く認識さ れるようになり、バイオインフォマティクスの重要性が注目されてきた。さらにマイクロ アレイなどの網羅的な解析技術の発展に伴って、遺伝子発現のプロファイリング、クラス タリング、大量のデータを視覚的に表現する手法などが重要になってきている。 バイオインフォマティクスという分野なので、実験という実験を行うことはなく、課題を 出され、それに解答しながらプログラミングの技術を学んでいた。基本的なコマンド、for, ls, cat, rm から始まり、最終的には bash を用いて makefile を作ることが出来るようにな った。課題は、あるファイルが送られ、解答して、ファイルを txt に変換して、条件に合 った文字列を取り出し、その数を求めよ。といった類のものに始まり、次に先ほどの問題 の条件を変えられてもすぐ解答が得られるように makefile を作るような指示があった。 その応用としてあった講義はCHIP on chip pipeline on the Cluster といったもので、raw cell file から bed file( name, score, chromestart, strand rate, TF)へ、そしてその中の cluster peak を取り出し、tracktool を用いて、basic statistical analysis をするというもの だった。

Makefile の一例

# 実行ファイルを作成:make

# 全オブジェクトを削除:make clean # アーカイブファイルを作成:make tar

(10)

# 環境設定 # コンパイラを指定 CC = gcc # 削除コマンドを指定 RM = rm -f # アーカイブファイル名を指定 TAR = ./$(TARGET).tar.gz # デバッグ情報 # 未使用時は、行頭に#を付加 DEBUG = -g # コンパイルオプション

CFLAGS = -Wall -O2 $(DEBUG) # リンカオプション

LDFLAGS = -lm -mno-cygwin $(WINGUI) $(DEBUG) # Windows GUI を使用するアプリの場合、コメントアウト #WINGUI = -mwindows # 以下から任意に-lxxx のように追加可能 # 通常は、-mwindows のみで十分 # また、ld を直接起動しているのでない限り # -lkernel32 をリンク行に含めてはいけないことに注意

#advapi32 largeint ole32 scrnsave vfw32 cap lz32 oleaut32 shell32 #win32spl comctl32 mapi32 oledlg snmp winmm comdlg32 mfcuia32 #olepro32 svrapi winserve ctl3d32 mgmtapi opengl32 tapi32 winspool #dlcapi mpr penwin32 th32 winstrm gdi32 msacm32 pkpd32 thunk32 #wow32 glaux nddeapi rasapi32 url wsock32 glu32 netapi32 rpcdce4 #user32 wst icmp odbc32 rpcndr uuid imm32 odbccp32 rpcns4 #vdmdbg kernel32 oldnames rpcrt4 version

# ターゲット TARGET = hello

# ソースとオブジェクトの指定 SRC = hello.c global.c

HEADER = global.h OBJ = hello.o global.o .PHONY: all

(11)

$(TARGET): $(OBJ) # 依存関係 .PHONY: makefile.dep makefile.dep: $(SRC) $(HEADER) $(RM) makefile.dep $(CC) -MM $(SRC) >> makefile.dep .PHONY: clean clean:

$(RM) $(TARGET).exe $(OBJ) makefile.dep $(TAR) .PHONY: tar tar: tar czvf $(TAR) . -include makefile.dep 他には、シェルスクリプトを用いてシェル関数を外部ファイルに記述し、シェルスクリプ ト内から参照する事ができる。コードを最適化する際に使える。 外部ファイルを読み出すには、 #!/bin/bash . func_shell #外部ファイルの読み込み func_test 1 #以下は、func_shell ファイルの内容 func_test () { if [ $1 -eq 1 ]; then echo "ok!" else echo "no!" fi }

(12)

最後にC 言語。 このうち連結リストを紹介すると、あるデータをポインタで結んだデータ構造というもの のひとつであり、リストに含まれる各要素をポインタによって、つなぎ合わせたデータ。 /*! ****************************************************************************** * ¥brief 連結リスト * ****************************************************************************** */ #include <stdio.h> #include <malloc.h> typedef struct _cell_t {

struct _cell_t *next; int data;

}cell_t;

extern int setList(cell_t *p, int data); extern int deleteList(cell_t* p); extern void allDeleteList(cell_t *p);

cell_t g_cell;//セルの先頭(このセルにはデータを入れない) int main(int argc, char** argv)

{ g_cell.next = NULL;//先頭のセルの初期化 setList(&g_cell, 0); setList(g_cell.next, 1); deleteList(&g_cell); allDeleteList(&g_cell); return(0); } /*!

(13)

****************************************************************************** * ¥fn int setList(cell_t* p, int data)

* ¥param *p 挿入したいセルのポインタ(この直後にセルを挿入する) * ¥param data データ * ¥return -1 の時はデータのセットができなかった時、正常時は 0 を返す * ****************************************************************************** */ int

setList(cell_t* p, int data) { cell_t *tmp; tmp = (cell_t*)malloc(sizeof(cell_t)); if(tmp == NULL) { return(-1); } tmp->next = p->next; tmp->data = data; p->next = tmp; return(0); } /*! ****************************************************************************** * ¥fn int deleteList(cell_t* p) * ¥brief 引数で受け取ったセルの次のポインタのデータを削除 * ¥param *p 削除したいセルを指しているポインタ * ¥return -1:エラー 0:正常終了 * ****************************************************************************** */ int deleteList(cell_t* p) { cell_t *tmp; if(p->next == NULL) {

(14)

return(-1); } tmp = p->next; p->next = tmp->next; free(tmp); return(0); } /*! ****************************************************************************** * ¥fn void allDeleteList(cell_t *p) * ¥brief データの全削除 * ¥param *p 先頭のセルのポインタ * ¥return None * ****************************************************************************** */ void allDeleteList(cell_t *p) { cell_t *tmp;

while (p->next != NULL) { tmp = p->next; p->next = tmp->next; free(tmp); } } ※ラボでプログラミングスキルアップのために出された課題(今後IFOM-IEO に留学を考 えている人は最低限以下の問題を出来るようにしていくのが望ましいと思います。) Hello guys,

Mauro reported to me that you are proceeding very well in getting to know "make", I would like you to try to do this last exercise, then we will start with something serious! This is the problem:

(15)

other file in it.

- Put in the directory the text file you obtained at the beginning of the first exercise and name it roba.txt

- Someone will then put in the directory a certain number of files, with different names (you do not know in advance the number of files nor the names), all you know is that they will be named ending in ".pat", say that they might be one.pat two.pat three.pat and so on; and then the user will simply type "make".

- Each ".pat" file will contain exactly one line with some letters, you have to create the corresponding ".res" files, if something.pat contains "abc" then something.res should contain all the lines of the big file roba.txt which contain the sequence of letters "abc" (NOT case sensitive).

- Then you will have to create the ".tot" files, each ".tot" file should contain the sum of the numbers in the lines of roba.txt matched by the ".pat" file. So say that who uses your "tool" has placed a file named pippo.pat containing "ba" then pippo.res will contain 5198 lines and pippo.tot will contain exactly the number 2642832

- Finally you have to create a file results.txt, this single file will contain exactly one line per each ".pat" file you had, these line should contain the name of the ".pat" file without extension and the number in the corresponding .tot file

- If the user changes, deletes or adds ".pat" files and types "make" the thing is expected to update what is needed properly

As a test case if I put these files

acocito@host138:~/thing cat fragola.pat ba

acocito@host138:~/thing cat melone.pat ab

Then results.txt should contain: fragola 2642832 melone 4530168 Have fun! A. 以下僕の解答、 Hi Mauro,

(16)

I solved the questoin by the following ways. 1. wget -r cocito.group.ifom.eu/stuff/ 2. cd cocito.group.ifom.eu 3. cd stuff 4. cat roba.txt.gz*>test1.txt.gz 5. gunzip tst1.txt.gz

6. grep -i ^.b[^a].* test1.txt<test2.txt

7. awk '{total=total+$2}END{print total}' test2.txt answer=550194

Hi Mauro,

I solved the questoin by the following ways. 1. wget -r cocito.group.ifom.eu/stuff/

2. cd cocito.group.ifom.eu 3. cd stuff

4. cat roba.txt.gz*>test1.txt.gz 5. gunzip tst1.txt.gz

6. grep -i ^.b[^a].* test1.txt

7. awk '{total=total+$2}END{print total}' test1.txt answer=117627587 4. 感想 今回のバイオインフォマティクスというのは普段学んでいる医学とは縁遠いものであった ので、最初はとっつきにくく、なんのために学んでいるのかが分かりにくかった。 しかし、指導教員であるCocito は、 人から学ぶのではなく、自分の手で習得していくべき という考えだったので、頻繁にgoogle で検索しながら学んでいった。逆に私の担当教員で あるMauro は、大変丁寧な指導してくださり、幾度も私のためにバイオインフォマティク スに関する講義を他のラボメンバーに頼んでくれた。彼は医学博士ではなく、コンピュー ター技師だったので、一緒に1からバイオインフォマティクスの応用例などの講義に出て 学ぶといった具合だった。 私は、IFOM-IEO に来る前、アメリカ NIH にマイコースで行っていたので、英語でしゃべ

(17)

ることに抵抗は無くなっていたつもりだったが、イタリアのいわゆるItalian English に最 初は困惑させられた。そういった言語の壁もありつつ抽象言語を学ぶのは骨が折れたが、 その分新しい世界を見ているような気がして、途中からは特に抵抗無く研究生活を過ごす ことが出来た。 普段から医学の授業を受けているだけでは、全く触れずに学生生活を終える分野があるこ とを認識することが出来て本当に良かったし、科学を色んな角度から見るきっかけとなっ たのが良かった。コンピューターの技術は今後研究者としてやっていく上で必須の技術で あること、そして分担作業性でない日本ではなおさらであること、は今後どういったキャ リアを積んでいくのか考えていく上で大変重要な要素である。 また、Mauro とは良くお互いの母国の文化の話をしたが、印象的なメッセージがあった。 「日本は第二次世界大戦の大敗から見事に復活し、先進国として立派にやっている。イタ リアは第二次世界大戦でリタイアしたへたれな国であるが、日本を大変リスペクトしてい る。昨今も東北大震災で大きな打撃を受けたと思うが必ず日本は世界中を驚かせるほどの 復興を遂げると信じている。というよりむしろ、知っている。これは、日本人の信念の強 さの表れであり、科学の分野でも同じ。君が、今たかだか一学生であっても、本当に世界 が認める一流の科学者になることを目指せば、現にエクストラな課題として IFOM に来て いるように、様々な血がにじむ努力をして達成するだろう。それを、我々は知っている。 何が言いたいかと言うと、君はもう科学の世界に一歩足を踏み入れていている。日本だけ でなくイタリアやアメリカからも期待されている。だから、下手なマネはできないよ?そ れを自覚して、これからも頑張っていってほしい。」 ほんの1カ月、研究に関してまだまだ未熟な自分に一科学者として扱ってくださったこと は、挫折だらけだったものの自分にとって大きな糧となり、これから本気で医学を学んで いかなくてはならないと思った。 最後に、今回このような貴重な機会を与えて下さった、武田先生、Cocito 先生、Mauro 先 生、Pino 先生を始めとする、渡航の際サポートして下さった皆様に感謝申し上げます。 Farewell Party で頂いたクッキー

参照

関連したドキュメント

・広告物を掲出しようとする場所を所轄する市町村屋外広告物担当窓口へ「屋

地方自治法施行令第 167 条の 16 及び大崎市契約規則第 35 条により,落札者は,契約締結までに請負代金の 100 分の

あらまし MPEG は Moving Picture Experts Group の略称であり, ISO/IEC JTC1 におけるオーディオビジュアル符号化標準の

平成 26 年の方針策定から 10 年後となる令和6年度に、来遊個体群の個体数が現在の水

北海道の来遊量について先ほどご説明がありましたが、今年も 2000 万尾を下回る見 込みとなっています。平成 16 年、2004

当監査法人は、我が国において一般に公正妥当と認められる財務報告に係る内部統制の監査の基準に

Medial

〒020-0832 岩手県盛岡市東見前 3-10-2