第一期 我理解的核心要点
生信核心
编程 + 统计 + 专业背景
- 编程:R/Python/Shell/C++/Golang etc.
- 统计基础:描述性统计量、概率分布、假设检验
- 统计分析(基于统计的计算):均值、方差;t检验(差异分析)、相关分析、富集分析、多重校正等
- 专业背景:肿瘤学、免疫学、临床治疗等
数据处理流程
- 预处理
- 数据转换和操作
- 数据建模
- 可视化
- 结果汇总和报告
注意数据分析流程与软件开发流程的区别。
流程
原始数据的存储可以放到 https://figshare.com/。工具也有 https://git-lfs.github.com/ (https://gitee.com/help/articles/4235#article-header0)
工具
-
Make
-
Snakemake
-
Drake
-
Rmarkdown
-
Devtools/usethis (R)
核心工具集
- R base/stats/(graphics)
- 数据处理与分析
- tidyverse 家族(https://r4ds.had.co.nz/)
- readr
- dplyr
- 管道
- tidyr
- purrr
- ggplot2
- data.table
- fread(至少知道这个可以快速读取大内存数据) 和 fwrite
- dt[i, j, by] 等核心操作
- Linux shell
- 基本命令 echo/cat/grep/gzip/cut/uniq/sort/wc
- 控制与循环
- sed/awk
- 建模与统计分析
- stats/(cars)/(caret)/(glmnet)
- 机器学习 mlr3
- 绘图(最好是先导出为 pdf,然后用其他矢量图工具任意调整)
- graphics
- ggplot2
- cowplot/patchwork/ggplotify(拼图)
- pheatmap/complexheatmap
- https://github.com/tylermorganwall/rayshader(三维图)
- https://github.com/tomwenseleers/export (将各种图片导出,特别是到ppt)
- 汇报或记录
- markdown
- rmarkdown
- https://github.com/yihui/xaringan (幻灯片)
- Jupyter notebook
- Shiny
工作流程
- 先思考下问题该怎么解决,尽量拆分为小的问题或步骤
- 思考用什么环境(R/Python/Shell)、什么工具(dplyr/data.table/ggplot)解决,脑子里有一个大概解决方案
- 尝试解决
- 不成功思考问题出在逻辑上还是程序实现上
- 如果逻辑有问题,返回思考并优化解决方案
- 如果程序有问题,(谷歌)搜索查找具体问题的解决方案或请教他人
- 解决后检查逻辑是否存在问题,代码是否可以优化(包括逻辑上和效率上)
- 记录结果(图片、表格等)
Git与GitHub/Gitee 的使用
Git: https://git-scm.com/
GitHub desktop: https://desktop.github.com/
Gitee: https://gitee.com/
- 代码与数据存储
- Issue track
- 合作
- 连接 R
另外组内交流可以使用 Trello