NCBI GEOからまとめてSRAファイルを取得する
概要
NCBI GEOからまとめてSRAファイルを取得したい。
準備
Entrez Direct
のコンパイル済みのバイナリファイルをダウンロードして、パスを通すだけ。
* Entrez Direct
ftp://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/
https://www.ncbi.nlm.nih.gov/news/02-06-2014-entrez-direct-released/
インストール例
$ wget ftp://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/edirect.tar.gz $ tar zxvf edirect.tar.gz $ echo 'export PATH=~/softwareedirect:${PATH}' >> ~/.bashrc
もしくは、biocondaでインストールする。
$ conda install entrez-direct
実行例
下記のコマンドを実行。
esearch
の-query
オプションに適当なBioProjectのIDを指定する。
$ esearch -db sra -query PRJNA328218 | efetch --format runinfo | cut -d ',' -f 10 > srafile.txt $ wget -i srafile.txt
SRAファイルのダウンロード先を取得して、wgetでまとめてダウンロードする。
esearch
の-db
オプションからさまざまなデータベース(SRA、PubMedなど)を指定でき、-query
オプションでIDなどをもとに検索を行うことができる。
efetch
で検索した項目の情報を取得することができる。--formatの指定は、runinfo
とnative
の2種類ありruninfo
ではカンマ区切りで各サンプルの情報が出力される(すべての情報が得られるわけではなく概要のみ?)。
一方、native
を指定すると、XMLファイル形式ですべての情報が出力される(すべての情報が揃っているが、中身を調べるにはXMLをパースして整理する必要がある)。
SRAのファイル名にサンプル名を加えたい
SRAファイルをダウンロードした後、SRA ID
とサンプル名
を併記したファイル名にリネームする。
シェルスクリプト
以下のようにスクリプトを実行する。
./sra_download.sh <任意のBioProjectのID>
実行に必要なPythonスクリプト
parse_sra_xml.py (1.4 kB)
rename_sra_files.py (352 B)
使用する場合、
filepath="/path/to/python_scripts"
の部分に実行に必要なPythonスクリプトを置いた場所を指定する。
やっていることは単純で、
1. 特定のProject IDに含まれる複数のサンプル(SRAファイル)をダウンロード&XMLファイルを取得する。
2. XMLファイルをパースして、SRAファイル名とサンプル名の対応表を作る。
3. SRA IDとサンプル名が併記されたファイル名にリネームする。
という作業をPythonのスクリプトも使いながら(スマートじゃないですが)行っています。
実行すると、以下のようにSRAファイルが一括ダウンロードできます。
参考
- Tutorial: How to download raw sequence data from GEO/SRA
https://www.biostars.org/p/111040/ - NCBI SRA から FASTQ をダウンロードする方法
http://bi.biopapyrus.net/transcriptome/rnaseq-data/download-from-sra.html - prefetch すらっと落とす SRA
http://blog.amelieff.jp/?eid=231191