Code Monkey home page Code Monkey logo

dlmifish's Introduction

DLMiFish (Beta version)

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以上

01 仮想環境の作成

pythonでは、メイン環境とは他に仮想的な実行環境を作成できます。

主な目的は以下の通り

  • システム全体で使うpython環境に影響を与えずモジュールの追加や入れ替えをしたい
  • 異なるversionのpythonを使い分けたりしたい
  • 失敗した場合に、簡単に削除できる

pythonの仮想環境はPython3 の標準ライブラリであるvenvvirtualenvなどがあります。
minicondaをベースとしたCondaでの仮想環境作成法は以下のブログ記事にて紹介していますのでご参照ください。

02モジュールをインストールする

まず、パッケージマネージャーであるmambaをインストールします。mambaはマルチスレッドでリポジトリのデータやパッケージファイルを並列ダウンロードしたり、依存関係を管理してくれたりします。

  • mamba : Github repository

    Installing based on conda

    conda install mamba -n base -c conda-forge

その他、pythonモジュールのインストール

  • biopython : Github repository

  • pandas : Github repository

  • tqdm : Github repository

    Install

    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

    Install

    Windows 10でcondaを使わない場合

    1. Homeデレクトリに移動
    cd
    1. 最新版をダウンロード(要version確認)
    # 2022/4/21
    wget https://github.com/shenwei356/seqkit/releases/download/v2.2.0/seqkit_linux_arm64.tar.gz
    1. 解凍
    tar -zxvf *arm64.tar.gz
    
    1. プログラムの置き場に移動
    sudo mv seqkit ~/usr/local/bin/
    

    condaが使える方は以下で一発インストール

    conda install -c bioconda seqkit -y

    mambaでもよい

    mamba install -c bioconda seqkit -y
    1. 確認
    seqkit version
    # seqkit v2.0.0

03 DLMiFishのダウンロード

デスクトップに配置することを想定

using git

git cloneを使用したパッケージ取得。デスクトップをカレントデレクトリとした後に以下を実行

git clone https://github.com/NaokiShibata/DLMiFish.git

Download ZIP

Download ZIPボタンよりダウンロードするとZIPファイルがダウンロードされるので、デスクトップに置き、解凍します。 image

解凍したら、DLMiFish-masterというフォルダ名をDLMiFishに変更します。

04 使い方

クイックスタート

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分かかりました。

dlmifish's People

Contributors

naokishibata avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.