サンプルコード集 (Biopython)





◯こちらのサンプルコードは指導等にご自由にお使いください。


【サンプルコードの使い方】
◯サンプルコードを写す時はコピペをしないようにしましょう。
◯▶を押すと出力が表示されます。
◯Geminiボタンを押すとGemini(AI)による解説が表示されます。間違っていることもあるので、疑問に思った場合はご質問ください。
◯本マークを押すとカテゴリーの解説が見られます。


【カテゴリーごとのページへ移動】

【Code List】
すべて見る


CODE: c-1 (Biopython)

from Bio import SeqIO # ---- Config ---- #FILE_NAME = "https://www.uniprot.org/uniprot/P59082.fasta" FILE_NAME = "P59082.fasta" def main(): fname = FILE_NAME with open(fname, mode="r") as f: for record in SeqIO.parse(f, "fasta"): id_part = record.id desc_part = record.description seq = record.seq print("id: %s" % (id_part)) print("desc: %s" % (desc_part)) print("seq: %s" % (seq)) return(0) main()


◯pip install biopythonなどでライブラリのインストールが必要。
◯FASTAファイルはこちらからダウンロード->https://www.uniprot.org/uniprot/P59082.fasta
◯SeqIO.parse()だけでFASTAデータを便利に使うことができる。
◯取得したseqに対して文字列処理を行うのが一般。
◯参考: https://qiita.com/Ag_smith/items/94c4b97729b043fae0cb




CODE: c-2 (Biopython)

from Bio import SeqIO # ---- Config ---- FILE_NAME = "P59082.fasta" def calc_gc(seq): gc = (seq.count("G") + seq.count("C")) / len(seq) return(gc) def main(): fname = FILE_NAME with open(fname, mode="r") as f: for record in SeqIO.parse(f, "fasta"): id_part = record.id desc_part = record.description seq = record.seq rev_seq = seq.reverse_complement() gc = calc_gc(seq) print("id: %s" % (id_part)) print("desc: %s" % (desc_part)) print("Reverse complement seq: %s" % (rev_seq)) print("GC: %s" % (gc)) return(0) main()


◯reverse_complement()で逆相補鎖の配列を作成。
◯文字列操作の部分はBiopythonの関数に頼らなくてもOK。むしろ自分自身で書けるようになった方がよい。
◯calc_gc()でGC含量を計算。
◯参考: https://qiita.com/ponnhide/items/0eaf8cbf8aeb35b3b925
◯biopythonのドキュメント: https://biopython.org/wiki/Documentation
◯アップデートによって前まで使われていた関数が使えなくなっていたりするので、あまりBiopythonの関数を信用しないようにしたほうがよい。




CODE: c-3 (Biopython)

from Bio import SeqIO import gzip # ---- Config ---- FILE_NAME = "pdb_seqres.txt.gz" PRINT_NUM = 5 def main(): fname = FILE_NAME f = gzip.open(fname, mode="rt") i = 0 for record in SeqIO.parse(f, "fasta"): id_part = record.id desc_part = record.description seq = record.seq print("id: %s" % (id_part)) print("desc: %s" % (desc_part)) print("seq: %s" % (seq)) i += 1 if ( PRINT_NUM<=i ): break f.close() return(0) main()


◯.gzファイルはこちらからダウンロード: https://files.wwpdb.org/pub/pdb/derived_data/pdb_seqres.txt.gz
◯.gzファイルの読み込みは通常のopen()ではなくgzip.open()を使う。
◯c-0, c-1のようにwithを使ってもいいが、インデントが深くなり可読性が悪くなることがある。今回のようにopen()/close()を使うとインデントが深くならないという利点があるが、close()を忘れないようにしないといけない。
◯今回は出力が延々と続くので、5件で切っている。






レッスン概要

◯月額4,000円で質問し放題!!
◯完全オンライン
◯翌日までには必ず返信
◯挫折しない独自の学習メソッド
◯圧倒的高評価!!
◯テキストベースで時間を選ばない
◯高品質なサンプルコード
詳細はこちら
興味がある方はまず質問だけでもどうぞ!