なぜバイオインフォの人は自宅サーバーを立てないのか
このはてブに投稿するのがなんと4年ぶりか。本当はもっと早く投稿したかった。
今回はなぜバイオインフォマティクスの人は自宅サーバーを立てないのかについて述べてみたい。いや、別に原因を考察するわけではなくて、自分の例をただ述べるだけである。つまり疑問でなくて反語である(いや、むしろ「立てたらいいのに」か)。
バイオインフォ界隈の中でも、世代によって自宅サーバーを立てるのが世間的にもブームで経験した世代と、世間的にもそんな無駄なことすべきでないので経験していないという世代と縞模様になっているのではないかと思う。そして今は、バイオインフォの中の「べき」で言うとちょうど真ん中くらいで、現状はしてない人が多く、ただ、世間的にはブームである方の時代かと思う(ややこしい)。
世の中的にはデータサイエンスとか人工知能とかAIとか、そういうことが盛んに言われていて、むしろバイオインフォはそういった界隈をこれまでは引っ張ってきた分野であるかと思う。そして、それらを実現するためにはニーズがあって、それを処理するソフトがあって、はたまた動かすためのハードが必要なわけである。
バイオインフォでちょっと計算してみるというと、やはりNGS解析である。ようするに、次世代シーケンサーで読んだDNA断片をジグソーパズルしてゲノムだったりcDNAだったりに組み上げたりその量を計算するようなことだ。はたまた、公共データベース(=NCBI or DDBJ)からデータをダウンロードしてきて、それを解析するような仕事である。で、私の浅い知識では、これらは大量のデータのやりとりが発生したりするので、Amazon EC2などのクラウド環境でやるには料金プラン的に相性が悪い(らしい)。
ここで自分の話だが、2年前にそれまでの文科省系の、データをガシガシ処理するようなところから、経産省系の独法ではあるけれども、計算するのが専門ではない、というところに転職をした。ここで困ったのが計算リソースで、でっかいデータを落として処理するようなやんちゃなことをできるマシンがないし、自分のホームディレクトリ以下はいいけど、不用意なところにソフトを入れるなんてことは御法度だし(場合によっては情報システム部門に申請が必要)、何より職場マシンには職場のパソコンからしかつながらないし、外のクラウドにつなげない、という環境に置かれたことである。
えっと、一応、さらに補足をすると、オフィシャルな仕事はそれとして、こういう処理どうするのかな、みたいなのは、夜に小人さんが試してみてノウハウを公開してくれるので、昼に「世の中には便利なことをアップしてくれる人がいるなぁ」と言いながらそれを使っているまでで、はたまた自分もこんな立場になったとはいえ、マインドは研究者なので、メタ解析的なものはデータとマシンさえあればできる(から本業と関係ないひとりプロジェクトを進めたっていい)というところもあるのだが。
ということで、自分の計算リソースがほしいなぁ、となったわけで、ここでいろいろなパターンを検討してみた。案としては、Macを買う、Windowsマシンを買う(で Linux入れる)、クラウド環境使う、PCを自作するといったところか。
まずは、新しくMacを買う。しばらく前はこれが定番だったし、ものの本にも1章にはMacを買え、と書いてあった。計算するとなるとノートタイプでなくていいわけで、予算的にもMac Miniあたりが筋かなと。ということで、Appleストアを開いてみるとこんな感じ。(このキャプチャーは昨年。2023年7月のもの)

やっぱりNGS解析も視野に入れると、メモリ8GBではとてもこころもとないし、ディスクももっと欲しい。というこでちょっと盛ってみる。

まぁこのくらいはするよね。もっと盛りたいけど。
ただ、前はCPUがIntelだったので、ソフトも入れやすかったけど、最近はM2になって、素直に入らないとも聞くし、WindowsでもLinuxが動くようになったしMacにこだわらなくてもいい気はするんだよね。
次に手頃なWindowsを生協のサイトで

メモリが16GBで10万円かー。SSD 256GBは少ないが、足したとしてもMacより安いぞ。まぁ、NGSやろうとするとディクスもメモリも本当はもっと欲しいんだが。他にDellとか他のPCメーカーでも見積りを作ってみたりするなど。
クラウドも考えたが、やはり料金プランとか、あとは多分 使うのにムラが出るだろうので、あまりお得でないかなーとも。
それならば、久しぶりにPCを自作するべく、自作.comとかで見積り。よさげスペックで、しかも安く済みそうということで自作することに自分として決定。パーツなどを揃えてみた。

