NCBIから真骨類 (Teleostei, taxid=32443)、軟骨魚類 (Chondrichthyes, taxid=7777)、円口類(Cyclostomata, taxid=1476529)の12s rRNA領域の配列データをダウンロードするパッケージです。
Biopython
に搭載されているEntrez
の各関数を使って、上記3分類群のGenbankの情報を取得した後に12s rRNA領域の配列情報を抽出します。また、Optionでは、Cutadapt
を使ってプライマー配列の一部削除(データ軽量化)やseqkit
による配列データの配列長を視覚化もできたりします。
1度ダウンロードした.gbファイルはGI_Folderに保存されます。ダウンロードする.gbファイルはNCBIでの問い合わせによって得られたACCの情報と、これまでにダウンロードした.gbファイル名に使用されているACCの情報を比較し、今回とこれまでの差分をとることでダウンロードする.gbファイルを決めています。
windows10 WSLとUbuntu 20.04 LTSでの動作を確認しています。
- python3.6 以上 (f string使用のため)
以下は最新版 or pythonのバージョンにあったもの- pandas
- biopython
- tqdm
- joblib
- cutadapt
- conda : 最新版 or pythonのバージョンにあったもの
- mamba : 最新版 or pythonのバージョンにあったもの
- seqkit : version2.0以上
pythonでは、メイン環境とは他に仮想的な実行環境を作成できます。
主な目的は以下の通り
- システム全体で使うpython環境に影響を与えずモジュールの追加や入れ替えをしたい
- 異なるversionのpythonを使い分けたりしたい
- 失敗した場合に、簡単に削除できる
pythonの仮想環境はPython3 の標準ライブラリであるvenv
やvirtualenv
などがあります。
minicondaをベースとしたConda
での仮想環境作成法は以下のブログ記事にて紹介していますのでご参照ください。
- pythonの環境構築とその他もろもろについての覚え書き @はじめての環境DNA
まず、パッケージマネージャーであるmamba
をインストールします。mambaはマルチスレッドでリポジトリのデータやパッケージファイルを並列ダウンロードしたり、依存関係を管理してくれたりします。
-
mamba : Github repository
conda install mamba -n base -c conda-forge
その他、pythonモジュールのインストール
-
biopython : Github repository
-
pandas : Github repository
-
tqdm : Github repository
mamba install bioconda bipython cutadapt -y mamba install -c anaconda pandas -y mamba install -c conda-forge tqdm joblib -y
次に、fastqやfastaの操作ツールであるseqkit
をインストールします。
-
seqkit : Github repository
Windows 10でcondaを使わない場合
- Homeデレクトリに移動
cd
- 最新版をダウンロード(要version確認)
# 2022/4/21 wget https://github.com/shenwei356/seqkit/releases/download/v2.2.0/seqkit_linux_arm64.tar.gz
- 解凍
tar -zxvf *arm64.tar.gz
- プログラムの置き場に移動
sudo mv seqkit ~/usr/local/bin/
conda
が使える方は以下で一発インストールconda install -c bioconda seqkit -y
mamba
でもよいmamba install -c bioconda seqkit -y
- 確認
seqkit version # seqkit v2.0.0
デスクトップに配置することを想定
git clone
を使用したパッケージ取得。デスクトップをカレントデレクトリとした後に以下を実行
git clone https://github.com/NaokiShibata/DLMiFish.git
Download ZIPボタンよりダウンロードするとZIP
ファイルがダウンロードされるので、デスクトップに置き、解凍します。
解凍したら、DLMiFish-masterというフォルダ名をDLMiFishに変更します。
setting.txt
に以下の情報を追加して、python3 DLMiFish.py
を実行すると、配列取得が開始されるはずです。
注意点として、現状では1GB程度のファイルサイズになることと、環境にもよりますが、デフォルトの設定では3時間程度かかります(2022/4現在のデータ量)。
APIs
NCBIのAPI keyを取得してください。Entrezの使用上は任意ですが、プログラムの作成上表記無しで動く設計にできていません。
また、利用頻度が高い場合(3回/1秒以上)には必要になるので登録&取得しておきましょう。
アカウント登録とAPIの取得ができましたら、seatting.txt
の下記部分に必要事項を記載します。
Email = e-mail adress
: 有効なe-mailアドレスを指定Api_key = API
: 取得したAPIを指定
注意点として、'='の後のemailとAPI keyは特に””や’’でくくる必要はありません。
その他、特筆すべき部分について記載します。
取り出す情報数の指定
任意のワード検索によってHitした情報からいくつ取り出すかについて、Count_in_query1(=retmax)
に指定可能です。
例 : Count_in_query1 = 10000 (最大数は10000)
1回の要求あたりの情報のダウンロード数
例 : Count_in_query2 = 20 (おすすめは20程度)
プライマー配列を認識して、プライマー配列とその外側を除去したり、配列長の閾値を設定したり出来ます。
オプションを有効化するには、option = Yes
を指定してください。そうすることで以下のオプションが有効になります。
プライマー配列より外側の配列の除去
Cutadapt
による配列除去が実行されます。
error = 0.1
: 配列一致度の許容率(プライマー配列長×指定値)core = 24
: 使用するスレッド数(増やしてもあまり恩恵を感じれませんが、多めに指定しておいたら良いと思います)
配列長によるフィルタリング
seqkit
による配列長フィルタリングが実行されます。
minilength = 120
: 可変領域の最小値をイメージして指定します。MiFishプライマーの可変領域の平均配列帳はca172bp、最小は140bp程度です。
以下ですぐに実行が可能です。
python3 DLMiFish.py
※ 2023/9/30時点で18041本の配列がHitし、ダウンロードには50分かかりました。