Palmsonntagmorgen

NGSデータを使った解析と、その周辺。

記事一覧

Linux一般

文字列の検索・置換

リダイレクトとパイプ

sortコマンドの使い方(ファイルのソート)

shuf: テキストファイルの行をランダム抽出

2つのファイルの共通行を抽出する 

Linux ワンライナー覚書

解析環境構築

環境変数PATHの通し方

SSH公開鍵の生成・設定の方法

SSHその2 ssh のパスワード入力を省略 (ssh-agent)

SSHその3 ssh の設定を保存 (.ssh/config)

【Ubuntu】パッケージ管理コマンドあれこれ

pyenvでPython環境を構築する

バイオインフォマティクスのためのpython環境構築方法を考える

NGS解析のための共有サーバ環境構築を考える(2022年度版)

GitHubからプログラムをダウンロード・インストール

Docker・Singularity

 【Win】【Mac】【Linux】Dockerのインストール 【2019年7月現在】

【Windows10】Windows PreviewにリリースされたWSL2をインストールしてみた

Singularityを使ったDocker環境の利用が楽ちんという話

Docker/Singularityでも環境の統一は難しいかもしれないという話

docker-ubuntu-vnc-desktopを使ってDockerイメージ (ssp_drompa) をGUIで動かす

Monocle3をRstudioで起動できる dorowu/ubuntu Dockerイメージ

Docker daemonが ルートディレクトリの容量を圧迫するのを回避する

データ生成

常染色体と性染色体のみのゲノム配列ファイル genome.fa を作成する

2bit genome を作成する

genome tableを作成する

fetchChromSizes を使ってgenome tableファイルを作成

Gene annotation データを用意する(gtf形式)

gtfファイルからrefFlat形式への変換

LiftOver: BEDファイルを異なるbuildへ変換

fastqデータ取得

SRAからfastqを取得する

ENA,DDBJからfastqを取得する

aria2を使ってENAから高速にfastq.gzを取得する

ゲノムマッピング

Readをゲノムにマッピング (その1) (2017/12/19 追記あり)

Readをゲノムにマッピング (その2)

Readをゲノムにマッピング (その3) 圧縮ファイルを入力にする方法

chromapを試す(その1)

chromapを試す(その2)

マップデータ操作

SAMtoolsとリダイレクト

SAMtoolsワンライナー覚書

マッピング: CRAM形式を試す

ChIP-seq解析: DROMPA

DROMPA3: その1 インストール

DROMPA3: その2 parse2wig

DROMPA3: その3 ピーク抽出(peak calling)

DROMPA3: その4 マップリード分布の可視化その1

DROMPA3: その5 シェル変数を使う

DROMPA3: その6 ChIP/Input ratio 及び p値の可視化

DROMPA3: その7 -i オプション詳細

DROMPA3: その8 GVコマンドでのマクロな可視化

DROMPA3: その9 リードプロファイル

DROMPA3: その10 ヒートマップ

DROMPA3: その11 複製解析(出芽酵母)

DROMPAplusを公開しました

DROMPAplus: Dockerを使ったparse2wig+

ChIP-seq解析: 品質評価

Library complexity (PCR bias)とは何か

S/N比の評価手法 その1

S/N比の評価手法 その2 Cross-correlation profile

S/N比の評価手法 その3 deepTools

S/N比の評価手法 その4 SSP

ChIP-seq解析: ピークを入力とする操作

BEDtoolsワンライナー覚書

2サンプル間ピーク比較

RNA-seq解析:

RNA-seqによる発現量解析

HISAT-StringTie-Ballgown を試してみよう

HISAT-StringTie-Ballgown を試してみよう その2

STAR-RSEMによる発現量推定 その1

STAR-RSEMによる発現量推定 その2

STAR-RSEMによる発現量推定 その3

その他:

論文・グラント申請書作成のポイントリンク集

口頭発表資料作成のポイントリンク集

Analysis Tips

無料公開されている講義資料など

研究内容を高めて(深めて)いくために大事なこと

進学先・就職先としてのラボ選びで大事なこと

aria2を使ってENAから高速にfastq.gzを取得する

1論文あたりで用いられるデータが年々増加しており、論文の再実験をするためにFASTQをダウンロードするのもなかなか苦労しますよね。 以下の記事でENAからwgetを使ってfastqを取得する方法を紹介していますが、

rnakato.hatenablog.jp

今回はその高速版です。

ENAから fastqファイルを取得する

ここでは例として、Ahn et al., Nature, 2021の論文RNA-seqデータ(paired-end)を使います。IDはPRJNA604380です。

ENA上で PRJNA604380を検索すると、以下のようなページになります。RNA-seqデータが18サンプル含まれています。

右側にある "Download All" をクリックすればダウンロードが開始されますが、めちゃくちゃ遅いです。しばしば途中でタイムアウトになり、うまくダウンロードされません。 FASTQのリンクをクリックすれば個別にダウンロードできますが、それでも遅いですし、サンプル数が多いと大変です。

ENAから wget を使ってfastqファイルを一括取得する

FTPリンクをファイルに保存し、wget -i を使う方法をおさらいします。

