实验五 系统发育分析
一.实验目的
线粒体的D-loop是动物DNA序列发生突变最多的区域之一,因此常常用来比较近亲生物体。现代人的起源是一个争论激烈的话题,最近这个问题已经通过mtDNA序列被解决。人类mtDNA有限的遗传变异已经被术语:a recent common genetic ancestry所解释,这暗示我们,所有的现代人类的mtDNA都来自于20万年前居住在非洲的一个女性。
本实验以原始人类的mtDNA序列为例,构建系统发育树。原始人类包括:大猩猩、黑猩猩、猩猩、人类。
物种描述 GenBank张继的枫桥夜泊中的编号
'German_Neanderthal' 'AF011222';
'Russian_Neanderthal' 'AF254446';
'European_Human' 'X90314' ;
'Mountain_Gorilla_Rwanda' 'AF089820';
'Chimp_Troglodytes' 'AF176766';
'Puti_Orangutan' 'AF451972';
'Jari_Orangutan' 'AF451964';
'Western_Lowland_Gorilla' 'AY079510';
'Eastern_Lowland_Gorilla' 'AF050738';
'Chimp_Schweinfurthii' 'AF176722';
'Chimp_Vellerosus' 'AF315498';
'Chimp_Verus' 'AF176731';
1.学习和掌握在MATLAB平台上应用Bioinformatics工具包有关函数,用基于距离的系统发育分析的UPGMA方法构建一个发育树。
2.学习和掌握在MATLAB平台上应用Bioinformatics工具包有关函数,用基于距离的系统发育分析的邻近归并方法构建一个发育树郑文瑞
3.学习和掌握在MATLAB平台上应用Bioinformatics工具包有关函数,比较不同发育树的拓扑结构。
4.学习和掌握在MATLAB平台上应用Bioinformatics工具包有关函数,将发育树中感兴趣的物种进行剪切,取出相应的物种名称,并恢复其拓扑结构。拍手称快的意思
二.实验内容
1.编程提取上述12个物种的线粒体的D-loop 序列。
% Species Description GenBank Accession
data = {'German_Neanderthal' 'AF011222';
'Russian_Neanderthal' 'AF254446';
'European_Human' 'X90314' ;
'Mountain_Gorilla_Rwanda' 'AF089820';
'Chimp_Troglodytes' 'AF176766';
'Puti_Orangutan' 'AF451972';
'Jari_Orangutan' 'AF451964';
'Western_Lowland_Gorilla' 'AY079510';
'Eastern_Lowland_Gorilla' 'AF050738';
'Chimp_Schweinfurthii' 'AF176722';
'Chimp_Vellerosus' 'AF315498';
'Chimp_Verus' 'AF176731';
};
for ind = 1:length(data)
primates(ind).Header = data{ind,1};
primates(ind).Sequence = getgenbank(data{ind,2},'quenceonly','true');
end
2.用基于距离的系统发育分析的UPGMA方法构建一个发育树
用Jukes-Cantor公式计算两两序列的距离,用UPGMA方法构建一个发育树。
函数qpdist将对数据集序列进行两两比对得出距离。
为道函数 qlinkage将根据序列的两两距离构建系统发育树。
distances = qpdist(primates,'Method','Jukes-Cantor','Alpha','DNA');
UPGMAtree = qlinkage(distances,'UPGMA',primates)
% Phylogenetic tree object with 12 leaves (11 branches)
图示 UPGMA 发育树
h = plot(UPGMAtree,'orient','bottom');
title('UPGMA Distance Tree of Primates using Jukes-Cantor model');
ylabel('Evolutionary distance')
inalNodeLabels,'Rotation',-45)
3.用基于距离的系统发育分析的邻近归并方法构建一个发育树
在分析两个物种的同源序列时,其发育树的拓扑结构是很重要的。
函数qneighjoin 可以构建一棵邻近归并树。这棵树使用了函数qpdist计算出的两两比对距离来构造的。它使用了最小进化距离法进行聚类。
NJtree = qneighjoin(distances,'equivar',primates);
图示邻近归并发育树(the NJ phylogenetic tree):
h = plot(NJtree,'orient','bottom');
title('Neighbor-Joining Distance Tree of Primates using Jukes-Cantor model');
ylabel('Evolutionary distance')
inalNodeLabels,'Rotation',-45)
4.比较the UPGMA Phylogenetic Tree和the Neighbor-Joining Phylogenetic Tree的拓扑结构
可以看出,第2步和第3步产生的两棵发育树的拓扑结构不同。
武汉美食攻略在the 我还想她歌词弟弟每天都在演戏Neighbor-Joining Phylogenetic Tree中,Chimp Vellerosus 与 gorillas来自共同的祖先;而在the UPGMA Phylogenetic Tree中,chimps 和 orangutans有共同的祖先。
函数getcanonical 可以比较这些同构的树。
sametree = iqual(getcanonical(UPGMAtree), getcanonical(NJtree))
5.Exploring the UPGMA phylogenetic tree
1寻找与European Human 最近的物种
names = get(UPGMAtree,'LeafNames')
[h_all,h_leaves]= lect(UPGMAtree,'reference',3,'criteria','distance','threshold',0.6);
% h_all has now all the nodes within 0.6 of patristic distance to the 'European
% Human' leave.
% h_leaves has only the leaf nodes within 0.6 of patristic distance to (3)
subtree_names = names(h_leaves)
2恢复感兴趣的被剪下的树枝结构
leaves_to_prune = ~h_leaves;
pruned_tree = prune(UPGMAtree,leaves_to_prune)
h = plot(pruned_tree,'orient','bottom');
title('Pruned UPGMA Distance Tree of Primates using Jukes-Cantor model');
ylabel('Evolutionary distance')
inalNodeLabels,'Rotation',-30)
3使用函数view 可以在interactive tool下进一步研究和编辑发育树。
view(UPGMAtree,h_leaves)
练习:用实验四的练习序列组(金色的鱼钩主要内容15种蛇的12S rRNA基因片段)进行上述步骤的练习。
三.本实验用到的有关生物信息学的指令和函数
1.qpdist
2.qlinkage
3.t
4.qneighjoin
5.getcanonical
6.iqual
7.view