mecobalamin’s diary

人間万事塞翁が馬

https://help.hatenablog.com/entry/developer-option

RNA-seqその1、インストール

wsl上でRNA-seqの解析を行う
手順を教えてもらったのでそのメモ

メモするのは

  1. コマンドのインストール(このページ)
  2. RNA-seqその2、データのダウンロードと変換 - mecobalamin’s diary
  3. RNA-seqその3、trimmomatic - mecobalamin’s diary
  4. RNA-seqその4、Fastqファイルのマージ - mecobalamin’s diary
  5. RNA-seqその5、Hisat2でマッピング - mecobalamin’s diary
  6. RNA-seqその6、featureCountsでリードカウント - mecobalamin’s diary
  7. RNA-seqその7、TrinityでアセンブルしてBlastにかける - mecobalamin’s diary
  8. RNA-seqその8、edgeRを使ったTMM正規化 - mecobalamin’s diary
  9. RNA-seqその9、DESeq2を使った正規化 - mecobalamin’s diary
  10. RNA-seqその10、Dockerで環境構築 - mecobalamin’s diary

教えてもらったのは1-7まで。
8と9はウェブから情報を集めて自分でやってみた。

それと表示に必要なJBrowseのインストールなど

  1. JBrowseのインストール、三度目の正直 - mecobalamin’s diary
  2. JBrowseでbamファイルを表示する - mecobalamin’s diary
  3. bigwigの作成と表示 - mecobalamin’s diary
  4. JBrowseにplug-inを追加する - mecobalamin’s diary
  5. hg38のfastaとgtf/gff3 - mecobalamin’s diary

ファイルの整形だったりクオリティのチェックだったり
他にもやっているけど大まかにはこんなところ
目的は実行に使うコマンドが動くコードを記録すること
教えてもらった元のコードはクラスターコンピュータで動いていた
そのコードをノートPCのwslで動くように書き換えた
コードの検証のため計算結果とグラフを載せるが、
結果の検証は実力不足でできてない(特に自分でやってみた正規化のあたり)
コードが動く ≠ 計算結果が正しい、ということに注意したい

Dockerで環境を統一できたら
結果の検証に集中できると思う(けどやってない)

ここではwslでの実行に必要なコマンドのインストールと設定を記載する

このあたりのサイトも参考にした
RNA-Seq | 遺伝子発現量解析

使用しているpcのスペック
CPU: Intel Core i5-7200U CPU @ 2.5 GHz
Memory: 24.0 GB (8 GB + 16 GB)
Storage: 250 GB SSD + 500 GB HDD -> 960 GB SDD + 1 T SSD
OS: Windows 10 Home version 1803 build 17134.523
WSL: 18.04.1 LTS

メモリを増設してあるがいたって普通のノートPC、
と思っているけどそうでもないらしい
【山田祥平のRe:config.sys】普通のPCが普通に買えない - PC Watch

CPUはこのスペックでも1日とかで終わってくれる
メモリとストレージは多いほどいいけどノートPCだとちょっと厳しいか
SSDも安くなってきてるからいずれ交換できればいいが。
それとwslはファイルのやり取りがものすごく遅いらしいので
HDDよりはSDD、外付けよりも内蔵のストレージを使いたいが問題がある

いくつかのコマンドはファイルの読み書きがとても多く
タスクマネージャーを見てるとSSDの寿命に影響しそう
1日中ディスクにアクセスとかやってくれる
なのでRAMディスク、外付けストレージをうまく使う

あとwslを使うときの注意点がある
ファイルシステムの関係でwindows側からwslのファイルを編集してはいけないらしい
実際ファイルがおかしくなったことがあった
今後のアップデートで変わる可能性があるらしいけど、現状は不可っぽい
出力されたファイルや設定ファイルなどをwindowsのエディタ等から編集しない
編集する場合はファイルをコピーして行う

次にコマンド・プログラムのインストールについて。
wslでインストールするコマンドと
windowsにインストールするプログラムとがある

wslにインストールするのは

  • Linuxで動くコマンドのバイナリ
  • minicondaからインストールするpythonコマンド

windowsにインストールするのは

  • R
  • Rのライブラリ


