こんにちは、iijm_lです🐰
12月になりました、今年ももうすぐ終わっちゃいますね🥺
来年もいい年になりますように...🍊(もう既に年末気分)
さて今回紹介するのは、
ゲノム配列ファイルから染色体毎の配列ファイルを作成する方法
です🌟
稀に、全ゲノム配列FASTAだけでなく、染色体ごとのFASTAが必要な解析ツールってありますよね〜。
先日気軽な感じで、
🐰「ツールの機能知りたいから、とりあえずテスト解析してみよ〜🥳」
と思って実行してみたら、
💻「染色体ごとのFASTAが無いよ、用意して😡」
と怒られてしまいました。
全ゲノムのFASTAならある、、、そんな時はpythonですぐに解決できます💫
動作確認環境
- python 3.7.9
- Biopython 1.78
参考スクリプト
BiopythonのSeqIOを使って、FASTAをリードごとに分割し出力させます。
#!/bin/env python import os from Bio import SeqIO as SIO genomefile = '/home/genome/hg38/genome.fa' outdir = '/home/genome/hg38/byChr/' # make outdir try: os.makedirs(outdir) except FileExistsError: pass # separate by chrom number for record in SIO.parse(genomefile, 'fasta'): if not record.id.startswith('chr'): continue outfile = os.path.join(outdir, record.id + '.fa') SIO.write(record, outfile, 'fasta')
変数genomefile
、outdir
に指定するファイルパスは環境に合わせて指定してくださいね😉
ついでに出力ディレクトリ作成機能も付けてみました。
書き出し権限があるディレクトリを指定しないと、エラーを吐くので注意が必要です。
いざ、実行!!!
$ python sepbychr.py
1分ほどかかって正常終了しました⏱
果たしてファイルはできているのでしょうか...?
$ ls /home/genome/hg38/byChr/
chr1.fa chr13.fa chr17.fa chr20.fa chr4.fa chr8.fa chrY.fa
chr10.fa chr14.fa chr18.fa chr21.fa chr5.fa chr9.fa
chr11.fa chr15.fa chr19.fa chr22.fa chr6.fa chrMT.fa
chr12.fa chr16.fa chr2.fa chr3.fa chr7.fa chrX.fa
成功しました👏🏻
※染色体の種類は、使用したリファレンスゲノムに依存しますので、上記と異なる場合がございます。
まとめ
BiopythonのSeqIOを使えば、FASTA形式のデータが簡単にparseできます✨
FASTQ形式やその他いろいろな形式がparse/outputできるので、非常に便利ですよ!