实验七 Biopython-2

一、实验目的

1. 掌握Biopython常用序列分析模块:SeqIO,SeqRecord,

2. 掌握Biopython常用系统发生树分析模块:Phylo

二、实验环境

1. 操作系统:windows

2. 主要软件:Jupyter notebook

三. 实验内容

1. 已知文件test.fasta中包含一定数量的DNA序列,请编程将mRNA序列翻译成氨基酸序列,存放在test_protein.fasta中,同时输出到屏幕。

提示:Bio.Seq的对象可直接调用translate()函数进行mRNA的翻译。SeqRecord的对象可以调用format('fasta')函数,格式化生成fasta格式的字符串。

屏幕输出如下所示(部分):

 

2. 已知一个系统发生树存在文件“test.newick”中,请使用draw_ascii()函数绘制系统发生树

提示:使用Phylo.read()函数读取系统发生树文件

输出结果示例(部分):

3. 输出上面系统发生树的所有分支名称。

提示:使用get_terminals()函数可获得树的所有分支名称。

 

4. 修改上面系统发生树的分支名称,把所有分支名称后添加一个*号,并重新使用draw_ascii()函数绘制系统发生树

提示:find_clades()函数可获得所有分支对象;每个分支对象都有name属性,通过修改name属性,即可完成分支名称修改。

输出结果示例(部分):

四、实验报告

1. 使用jupyter notebook文档填写实验报告,导出并提交pdf格式文件。

文件命名规则:星期几+学号+姓名+实验7.pdf

2. 记录实验步骤和实验结果

3. 记录实验中遇到的问题,如何解决的。

1、

from Bio import SeqIO
from Bio.Seq import translate
from Bio.SeqRecord import SeqRecord
from Bio.Seq import Seq

fa = "C:/Users/Polo/Desktop/python 高级编程/test.fasta"
with open("test.fasta", "w") as p:
    for seq_record in SeqIO.parse(fa, "fasta"):
        remainder = len(seq_record.seq) % 3
        seqName = seq_record.name
        record = translate(seq_record.seq)
        if remainder == 0:

            print(SeqRecord(id=seqName, seq=record, description="").format('fasta'))
            p.write(SeqRecord(id=seqName, seq=record, description="").format('fasta'))
        else:
            seq_record = seq_record + Seq('N' * (3 - remainder))

            print(SeqRecord(id=seqName, seq=record, description="").format('fasta'))
            p.write(SeqRecord(id=seqName, seq=record, description="").format('fasta'))

p.close()

2、

from Bio import Phylo

tree = Phylo.read('C:/Users/Polo/Desktop/python 高级编程/test.newick', 'newick') 

Phylo.draw_ascii(tree)

3、

from Bio import Phylo

tree = Phylo.read('C:/Users/Polo/Desktop/python 高级编程/test.newick', 'newick')
Branchname = tree.get_terminals()
for i in range(0,99):
    try :
        print(Branchname[i],end='   ')
    except:
        break

4

from Bio import Phylo
from Bio.Phylo import draw_ascii

tree = Phylo.read('C:/Users/Polo/Desktop/python 高级编程/test.newick', 'newick')
Branchname = tree.get_terminals()
for i in range(99):
    try:
        tree.get_terminals()[i].name = str(Branchname[i]) + "*"
    except:
        break
draw_ascii(tree)

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值