saisaitian / TCMR

Other
1 stars 0 forks source link

Step5:差异表达基因通路富集分析和GO分析 #8

Closed ShixiangWang closed 3 years ago

ShixiangWang commented 3 years ago

@saisaitian 这一步你有空也可以做了。然后我想问一下你做这一步的目的是为了向读者展示相关的结果;并提供相应的函数可以用于分析对吧?

saisaitian commented 3 years ago

是的,就是可以展示我们内置的差异分析结果,也可以让用户自己上传数据之后进行差异分析

ShixiangWang commented 3 years ago

这个接下来有空你可以实现了。

然后差异分析的代码检查下确定没啥问题,特别是比对的组别和结果的提取。

ShixiangWang commented 3 years ago

@saisaitian 这一步你准备大概什么时候做好呢?

saisaitian commented 3 years ago

昨天我们系在组织晨光计划答辩,我刚去答辩完,上周一直在准备,这周完成这个内容,谢谢你的帮助。我在issue4里面做了一个留言,是关于document,后来我查到了一个document包的方法,可能是因为你close的之后所以看不到了 image

ShixiangWang commented 3 years ago

没事的,我就问下你的计划,这样我自己会有一个大体的时间规划。 关于你的问题,之前推荐的书里面都有 https://r-pkgs.org/man.html#man-data

另外很多时候碰到这种问题你首先想到的是翻看别人有相关注释的包的源文件,github很多

屏幕快照 2020-11-10 下午2 57 55

saisaitian commented 3 years ago

你说的这个我也看过了,就像类似document 包的话,可以使用usethis::use_package_doc()来实现,但是document data就没找大相关的代码,你是自己写进去的吗?还是其他的方法可以实现?

ShixiangWang commented 3 years ago

我以为我回过了,不好意思。 上面的链接提供了怎么注释数据集,直接拷贝即可。目前我没有看到有什么命令。命令不是最重要的,重要的是有意识去查找和使用,本质上都是按照规律组织的文字。

saisaitian commented 3 years ago

翔哥,不好意思,我的进度有点慢,我完成了基本的分析,在做几张可视化的图,这周末更新上去

ShixiangWang commented 3 years ago

没事的,根据你的事情来安排

saisaitian commented 3 years ago

翔哥,我增加了几个函数,你有时间看一下哈 image 并咨询你一个问题,就是github这里的readme你是怎么写的呢?直接在github网站上写的吗?我不太会 image

ShixiangWang commented 3 years ago

@saisaitian 好的,我有时间看一下。改 readme 标准的做法是修改 README.Rmd,修改完后 knit,这个在 RStudio 中比较好操作。

image

ShixiangWang commented 3 years ago

你最近的更新我尽量周末之前反馈~ 是 GO 和 KEGG 都做了?

saisaitian commented 3 years ago

对的,都包括进去了,我刚又增加了一个GSEA

ShixiangWang commented 3 years ago

@saisaitian 我做了一些修改,check 还有一些问题,你自己先修改学习下,都是常见的问题

> checking dependencies in R code ... WARNING
  '::' or ':::' import not declared from: ‘enrichplot’
  Unexported object imported by a ':::' call: ‘enrichplot:::gsInfo’
    See the note in ?`:::` about the use of this operator.

> checking data for non-ASCII characters ... WARNING
    Warning: found non-ASCII strings
    '<ce><b2>-ecdysterone:DMSO' in object 'AnalyzedDEG'
    '<ce><b2>-ecdysterone:DMSO' in object 'AnalyzedSigPathway'

> checking installed package size ... NOTE
    installed size is 65.1Mb
    sub-directories of 1Mb or more:
      extdata  65.0Mb

> checking R code for possible problems ... NOTE
  barplot: no visible binding for global variable ‘Description’
  dotplot: no visible binding for global variable ‘GeneRatio’
  dotplot: no visible binding for global variable ‘Description’
  dotplot: no visible binding for global variable ‘Count’
  get_sig_GO: no visible binding for global variable ‘org.Hs.eg.db’
  get_sig_pathway: no visible binding for global variable ‘org.Hs.eg.db’
  runGSEA: no visible global function definition for ‘write.table’
  runGSEA: no visible global function definition for ‘aes_’
  runGSEA: no visible global function definition for ‘xlab’
  runGSEA: no visible global function definition for ‘scale_color_manual’
  runGSEA: no visible global function definition for ‘geom_hline’
  runGSEA: no visible global function definition for ‘margin’
  runGSEA: no visible global function definition for ‘geom_linerange’
  runGSEA: no visible global function definition for ‘scale_y_continuous’
  runGSEA: no visible binding for global variable ‘selectgenes’
  runGSEA: no visible binding for global variable ‘x’
  runGSEA: no visible binding for global variable ‘y’
  runGSEA: no visible binding for global variable ‘Description’
  runGSEA: no visible binding for global variable ‘gsym’
  runGSEA: no visible global function definition for ‘geom_segment’
  runGSEA: no visible global function definition for ‘scale_fill_manual’
  runGSEA: no visible global function definition for ‘plot_grid’
  Undefined global functions or variables:
    Count Description GeneRatio aes_ geom_hline geom_linerange
    geom_segment gsym margin org.Hs.eg.db plot_grid scale_color_manual
    scale_fill_manual scale_y_continuous selectgenes write.table x xlab y
  Consider adding
    importFrom("utils", "write.table")
  to your NAMESPACE file.

> checking Rd files ... NOTE
  prepare_Rd: runGSEA.Rd:41-43: Dropping empty section \value

> checking Rd line widths ... NOTE
  Rd file 'runGSEA.Rd':
    \examples lines wider than 100 characters:
       msigdb.path <- system.file("extdata", "c2.cp.kegg.v7.2.symbols.gmt", package = "TCMR", mustWork = TRUE)

  These lines will be truncated in the PDF manual.