(実際はマザボが壊れていたので、そこは買い直している)
内訳は以下
- CPU:Intel Core i5 10400 :未使用品:15,800円
- メモリ:32GB × 2:新品:22,980円
- ディスク(SSD):2TB:新品:16,980円
- ディスク(HDD):6TB × 2:新品:20,360円
- マザボ:MSI H410I PRO WIFI:未使用品:13,800円
- グラボ:なし::0円
- 電源:450W プラグイン式:新品:3,100円
- ケース:Mini-ITX(Metis Plus):中古品:7,000円
- その他(ケーブル、CPUグリスなど):新品:2,300円
合計で102,320円。未使用品、中古品はヤフオクとメルカリを利用。一応、どうしてそうしたかを以下に詳述
- CPU
IntelかAMDかで分かれる。宗教なので、文句は言わせない。自分はIntel派だからしかたない。
10400の頭2桁である10が第10世代を差している。今は第14世代まで行っている。値段などの兼ね合いで(2年前だが)この世代にした。あまり新しいと高い。古いとマザボとか合うメモリを探すところとかが苦労する。
i5のあたりはスペックの差。i3、i5、i7、i9とある。やっぱり数字が大きい方がスペックは高いのだが値段も上がるので、まぁそんなに高いのも使いきれないだろう、とこのくらいで。 - メモリ
そりゃぁ多い方がいい。やっぱりがっつり解析しようと思うならこのくらいはあった方がいい。転職前に使っていたMac Proが64GBだったかも。 - SSD
なんだーかんだー言ってがしがし解析しようと思ったら必然的に2TBくらいはあった方がいいかと思って。OSはここにインストールする(じゃないと速度が出ないはず) - HDD
自分の場合、いろいろデータを落としてきたりするので6TBを2本とした。1本はダウンロードしたデータ用。1本は解析結果の保存用。 - グラボ
通常のNGS解析の場合、GPUを使うようなツールはないかと思う(昨年にまわりに訊いてみたところないと言っていた)。もしそういうのをやれば足せばいいだけ。今回の場合、さらにCPUとマザボの組み合わせでそこにグラフィック機能がついているのでグラボを挿さなくて済んでいる。通常はごくごく安いグラボを挿さないと画面に出力が出せない。ここを省略しているので意外と安く済んでいる。 - ケース
日本は家が狭い。なので、なるべく小さいMini-ITXという形式にしている。そこを気にしないでいいなら、マザボもケースももっと安いのが存在する。
ということで組んだのがこちら。

