saisaitian / TCMR

Other
1 stars 0 forks source link

Step 4:差异分析 #6

Closed ShixiangWang closed 3 years ago

ShixiangWang commented 3 years ago

完成小分子调控的差异表达分析

这里你是准备只提供结果还是说分析代码也作为函数提供?@saisaitian

注意⚠️:如果你要提供差异表达分析的数据给用户使用,记得将处理过程放到 https://github.com/saisaitian/TCM_Microarray/tree/main/data-raw 目录下,不要放到根目录或R目录下。

ShixiangWang commented 3 years ago

这个你要存储哪些结果到包里,然后提供哪些函数在未实现前和实现后都可以在这里讨论下。

saisaitian commented 3 years ago
  1. 首先可以完成自己的数据的差异表达分析
  2. 允许用户输入表达谱数据,然后提供一个函数可以支持用户的表达差异分析
  3. 用户的表达谱和我们的内部表达谱,希望可以计算一个相关性
ShixiangWang commented 3 years ago

你有空把 首先可以完成自己的数据的差异表达分析 这个做了吧,一些写好的函数就存到 R 包里面,但整个过程最好在 data-raw 下创建一个脚本记录。

saisaitian commented 3 years ago

ok

saisaitian commented 3 years ago

image 上传了一个deg.R的脚本,完成批量差异分析,并把结果保存成list对象,需要说明的一点就是,如下图 image 这个GSE里面一共有6个DMSO对照,每个重复两次,所以实际上是分3个批次进行的实验,比如GSM2286316 和GSM2286317是另个DMSO,那么他前面的样本都是和这个对照做差异的,所以后面的情况也是类似,然后基于这个思路,完成了批量差异分析

saisaitian commented 3 years ago

另外还有一个问题,想咨询你,如下图所示的两个文件夹,是怎样生成的?这一块我没怎么看到 image

saisaitian commented 3 years ago

脚本放在了data-raw下面了

ShixiangWang commented 3 years ago

@saisaitian 好,我有空看下还有什么需要调整的。

你说的两个文件夹 data-raw usethis 包有一个 use_data_raw() 函数,然后 inst 是直接创建的。很多东西并不需要使用特定函数去生成,学习和了解R包的结构和目录就清楚了。

ShixiangWang commented 3 years ago

@saisaitian 我没有看到你的差异分析结果。前面的图你想说全部实验样本来自3个批次,每个批次都有实验样本和对照样本,然后是对每个批次单独做差异分析?

saisaitian commented 3 years ago

是的,结果好像没上传上传,就是运行那个脚本就会出现的,我现在把他上传到了data_raw下面了 image

ShixiangWang commented 3 years ago

你在 https://github.com/saisaitian/TCM_Microarray/blob/main/data-raw/deg.R 的差异基因寻找操作能否抽象为一个函数放到 R 目录下?就像 https://github.com/saisaitian/TCM_Microarray/blob/main/R/load_example_dataset.R 这里展示的一样。这个你有时间做一下,我在你的基础上进行修改和完善。

saisaitian commented 3 years ago

好嘞

ShixiangWang commented 3 years ago

@saisaitian

下面的函数建议拆分成两个函数,

https://github.com/saisaitian/TCM_Microarray/blob/065c6227d6516d35db6f4165a6eac67df6dbce29/data-raw/deg.R#L24-L57

另外,差异分析的数据来源建议使用我们清理过的放在包内的数据集:

devtools::load_all()
data <- load_example_dataset()

然后结果名字不需要加前缀,没有i引入新的信息,后面还要去除掉。

image

saisaitian commented 3 years ago

好嘞

saisaitian commented 3 years ago

我整了一下,不知道是否是你说的意思?代码在data-raw下面的deg2.R

ShixiangWang commented 3 years ago

@saisaitian 虽然你现在两个函数拆分开了,但并不具备通用性,比如第二个函数里面的 expr 和 group_list 来自哪里呢,这些都需要在函数参数中进行定义。函数与外部数据应该尽量独立。你在写这些函数的时候,需要考虑你的使用者会怎么使用它,目前这两个函数虽然可以处理我们自带的数据集,但无法处理用户提供的数据,你需要把数据输入和数据处理给隔离掉。有空你可以进一步重写两个函数,并在 R/ 目录下创建对应的文件将代码放在里面,添加相应的注释文档。

image

https://github.com/saisaitian/TCM_Microarray/blob/main/R/load_example_deg.R 这里也有不少问题,特别是你引用了 data-raw下的数据,这个目录对于实际上要发布的包是不可见的,我后面有空改写一下。

saisaitian commented 3 years ago

翔哥,我重写了这个函数,这个函数主要是进行两组差异分析的比较,暂时是使用limma方法 image 另外又重写了那个load_example_deg函数,里面迭代了deg.cal函数,实现内部数据的差异分析 image

您抽空在看一下是否合适?

ShixiangWang commented 3 years ago

好,我明天看下。

ShixiangWang commented 3 years ago

@saisaitian 我对代码进行了全面的清理和修改,你有空花时间仔细看一看。

saisaitian commented 3 years ago

收到,你写的真的太厉害了,简直和你差距太大了

ShixiangWang commented 3 years ago

主要是实现我上面跟你说过的思路。在写代码的时候,风格尽量保持一致,然后参数的设定和提示也需要合理,这个都需要慢慢自己摸索和优化的。希望你看到我重写后的代码有所收获,虽然是做一样的事情,实现的方式可以做到更好。

saisaitian commented 3 years ago

翔哥,想咨询你一下,如何使用roxygen2进行document 数据集和包,我找了很久没找到方法,只是看到有人提到,不知道具体的代码如何实现,想问一下