まずwslで使用するコマンドのインストールする
アーカイブのダウンロードして、解凍、リンクを貼る、
ということをコマンド毎にする

コマンドのダウンロードはwgetを使う
【 wget 】コマンド――URLを指定してファイルをダウンロードする:Linux基本コマンドTips(24) - @IT
ダウンローダーは他にもあるようですが。。。

解凍は圧縮形式に合わせる
【 tar 】コマンド――アーカイブファイルを作成する/展開する:Linux基本コマンドTips(40) - @IT
【 unzip 】コマンド――ZIPファイルからファイルを取り出す:Linux基本コマンドTips(35) - @IT

リンクは$HOME/usr/localに展開したコマンドファイルから
パスの通っている$HOME/binにシンボリックリンクを貼っている
細かいルールを知らないので自己流かもだけど。。。

ちなみにwslでパスは$HOME/.bashrcに記入する

export PATH="$HOME/bin:$HOME/miniconda3/bin:$PATH"

ファイルがなければ作る
bashでパスを書く設定ファイルの選び方にも
なんかルールがあるっぽいがとりあえず。
パスは先に書かれている方から優先順位が高い



実際にコマンドをインストールする

  • sra toolkit

NCBIにアップロードされている
シークエンスのデータはsra形式になっている
これを展開するにはsra toolkitを使う
ダウンロード先と参考にしたサイトはこちら
https://www.ncbi.nlm.nih.gov/sra/docs/toolkitsoft/
NCBI SRA Toolkitの使い方 - アメリエフのブログ

wgetアーカイブをダウンロードしてtarで解凍

$ wget https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/current/sratoolkit.current-ubuntu64.tar.gz
$ tar -zxvf sratoolkit.current-ubuntu64.tar.gz

シンボリックリンクを貼る

$ cp sratoolkit.2.9.2-ubuntu64/ ~/usr/local/
$ cd ~/bin
$ ln -fs $HOME/usr/local/sratoolkit.2.9.2-ubuntu64/bin/fastq-dump ./
  • prinseq-lite, FastQC, featureCount

prinseq-liteとFastQCもインストールしてリンクを貼る
prinseq-lite
PRINSEQ - Browse /standalone at SourceForge.net
PRINSEQ @ SourceForge.net
[Download] -> [Standalone] -> [prinseq-lite-0.20.4.tar.gz]をダウンロードする
prinseq-lite.plのパーミッションを変更する

FastQC
Babraham Bioinformatics - FastQC A Quality Control tool for High Throughput Sequence Data
[Download Now] -> [FastQC v0.11.8 (Win/Linux zip file)]をダウンロードする
展開したファイルのfastqcのパーミッションを変更する

$ chmod 755 fastqc

featureCountも同様にインストールする
mecobalamin.hatenablog.com

  • miniconda

次にminicondaを使ってpythonコマンドをインストールする
trimmomaticとtrinityはbiocondaのパッケージのひとつで、
minicondaをまずインストールして必要なパッケージを追加する

anacondaとminicondaの比較
https://echomist.com/anaconda-vs-miniconda/

minicondaは3.x系をインストールする
RNA-seqで使うコマンドによっては2.x系が必要な場合もあるが、
その時は2.x系の環境をつくってインストールする
念の為minicondaのpython3から$HOME/binにリンクを張って3.x系を使うようにしておく

$ ln -s $HOME/miniconda/bin/python $HOME/bin

minicondaの配布元とインストール用シェルスクリプトのアドレス
Miniconda — Conda documentation
https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh

シェルスクリプトをダウンロードして実行する

$ wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
$ bash Miniconda3-latest-Linux-x86_64.sh

実行後はターミナルを再起動してパスを読み込ませる
.bashrcにパスが書かれている場合はを.bashrcを再読込する
.bashrcの再読込のコマンドはこれ

$ source $HOME/.bashrc
  • anaconda package, Trinity、fastq-stats、numpy、hisat2及びstringtie

パッケージはここからインストール元を探す
https://anaconda.org/
パッケージ名で検索をかけてダウンロード方法を探す
例えばtrimmomaticならインストール元はここで
Trimmomatic :: Anaconda Cloud
インストール方法を見るとこう書かれてる

