Biopython学习笔记(一)

作者: 生信start_site | 来源:发表于2020-03-31 10:55 被阅读0次

    对生物狗来说(起码对我来说),学python的目的是解决一些生物学上的问题。那么这有一个软件叫Biopython(官网https://biopython.org/),这个软件可以帮助我们实现这一目的。关于这个软件的使用说明,非常长,如下:

    《Biopython-Biopython Tutorial and Cookbook》
    英文版下载地址:http://biopython.org/DIST/docs/tutorial/Tutorial.pdf(英文版,2019年12月更新版)
    中文版地址:https://biopython-cn.readthedocs.io/zh_CN/latest/index.html(注意中文版是根据英文版2013年版更新的教程翻译的)

    本文只记录重点内容,最好还是自己看一下英文原版,练习英语的同时你也可以发现对于你来说最重要的部分!

    第一章 介绍

    (一)安装Biopython
    这我只说最简单的安装方法,前提是你的电脑已经安装了Python(并且安装了pip和numpy)。教程里关于安装这一块也是只有一行代码,是的,你没看错,只有一行代码:

    >>> pip install biopython
    

    (二)如何查看Biopython是否可以运行
    首先你要先启动你的python:

    $ python
    Python 3.6.3 |Anaconda, Inc.| (default, Oct 13 2017, 12:02:49) 
    [GCC 7.2.0] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import Bio ##调用你的Biopython软件
    >>> print(Bio.__version__)  #查看你的Biopython软件版本号
    1.76
    

    如果你这两步没有报错,那么恭喜你,安装成功了。如果没有安装成功,那么在“import Bio”这一步就会报错。

    如果你按照上面的步骤,却无法成功安装的话,请看这里:https://biopython.org/wiki/Download
    这里给你提供了很多种安装方法。

    第二章 快速开始你的Biopython学习旅程(两个例子)

    因为在学习过程中需要链接很多数据库,所以请保持网络的畅通!
    (1)如何获得互补序列和反向互补序列
    在生物信息学里,序列是一个中心的对象了。在Biopython里,处理序列用Seq对象。
    来几句最简单的代码先体会一下:

    #先打开你的python,我这里是linux系统,直接在ubuntu里打开的
    $ python
    Python 3.6.3 |Anaconda, Inc.| (default, Oct 13 2017, 12:02:49) 
    [GCC 7.2.0] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> from Bio.Seq import Seq
    >>> my_seq = Seq("AGTACACTGGT")
    >>> my_seq
    Seq('AGTACACTGGT')
    >>> my_seq.complement()
    Seq('TCATGTGACCA')
    >>> my_seq.reverse_complement()
    Seq('ACCAGTGTACT')
    

    上面可以看到,很简单的代码可以得到一个序列的互补序列和反向互补序列。
    (2)如何将获取多条fasta中相同的序列
    练习数据在这里:https://raw.githubusercontent.com/biopython/biopython/master/Doc/examples/ls_orchid.fasta

    >>> from Bio import SeqIO
    >>> for seq_record in SeqIO.parse("/media/yanfang/FYWD/Bioinformatic/Biopython/example.fasta","fasta"):
    ...     print(seq_record.id) #获取每一个fasta基因的名称
    ...     print(repr(seq_record.seq))
    ...     print(len(seq_record))
    

    然后你会得到如下结果:

    gi|2765658|emb|Z78533.1|CIZ78533
    Seq('CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGG...CGC', SingleLetterAlphabet())
    740
    .
    .
    .#这里省略很多行
    gi|2765564|emb|Z78439.1|PBZ78439
    Seq('CATTGTTGAGATCACATAATAATTGATCGAGTTAATCTGGAGGATCTGTTTACT...GCC', SingleLetterAlphabet())
    592
    

    同样,对于从Genebank下载的文件该怎么做?你可以在这里下载练习数据:https://raw.githubusercontent.com/biopython/biopython/master/Doc/examples/ls_orchid.gbk
    代码几乎一样:

    >>> from Bio import SeqIO
    >>> for seq_record in SeqIO.parse("/media/yanfang/FYWD/Bioinformatic/Biopython/ls_orchid.gbk", "genbank"):
    ...     print(seq_record.id)
    ...     print(repr(seq_record.seq))
    ...     print(len(seq_record))
    

    而你得到的结果是这样的:

    Z78533.1
    Seq('CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGG...CGC', IUPACAmbiguousDNA())
    740
    ......
    Z78439.1
    Seq('CATTGTTGAGATCACATAATAATTGATCGAGTTAATCTGGAGGATCTGTTTACT...GCC', IUPACAmbiguousDNA())
    592
    

    当然Biopython还可以干更多的事情,比如练习数据库,都会在说明书后面的章节里提到。

    相关文章

      网友评论

        本文标题:Biopython学习笔记(一)

        本文链接:https://www.haomeiwen.com/subject/wbjiuhtx.html