记得提交代码前运行一遍 devtools::check(),一般要没有错误、警告和 NOTE.

除了下面这个 note 可以忽略,其他的都需要解决掉。

> checking installed package size ... NOTE
    installed size is 65.1Mb
    sub-directories of 1Mb or more:
      extdata  65.0Mb

有些代码你写的逻辑有些问题(有些重复的我删除了),你最好再检查一遍,从使用者来看函数的使用情况。

另外就是创建函数一般用 snake_case 或者 camelCase 两种写法,不要写 sigpath 这种,不好看信息也不明确。

ShixiangWang commented 3 years ago

对了我看到你保存了 kegg 的结果,但是 GO 的没有保存,这个需要保存吗?这个包目前已经蛮大了,如果你觉得 GO 分析不是特别重要,可以不直接保存结果,后面需要的时候调用函数算就行。

saisaitian commented 3 years ago

是的呢,我最近在写另外两个函数,我看到了PharmacoGx这个包,涵盖了CCLE,GDSC和CMAP的算法,我想把他们的算法整合进去,PharmacoGx这个工具包是一个药物基因组的数据包,不过他把内置数据变为一个特定的数据类型对象,我们是不是最后也可以考虑这样?

ShixiangWang commented 3 years ago

设置类和对象是看是否有需要决定的,如果你需要对同一个数据进行多次不同的方法操作,而数据本身结构比较复杂(不是一个单独的表格),就可以考虑使用该方式。

saisaitian commented 3 years ago

翔哥,本来预估着这周能把类似根据siganture查找我们的compound写完,最近有发现5种方法,准备下周把这5种方法都写进去,下周更新

ShixiangWang commented 3 years ago

好~

saisaitian commented 3 years ago

image 目前我更新了5个函数,其中cmap和lincs是用户输入上调基因和下调基因,便可以实现寻找我们内置的小分子和用户输入的最相似和最相反,其他三个函数是用户输入一串差异表达基因及logFC值,既可以是全部的差异表达logFc也可是部分的logFC,主要的函数参考来自gcmap,signatureSearch和CoreGx。CoreGx速度有点慢,目前不知道咋调

saisaitian commented 3 years ago

image 另外这个包,check之后还存在一个error和note,我不知道怎么解决,还请你指导一下

ShixiangWang commented 3 years ago

好,我元旦节检查下回复你

ShixiangWang commented 3 years ago

@saisaitian 如果你最近新增的功能函数是相似的,或者提供一组特别的功能,建议函数名有共同的前缀,目前你的写法不是很有逻辑性,我后面的修改也暂时不会动。

然后自己添加函数示例的时候记得自己先写测试代码,然后再拷贝,目前我不知道你怎么写的,发现好几个地方多了额外的引号。

image

最后就是每次修改完后建议使用在控制台使用 styler::style_pkg() 清理下整个项目的代码,目前你写代码的风格不是太好,如果自己也不是很注重就借助这种工具函数效果比较好,我自己也很常用,这样编码舒服些。

ShixiangWang commented 3 years ago

后续我会一个一个修改你新增的函数,但一些函数的逻辑和分析思路我不是特别清楚,建议你在函数部分添加更多的描述或者在此处描述,这样可以帮助我进行修改甚至一些代码的内部重构,优化计算效率。

saisaitian commented 3 years ago

是的,我是提供了一组函数,应该是有7个函数的,但是我只写成功了5个,另外另个没写成功,其实我是整合了signaturesearch这个R包的5个函数,进行了抽提,具体原理你可以参考这个R包,链接为https://bioconductor.org/packages/release/bioc/vignettes/signatureSearch/inst/doc/signatureSearch.html#3_SignatureSearches(GESS) image 同时,我发现其实这个R包就是整合了gCMAP这个R包来做的,另外我还收集到一个算法就是来自PharmacoGx这个包,用了这个函数,这就是我目前搜搜集到的, image 另个两个faileed函数在dataset里面的 image ,这些函数应该可以被整理成一个函数,然后用户方便选择算法,进行返回结果,这个可能会是这个R包的一个亮点

ShixiangWang commented 3 years ago

你可以统一把这组相关函数改成 ss 开头

saisaitian commented 3 years ago

相关的函数已经用ss开头了

ShixiangWang commented 3 years ago

好的

saisaitian commented 3 years ago

image 我增加了一个函数,用来展示计算出来的score,其实我现在有一个疑问,不知道这个R包到底要有多少功能了,我看了你写的R包sigflow,你的好像是提出一种新的方法,我的好像是对已有的算法汇总,这种汇总的是不是也可以发

ShixiangWang commented 3 years ago

我写的也主要是一些汇总,写了个流程组合起来。

这个包的功能你需要看你当初的规划 即 https://github.com/saisaitian/TCM_Microarray/issues/1 ,你可以补充和完善该计划,计划完成了,就可以。到时候作为一个工具发表。

ShixiangWang commented 3 years ago

我把你新增的几个函数清理了下,你自己看下有什么问题没,然后再次确认下每个函数的计算逻辑没有问题,后续我有空再优化每个函数的计算。

另外不需要你手动去生成 test 文件,下面是个例子

#' @examples
#' x <- load_example_dataset()
#' head(x$expr)
#' head(x$pdata)
#' @testexamples
#' expect_is(x, "list")

我前面说过,使用 roxytest 可以根据文档中的标记自动生成测试文件。

https://github.com/mikldk/roxytest

开发的时候先载入 roxytest,然后根据示例写测试,最后使用 devtools::document() 就会自动生成。

ShixiangWang commented 3 years ago

感觉这个 ISSUE 相关的工作已经完成了,我后面新开了一个 ISSUE 讨论后续的内容。