我在简书和公众号上已经分享了很多之前学习的数据分析笔记和文章,覆盖了各方面的内容,数据分析方面以后不会再个人分享特别基础的东西了。接下来我会让师弟师妹们定期分享自己的学习过程。
另外,为了更好地学习和交流,我尝试在组内组织 Workshop,前几期会由我根据一些主题讲述数据分析操作、软件包开发等。后续也将通过轮流的方式组织大家一起学习编程、数据分析流程、生信流程等等。
Workshop 视频:https://www.bilibili.com/video/BV16K4y1t7VD?from=search&seid=2192097665920449954
我在视频中讲述的笔记随意,有时候可能会有点逻辑错误、重复问题等等,请见谅。
以下是我第一期讲解的大纲。
生信核心
编程 + 统计 + 专业背景
- 编程: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
- tidyverse 家族(https://r4ds.had.co.nz/)
- 建模与统计分析
- stats/(cars)/(caret)/(glmnet)
- 机器学习 mlr3
- 绘图(最好是先导出为 pdf,然后用其他矢量图工具任意调整)
- base
- ggplot2
- cowplot/patchwork/ggplotify(拼图)
- pheatmap/complexheatmap
- https://github.com/tylermorganwall/rayshader(三维图)
- https://github.com/tomwenseleers/export (将各种图片导出,特别是到ppt)
- 汇报或记录
- markdown
- typora
- 简书
- 个人博客
- 语雀
- Github
- rmarkdown
- https://github.com/yihui/xaringan (幻灯片)
- Jupyter notebook
- Shiny
- markdown
工作流程
- 先思考下问题该怎么解决,尽量拆分为小的问题或步骤
- 思考用什么环境(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
- Project
- Package
- Shiny