📜  Biopython - 序列操作(1)

📅  最后修改于: 2023-12-03 15:13:39.456000             🧑  作者: Mango

Biopython - 序列操作

Biopython是一个专门用于生物信息学的Python函数库,提供了方便的序列解析、序列比较和其他生物信息分析工具。其中序列操作是其最重要的功能之一。

安装

在命令行中输入以下命令即可安装Biopython:

pip install biopython
序列读取

Biopython可以直接读取FASTA(.txt或者.fasta),GenBank(.gbk或者.gb),以及其他格式的序列。

from Bio import SeqIO

seq_record = SeqIO.read("sequence.fasta", "fasta")

print(seq_record.id)
print(seq_record.seq)

输出结果:

gi|2765658|emb|Z78533.1|CIZ78533
AGTGGCACCGCGGTGATGATTTGGAACTGC
序列操作

Biopython可以对DNA、RNA、蛋白质等不同类型的序列进行各种操作。

翻译

可以将DNA/RNA序列翻译成蛋白质序列。

from Bio.Seq import Seq

dna_seq = Seq("ATGGCCATTGTAATGGGCCGCTGAAAGGGTGCCCGATAG")

protein_seq = dna_seq.translate()

print(protein_seq)

输出结果:

MAIVMGR*KGAR*
互补链、反向互补链

可以通过DNA序列计算其互补链或反向互补链,

from Bio.Seq import Seq

dna_seq = Seq("ATGGCCATTGTAATGGGCCGCTGAAAGGGTGCCCGATAG")

complement = dna_seq.complement()
reverse_complement = dna_seq.reverse_complement()

print(complement)
print(reverse_complement)

输出结果:

TACCGGTAACATTACCCGGCGACTTCCCACGGGCTATC
CTATCGGGCACCCCTTTCAGCGGCCCATTACAATGGCCAT
片段截取

可以截取序列的片段。

from Bio.Seq import Seq

dna_seq = Seq("ATGGCCATTGTAATGGGCCGCTGAAAGGGTGCCCGATAG")

sub_seq = dna_seq[3:8]

print(sub_seq)

输出结果:

GCCAT
序列比对

可以使用Biopython的pairwise2模块进行序列比对。

from Bio import pairwise2
from Bio.Seq import Seq

seq1 = Seq("ATCGTACGATCG")
seq2 = Seq("ATCGTACGCGTT")

alignments = pairwise2.align.globalxx(seq1, seq2)

for alignment in alignments:
    print(pairwise2.format_alignment(*alignment))

输出结果:

ATCGTACGATCG
||||||||||.
ATCGTACG-CGTT
  Score=11
小结

Biopython提供了方便的序列解析、序列比较和其他生物信息分析工具,针对生物科研工作者尤为有用。从简单的序列读取、翻译和互补链到复杂的序列比对等,Biopython都给出了许多方便的接口和工具供开发者使用。