画面上部 "Download report"の TSV をクリックすると、各サンプルの詳細をテキスト形式でダウンロードできます。ここでは "filereport_read_run_PRJNA604380_tsv.txt" という名前で保存されました。

 $ head -n3 filereport_read_run_PRJNA604380_tsv.txt
study_accession sample_accession        experiment_accession    run_accession   tax_id  scientific_name fastq_ftp       submitted_ftp   sra_ftbam_ftp
PRJNA604380     SAMN13967826    SRX7659655      SRR10998571     9606    Homo sapiens    ftp.sra.ebi.ac.uk/vol1/fastq/SRR109/071/SRR10998571/SRR10998571_1.fastq.gz;ftp.sra.ebi.ac.uk/vol1/fastq/SRR109/071/SRR10998571/SRR10998571_2.fastq.gz          ftp.sra.ebi.ac.uk/vol1/srr/SRR109/071/SRR10998571
PRJNA604380     SAMN13967825    SRX7659656      SRR10998572     9606    Homo sapiens    ftp.sra.ebi.ac.uk/vol1/fastq/SRR109/072/SRR10998572/SRR10998572_1.fastq.gz;ftp.sra.ebi.ac.uk/vol1/fastq/SRR109/072/SRR10998572/SRR10998572_2.fastq.gz          ftp.sra.ebi.ac.uk/vol1/srr/SRR109/072/SRR10998572

ごちゃごちゃしていますが、サンプルの各種IDや生物種、FTPのURLなどが記載されています。 FTPのURLは7列目に記載されています。

 $ cut -f7 filereport_read_run_PRJNA604380_tsv.txt
ftp.sra.ebi.ac.uk/vol1/fastq/SRR109/071/SRR10998571/SRR10998571_1.fastq.gz;ftp.sra.ebi.ac.uk/vol1/fastq/SRR109/071/SRR10998571/SRR10998571_2.fastq.gz
ftp.sra.ebi.ac.uk/vol1/fastq/SRR109/072/SRR10998572/SRR10998572_1.fastq.gz;ftp.sra.ebi.ac.uk/vol1/fastq/SRR109/072/SRR10998572/SRR10998572_2.fastq.gz
ftp.sra.ebi.ac.uk/vol1/fastq/SRR109/073/SRR10998573/SRR10998573_1.fastq.gz;ftp.sra.ebi.ac.uk/vol1/fastq/SRR109/073/SRR10998573/SRR10998573_2.fastq.gz
ftp.sra.ebi.ac.uk/vol1/fastq/SRR109/074/SRR10998574/SRR10998574_1.fastq.gz;ftp.sra.ebi.ac.uk/vol1/fastq/SRR109/074/SRR10998574/SRR10998574_2.fastq.gz
ftp.sra.ebi.ac.uk/vol1/fastq/SRR109/075/SRR10998575/SRR10998575_1.fastq.gz;ftp.sra.ebi.ac.uk/vol1/fastq/SRR109/075/SRR10998575/SRR10998575_2.fastq.gz
ftp.sra.ebi.ac.uk/vol1/fastq/SRR109/078/SRR10998578/SRR10998578_1.fastq.gz;ftp.sra.ebi.ac.uk/vol1/fastq/SRR109/078/SRR10998578/SRR10998578_2.fastq.gz
ftp.sra.ebi.ac.uk/vol1/fastq/SRR109/081/SRR10998581/SRR10998581.fastq.gz
ftp.sra.ebi.ac.uk/vol1/fastq/SRR109/079/SRR10998579/SRR10998579_1.fastq.gz;ftp.sra.ebi.ac.uk/vol1/fastq/SRR109/079/SRR10998579/SRR10998579_2.fastq.gz
ftp.sra.ebi.ac.uk/vol1/fastq/SRR109/082/SRR10998582/SRR10998582.fastq.gz
ftp.sra.ebi.ac.uk/vol1/fastq/SRR109/083/SRR10998583/SRR10998583.fastq.gz
ftp.sra.ebi.ac.uk/vol1/fastq/SRR109/084/SRR10998584/SRR10998584.fastq.gz
ftp.sra.ebi.ac.uk/vol1/fastq/SRR109/087/SRR10998587/SRR10998587.fastq.gz
ftp.sra.ebi.ac.uk/vol1/fastq/SRR109/086/SRR10998586/SRR10998586.fastq.gz
ftp.sra.ebi.ac.uk/vol1/fastq/SRR109/088/SRR10998588/SRR10998588.fastq.gz
ftp.sra.ebi.ac.uk/vol1/fastq/SRR109/076/SRR10998576/SRR10998576_1.fastq.gz;ftp.sra.ebi.ac.uk/vol1/fastq/SRR109/076/SRR10998576/SRR10998576_2.fastq.gz
ftp.sra.ebi.ac.uk/vol1/fastq/SRR109/077/SRR10998577/SRR10998577_1.fastq.gz;ftp.sra.ebi.ac.uk/vol1/fastq/SRR109/077/SRR10998577/SRR10998577_2.fastq.gz
ftp.sra.ebi.ac.uk/vol1/fastq/SRR109/080/SRR10998580/SRR10998580_1.fastq.gz;ftp.sra.ebi.ac.uk/vol1/fastq/SRR109/080/SRR10998580/SRR10998580_2.fastq.gz
ftp.sra.ebi.ac.uk/vol1/fastq/SRR109/085/SRR10998585/SRR10998585.fastq.gz

