より専門的なユーザーが懸念しているのは、仲間のバイオインフォマティシャンや研究所の所長から聞いたこんな話のような状況です。「真夜中に寝ぼけ眼で起きてNGSデータ分析パイプラインの結果を確認し、ファイルを別のファイルに変換する。フォーマットを確認し、下流分析の次のステップを準備し、気を失いながらベッドに戻る…。」 同じ途方もない苦労を経験した私たちは、手動タスクを自動化できる堅牢な API の有用性を理解しています。
私たちは Python とコマンド ライン用の強力な API をまとめ、可能な限り読みやすく、シンプルで、直観的にできるようにしました。 Basepair のGUIは、ワンクリックで迅速に分析できるようにすでに合理化されていますが、数十、数百、さらには数千のサンプルとなると、堅牢な API の追加に勝るものはありません。
この投稿では、Python API が大規模な NGS データ分析の自動化にどのように役立つかをいくつかの例で説明します。 コマンドラインAPIを確認したい場合は、ここに役立つ投稿を作成しました 。
バイオインフォマティシャンではない場合や、開発経験がない場合でも、以下の例をざっと見て、BasepairのAPI で何ができるかを理解することをお勧めします。 Basepairは、API やあらゆる統合のセットアップもお手伝いします。詳細については、こちらからお問い合わせください。
Basepair API の使用を開始する
Basepair Python ライブラリをインストールし、構成ファイルをセットアップし、basepairライブラリとjsonライブラリがインポートされ、 basepairをconfitureファイルに接続していることを確認してください。
import basepair
import json
bp = basepair.connect(json.load(open(‘/path/to/basepair.config.json’)))
これで、NGS データ分析の自動化を開始する準備が整いました。
データの探索
アカウントで利用可能なデータを調べるには、 bp.print_data() コマンドを使用します。
bp.print_data(‘genomes’)
# Will return a list of all genomes
# To get more detailed info per genome, add the json=True parameter
id name date_created
—- ———————– ————————–
1 hg19 2018-04-18T14:58:15.865993
2 mm10 2018-04-18T15:05:39.770488
3 mm9 2018-04-18T15:10:33.438603
4 danRer10 2018-04-18T15:15:11.281866
5 tair10 2018-04-18T15:17:19.582104
bp.print_data(‘workflows’)
# Will return a list of all workflows
bp.print_data(‘samples’)
# Will return a list of all samples
bp.print_data(‘analyses’)
# Will return a list of all analyses
bp.print_data(‘analysis’, uid=[17209])
# Will return a list of data associated with a particular analysis
サンプルの作成または削除
サンプルデータの作成と削除は BasepairのPython API の基本であり、プログラムによって最大数千のサンプルを追加できるようになります。
からペアエンド RNA-Seq データを作成してみましょう 例を見て、 hg19 ヒトゲノム 。 簡単な辞書を作成して、Python API にサンプルを追加します。 考えられるキーと値のペアは次のとおりです。
Keys | Requirement | Type | Value description |
name | required | str | Your custom sample name |
genome | required | str | Your sample’s reference genome (e.g. hg19). Run “bp.get_genome()” to see which are available. |
datatype | required | str | Data type. Available options: ‘atac-seq’, ‘chip-seq’, ‘dna-seq’, ‘others’, rna-seq’, or ‘scrna-seq’ |
filepaths1 | required | str or list | One of more files. (e.g. the R1 FASTQ file(s)) |
filepaths2 | optional | str or list | One of more files. (e.g. the R2 FASTQ file(s)) |
default-workflow | optional | str | ‘id’ of the default analysis workflow |
これが IDE でどのように表示されるかは次のとおりです。
fwd_file = ‘reads_1.fq’
rev_file = ‘reads_2.fq’
sample_info = {
‘name’: ‘Sample1’,
‘genome’: ‘hg19’,
‘datatype’: ‘rna-seq’,
‘filepaths1’: fwd_file,
‘filepaths2’: rev_file,
}
sample_id = bp.create_sample(sample_info)
bp.create_sample() はサンプルを作成してアップロードします。これはとても簡単です。 データを Basepair にアップロードせずにサンプルを作成する場合は、 upload=False パラメーターを使用します。
Sample_id 変数には 、一意の整数 ID が割り当てられます。 この数値を見失った場合は、いつでも bp.get_samples() を実行できます。
サンプルを削除するには、次のコマンドを実行するだけです。
bp.delete_sample(sample_id)
サンプルが正常に削除された場合は、”<Response [204]>”が返されます。
NGS データ分析の実行
サンプルを作成してアップロードしたら、適切な分析を実行します。
まず、 bp.get_workflows() を実行してワークフロー ID のリストを取得し、選択した ID を bp.create_analysis () コマンドのパラメーターとして使用します。 以下では、STAR を使用してリードをマッピングおよび定量化するための分析を作成します。
bp.create_analysis(workflow_id='4'、sample_id='3206')
次に、結果をダウンロードします。
結果をダウンロードする
完了した分析のuidを取得するには、bp.get_samples()コマンドを使用できることを思い出してください。uid を取得すると、何をダウンロードできるかについて非常に柔軟になります。
例1.
このコードは以下のことを行なっています:
- ID 28626 の分析からファイルをダウンロードする
- 「bam」でタグ付けされたファイルを除外する ( tagkind に設定されている が’diff’ ため)。
- すべてのファイルを「test」ディレクトリにダウンロードする。
bp.download_analysis(
28626,
tags=[[‘bam’]],
tagkind=’diff’,
outdir=’./test/’)
例2.
このコードが行うこと:
- ID 28626 の分析からファイルをダウンロードします。
- 「fastqc」タグが付いたファイルのみが含まれます。
- すべてのファイルを「test」ディレクトリにダウンロードします。
bp.download_analysis(
28626,
tags=[[‘fastqc’]],
tagkind=’subset’,
outdir=’./test/’)
例3.
このコードが行うこと:
- ID 28626 の分析からファイルをダウンロードします。
- 「rnaseq_metrics」と「json」のいずれかでタグ付けされたファイル、または「fastqc」と「zip」でタグ付けされたファイルのみが含まれます。
- すべてのファイルを「test」ディレクトリにダウンロードします。
bp.download_analysis(
28626,
tags=[[‘rnaseq_metrics’,’json’],[‘fastqc’,’zip’]],
tagkind=’exact’,
outdir=’./test/’)
このコードが行うこと:
- ID 28626 の分析からファイルをダウンロードします。
- 「rnaseq_metrics」と「json」のいずれかでタグ付けされたファイル、または「fastqc」と「zip」でタグ付けされたファイルのみが含まれます。
- すべてのファイルを「test」ディレクトリにダウンロードします。
結論
私たちは、Basepair の API をできる限り読みやすく、シンプルで、堅牢なものにしました。 優れた API は、チームが非常に短時間で数千のサンプルにスケールアップするのに役立ちます。 強力な並列処理のおかげで、数千の分析を同時に実行できるため、追加サンプルのための時間的負債が発生しません。
この記事はBasepair API featuresを翻訳したものです。