遺伝研スパコンを使ってTrinityを動かしde novo assembly

遺伝研スパコンを使えるようになったので、メモリをたくさん使うTrinityを使ってカクレクマノミのtranscriptomeのde novo assemblyをやってみようと思います。自前のPCはMacbook pro（RAM64GB、inteli9 8Core）だけどメモリ不足エラーでTrinity（Docker）が動かなかった。

# 1 遺伝研スパコンへ登録＆ログイン
## 遺伝研スパコンへ利用申請
遺伝研HP（https://sc.ddbj.nig.ac.jp/application/registration）より利用申請を行う。
申請時に公開鍵の登録を求められるので作っておく。
```sh
cd ~/.ssh
ssh-keygen -t rsa -b 2048
```
~/.sshディレクトリに公開鍵と秘密鍵を作成しておく。
公開鍵ファイルを開いてコピペして申請時のフォームにペーストしておく。作成した時に設定する公開鍵・秘密鍵ペアのパスフレーズはスパコンログイン時に要求されるので覚えておく。
利用申請後、郵送でアカウント登録などの情報が記載された文書が送られてくるので登録、パスワードを設定する。

## ログイン
遺伝研HP（https://sc.ddbj.nig.ac.jp/general_analysis_division/ga_login）に従ってログインしてみる

```sh
ssh sakutoy@gw2.ddbj.nig.ac.jp
#ユーザー名@ゲートウェイホストでログインする、以前はgwだったが、今はgw2にログインするよう推奨されている
#passphraseが要求されるので打ち込む
```
ここでエラー、```client_loop: send disconnect: Broken pipe```が出た

よく分からないが、サーバーへの接続がうまくいってないようだ
configファイルでサーバー接続の設定をやらないといけないらしい、でもconfigファイルなんか~/.sshにない
```touch ~/.ssh/config ```
configファイルを作って、以下のように書き込んだ
```config
Host *
ServerAliveInterval 60
TCPKeepAlive no
IPQoS 0
```
参照サイト：
https://sc.ddbj.nig.ac.jp/faq/faq_login/　 ->これだけだとだめだった
https://7ka.org/cant-connect-ssh-macos/　  ->この記事にあるIPQoS=0 を指定してやるとうまくいく

再度、ログインしてみるとうまく遺伝研スパコンのゲートウェイノードにログインできた。

## ファイル転送ソフトを使ってみる
https://www.genome-sci.jp/old2010-2015/seminar2015/seminar2015_2_Mac.pdf
を参考にして、filezillaのローカルソフトをダウンロード
初期設定をして、遺伝研スパコンに接続
作成したfile-gatewayというフォルダにクマノミのトリミング（trim-galore!）済RNA-Seqデータをスパコンへ転送




# 2 Trinity（Singularity）を動かす

遺伝研のスパコンにはsigularityのimageが格納されている。場所は/usr/local/biotools/ 
アルファベット順にツールが格納されているので、tのディレクトリの中のtrinityのimageを探してみる

/usr/local/biotools/t/trinity:2.11.0--h5ef6573_0
に最新版のtrinityがあった。

とりあえずtrinityのテストデータでテストランしてみる。
```
qlogin -l s_vmem=64G,mem_req=64G #なぜかメモリ指定72G以上ではログインはできなかった
cd file-gateway
singularity exec /usr/local/biotools/t/trinity:2.11.0--h5ef6573_0 Trinity --full_cleanup --seqType fq --max_memory 64G --CPU 12 --left reads.left.fq.gz --right reads.right.fq.gz --output trinity_out --no_version_check
```
一瞬で完了、動くことは動くようだ
次にクマノミのRNA-Seqデータを使って本番ランをしてみる。しかし上記と同様にやってもメモリ不足？っぽいエラーが出てしまった。メモリが64GBではたしかに頼りない、4サンプルだし。

以下のシェルスクリプト を作成、qsubコマンドでスパコンにジョブを投げてみた、ログアウトして就寝
```qsub -l medium Ao_assembly.sh ```

```ass.sh
#!/bin/bash
#$ -S /bin/sh
#$ -l s_vmem=200G,mem_req=200G
#$ -cwd
ulimit -s unlimited

singularity exec /usr/local/biotools/t/trinity:2.11.0--h5ef6573_0 Trinity --full_cleanup --seqType fq --max_memory 200G --CPU 16 --left A1C8_1cell_1_val_1.fq.gz,K3H4_1cell_1_val_1.fq.gz,U1U2_1cell_1_val_1.fq.gz,U1U2_2cell_1_val_1.fq.gz --right A1C8_1cell_2_val_2.fq.gz,K3H4_1cell_2_val_2.fq.gz,U1U2_1cell_2_val_2.fq.gz,U1U2_2cell_2_val_2.fq.gz --output Ao_trinity_out --no_version_check

echo ending at
date

```
翌日、何度かログインしてqstatでジョブ状況を見ていたが、結構時間がかかる。
約20時間後、ジョブが完了し、標準出力ファイルを確認。
![sakuto@sakutoMacBook-Pro Desktop  tail -n25 Ao_assembly.sh.016528905.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352860/755161f4-1133-98dd-48c8-a25b9e0493d5.png)

正常に完了していた！
アセンブリのスタッツを確認してみる。```singularity exec /usr/local/biotools/t/trinity:2.11.0--h5ef6573_0 /usr/local/bin/TrinityStats.pl ./Ao-assembly/Ao_trinity_out.Trinity.fasta ```
singurarityのコンテナ内にあるTrinityStats.plでアセンブリのスタッツを確認できる。

![スクリーンショット 2022-09-03 23.54.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352860/5aa9799a-23d8-a779-7222-74a5c9cf7c24.png)

次はマッピングと発現定量を行なっていく。