例如下图示例,为了研究某些基因在肿瘤组织和正常组织中是否具有表达量的显著不同,在取样时,往往会在同一患者个体中同时获取肿瘤和临近正常组织,两个组织样本就是配对关系。当然在这类研究中,往往需要调查很多的患者,因此会获得大量的配对样本。随后,通过qPCR或RNA-seq等方法定量基因表达后,以箱线图呈现特定基因在肿瘤组织和正常组织中的整体表达水平,并在箱线图中以散点表示具体的样本,此时对于具有配对关系的肿瘤组织和正常组织样本,就可以通过连线连接起来。
这种配对箱线图的好处是,除了能够表现两组的整体差异,还能够清晰地呈现单个样本的前后改变。
本篇教程,就让我们带大家学习如何使用R语言绘制这种配对箱线图。
类似地,假设我们也期望查看某基因(例如MAP2)在肿瘤组织和正常组织中的表达改变情况,在收集了配对样本并检测了这些样本中基因表达水平后,配置这样一张表。
samples是样本名称;MAP2是基因MAP2在各样本中的表达值;group1是样本分组,告知它们来源于肿瘤组织还是正常组织;group2是配对样本信息,配对的两样本设置为同一亚组。
备注: 该示例数据集可点击这里获取。
随后,将上述示例数据导入R中。
绘制箱线图表示两组基因的整体表达水平,并以散点表示样本,配对样本间以连线连接。
这样,配对箱线图就获得了。
箱线图描述了组间基因表达水平改变的趋势,在该图中可以看到MAP2基因的表达在肿瘤组织和正常组织中是不一致的。后续如有需要,不妨执行配对样本的t检验等,计算显著性p值,作为评判基因表达显著差异的指标。
如果用perl来编写统计fasta序列的长度脚本,很简单的几行代码就可以搞定,但是想了想,觉得用python写更时候处理大的文件,尤其是想用python实现多线程处理。因此,就有了用python来编写最初版的统计fasta序列长度的脚本的想法。运行方法:nohup python stat_length.py input.fasta >input.len &
运行结果:
>Aquca_005_00607.1_Acoerulea429
>Aquca_1939_00001.1_Acoerulea 534
>Aquca_005_00568.1_Acoerulea369
>Aquca_033_00023.1_Acoerulea447
>Aquca_005_00384.1_Acoerulea1461
源代码如下:
#!/usr/bin/python
import sys,os,re
def process_file(reader):
'''Open, read,and print a file'''
names=[]
index=0
dict={}
for line in reader:
if line.startswith('>'):
if index >=1:
names.append(line)
index =index+1
name=line[:-1]
seq = ''
else:
seq +=line[:-1]
dict[name]=seq
return dict
if __name__ == "__main__":
input_file=open(sys.argv[1],"r")
reader=input_file.readlines()
items=process_file(reader)
for key in items:
length=int(len(items[key]))
print "%s\t%d" %(key,length)
input_file.close()
后记:后面会更新用多线程的方法来实现python统计fasta的序列长度,再和这个脚本进行对比。
在这之前我们学习了聚类分析的基本概念、几种计算层次聚类的方法、进一步解读和比较层次聚类结果以及非层次聚类,这些聚类方法都是基于物种多度数据对样方进行分组,当然这些聚类方法也可以用于其他类型数据,特别是环境数据,所以本次就是介绍用 环境数据来进行聚类分析 。
本次的内容不多,主要分为两个部分:
我们之前学习的主要是内部的准则(例如轮廓法或其他聚类质量指数)都是仅仅依赖物种数据,还不足以选择最佳样方聚类结果。选择最终的聚类结果有时也需要基于生态学解释。生态学解释可视为样方聚类的外部验证。
下面的我们将学习用 样方聚类簇为因子 去对 解释变量进行方差分析 。
尽管在方差分析中,是将物种组成数据获得的聚类的分组结果作为解释变量,但是从生态学角度去分析,实际上是寻找环境因子对样方的分组的解释 。
以下可以使用作者编写的通用函数,执行方差分析的多重比较和显示带有字母的环境变量分组后箱线图多重比较结果。不同字母表示组间有显著差异(按中位线递减顺序组)。
基于上面这些分析和图示,能确定这组鱼类群落的生态习性。
当然,我们也可以基于环境变量对样方进行聚类(类似获得生境类型的分组),然后通过指示种分析(以后会讲)检验不同生境内物种分布是否有差异。指示种分析过程中基于不同的生境类型物种需要逐个分析。因此,需要考虑多个物种指示种分析时会产生多重检验的统计学问题。
另外,作为替代方案,之后第6章会提出基于排序的多元方法,也可以直接描述和检验物种-生境关系。请期待。
要是想直接比较分别基于物种数据和环境数据的样方聚类结果该怎么办呢?
同时列联表分析同样适用于比较分别基于物种数据和分类(定性)解释变量数据的样方聚类结果。
用环境数据进行比较的内容就是这些,虽然不是很多,但是要联系之前学习的才能更好的掌握它,所以还是有难度的,主要是用 外部数据进行类型比较(方差分析途径)和双类型比较(列联表分析 两部分内容,好好学习掌握他。
谢谢你的阅读,请期待下一期数量生态学:R语言的应用 第四章 聚类分析5—聚类物种集合
《数量生态学:R语言的应用》第三章-R模式
《数量生态学:R语言的应用》第二版第三章-关联测度与矩阵------Q模式
《数量生态学:R语言的应用》第二版笔记2
《数量生态学——R语言的应用》第二版阅读笔记--绪论和第二章(一部分)
R语言 pheatmap 包绘制热图(基础部分)
R语言pheatmap包绘制热图进阶教程
使用PicGo和gitee搭建图床
组间分析—T检验、R语言绘图
Rmarkdown的xaringan包来制作PPT
htlm文件部署到个人网站