数日前、illuminaがPacific Biosciencesを買収するという記事が居室で話題になった。Nature Biotechnologyの記事を見つけてきた人がいてそれを見せてもらった。ゲノムの方で覇権を握り続けるための措置なのだろうか。今いる研究室でもPacBioでシークエンスをしている。まだ論文を出せていないが、アブラナ科植物のde novo アセンブルでpacbioを使うと、HiSeqのショートリードのみの場合よりもN50が大幅に長くなった。非モデル生物や育種系の需要では、しばらくは、illuminaが提供するショートリード+ロングリードでの新規ゲノム解析が定石の方法となるのだろうか?
ここからはilluminaの話とは別になるが、この記事を見つけてきた人が、ふとGoogle翻訳を使って記事を訳したらどうなるのかを試してみた。結果を見てびっくりした。日本語としてかなり読みやすい訳になっていたからだ。前々からGoogle翻訳の能力が上がっていることには気付いていたが、こんなにいい感じに機械が翻訳できることに単純に驚いた。
学部生には、どこの大学でも「科学英語」のような授業があるし、自分も学生の時それで論文を読んだり英語の文章を読んだりした記憶がある。一般科目の方には普通の英語の講義もたくさんあった。そこでは単純に単語を覚えたり、和訳したりする課題もたくさんあった。でも、これだけ進んだ自動翻訳の技術を見せられたら、科目としての英語も変化しないといけないんじゃないかという気がしてくる。どう変えるか、まで答えられるほどの知識も知恵もないが、課題解決型、英語でなにがしかのアクションが実際にできることそのものが評価の対象になるのではと感じる。その過程では、Google翻訳などのような、昔ならサボるための道具として忌避されていたツールを逆に使いこなすことが評価されるようになるのかもなと思った。素人考えなので実際はわからないが。
2019年1月30日水曜日
2019年1月23日水曜日
2019年1月21日月曜日
応用コンピュータ演習
秋学期に行っていたコンピュータ演習が終了した。4回分は自分の担当だった。最後の1回は、前任者の方が用意していた課題を変更し、ImageJマクロによるプログラミングを行うことにした。バイオ系の研究であっても、プログラミングは必須の技術になりつつある。しかしながら、プログラミングに触れる機会は、特に学部生の段階ではほとんどない。これは研究環境の変化に教育カリキュラムが追いついていない一例だと思う。ImageJによる画像解析は15回の演習のうち4回あるが、そのうちの1回にマクロを使った簡単なスクリプトを書いて、複数画像を一括で処理する体験をしてもらおうと考えた。主担当のK先生からは準備段階で、「最後なので、難しい課題で多少混乱があっても大丈夫ですよ」というありがたいお言葉を頂いた。サンプルスクリプトは30分程度でできたが、これを説明する資料を作る段階で「あれもこれも、このことも説明しないと分からないよな・・。」と、1回の枠に収めるのはなかなか難しいということをじわじわと認識した。演習では主に、
- プログラミングとコードとは何か?
- プログラミングのプロセス(コードを書く、実行する、デバッグする)
- PATH
- 変数
- forループと制御構造
の各要点を理解してもらえるような内容にするべく努めた。手引きの資料も作って印刷し、参考にしてもらえるようにして、今日演習当日を迎えた。途中までは割と順調にいっているように思えたが、だんだん時間が押してきて最後の方は説明もそこそこに、サンプルスクリプトを表示して、デモで自分のPCでマクロを動かして終了した。最大の敗因はPATHを上手く書けない学生が続出して見て回るのに時間を取られたことだろう。Step-by-stepでスクリプトを書いていったが、順調に進めていく学生がいる一方、パスが通っていなくて結果が出ない人もそれなりに出現してしまった。パスについての内容はバッサリ切ってカレントディレクトリで全て行えばよかったかもしれない。帰り際にK先生からは、穴あきのサンプルスクリプトを作って埋めさせれば良いかもしれないとアドバイスを受けた。また、「いつも、最初の時に多すぎた内容を次年度以降分割していくんですよ」と励ましの言葉をいただいた。ご助力に感謝するとともに、最後の説明が不足してしまった学生には真に申し訳なく思った。でも、プログラミングの演習は予想以上に教えていて楽しかった。
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) マニュアルやチュートリアル
英語なのがネックになることが多いが、チュートリアルでオプションを調べるのは勉強になってる。オプションだけはこれとこれ、と先に教えておいて、どういう意味か調べてもらうとかもいいと思う。2019年1月17日木曜日
Anacondaの導入
昨年末の話になるが、anacondaをメインのMacBook Proにインストールした。ブログやWebページ、qiitaで紹介や解説などを一通り見て、一回 macOS の仮想化デスクトップに導入してみて、やっぱり便利そうだったので、メインのパソコンにもようやく導入することにした。嫌っている人が書いているように、確かに .bash_profile に色々書き込んだ上でシステムのpythonはマスクされ、condaで入れたpythonの方が使われるようにpathが書き加えられていた。pipをある条件で使うと不都合が起こる場合があると解説している人もいる。
素人にはよく分かっていないことが多いが、anacondaで便利になることも多い。特に、(anacondaで諸々インストールしなくても、minicondaを使えば良いが、)パッケージ管理の機能を使って、バイオインフォマティクスのプログラムをストレスなく導入できるのは、初めてやったときは感動した。また、jupyter notebookは、研究室内で教えたり記録を残しながら解析したりするのにも役立ちそう。他の研究室の人を手伝う時にも(導入の煩わしさはあると思うが)、スクリプトファイルひとつ渡すよりもとっつきやすいのではないかと思う。Rやbashを使えるようにすることもできる。これらは、ラボ内のドキュメント整理にすごい便利だと思う。
jupyterではないが、spyderは12月末にラボPCで3年生がデータを解析する時に早速使ってもらった。共有パソコンのwindowsにanacondaを導入、簡単なスクリプトを書いて渡し、ちょっと書き直しながら動かしてデータ解析してもらった。1万行を超えるエクセルシートからコピペを繰り返すという苦行のようなことをしていたので、改善しなければと思っていたが、スクリプトを渡して気軽に実行できる環境を整えるのに役立った。データ解析について、ラボ全体でよくやる作業をまとめ、再利用可能な形でjupyterのファイルとして共有することもありえるかなと思う。
素人にはよく分かっていないことが多いが、anacondaで便利になることも多い。特に、(anacondaで諸々インストールしなくても、minicondaを使えば良いが、)パッケージ管理の機能を使って、バイオインフォマティクスのプログラムをストレスなく導入できるのは、初めてやったときは感動した。また、jupyter notebookは、研究室内で教えたり記録を残しながら解析したりするのにも役立ちそう。他の研究室の人を手伝う時にも(導入の煩わしさはあると思うが)、スクリプトファイルひとつ渡すよりもとっつきやすいのではないかと思う。Rやbashを使えるようにすることもできる。これらは、ラボ内のドキュメント整理にすごい便利だと思う。
jupyterではないが、spyderは12月末にラボPCで3年生がデータを解析する時に早速使ってもらった。共有パソコンのwindowsにanacondaを導入、簡単なスクリプトを書いて渡し、ちょっと書き直しながら動かしてデータ解析してもらった。1万行を超えるエクセルシートからコピペを繰り返すという苦行のようなことをしていたので、改善しなければと思っていたが、スクリプトを渡して気軽に実行できる環境を整えるのに役立った。データ解析について、ラボ全体でよくやる作業をまとめ、再利用可能な形でjupyterのファイルとして共有することもありえるかなと思う。
2019年1月16日水曜日
2019年1月15日火曜日
Windows10でLinuxのシステムを有効化する
Windows Subsystem for Linuxを有効化して、Ubuntuをインストールした。
以前から興味があったが、WindowsでLinuxのシステムを使えるように設定した。普段自分の解析には、macOSやLinux系のOSを使っているが、研究室としてはwindowsのPCを主に使っている。また隣近所でも、windowsシステムの方が馴染みがある人も多い。コマンドラインを使った処理を勧めるにも、システムごと新しく導入というのはちょっと難しい。仮想化デスクトップでlinux系OSを導入するのもいいけれど、少し面倒だと感じていた。
実習等でコマンドライン操作を教えるときにも、Win機だとLinuxサーバーへの接続が必要だが、Win10の正式な機能としてWSLが使えるのであれば、そちらの方が手軽な気がする。
今回のテストでは、Macの仮想化デスクトップ上で使用しているWindows10を使った。ここのサイトを参考にして作業したら、10分もかからずに設定は終わった。WSLのシステムはWindows10のシステムとの関係はまだよくわかっていないので調べたい。
2019年1月11日金曜日
植物育成用のLED照明
実験植物の育成用にLED照明を導入した。LED化は研究室の懸案だったが、今回はあるメーカーの一体型LED照明を試験的に導入した。
日長条件のプログラムにはこの様なタイマーを使う。
最終的には4本のLEDを使用した。並べているのは現在研究に用いているBrassica rapa の2系統(ハクサイ、コマツナ)である。庫内温度は5度で、約1ヶ月ほどの春化処理を施す予定にしている。
登録:
投稿 (Atom)