此代码是较为用户友好型的脚本,用于某一特征基因集与功能、通路之间的相关性分析,其中有较多可供选择的参数,且可以自定义参数组合进行相关性分析。
PS:也可以用于单个基因与功能、通路之间的相关性分析。
此外还提供了将基因集统一转换为Symbol以及批量运行多种参数组合的批处理脚本。
直接下载并在本地使用
- GeneSignature-Pathways_Correlation.Rmd:相关性分析
- GSEA_GeneSets_ID2Symbol.Rmd:GeneID基因集转换为Symbol
- GSEA_GeneSets_Normalize2Symbol.Rmd:GeneName基因集转换为Symbol的脚本(不推荐
- loop.R:多种参数组合的批量相关性分析
- .\lib\GeneSignature-Pathways_Correlation_Function.R:GeneSignature-Pathways_Correlation.Rmd的配套自定义函数
该代码通过使用基因表达谱信息,分析某一个Gene Signature与GO功能注释、Pathway通路之间的相关性分析。Gene Signature是一组具有生物学意义的基因集合,通过该组基因集的表达计算该Signature的打分,来代表该Signature在样本中的表达情况。
(ps:支持输入单个基因,计算该基因与各功能、通路之间的相关性
-
材料
注意:运行脚本需要将所有原始数据放置于工作目录下的data文件夹中- 表达谱数据:来自TCGA或CGGA的数据,或者其他表达谱数据
数据要求:行为基因,列为样本,且为csv格式- TCGA数据:可以从TCGA官网下载数据并通过script:TCGA_Rawdata_Merge-Expression.Rmd,或者其他方式获得
- CGGA数据:可以从CGGA官网下载数据并通过Project:CGGA_RawData_Merge-Combat,或其他方式获得
- 其他表达谱数据
- Gene名称对应Symbol注释文件
推荐从NCBI GENE上下载Homo_sapiens.gene_info.csv - GO功能注释和通路基因集
数据要求:需为gmt格式
推荐从GSEA MSigDB网站上下载Gene ID组成的基因集文件
(原因:若下载Gene Symbols的文件,基因集会少于网站所展示的数量,同时部分基因并不是Symbol)
注意:- 需要同时下载GO功能注释和Pathway的基因集,或者内部手动修改代码从而仅计算与其中一个的相关性。
- 可以通过GSEA_GeneSets_ID2Symbol.Rmd或者GSEA_GeneSets_Normalize2Symbol.Rmd将基因集统一转换为Symbol
- 配套自定义函数集
.\lib\GeneSignature-Pathways_Correlation_Function.R:GeneSignature-Pathways_Correlation.Rmd
- 表达谱数据:来自TCGA或CGGA的数据,或者其他表达谱数据
-
参数
建议所有路径信息都为绝对路径。若将该脚本放置于工作目录下双击打开,可以选择使用相对路径workdir
:工作目录libdir
:配套自定义函数集expression_file
:表达谱数据- "\data\XXX.csv"
GOGeneSet
:GO基因集- "\data\XXX.gmt"
PWGeneSet
:Pathway基因集- "\data\XXX.gmt"
GeneSet_Name_Normalized
:基因集基因名称是否通过GSEA_GeneSets_ID2Symbol.Rmd或GSEA_GeneSets_Normalize2Symbol.Rmd进行转换- TRUE
- FALSE
GeneNameAnno
:Gene名称对应Symbol注释文件- "\data\XXX.csv"
SignatureGenes_Name
:基因Signature的名称或单个基因名称- "m6A_Signature_Genes"
- "STK26"
SignatureGenes
:基因Signature中基因集,用逗号","分隔corAnalysis_Method
:相关性分析方法:- "pearson"
- "spearman"
calOrder
:计算Signature时标准化的选择:- "standFirst":每个基因先在所有样本中进行标准化,再计算Signature Score
- "calFirst":先计算Signature Score,再进行标准化
- "noStand":不进行标准化
pickMethod
:计算Signature Score的方法:- "mean":每个样本中Signature Genes的平均表达值
- "median":每个样本中Signature Genes的中间表达值
log
:对数转换- "log2(n)"
- "log2(n+1)"
- FALSE
exp
:取幂- TRUE
- FALSE
该代码用于将从GESA MSigDB网站上下载的Gene IDs组成的基因集,统一转换成Gene Symbol的形式
- 材料
注意:运行脚本需要将所有原始数据放置于工作目录下的data文件夹中- Gene名称对应Symbol注释文件
推荐从NCBI GENE上下载Homo_sapiens.gene_info.csv - GO功能注释和通路的GeneID基因集
数据要求:需为gmt格式
从GSEA MSigDB网站上下载Gene ID组成的基因集文件
注意:- 需要同时下载GO功能注释和Pathway的基因集,或者内部手动修改代码从而仅计算与其中一个的相关性。
- Gene名称对应Symbol注释文件
- 参数
workdir
:工作目录libdir
:配套自定义函数集resultsdir
:结果文件夹(不建议更改picsdir
:图片文件夹(不建议更改GOGeneset
:GO基因集- "\data\XXX.gmt"
PWGeneSet
:Pathway基因集- "\data\XXX.gmt"
GeneNameAnno
:Gene名称对应Symbol注释文件- "\data\XXX.csv"
该代码用于将从GESA MSigDB网站上下载的Gene Symbols组成的基因集,统一转换成Gene Symbol的形式
- 材料
注意:运行脚本需要将所有原始数据放置于工作目录下的data文件夹中- Gene名称对应Symbol注释文件
推荐从NCBI GENE上下载Homo_sapiens.gene_info.csv - GO功能注释和通路的GeneID基因集
数据要求:需为gmt格式
从GSEA MSigDB网站上下载Gene Symbols组成的基因集文件
注意:- 需要同时下载GO功能注释和Pathway的基因集,或者内部手动修改代码从而仅计算与其中一个的相关性。
- Gene名称对应Symbol注释文件
- 参数
workdir
:工作目录libdir
:配套自定义函数集resultsdir
:结果文件夹(不建议更改picsdir
:图片文件夹(不建议更改GOGeneset
:GO基因集- "\data\XXX.gmt"
PWGeneSet
:Pathway基因集- "\data\XXX.gmt"
GeneNameAnno
:Gene名称对应Symbol注释文件- "\data\XXX.csv"
该脚本为相关性分析的批处理脚本,可以输入不同参数组合进行批量运算。
- 参数
-
rmd
:GeneSignature-Pathways_Correlation.Rmd所在位置和该rmd文件 -
workdir
:工作目录 -
libdir
:配套自定义函数集目录 -
expr_file
:表达谱数据- "\data\XXX.csv"
-
GOGeneset
:GO基因集- "\data\XXX.gmt"
-
PWGeneSet
:Pathway基因集- "\data\XXX.gmt"
-
GeneSet_Name_Normalized
:基因集基因名称是否通过GSEA_GeneSets_ID2Symbol.Rmd或GSEA_GeneSets_Normalize2Symbol.Rmd进行转换- TRUE
- FALSE
-
GeneNameAnno
:Gene名称对应Symbol注释文件- "\data\XXX.csv"
-
SignatureGenes_Name
:基因Signature的名称或单个基因名称- "m6A_Signature_Genes"
- "STK26"
-
SignatureGenes
:基因Signature中基因集,用逗号","分隔 -
corAnalysis_Methods
:相关性分析方法(单个字符串/向量)- "pearson"
- "spearman"
-
calOrders
:计算Signature时标准化的选择(单个字符串/向量)- "standFirst":每个基因先在所有样本中进行标准化,再计算Signature Score
- "calFirst":先计算Signature Score,再进行标准化
- "noStand":不进行标准化
-
pickMethods
:计算Signature Score的方法(单个字符串/向量)- "mean":每个样本中Signature Genes的平均表达值
- "median":每个样本中Signature Genes的中间表达值
-
exps
:取幂(单个字符串/向量)- TRUE
- FALSE
-
logs
:对数转换(单个字符串/向量)- "log2(n)"
- "log2(n+1)"
- FALSE
-
这个Project是我在硕士生涯中第一份工作,由于参考文献中没有完善的流程介绍,所以一切的一切都是从零开始摸索,包括(TCGA和)CGGA的数据下载及预处理(去批次效应);包括怎么计算Signature的打分(median/exp的组合是另一篇老师推给的文献中使用的方法;而log(n+1)是GEPIA2中使用的方法;预先进行标准化,并且取平均值是肖肖老师给出的很棒的指导,对此我深信不疑);包括最后相关性分析的使用。耗时两个月经过艰辛的过程(hh好像也没有特别的艰辛),最终摸索出来的这么一套Protocal。感谢在这之中为我提供思路与帮助的添枝老师、肖肖老师和我的好朋友Merle Zhang。
截至我完善这篇README文档为止,文献的图也没有能够完全的复现出来的。喜人的是,使用我认为较为正确的一套参数组合后,经TCGA和CGGA数据计算出的强正相关性的功能与通路基本一致,但强负相关性的overlap结果差强人意,CGGA的最终计算得到的负相关性的数据也很少。后续可能要继续尝试其他参数组合(CGGA的样本量太大每次计算一个参数组合就要3、4h左右orz)。
总之,能够近乎完成这样的一个Project内心多少还是有一点自豪感的,都说代码人最快乐的时候就是当自己的代码普适性很高,于是乎就可以拿着一杯果茶看着代码在后台自己慢慢跑,就好像看着自己长大了的小孩子一样。
如果你有兴趣看我这比较水的代码并提出一些改良的意见,我会非常感谢你的:)。
就这样,Peace out.