ティッシュは単に大きさのアピールのため。ドラッグストアで売っているティッシュ5箱セットより小さいよ、と言いたいだけ。実際には天井部分に空気の取り込み口があるので、塞いだら熱暴走が怖いからこんなことしない。
OSはUbuntuにした。Cent OSはオワコンだし、Fedoraとか他のディストリビューションも検討したが、aptでNGS系のソフトが当たり前に入って便利なので。本当はRedHat系列の方が馴染みがあっていいのだが、まぁそこは大したことはない。
とこういうのを作って2年経った(ごめん。まだ1年でした。2年前にやりかけたけど、マザボが壊れているのを突き止めるのに時間がかかって、去年の開発合宿前に構築したんだった)。まぁちょっとした解析なら(こっそり)Google Colabでやっちゃうしなのだが、6TBのディクスのダウンロード用のやつはすでに半分が埋まってしまった(そりゃぁ、いわゆるGenBank Nucleotideのデータを割とごっそりダウンロードとかしちゃったからなのだが。前にダウンロードしたやつを消せばそれなりに空く)。あとは、2年間でホコリが溜まってファンの音が当初に比べたらちょっとうるさくなったり、一度止めて掃除したら再起動のたびになぜかBIOSの設定画面に入り込んでOSのブートまでいかないので不便したり(CPUのファンの情報取得がミスっているから?)、wi-fiの接続がちょっと不安定だったりするが、通常は上がりっぱなしだから通常運行している分には便利である。
ここで改めて世の中に問いたいのは、AIブームとかで情報屋さんはみんなPCを自作してソフトを入れて遊んでいるのにどうしてバイオインフォの人で(前にしていたように)PC自作してガシガシ解析したりしないの? ということだ。いや、もしかしたら、自分の見えている範囲がシニアの世代に入ってきて、みんな自分で予算を取って、クラウド環境なりオンプレ環境を金で解決しているだけで、若者は自分でPCを作っているかもしれないのだが。今日から開発合宿に来ているが、世の中としてはどんどんツールもデータも肥大化してとてもこんな自作サーバーでは立ち行かないレベルになってきているらしいことも聞いた。ただ、末端の研究レベルでは研究費はたいて100万円の解析サーバーを業者に調達してもらうのと同様に自分でPCを自作する、そういうやり方もあるんじゃないの? と自分としては思う。まぁそれもこれも、自分はプログラムを書くソフト屋、データベース屋だけど、自分の父親が回路設計とかやっていたハード屋で、はたまた先に出てきた自宅サーバーをみんなで立てていた世代で、そういう下地みたいなのがあるからだけなのかもしれないんだけどね。
Trinity を動かすのにハマる
なかなかアップされないこのブログですが、そもそもターミナルでコード書くとか解析とかしてハマらないとアップされない気もしますw。
さてさて、前段階として年末に本を出すのをお手伝いさせていただきました。
で、縁あって最近、またTrinityをかけていたのですが、コロナウイルスの影響でテレワークでございまして、セキュリティに気をつけようとか言っているわけです。で、ついうっかり
brew upgrade
とかやってしまったわけですね。
そうしたらば、Trinityのアップデートがかかってしまった(ように見えた)上に、Trinity動かすのに必要なJavaの環境が謎の挙動になってしまい、まぁとりあえず動かなくなってしまいました。。。
とりあえず、待てど暮らせどうんともすんとも。-vつけてもどうもこうもなのですが、--debugというオプションを見つけ
brew install --verbose --debug trinity
とやったところ、
java -version
のところで止まっていることが判明。これを手打ちしてもやっぱり動かない。
この間にHomebrewでJavaを入れたり抜いたりしていたので、なんかいろんなJavaが入っていたりw。
参考までに
$ brew config HOMEBREW_VERSION: 2.2.13 ... Java: 1.8.0_252, 1.8.0_73 ← ここにopenjdkの11とか14とかあった。 ...
みたいな感じ。で、動くやつと動かないやつがあるので、動くやつにしたい!でも変えられない。どこにこの設定が書かれているのか、隅々まで探したのがよくわからない。そんな中、
$ /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
1.8.0_252, x86_64: "AdoptOpenJDK 8" /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
1.8.0_73, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Homeというのを発見。
うーん。よくわからんから、/Library/Java/JavaVirtualMachines/の下のadoptopenjdk-8.jdkみたいのを..._bakみたいにとりあえず退避したものの、この下にパスが通っているとここにリストされてしまうっぽいので、全然違うところに移したらば、無事にリストから消えてくれて、brew configしても消えてくれた。スバラシス。
これで、動かないJavaをとりあえず退避。
けっこう危険な方法に見えるのですが、
macOSで古いJDKをアンインストール - Qiita
を見ると、一応こうやってもOKということで敢行。
動くバージョンだけ残して、brew install trinity(ゴタゴタの中で一度 消してみたのである)。そうしたらば無事に入った!よっしゃ。
さてさて改めてTrinityを走らせたのですが、あれ、やっぱり動かん。これまたよく見るとやっぱりJavaのところで止まっている。(java -versionも動かない)。うーん。多分、何か別のが(依存関係で)入ったときに環境が壊れたのだろうと言うことでJavaを改めてインストール。今回は
$ brew cask install adoptopenjdk8
これでとりあえず動いたのでメデタシメデタシ。
(この後、FASTQのヘッダ行がとか、ホームディレクトリの~が展開されなかったりとかいろいろあるのだが、それはまた別の記事にしましょうか。)
Biopythonを使ってみる
俺は都会のマンションのベランダで、自分勝手に植物を育てる、ベランダーだ。
季節は春。俺は久しぶりに、ブログを更新することにした。
(植物男子ベランダー・一部改)
はてダがサービス終了ということで、はてブに移ってきました。
そもそもここにいろいろ書くのも最近はサボっていたので、まぁ、これを機会にまたちょこちょこ書くようにしていければとは思うんですけどねー(言うのは簡単)。
さてさて、ふとしたことでライフサイエンス系公共データをいじることとなり(ってまぁ、それが本業といえば本業なんですが)、いじるというか知識抽出なんですが、今までBioPerlでちゃらちゃらっとやっていたのを、せっかくだからBiopythonを使おうかと思い立ったわけです。
もともとpythonは10数年前から知ってはいてread-onlyだったです。今まで何回か、書きかけたこともあったですけどね。まぁ自分のころはperlが盛んにこの分野で使われていましたからねぇ。流行の最末端の自分ですが、世の中、だいぶpythonが隆盛してきたので(ってこともないですが)こういう機会でもないとpython使わねーしなというのもあり。
とまぁ、前置きが長いですが、
qiita.com
とか
biopython.org
を参考に書いてみたりして。
やったことはGenBankファイルのparse
元ファイル
LOCUS EU919294 1220 bp DNA linear INV 26-JUL-2016
DEFINITION Lampides boeticus voucher RMBR:102827 cytochrome c oxidase subunit
I (COI) gene, partial cds; mitochondrial.
ACCESSION EU919294
VERSION EU919294.1
KEYWORDS .
SOURCE mitochondrion Lampides boeticus (pea blue)
ORGANISM Lampides boeticus
Eukaryota; Metazoa; Ecdysozoa; Arthropoda; Hexapoda; Insecta;
Pterygota; Neoptera; Holometabola; Lepidoptera; Glossata; Ditrysia;
Papilionoidea; Lycaenidae; Polyommatinae; Lampides.
REFERENCE 1 (bases 1 to 1220)
AUTHORS Lohman,D.J., Peggie,D., Pierce,N.E. and Meier,R.
TITLE Phylogeography and genetic diversity of a widespread Old World
butterfly, Lampides boeticus (Lepidoptera: Lycaenidae)
JOURNAL BMC Evol. Biol. 8, 301 (2008)
PUBMED 18973689
REMARK Publication Status: Online-Only
REFERENCE 2 (bases 1 to 1220)
AUTHORS Lohman,D.J., Peggie,D., Pierce,N.E. and Meier,R.
TITLE Direct Submission
JOURNAL Submitted (23-JUL-2008) Department of Biological Sciences, National
University of Singapore, 14 Science Drive 4, Singapore 117543,
Republic of Singapore
FEATURES Location/Qualifiers
source 1..1220
/organism="Lampides boeticus"
/organelle="mitochondrion"
/mol_type="genomic DNA"
...書いたもの
#!/usr/env/python import sys import os import inspect from Bio import SeqIO gb_file = sys.argv[1] # input gb file path for record in SeqIO.parse(gb_file, 'genbank'): id = record.id name = record.name desc = record.description xrefs = record.dbxrefs # list annots = record.annotations # dic features = record.features # list seq = record.seq print('ID:\t' + id) print('name:\t' + name) print('desc:\t' + desc) print('seq:\t' + seq) # annotation ## source source = annots['source'] organism = annots['organism'] taxonomy = annots['taxonomy'] # list print('source:\t' + source) print('organism:\t' + organism) print('taxonomy:') for t in taxonomy: print('\t' + t) ## reference for ref in annots['references']: pmid = ref.pubmed_id medline = ref.medline_id journal = ref.journal print('pmid:\t' + pmid) print('medline:\t' + medline) print('journal:\t' + journal) # features for feat in features: type = feat.type print('type:\t' + type) for k in feat.qualifiers.keys(): print('subtype:\t' + k) vals = feat.qualifiers[k] for v in vals: print('\t' + v)
で、出てきたもの
ID: EU919294.1
name: EU919294
desc: Lampides boeticus voucher RMBR:102827 cytochrome c oxidase subunit I (COI) gene, partial cds; mitochondrial
seq: AACATTATATTTTATTTTTGGAATTTGAGCAGGAATATTGGGAACATCATTAAGAATTTTAATTCGAATAGAATTAGGAACTCCAGGATCTTTAATTGGTGATGATCAAATTTATAATACTATTGTAACAGCTCATGCTTTTATTATAATTTTTTTTATAGTTATACCTATTATAATTGGTGGATTTGGAAACTGATTAATCC
...
TTTCAGTTGATTAGCTACTATTTATGGAACTCAAATTAACTATAGACCTTCAATATTATGAAGTTTAGGTTTCATTTTTTTATTTACAGTAGGCGGATTAACAGGAGTAATTTTAGCTAACTCTTCAATTGATATTACTTTACATGATACTTATTATGTTGTAGCACATTTCCATTATGTTTTATCTATAGGAGCTGTATTTGCAATTTTTGGAGGATTTATTCATTGATATCCTTTATTTACTGGATTAATAATAAATCCTTATCTATTAAAAATTCAATTTATTATTATATTTATTGGAGTTAATT
source: mitochondrion Lampides boeticus (pea blue)
organism: Lampides boeticus
taxonomy:
Eukaryota
Metazoa
Ecdysozoa
Arthropoda
Hexapoda
Insecta
Pterygota
Neoptera
Holometabola
Lepidoptera
Glossata
Ditrysia
Papilionoidea
Lycaenidae
Polyommatinae
Lampides
pmid: 18973689
medline:
journal: BMC Evol. Biol. 8, 301 (2008)
...
type: source
subtype: organism
Lampides boeticus
subtype: organelle
mitochondrion
subtype: mol_type
genomic DNA
...
きったねーコードというのは承知しているんですけどね。
まぁ、ボチボチ手直ししつつ、さらにこれを使って先に進めれれば。
PlatanusをMacで使う
縁あって、ゲノム解析とか発現解析をしています。
de novoでゲノムデータをassembleするというので、Platanus ( http://platanus.bio.titech.ac.jp/ ) というのを使ってみることとしました。現在のバージョンは1.2.4のようで(去年に出たようだ)。サイトでは1.2.1ってのも配られていて、こちらはMacのバイナリもあるようですが、最新版の1.2.4はLinux 64 bit binary (precompiled)かソースで、という状況。
そこいらのマシンで自分のMacProが一番性能がよさげなので、これで動かすべくソースを落としてみました。
一応、trimmerも使おうかと思うので、まずはこちらから。ほどきまして、makeしますと、
nakazato@grouper:~/Downloads/Platanus_trim_v1.0.7$ make
g++ -o common.o -c common.cpp -s -std=c++0x -O3 -funroll-loops -fomit-frame-pointer -fopenmp -DRUN_MODE=\"\"
clang: warning: argument unused during compilation: '-s'
In file included from common.cpp:2:
./common.h:13:10: fatal error: 'omp.h' file not found
#include
^
1 error generated.
make: *** [common.o] Error 1
はい、怒られました。もろもろ調べたところ、Macのg++はclangの方で(イミフ。でもよし)OpenMPは使わないようになっているとか。そこで(brewで brew install gcc49してからか?)Makefileを
CXX = g++
↓
CXX = g++-4.9
しますと
nakazato@grouper:~/Downloads/Platanus_trim_v1.0.7$ make
g++-4.9 -o common.o -c common.cpp -s -std=c++0x -O3 -funroll-loops -fomit-frame-pointer -fopenmp -DRUN_MODE=\"\"
g++-4.9 -o trim.o -c trim.cpp -s -std=c++0x -O3 -funroll-loops -fomit-frame-pointer -fopenmp -DRUN_MODE=\"\"
g++-4.9 -o main.o -c main.cpp -s -std=c++0x -O3 -funroll-loops -fomit-frame-pointer -fopenmp -DRUN_MODE=\"\"
g++-4.9 -s -std=c++0x -O3 -funroll-loops -fomit-frame-pointer -fopenmp -o platanus_trim common.o trim.o main.o
ld: warning: option -s is obsolete and being ignored
g++-4.9 -o main.oo -c main.cpp -s -std=c++0x -O3 -funroll-loops -fomit-frame-pointer -fopenmp -DRUN_MODE=\"internal\"
g++-4.9 -s -std=c++0x -O3 -funroll-loops -fomit-frame-pointer -fopenmp -o platanus_internal_trim common.o trim.o main.oo
ld: warning: option -s is obsolete and being ignored
なにやら怒られましたが、platanus_internal_trimとplatanus_trimができたのでよしとしましょう。(ちゃんと動きました)。
はてさて、今度はPlatanus本体ですが
nakazato@grouper:~/Downloads/Platanus_v1.2.4$ make
g++ -o main.o -c main.cpp -std=c++0x -O3 -funroll-loops -Wall -fopenmp -finline-limit-50000 -lm -Dnullptr=0
clang: error: unknown argument: '-finline-limit-50000'
clang: warning: -lm: 'linker' input unused
make: *** [main.o] Error 1
はい、やっぱり怒られました。で、trimmerのと同様に直したわけですが
nakazato@grouper:~/Downloads/Platanus_v1.2.4$ make
g++ -o main.o -c main.cpp -std=c++0x -O3 -funroll-loops -Wall -fopenmp -finline-limit-50000 -lm -Dnullptr=0
clang: error: unknown argument: '-finline-limit-50000'
clang: warning: -lm: 'linker' input unused
make: *** [main.o] Error 1
nakazato@grouper:~/Downloads/Platanus_v1.2.4$ cp Makefile.org Makefile.arrange
nakazato@grouper:~/Downloads/Platanus_v1.2.4$ vi Makefile.arrange
nakazato@grouper:~/Downloads/Platanus_v1.2.4$ make clean
rm -f platanus main.o assemble.o scaffold.o scaffoldGraph.o gapClose.o common.o baseCommand.o seqlib.o mapper.o gapCloseOLC.o
nakazato@grouper:~/Downloads/Platanus_v1.2.4$ make -f Makefile.arrange
g++-4.9 -o main.o -c main.cpp -std=c++0x -O3 -funroll-loops -Wall -fopenmp -finline-limit-50000 -lm -Dnullptr=0
In file included from assemble.h:25:0,
from main.cpp:22:
counter.h:455:263: error: redeclaration of 'void Counter::countKmerOrWriteTemporary(bool&, const typename KMER::keyType&, DoubleHash *, FILE*, omp_lock_t*, const KMER&, unsigned int)' may not have default arguments [-fpermissive]
inline void Counter::countKmerOrWriteTemporary(bool &loopFlag, const typename KMER::keyType &key, DoubleHash tmpOccurrenceTable, FILE *unmappedFP, omp_lock_t lock, const KMER &kmer, const unsigned iterateTimes=32)
^
counter.h:684:190: error: redeclaration of 'void Counter::countKmerOrWriteTemporary(bool&, const typename KMER::keyType&, FILE*, omp_lock_t*, const KMER&, unsigned int)' may not have default arguments [-fpermissive]
inline void Counter::countKmerOrWriteTemporary(bool &loopFlag, const typename KMER::keyType &key, FILE *unmappedFP, omp_lock_t lock[], const KMER &kmer, const unsigned iterateTimes=32)
^
In file included from assemble.h:26:0,
from main.cpp:22:
graph.h:1764:80: error: redeclaration of 'void BruijnGraph::cutBranchIterative(long long unsigned int)' may not have default arguments [-fpermissive]
void BruijnGraph::cutBranchIterative(const unsigned long long numThread=1)
^
make: *** [main.o] Error 1
やっぱり怒られました。で、うねうね調べまして、むりくり先に進めるみたいなオプションをつけるとうまくいくとかで、上記のに加えて
CXXFLAGS = -std=c++0x -O3 -funroll-loops -Wall -fopenmp -finline-limit-50000 -lm -Dnullptr=0
↓
CXXFLAGS = -std=c++0x -O3 -funroll-loops -Wall -fopenmp -finline-limit-50000 -lm -Dnullptr=0 -fpermissive
としますと、まぁやっぱりくどくど怒られるんですが、無事にplatanusの実行ファイルができまして、ちゃんととりあえず、動き始めたんで一安心みたいなところですかね。
週末を越えて動かしているんですが、ちょっとファイルが大きかったのか、スレッド数とかメモリが小さかったのか、"WARNING: Sorry, memory exceeds specified value!!"と怒られつつ、まだ計算しております。。。(そのあたりはまた後日?
MacでのJavaのバージョンアップ
Javaって、まぁ、セキュリティのごにょごにょもあって最新版にせーとか何とか言われたりするわけでありますが、今般、8でないと動かないソフトを入れるにあたり、6から8にバージョンアップしようとしたわけであります。
そのソフト、ターミナルで入れるので、ならJavaのバージョンもターミナルで確認しますわな。
nakazato@gardeneel:~$ java -version
java version "1.6.X_XXX"
Java(TM) SE Runtime Environment (build 1.6.X_XXX-bXX)
Java HotSpot(TM) 64-Bit Server VM (build XX.XXX-bXX, mixed mode)
今はもう8になっているのでちとごまかしてますが。で、ググると、システム環境設定の中にJavaの項目があって、そこからアップデートできるというわけです。確かにそうなっていて、アップデートを促され、ポチッとやることで6から8にアップデートされたかのようになってめでたしめでたし、とは行かなくてですね。上のコマンドをたたいてもバージョンは6のままでございまして。なんかインストールするところが変わったのか、一部しかインストールされていないのか。
で、またごにょごにょ調べまして、インストールされているところにシンボリックリンクをはるかどうかの寸前まで行ったわけですが、結局、システム環境でインストールされるのはJREの方でございまして、コマンドラインの方で見てるのはJDKである、ということがわかりまして、普通にJavaのダウンロードページJava SE - Downloads | Oracle Technology Network | Oracleに行って、JDKのを落としてきてインストールしたらば
nakazato@gardeneel:~$ java -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)
無事にアップデートできましたとさ。
サンタ
毎度おなじみ BioHackathon で山形は あつみ温泉に来ている。
外国からも交えて100人くらいか。今年は大所帯。
夜にNCBIとうちのと話していたらば、そのうちのが今日は何をやっていたかと訊かれていて、リストを作っていたと返事をしたところ、チェックは2回したか、お前はサンタか、ということを真顔で言われたわけである。実はこれは以下をふまえたジョークである。今度どこかで使いたい。
Santa Claus is Coming to Town(サンタが町にやってきた)
He's making a list
And checking it twice
Gonna find out Who's naughty and nice
Santa Claus is coming to town
昆虫学会+応動昆@大阪
来てます。
今回はポスター発表にしてます。内容は、まぁ、いつもどおり。本当はもっとモノに根ざした発表をしたいんですが。
せっかくなので、公共NGS中の昆虫データについて調べてみました。

↑ ポスターの図より。数字はプロジェクト数。1つのプロジェクトで複数の生物種が出てきた時は複数にカウントされているから、厳密にはこの表現はおかしいのかとも思う。
ハエが多いのはDrosophilaとかその近縁とかカが含まれているから、と思われ。
チョウ目はカイコとタバコスズメガか?、セミ目にはウンカやアブラムシが入っているから。甲虫が少ないですね、という話もあったが、生活環が長いから研究には不向きなのだ、という別の指摘が入った。
生物種は何種類か、という質問を受けたのでその場で調べてみたところ、1256種類だった。
上位の方。
770 7227 Drosophila melanogaster
83 7165 Anopheles gambiae
51 7460 Apis mellifera
40 7091 Bombyx mori
37 7159 Aedes aegypti
36 7240 Drosophila simulans
24 76194 Papilio polytes
24 7160 Aedes albopictus
23 7237 Drosophila pseudoobscura
21 7245 Drosophila yakuba
21 7029 Acyrthosiphon pisum
19 7173 Anopheles arabiensis
19 7038 Bemisia tabaci
15 7244 Drosophila virilis
15 7070 Tribolium castaneum
なんか、上の図と合わないんだが、なんで合わないかは、そのtaxonomy ID決め打ちか、下も見ているかの違いだったかと記憶している。(グラフのDrosophila melanogasterはDrosophila melanogaster なんちゃら/なんちゃらグループみたいのも含んでいる、ということ)
だいぶdryをやっていると忘れそうな感覚だが、この学会に来ている人はこういう学名を見てだいたいあれね、というのがわかる。(まぁ、自分も有名どころとか日ごろ図鑑を見つめている蝶関係とかならだいたいわかるが)。それは、wetの研究者が遺伝子発現で発現量が変動した遺伝子上位20とか見せられて、あー、あの遺伝子ね、とわかるのと同じことである。
oral聞いていると、なんちゃらアザミウマとかにわかに姿が浮かばない昆虫が乱発してニッチェ感が満載である。それに対して、私のやっているなんちゃらハマキガでは、とか細かいどうしで質問していてむしろこの人たちの研究対象をこうやってリスト化したいw。
