2019年1月20日日曜日

研究室で学部生に解析を教える時のファースト・ステップ

先週分属している学部3年生と、hisat2でのマッピングをやっていた時に考えたこと。ほとんどの学部生はコマンドラインでの操作に慣れていない、というかほとんど経験がない場合が多い。そこから始めて、解析がなんとか一人でできるようになってもらいた。これまではラボでコマンドライン操作を教える機会はほとんどなかった。最近そういうことが増えて、どう説明していけば理解が早いんだろうかと色々考えている。

まだ考えながらやっていることが多いので、あまりまとまりなく箇条書きにして記録しておく。

(1) コンピュータはMac

いろいろなプログラムを導入しながらスクリプトを書いて解析、となるとwindowsだともどかしいことが多い気がする。Linuxという案もあるが、インストールの手間も含め、パソコンの運用が格段に面倒になる(あまり慣れていない人が大半だし、 MS Officeを前提にしている現場ではちょっと難しい)。macの使用経験者は体感で2~3割ほど。保守運用はlinuxに比べると格段にやりやすいと思う。また意外だったが、macの外観やインターフェイスに憧れがあって、使ってみたいという学生は結構多い。

(2) Anacondaやhomebrewなど

プログラムのインストールやコンパイルなどの導入で罠にはまって時間を取られる経験はよくあると思うけれど、始めてたての場合は特に厳しい。依存性がたくさんあるプログラムのセットアップとかはなかなか辛い。上級生やスタッフが管理者になって全てセットアップする手もあるのかもしれないが、時間を取られるしまどろっこしくなる。基本は管理者がセットアップするにしても、パッケージ管理システムの手を借りた方が楽だ。

(3) まずmacの基本操作を教える

macを使ったことのない場合は電源の切り方からわからない場合があることがこの前わかった。形はかっこいいのだが、トラックパットに戸惑う場合もあった。ただ、macは操作が覚えやすいとは思う。


(4) フォーマット形式

winしか使っていないと、macのファイル形式とかを知らず、外付けhddを繋げても見れない、またはファイルを保存できないという相談が頻発する。外付けはみんなexfatにさせとくのが無難とは思う。


(5) その後ターミナル、アクティビティモニタ、エディタ(mi、atom、BBEditなどか)の使い方を教える

起動方法、見方、終了の仕方から始める。ターミナルにはあらかじめsyntax highlightingの設定をしておく。これは教える時に便利(ファイルとディレクトリ説明する時にこの色のやつが、とか言える。chmodした後に色が変わるのもみやすい)。エディタの正規表現の機能も時間をとって教えたいが、なかなか難しい。

(6) 必須コマンドを使えるようにする

ls, pwd, cd, chmod, mkdir, mv, cp, cat, less, top, ps, ssh, grep, nohupあたりだろうか。書き出していけばまだまだあると思うし、だいたい20~30くらいのコマンドを挙げている入門書が多いと思うけれど、本当のはじめの時は、上述のうちでも10個くらい知ってればどうにかなる気がする(自分もあんまり知らない。。。)。コマンドをはじめて教える時は、隣にファインダーを置いて、操作でファインダーで見えている方にも変化が起こっていることを見せながら教えている。

(7)  パス

ここで例外なくつまづくが、横で見ながら何度か試行錯誤していると、思ったよりもなれてくる。ファインダーやエディタの機能でパスをコピーしてペーストさせるというのが結構分かりやすそう。相対パスと絶対パスは最初から教えると混乱するみたいに見える。

(8) とにかく何かシェルスクリプトを書かせる

これは意外と良かった。基本的なことを教えて、誰か前に解析した人のシェルスクリプトを参考にさせて自分のファイル名とかに書き直させながら自分で用意させる。そして実行権限を与えたのちに自分で実行させる。この過程でいろんなことが説明できる。

(9) マニュアルやチュートリアル

英語なのがネックになることが多いが、チュートリアルでオプションを調べるのは勉強になってる。オプションだけはこれとこれ、と先に教えておいて、どういう意味か調べてもらうとかもいいと思う。