# Windows 1.Windows Subsystem for Linux (WSL)をインストールする。 Windows10のバージョンが、1803 (2018年春), 1809 (2018年秋), 1903 (2019年春)のいずれかであることを確認。 WSLを有効化するためPowerShellを管理者権限で開く。 (画面左下のWindowsロゴを右クリック→Windows PowerShell (管理者)) 次のコマンドを貼り付けて実行し、WSLの機能を有効にする。 ``` Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux ``` その後、Windowsを再起動 2.Ubuntuのインストール 画面左下のWindowsロゴを左クリックし、スタートメニューの中から「Microsoft Store」を起動する。ストアの「検索」をクリックし、「Ubuntu」と入力して検索を実行する。表示される「Ubuntu 18.04 LTS」をインストールし、起動する。 (ほかのUbuntu 16.04 LTS等のUbuntuでもテストした範囲では大丈夫そうだった。) 画面左下のWindowsロゴを左クリックし、スタートメニューの中からインストールしたUbuntuを起動する。 初回起動時にアカウント作成画面が表示され、ユーザ名、パスワードを入力する。 (option) この後、Ubuntuの中でファイルを展開したりするときにもWindows Defenderによるウイルススキャンが実行されてしまい、かなり遅くなるのでUbuntuを対象外にする。 手順は、Explorerを開いて、「表示」タブの中の「隠しファイル」チェックボックスをONにする。それから画面右下の「Windows セキュリティ」のアイコンをダブルクリック→「ウイルスと脅威の防止」をクリック→「ウイルスと脅威の防止の設定」の下の「設定の管理」をクリック→下のほうにスクロールして、「除外の追加または削除」をクリック→「除外の追加」をクリックし、「C:\Users\XXX\AppData\Local\Packages\CanonicalXXX」を追加する。 3.wsl-terminalのインストール デフォルトのWindows terminalはフォントがずれたりして致命的に使いづらいので、 https://github.com/goreliu/wsl-terminal/releases/download/v0.8.13/wsl-terminal-0.8.13.zip をダウンロードし、適当なフォルダに解凍しておく。中に入っている「open-wsl.exe」を実行すればWSLが起動する。 もしくは、Windowsのバージョンが1903であれば、Microsoftの新しいターミナルが使用できるので、Microsoft Storeで「Windows Terminal」を検索してインストールしても良い。 4.Dockerのインストール Dockerとは、1秒程度で起動する超軽量仮想PCみたいなもので、コンテナ型仮想化を行う。 メリット - 軽量で、小さいツールであれば、ゲストOSをあわせても数十MB程度のディスク容量に収まる。 - 容量無制限のリポジトリとしてDockerHubが存在する。 デメリット - Linux特有の機能を使用しており、ゲストOSはLinuxのみが対象で、ホストOSは比較的新しいLinuxに限定される。 - 仮想マシンほどは完全に仮想化しないので高速だが、その分セキュリティに注意が必要であり、使用するには管理者権限が必要。スパコンではdockerではなく、singularityというコンテナ型仮想化ソフトウェアを使用するが、そちらはインストール時にroot権限が必須である。(東大白金台スパコンではsingularityがインストール済みだからユーザ権限で使用可能。) {{vm-docker.png}} https://blog.cloudboost.io/docker-vs-vm-548032d3ef58 より 起動したWSLの画面に、下記の長いコマンドを貼り付ける。(貼り付けるときはmiddleクリック、もしくは右クリックしてメニューから選ぶ) ``` cat << 'EOF2' | bash if [ `which docker|wc -l` = 0 ];then sudo sed -i 's/%sudo\tALL=(ALL:ALL) ALL/%sudo\tALL=NOPASSWD: ALL/' /etc/sudoers sudo sed -i.bak -e "s%http://[^ ]\+%http://ftp.jaist.ac.jp/pub/Linux/ubuntu/%g" /etc/apt/sources.list sudo apt update sudo apt install -y libltdl7 cgroupfs-mount cd wget https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/docker-ce_17.03.3~ce-0~ubuntu-xenial_amd64.deb sudo dpkg -i docker-ce_17.03.3~ce-0~ubuntu-xenial_amd64.deb fi if [ `id -a $USER|grep "(docker)"|wc -l` = 0 ]; then sudo usermod -aG docker $USER fi if [ `service docker status|grep " is running"|wc -l` = 0 ]; then powershell.exe start-process bash -verb runas -ArgumentList "'"'-c "sudo cgroupfs-mount; sudo service docker start"'"'" fi if [ `grep DOCKER ~/.bashrc|wc -l` = 0 ]; then cat << 'EOF' >> ~/.bashrc #for docker alias DOCKER='docker run -it --rm -v $PWD:$PWD -w $PWD' shopt -s expand_aliases if [ `service docker status|grep " is running"|wc -l` = 0 ]; then powershell.exe start-process bash -verb runas -ArgumentList "'"'-c "sudo cgroupfs-mount; sudo service docker start"'"'" fi EOF fi if [ "`gcc --version 2> /dev/null`" = "" ]; then sudo apt install -y build-essential fi EOF2 exit ``` 途中でパスワードを一度だけ聞かれるので、入力する。また、管理者権限でbashを実行して良いかダイアログが表示されるので、「はい」をクリックする。 無事に終わるとterminalがいったん閉じるので、再度開いて、(もしかしたら、再度管理者権限でbashを実行して良いかダイアログが表示されるかもしれないが、その時は「はい」をクリックする。) ``` docker run hello-world ``` が無事に実行されるか確認してみる。 Hello from Docker! と表示されればOK 5..gz圧縮ファイルを解凍するソフトのインストール NGSのデータ解析では普通にWindowsで使われる.zipの圧縮ではなく、.gz圧縮が用いられる。そのため、それを解凍することが出来るソフトウェアをインストールする。(例:Lhaplus https://forest.watch.impress.co.jp/library/software/lhaplus/ 但し、Lhaplusは4GBを超えるようなZIPファイルには対応していないため、zipだけはWin標準の機能を使ったほうが良く、ツールインストール時にzipのチェックは外しておいたほうが良い。) # Mac 1.Dockerのインストール OSのバージョンが OS X Sierra 10.12以降であることを確認すること。 Docker Desktop for Macを下記URLからダウンロードし、dmgファイルをダブルクリックし、指示に従ってインストールを完了する。 https://download.docker.com/mac/stable/Docker.dmg 2.Dockerの設定変更 Dockerの仮想マシンはデフォルトではメモリ制限は低めになっているので、画面上部のDockerのアイコン(クジラの絵)をクリックして、Preferences...をクリックし、Advancedタブを開いて、CPUは自分のPCのコア数分、メモリはOS用に1~2GB程度除いた値を設定する。 3.Dockerの起動 Finderを開いて、アプリケーション→ユーティリティ→ターミナルを起動する。 ``` docker run hello-world ``` が無事に実行されるか確認してみる。 Hello from Docker! と表示されればOK 4.Homebrewのインストール Macに標準で入っているコマンドラインツールは10年くらい前のものなどもあって古いので、新しい必須のツール群をインストールしておく。ターミナルを開いて、 ``` /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" echo 'export PATH=/usr/local/opt/coreutils/libexec/gnubin:/usr/local/bin:/usr/local/sbin:${PATH} export PATH=/usr/local/Cellar/grep/3.3/libexec/gnubin/:$PATH export PATH=/usr/local/Cellar/findutils/4.7.0/libexec/gnubin:$PATH' >> ~/.bash_profile source ~/.bash_profile #次の2行は不要かも?もしbrew installでエラーが出るようならば作成する必要あり。 sudo mkdir -p /usr/local/sbin /usr/local/opt sudo chown $USER /usr/local/sbin /usr/local/opt brew install grep gawk gzip ed htop iftop brew install gnu-tar gnu-sed gnu-time gnu-getopt brew install binutils findutils diffutils coreutils moreutils ``` 途中でMacのパスワードが聞かれるはずなので、入力する。 # Bioinformatics toolsのインストール ## BiocontainersからDockerイメージをダウンロード Biocontainers:Bioinformaticsの再現性のためにも、簡単にツールをインストールできることを目標にしている。https://biocontainers.pro/#/registry 現在7,000を超えるツールが登録されているようだが、下記のようなツールは登録されていない。 - ライセンスが必要 (例:CLC, USEARCH, SSPACE) - データベースが巨大なもの (例:Polyphen2, PROVEAN) - マイナーなツール 全てではないが、多くのツールは登録されているので、まずはBiocontainersの使い方を覚える。 例:BWAというマッピングツールを使いたい場合 1. 検索ボックスにbwaを入れて検索 1. 表示順番はぐちゃぐちゃなので、Sorts by: Pull Noとして、使う人が少ない順にソートする。ページの最後に表示されているBWA (2.6M回ダウンロード)が目的のコンテナなので開く。 1. またしても表示される順番がぐちゃぐちゃなので、ModifiedもしくはVersion横の矢印をクリックしてバージョンの新しい順に並べるなどする。 1. 一番バージョンの新しそうなものを選ぶ。そうすると例えば「docker pull quay.io/biocontainers/bwa:0.7.17--h84994c4_5」などと書かれているコマンドをそのままターミナルに貼り付けると、目的のコンテナをダウンロードしてくれる。(このステップは飛ばしても、runの時になければ自動でダウンロードしてくれるので、飛ばしても良い。) 1. ダウンロードしたコンテナを使う場合、下記のように実行すればよい。 ``` docker run -it --rm -v $PWD:$PWD -w $PWD quay.io/biocontainers/bwa:0.7.17--h84994c4_5 bash #Windowsユーザはセットアップ時にショートカットを登録しているので、 DOCKER quay.io/biocontainers/bwa:0.7.17--h84994c4_5 bash #でも可。 ``` コンテナの名前(quay.io/biocontainers/bwa:0.7.17--h84994c4_5)は必要に応じて変更する。 各コンテナにインストールされているコマンドは/usr/local/binの中に大体インストールされている。 ツールの実行が終わったら、```exit```と入力すれば、Dockerを終了することが出来る。 BiocontainersのWEBサイトは良く落ちているので、その時は次のQUAY.IOのほうを直接見ればよい。 https://quay.io/organization/biocontainers ただし、こちらで検索する場合、すべて小文字で入力しないとヒットしない? ## 独自コンテナの作成 今回はDockerでCentOS7のコンテナを稼働させて、適当な名前で新しいDockerコンテナを作成する手順を紹介する。まずはCentOS7のコンテナの起動。 ``` docker run -it centos:7 bash ``` 必要なツールをインストールしてみる。たとえばwgetをインストールするならば、 ``` yum install -y wget ``` インストールが終わったら、```exit```で終了する。ツールをインストールしたコンテナを保存するには、まずコンテナのIDを知る必要があるので次のコマンドを実行する。 ``` docker ps -a ``` 一番上に表示されるコンテナが最も新しいコンテナなので、そのIDをメモしておく。(例:a94dd36ef032 だったとする。) 次のコマンドを入力すると新しいコンテナとして自分のPC内に登録される。 ``` docker commit a94dd36ef032 my_dockerhub_id/wget:latest ``` 確認は、 ``` docker images ``` もしもdockerhubにユーザ登録しているならば、下記のコマンドでコンテナをほかの人にも公開できる。 ``` docker push my_dockerhub_id/wget:latest ``` 不要な実行済みコンテナは ``` docker rm a94dd36ef032 ``` で削除可能。 ## Dockerfileからイメージのビルド 上述のように、起動しているコンテナの中にツールをインストールするのではなく、予め決められた手順でイメージを新規作成することも可能である。 その際にはDockerfileという名前のファイルを作成し、手順を記述する。 例えば、diamondという相同性検索ツールはBioContainersには登録されていないが、ツールの作者がDockerfileを作成してくれているため、簡単に自分でイメージを作成できる。 手順は下記の通り。 ``` git clone https://github.com/bbuchfink/diamond.git cd diamond docker build -t diamond . #-t の後はイメージの名前になるので、わかりやすい名前を付ける(今回はdiamond) ``` インストール後は、 ``` docker run -it --rm -v $PWD:$PWD -w $PWD diamond sh ``` で使用可能。 他にもDockerfileを配布しているツールは最近多い。 ## スパコンや研究室のクラスターPCでの利用 dockerは管理者権限(root権限)が必要になるため、共用のサーバでは使用することはできない。そのかわりsingularityというソフトウェアが使用可能な場合がある。東大白金キャンパスのスパコンや、国立遺伝学研究所のスパコンではともにsingularityが使用可能である。 singularityは、DockerHubやQUAYなどに登録されているdockerの公開イメージを利用可能である。使用方法はサーバにログインして、下記のコマンドのように実行すれば良い。(研究室のサーバの場合は、「必ず」workフォルダに移動してから解析等を行うこと!残念ながら2019年現在、WSL上ではsingularityのイメージ作成までは行えるが、コンテナの起動は出来ない。) まずはdockerの公開イメージからsingularityのイメージに変換する。下記の例は、BioContainersのbwaのイメージを使用する場合。 ``` singularity pull --name bwa.sif docker://quay.io/biocontainers/bwa:0.7.17--h84994c4_5 ``` bwa.sifというイメージが出来上がる。他のイメージを変換する場合は、```--nameで作成するイメージ名```と、```docker://の後のdockerのイメージのURL```を適当に変更する。 その後、次のコマンドでbwaのコンテナが起動するので、後はdockerと同じように使用すれば良い。 ``` singularity shell bwa.sif ``` bwaだけ起動させたいときは、 ``` singularity exec bwa.sif bwa ``` さらに、bwaと打てばsingularityの中のbwaが起動するようにするには、~/.bashrcに下記のようにエイリアスを追加すれば良い。 ``` shopt -s expand_aliases #バッチスクリプトの中でもbwaのエイリアスを有効にする。 alias bwa='singularity exec /suikou/files/m48/user2/work/img/bwa.sif bwa' #singularityのイメージは絶対パスで指定すること。 ``` # 次回以降 次回以降、それぞれ調査するツールのカテゴリを決めて(他の人と重なっても良い)、2週間に1つ以上ツールを調べて報告する。 調査2回目以降は、自分で過去に調べたツールの結果と何かしらの比較をすること。(計算時間、メモリー使用量、ディスク使用量、正確さ、感度などの中から興味のあるものについて) 調べた結果を下記のWordpressのブログに記入する。言語は自由。お互いGoogle翻訳で何とかしましょう。 ただし、報告会で説明するときに見せる画面は英語にすること。(あらかじめ英語を併記するか、Google翻訳が自然な英語になるような日本語を書くなど工夫してください。) http://www.suikou.fs.a.u-tokyo.ac.jp/blog/ ログインは下記のURLから、ID,パスワードは、研究室のサーバにログインするときと同じ。ただし、ログイン後にパスワードやメールアドレスは変更しておくこと。 http://webpark1634.sakura.ne.jp/blog/wp-login.php インストールしてほしいWordpressのプラグインがあれば、ご連絡ください。 カテゴリとツールの例 ``` リードQC  illumina: FASTQC  nanopore: nanoQC リードトリミング  illumina: FASTX-toolkit, trimmomatic, sickle  nanopore: Nanofilt, k-mer解析  ゲノムサイズ予測: KmerGenie, KAT, GenomeScope (docker pull greatfireball/ime_genomescope) 相同性検索  blast, MAGICBLAST, last, diamond, ghostx, blat マッピング  全ゲノム illumina→ゲノム: bwa aln, bwa mem, bowtie2, subread, soapaligner  全ゲノム nanopore→ゲノム: minimap2, minialign, last  RNA-seq→ゲノム: tophat, hisat2, star  cDNA→ゲノム: exonerate, GeneWise (https://www.ebi.ac.uk/~birney/wise2/), gmap, spaln, minimap2  RNA-seq→cDNA: kallisto, RSEM, salmon  rRNA→rRNA: blast, usearch アセンブル  ゲノム illumina: CLC, SOAPdenovo, Platanus (docker pull c2997108/platanus:1.2.4), ABySS, SPAdes, MaSuRCA, Meraculous  ゲノム nanopore: canu, flye, Ra (docker pull c2997108/ra:2018-12-11), Redbean (wtdbg), Unicycler, Manta, FALCON  メタゲノム illumina: megahit, metaSPAdes (SPAdes)  RNA-seq illumina: Trinity, TransABySS, SOAPdenovo-Trans, rnaSPAdes (SPAdes) スキャッフォールディング  illumina: BESST, SSPACE  illumina RNA-seq: BESST_RNA (https://github.com/ksahlin/BESST_RNA), Rascaf, P_RNA_scaffolder (lost?)  pacbio, nanopore: LINKS, quickmerge (https://github.com/mahulchak/quickmerge)  近縁種のゲノムから: Chromosomer, MEDUSA, AlignGraph (https://github.com/baoe/AlignGraph) ギャップクローズ  pacbio, nanopore: LR_Gapcloser (https://github.com/CAFS-bioinformatics/LR_Gapcloser), GMcloser アセンブルのマージ  Metassembler (https://sourceforge.net/projects/metassembler/), GAM-NGS (https://github.com/vice87/gam-ngs), Mix (https://github.com/cbib/MIX) コンティグのアセンブルミス修正(poolishing)  pilon, racon アセンブルQC  ゲノム: QUAST-LG, assembly-stats, REAPR (https://www.sanger.ac.uk/science/tools/reapr), BUSCO  cDNA: TransRate 配列のクラスタリング、グルーピング、重複除去  CD-HIT, SSEARCH, VSEARCH リファレンスガイドcDNAアセンブル  cufflinks, stringtie, strawberry (https://github.com/ruolin/Strawberry) SNP検出  GATK, bcftools mpileup, freebayes, VarScan SV (Structural Variants)検出  pindel, breakdancer, Manta データベース  rDNA: SILVA, RDP 統計解析  二群間比較: edgeR, DESeq2, cuffdiff, slueth, ballgown アノテーション  トランスクリプトーム: dammit, trinotate パイプライン  ショットガンメタゲノム: MG-RAST, Sunbeam,  16S rRNAメタゲノム: QIIME  RNA-seq: SPARTA, VIPER, iDEP  シングルセルRNA-seq: zUMIs, seurat ``` 下記は2年前のエンリッチメント解析ツールを調査したときに提出していただいたスライド一覧です。 http://www.suikou.fs.a.u-tokyo.ac.jp/document/ ## 練習 下記の配列はアコヤガイのとある遺伝子の予測された塩基配列です。 ``` atgactctgaaggatgccctcaacaaaagtcacacaaatacaggaaacatgctcacaata cttcaaagctttgaaaatcgtttaaagaagttagagggaacagttgagcctgtttacaat gagacagaaatgctgcggcgcagacaagaaaatatagagaaaactatgacaacactggac aatgtgctgggttactaccatattgctaaagatgtacaagatttgattaaagaaggtcca gtagtttgtggtctggagaagtacctgtctactatggaccggctgctccaagcactgaac tactttaataaacataacccaaccagtctggaagtgacagatgtcatcaaagtatatgat gatggtaaagatacattgaatgcagagttccgtagtttacttggtcgtcactgtcgtccg gtgccggctgttactatactggatttactaggaccagatgaagagttacaaacaatggaa aatgatgcacccatagaacatctgcctgagaaaattgtgaatgatttaaccctcatcgca aagtggctatacaccaatggtaaagctacagagtatatgaaagattacaccaaagtcagg tcccaaatgctcctctactctctgcaggggaactcaataaagcggaaggctaccacggcc ttgatgcagtccccttttgatccaggtcatagaagacaaggctcttataacgaattgaca aaagaggaaagttttgatgttgaaattgatatctacataacagaactaacagcattgctg aaacttattcagaatgaccctgagagatcttcgatgccccgagacggtacagttcatgaa ctgacaaaccataccattatagtactggagcccctgttagattatgctgagacagctggg gccatgttactcacccatggtgaacatgcagttccatctgatgctgtggatgtcaagaaa agtaaactcaagttggctgactatatcactaaggttttgtcagcattaggattaaactta agtaacaaggcagaaacttacagtgatccaatactcagacatgtgttcatgcttaataac tatcactacatactcaagtctttaaaaaggtctggggtattagaattaattcacacatgg aataaagatgtaggacagttttatgaggaccagatacatgaacaaaaaagactttattcc cagagctggagtaaagttctacattttgtactggaaatgaatgagccaatatcccaacaa agaatccagcaaatggagacatcaaagataaaggacaaagaaaagcagaatataaaagac aagttctctggattcaacaaagagttggaagaaatctcacgtgttcagaaagcatacgcc attcctgatccagaactgagggacaatatcaagaaagacaataaagaatatattgtgccg cgatacaagcttttcttagaaaaatttcaacggctgaacttcacaaagaattcagaaaaa tatatgaaatacactgtaaaggatgtggaagaaacacttgataaatttttcgatacttca gcttaa ``` この配列は、近縁種であるカキのExocyst complex component 7と相同性がありますが、一部のExonが欠損しています。(遺伝子予測が間違っている。) それを調査してみましょう。 使用するのは、BLASTのblastxコマンドを使ってみてください。 BLASTの使い方の説明:https://togotv.dbcls.jp/20170606.html カキのExocyst complex component 7のアミノ酸配列 ``` >EKC30356.1 Exocyst complex component 7 [Crassostrea gigas] MLTILQSFENRLRKLENTVEPVYNETEMLRRRQENIEKTMVTLDNVLGYYHVGKEVEEFIKEGPHNCGLE KYLSIMDRLVQAHNYFNKHNPTSLELTDVIRVYDDGKEALVIEFRTLLGRHCRPVPPVMVLDMISTDEEL QGSDDIQLEHLPEKILTELSLISTWLFNNTKNTEYMKDYTRSRSSMLIKSLQGHSFKRRAVITLMQSPFD PGNKRQGSHAELPKEENLDVEVDIYITELSALLKLIQSEAQLMSGIIADKHHRSVFDNIIQEGLDSVIKN GELLAVNAKKSIAKHDFINVLSVFPVLKHLRSIKPEFDLTLEGCATPTRAKLTSLLSTLGSTAAKALEEF ALSIKTDPEKASMPKDGTVHELTNRTIIFLEPLQDYADTAGAMLLLHGEQAAPSEAVDPKKSKMRLADYI TKTLSALGLNLTIKAETYSDPTLRPVFMLNNYHYILKSLKRSGLLDLIHTWNKDVGQFYEDRINEQKKLY SESWSRVMHYITEVHEPISQQRIQAMENSKLKDKEKQNIKDKFSGFNKELEDILKIQKGYAIPDPELREQ MKKDNKDFIIPAFRMFLDKFKRLNFTKNPEKYIKYSVQDVAEVVDKLFDMSA ``` さらに、下記のURLからアコヤガイのゲノムをダウンロードして、遺伝子予測で欠損しているExonはどのscaffoldに乗っているか調べてください。fasta.gzファイルを解凍するコマンドは```gzip -d ```です。 https://marinegenomics.oist.jp/pearl/download/pfu_genome1.0.fasta.gz [[2019 blast練習回答例]]