paired-end のファイルがセミコロン(;) 区切りで記載されているので、セミコロンを改行に変換してファイル保存します。

 $ cut -f7 filereport_read_run_PRJNA604380_tsv.txt | sed 's/;/\n/g' | grep -v fastq_ftp > ftp.txt
 $ cat ftp.txt
ftp.sra.ebi.ac.uk/vol1/fastq/SRR109/071/SRR10998571/SRR10998571_1.fastq.gz
ftp.sra.ebi.ac.uk/vol1/fastq/SRR109/071/SRR10998571/SRR10998571_2.fastq.gz
ftp.sra.ebi.ac.uk/vol1/fastq/SRR109/072/SRR10998572/SRR10998572_1.fastq.gz
ftp.sra.ebi.ac.uk/vol1/fastq/SRR109/072/SRR10998572/SRR10998572_2.fastq.gz
ftp.sra.ebi.ac.uk/vol1/fastq/SRR109/073/SRR10998573/SRR10998573_1.fastq.gz
ftp.sra.ebi.ac.uk/vol1/fastq/SRR109/073/SRR10998573/SRR10998573_2.fastq.gz
(中略)
ftp.sra.ebi.ac.uk/vol1/fastq/SRR109/080/SRR10998580/SRR10998580_1.fastq.gz
ftp.sra.ebi.ac.uk/vol1/fastq/SRR109/080/SRR10998580/SRR10998580_2.fastq.gz
ftp.sra.ebi.ac.uk/vol1/fastq/SRR109/085/SRR10998585/SRR10998585.fastq.gz

あとはこのファイルにwget -i を実行すれば順番にダウンロードされます。

 $ wget -i ftp.txt

aria2を使ってfastqファイルを一括取得する

wgetはやはり低速であり、ダウンロードに時間がかかるという点では改善されません。 ここではwgetよりも高速にダウンロードできるaria2を使ってみましょう。

curlやwgetの数倍速い 爆速ダウンローダー aria2を使う #Linux - Qiita

aria2がインストールされていない場合はインストールします。aptでもbrewでも入ります。

 $ sudo apt install aria2

ひとつファイルをダウンロードしてみましょう。コマンド名はaria2c です。元のFTP URLは受け付けないようですので、冒頭に "ftp://" を追加して実行してください。

 $ aria2c -x 16 ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR109/085/SRR10998585/SRR10998585.fastq.gz

-x 16 は使用するCPU数です。最大で16まで指定できます。 これにより、wgetよりも圧倒的に高速にファイルをダウンロードすることが可能です。

全ファイルをダウンロードしてみましょう。aria2cも "-i" オプションが使えますが、ここでは "ftp://"を追加しなければいけません。色々なやり方がありますが、ここではシンプルにfor文を使いましょう。

for url in $(cat ftp.txt); do
    echo $url
    aria2c -x 16 ftp://$url
done

これで全ファイルをダウンロードできます。

終わりに

  • この方法をGEOやSRAで使えると楽なのですが、これらのデータベースではダウンロードURLが公開されていません。ariawgetを使いたい場合はENAを使いましょう。
  • また、aria2cも時々ダウンロードに失敗することがあるようです。ダウンロード完了後には全てのファイルが揃っているか確認するようにしてください。

無料公開されている講義資料など

随時追加します。Tweetはクリックするとスレッドが読めます。

データ分析

講義資料 – 九州大学 数理・データサイエンス教育研究センター

情報教育コンテンツリンク集 | 東京大学 数理・情報教育研究センター

seeing-theory.brown.edu

高等学校情報科「情報Ⅱ」教員研修用教材(本編):文部科学省

機械学習

はじめに — 機械学習帳

Machine Learning Cheatsheets

機械学習を「社会実装」するということ 2023年版 / Social Implementation of Machine Learning 2023 - Speaker Deck

Deep learning

Deep Learning Drizzle

Deep Learning for Data Integration | by Nikolay Oskolkov | Towards Data Science

強化学習

www.slideshare.net

Transformer/BERT

時系列分析

Bioinformatics

Analysis Tips

解析するうえで参考になる情報まとめ。Tweetはクリックするとスレッドが読めます。

Data Visualization

plotly.expressのお気に入りグラフ3選 - Qiita

www.data-to-viz.com

Data analysis

Data Science Cheatsheets

R analysis

Tidy-transcriptomics manifesto - Tidy transcriptomics

Python analysis

github.com

はじめに — Python早見帳

100本ノック

GitHub - rougier/numpy-100: 100 numpy exercises (with solutions)

GitHub - The-Japan-DataScientist-Society/100knocks-preprocess: データサイエンス100本ノック(構造化データ加工編)

qiita.com

口頭発表資料作成のポイントリンク集

随時追加します。Tweetはクリックするとスレッドが読めます。