サンプルコード集 (Biopython)

トップページ>サンプルコード集 (Biopython)

サンプルコード集

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


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


【要素ごとのサンプルコードページへ移動】
全て
if文
for文
関数
配列
ファイル入出力
Numpy
Matplotlib
openpyxl
Pandas
正規表現
Biopython
scikit-learn
seaborn
Graphviz
Gemini
Tkinter

【Code List】

CODE: c-1 (Biopython)

CODE: c-2 (Biopython)

CODE: c-3 (Biopython)



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件で切っている。