Trinity を動かすのにハマる

なかなかアップされないこのブログですが、そもそもターミナルでコード書くとか解析とかしてハマらないとアップされない気もしますw。
さてさて、前段階として年末に本を出すのをお手伝いさせていただきました。

次世代シークエンサーDRY解析教本

次世代シークエンサーDRY解析教本

ここの「実践編8:0から始めるトランスクリプトームアセンブル解析」を編著の坊農さんと担当させてもらいました。
で、縁あって最近、また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のヘッダ行がとか、ホームディレクトリの~が展開されなかったりとかいろいろあるのだが、それはまた別の記事にしましょうか。)