此项目使用到火山图流程。
根据流程说明文件 安装依赖。
数据和结果文件是分析过程中生成的,此步骤不需要建立。
BMG191024001-volcano_map_edgerAML
├── v1
│ ├── results
│ │ ├── 结果:BMG191024001-volcano_map_edgerAML-v1.1
│ │ │ ├── 报告:BMG191024001-volcano_map_edgerAML.docx
│ │ │ ├── Figure
│ │ │ │ ├── Figure1.pdf
│ │ │ │ └── Figure1.tif
│ │ │ └── Table
│ │ └── 结果:BMG191024001-volcano_map_edgerAML-v1.2
│ │ ├── 报告:BMG191024001-volcano_map_edgerAML.docx
│ │ ├── Figure
│ │ │ ├── Figure1.pdf
│ │ │ └── Figure1.tif
│ │ └── Table
│ └── runtime
│ ├── ANALYSIS.md
│ ├── data
│ │ └── edgerAML.tsv
│ ├── doc
│ ├── figs
│ │ ├── volcano_map.pdf
│ │ └── volcano_map.tif
│ ├── output
│ └── src
│ └── volcano_map.R
└── VERSION.md
-
关于版本控制
在做实际项目分析时,项目有所调整是很常见的情况。为了对项目进行控制,可以在 项目根目录中分别建立版本子目录。例如,正常情况下,一个新的项目根目录下至少要 有一个文件夹
v1
和一个对版本说明文件VERSION.md
。文件夹v1
包含最初版本 所有文件。版本说明文件VERSION.md
意在说明进行版本变更时变更的目的 (版本变更文件VERSION.md
模板)。当需要进行项目调整时,可以建立
v2
目录。然后根据v1
的目录结构,建立相同的目录结构。 拷贝相应的原始数据和代码。不能拷贝v1
目录中的任何结果文件,如果需要该文件,可以根据v2
中的代码再次生成。原则是v2
中的文件除了原始文件之外不应该与v1
中的文件 有任何关系。 -
关于
results
与runtime
目录的目的runtime
包含所有项目分析过程中的数据、程序、临时文件、结果文件、所需文档。当分析完成,需要向客户展示结果、发送报告时,可以将
runtime
中的文件整理、 拷贝或者其他任何方式发送到results
目录中。 -
runtime/ANALYSIS.md
是用来做什么的?分析过程中,往往需要执行一些步骤。可以把每个步骤需要执行哪个脚本 写到
ANALYSIS.md
里面(即分析的过程)。此外:- 脚本除了生成文件之外可以产生一些其他的结果,这些结果也可以写入
到该
ANALYSIS.md
中。例如,当进行无监督聚类时,分类数就可以 写入到该ANALYSIS.md
中。 - 脚本的输入、输出文件有可能需要手工处理,也可以把手工操作的逻辑写在里面
- 脚本除了生成文件之外可以产生一些其他的结果,这些结果也可以写入
到该
-
runtime
目录结构说明- data: 用于存放原始数据
- doc: 项目的一些文档。例如,项目的方案文档、做项目过程中查询的一些重要文档
- figs: 分析过程中生成的图片
- output: 分析过程生成的表格及其他文本文件
- src:程序文件
切换到当前版本的runtime
目录(本例中即:v1/runtime
):
-
画图
-
准备数据(本例中也即把
edgerAML.tsv
拷贝到data
目录) -
拷贝volcano_map流程中的 src/volcano_map.R 到
src
目录 -
根据文档做相应的修改(针对探索性步骤)
-
运行
volcano_map.R
$ src/volcano_map.R --png figs/volcano_map.png --pdf figs/volcano_map.pdf data/edgerAML.tsv
-
结果一般包括:
1. 报告(本例:报告:BMG191024001-volcano_map_edgerAML.docx)
2. 附图(本例:Figure目录)
3. 附表(本例:Table目录)
关于结果的版本:
一次分析可以根据客户的需求持续更新报告,所以一次分析可能产生多个版本的结果。
为了区分流程的版本,推荐使用两位的版本号,例如:v1.1。其中第一位代表流程的
版本号,第二位代表该流程运行的第几个版本的结果。例如:v1.1代表v1版本的流程
的第一个版本的结果。
results
├── 结果:BMG191024001-volcano_map_edgerAML-v1.1
│ ├── 报告:BMG191024001-volcano_map_edgerAML.docx
│ ├── Figure
│ │ ├── Figure1.pdf
│ │ └── Figure1.tif
│ └── Table
└── 结果:BMG191024001-volcano_map_edgerAML-v1.2
├── 报告:BMG191024001-volcano_map_edgerAML.docx
├── Figure
│ ├── Figure1.pdf
│ └── Figure1.tif
└── Table
项目运行完成之后,在results
目录创建相应版本的结果文件夹,例如:v1.1
,建立对应的目录结构。然后建立报告。
边撰写报告,边把对应的附图、附表拷贝到Figure
、Table
目录。
报告撰写完成之后,如果还需要修改,可以直接进行修改,不需要更新版本。如果这个时候结果已经发送到项目组,仍需要修改的话
就需要建立一个新的结果目录,例如:v1.2
,拷贝需要结果到新的目录再进行修改。
就需要建立一个新的结果目录,例如:v1.2
,拷贝需要结果到新的目录再进行修改。目录
就需要建立一个新的结果目录,例如:v1.2
,拷贝需要结果到新的目录再进行修改。
我们在审核项目代码的时候发现,很多技术的runtime
文件夹很难按照上面的步骤执行。为了适应这些技术的习惯,在过渡期内,我们制定了一个过渡的runtime
目录方案(这里是过渡期内runtime
目录的组织方式,results
目录方式不变)。
假使有一个项目需要如下几个步骤:
- 数据预处理
- 差异表达分析
- 无监督聚类
- 生存分析
执行分析的流程可以是这样的:
-
建立
0、数据文档
,把原始数据raw-exp.txt
、raw-pheno.txt
拷贝到该目录,把项目方案拷贝到该目录 -
建立
1、数据预处理
目录 -
创建
1、数据预处理/数据预处理.R
(此步骤使用到原始数据,禁止将原始数据拷贝到该目录) -
运行
1、数据预处理/数据预处理.R
,生成:1、数据预处理/exp.txt
1、数据预处理/pheno.txt
1、数据预处理/pca.pdf
、1、数据预处理/pca-72.tif
、1、数据预处理/pca-300.tif
1、数据预处理/heatmap.pdf
、1、数据预处理/heatmap-72.tif
、1、数据预处理/heatmap-300.tif
-
建立目录
2、差异表达分析
-
创建
2、差异表达分析/差异表达分析.R
(此脚本使用到第一步数据,禁止将第一步数据拷贝到这个目录) -
运行
2、差异表达分析/差异表达分析.R
,生成:2、差异表达分析/degs.txt
2、差异表达分析/exp-degs.txt
2、差异表达分析/volcano.pdf
、2、差异表达分析/volcano-72.tif
、2、差异表达分析/volcano-300.tif
-
...
使用该目录格式需要注意:
- 必须要有
0、数据文档
目录,必须把原始数据、项目方案放到该目录 - 目录名称按照
【步骤序号】、【步骤简要说明】
组织,例如,第一步数据预处理的文件夹名称为:1、数据预处理
(注意,这里必须使用顿号) - 代码名称为
【步骤简要说明】.ext
,例如,第一步数据预处理的代码为:1、数据预处理/数据预处理.R
- 使用其他步骤数据时,禁止将数据拷贝到本步骤目录
- 每一步的数据、代码、输出图片、输出表格均处于同一目录
- 每一步只有一个代码(如果需要建立多个代码文件,请考虑设置为两个步骤)
.
├── 0、数据文档
│ ├── raw-exp.txt
│ ├── raw-pheno.txt
│ └── 项目方案.doc
├── 1、数据预处理
│ ├── exp.txt
│ ├── heatmap-300.tif
│ ├── heatmap-72.tif
│ ├── heatmap.pdf
│ ├── pca-300.tif
│ ├── pca-72.tif
│ ├── pca.pdf
│ ├── pheno.txt
│ └── 数据预处理.R
├── 2、差异表达分析
│ ├── degs.txt
│ ├── exp-degs.txt
│ ├── volcano-300.tif
│ ├── volcano-72.tif
│ ├── volcano.pdf
│ └── 差异表达分析.R
├── 3、无监督聚类
│ ├── README
│ ├── clusters.txt
│ ├── heatmap-300.tif
│ ├── heatmap-72.tif
│ ├── heatmap.pdf
│ └── 无监督聚类.R
├── 4、生存分析
│ ├── surv-300.tif
│ ├── surv-72.tif
│ ├── surv.pdf
│ └── 生存分析.R
└── README
-
REDME
的用处是什么?在本方案中,文件夹名称表明了分析步骤,大部分情况下不需要特别说明。如果有文件夹名称说明不了的问题,可以写入
README
文件 -
3、无监督聚类/README
的用处是什么?有些步骤可能输出一些即不是图也不是表的数据(例如,无监督聚类的最佳分类数),这些数据可以写入到该步骤的
README
文件中 -
README
文件的格式有要求吗?没有特别要求,文本、word、markdown、reStructuredText等都可以。