$ conda install -c bioconda trimmomatic

biocondaはchannel名で、trimmomaticがpackage名で、
channelが登録されているかを確認するには

$ conda config --get channel

登録されてなければ次のようにして登録する

$ conda config --add channel <channel名>

チャンネルによってインストールされる内容が違っていたりする
一緒にインストールされるパッケージのバージョンが変わったり
インストールされたりされなかったりもある
必要なパッケージが揃っているかの確認も必要

追加するのはTrinity、ea-utils、fastq-stats、numpy、hisat2及びstringtie

$ conda install -c bioconda trinity
$ conda install -c bioconda ea-utils
$ conda install -c bioconda numpy
$ conda install -c bioconda hisat2
$ conda install -c bioconda stringtie
  • salmon

trinityでsalmonを使うが、biocondaから配布されているのは
バージョンが古い(v0.8.1)のでオリジナルの配布元から
binaryをダウロードして使う(v.0.12.0)
Overview – Salmon: Fast, accurate and bias-aware transcript quantification from RNA-seq data

$ wget https://github.com/COMBINE-lab/salmon/releases/download/v0.12.0/salmon-0.12.0_linux_x86_64.tar.gz

miniconda3/binにリンクを貼る

$ cp salmon-0.12.0_linux_x86_64/ $HOME/usr/local/
$ ln -s $HOME/usr/local/salmon-0.12.0_linux_x86_64/bin/salmon $HOME/miniconda3/bin/

先にv0.8.1のリンクがbinに貼られている場合はlnコマンドの前にリンクを解除する

$ unlink $HOME/miniconda/bin/salmon

29 May 2019追記
hisat2とstringtieを上記のコマンドでインストールすると
pythonのバージョンを2.7にしていたようだ
確認不足だった
この2つのコマンドはバイナリーを使ったほうがいいかも

hisat2
https://ccb.jhu.edu/software/hisat2/index.shtml
バイナリーのリンク
http://ccb.jhu.edu/software/hisat2/dl/hisat2-2.1.0-Linux_x86_64.zip

stringtie
StringTie
バイナリーのリンク
http://ccb.jhu.edu/software/stringtie/dl/stringtie-1.3.6.Linux_x86_64.tar.gz

それぞれwgetでダウンロードしてファイルを展開、
$HOME/binにシンボリックリンクを貼る

condaでインストールして使う場合はpython3とpython2の環境を分ける
別に記事を書く
mecobalamin.hatenablog.com

追記ここまで

23 April 2020 追記
Hisat2とstringtieをインストールしたら
python3にインストールされた
もしかしたら切り替えが必要なくなったのかも

追記ここまで


これで全部、のはず。。。
足りないのは適宜インストールする
インストールしたはずのパッケージが見つからない時がある
condaは3.xでそっちにインストールしているのに
wslに元から入っているpythonが2.xだったりして
パスの関係でwslのpythonで実行されていると見つからないってなる
以前そんな事があって、そのときはパスの優先順位を変えた
mecobalamin.hatenablog.com

pipを使う方法もあるが、anacondaと併用してはいけないそうだ
注意することかも
condaとpip:混ぜるな危険 - onoz000’s blog



次にwindowsで動かすプログラム

  • R

Windows版をインストールする
The Comprehensive R Archive Network
RGuiか、AtomでR scriptでRのスクリプトを実行できるようにする

  • edgeR

Rに必要なライブラリをインストールする
bioconductorを利用してインストールする
mecobalamin.hatenablog.com

  • Atom (必要なら)

エディタで、パッケージの追加でRコマンドをスクリプトを書きつつ実行できる
atom.io
学生の頃はEmacsだったけど宗旨替え
wslではvi

/path/to/R/R-3.x.x/Rscript.exeにwindows環境変数でパスを通す
Rのアップデートをするたびに通し直す
mecobalamin.hatenablog.com

  • script

スクリプトの実行に必要なパッケージ
script

  • language-r

scriptでRを実行するのに必要
ATOMをR言語に対応させる方法 - Qiita
パッケージの更新が遅れているようで
設定ファイルにエラーが残ってるがそのままでも問題ない
修正方法もあったので直してあるけどそのサイトが見つからない。。。