代码基本都能搜索到,我们重点需要掌握的是把自己的数据整理成需要的格式
gooogle基本都能找到分享的、自己需要的代码
长脚本管理方法
将长脚本分成多个脚本,每个脚本保存
运行下个脚本开头清空再加载
文件分门别类分别放置
不行
因为不在同一个工作目录下啊
按一下tab键会有一个提示,能看见group.csv是有的,但是在import文件夹下的,利用tab键自动补齐,import\group.csv
dir.create("export")
write.csv(x,file="export\"
理论上只能使用工作目录下的吧,
两个点号就是r_02的上级
load("../R_01/group.csv")
这样就可以在R_02工作目录下读取R_01的文件
条件判断函数
最重要的是:ifelse函数——因为他能输出逻辑值
ifelse(i>0,"+","-")
if true 输出+
if false 输出-
在生信分析过程中,最重要的就是这组王炸函数组合,让按需要取子集简单太多
ifelse()+str_detect()
samples=c("tumor1","tumor2","tumor3","normal1","normal2","normal3") #1. str_detct to detect the string "tumors" in this vector #will return the logical values k1= str_detect(samples,"tumors");k1 #2.ifelse outputs the results of the groups #change the logical valus into the norminals ifelse(k1,"tumor","normal")
for循环?
python里做数据处理得用for 循环遍历全部数据
但是R里不需要这种操作啊,能直接对变量和观测进行操作
for循环
patch装包、批量装包
pks = c("tidyr","dplyr","
for(g in pks) install.packages("g")
隐式循环-apply
两个数据框之间的连接
inner_join:交集——去掉没有的observation
full_join:并集
left_join:以左边observation为主
righ_join: (感觉没必要的函数,但是也有了
数据从哪来
不分方向的geo、nhanes
肿瘤方向专属数据库 TCGA、ICGC、CCLE、SEER
什么类型数据能够挖掘?
- 传统基因表达芯片
- 转录组
- 单细胞
- 突变(外显子数据的下游分析)、甲基化、拷贝数变异
表达数据是最核心的分析
六万个基因中那些跟我们实验设计相关系
怎样筛选基因?
分析方法:
数据下载:GEO、TCGA有专门的R包
差异分析:芯片和转录组有所不同(现在还有芯片吗?不都是bulk转录组?)
WGCNA(加权共表达网络)(差异分析和加权共表达网络都可以用于筛选基因,可以两个都做也可以只做一个)
富集分析(ORA、GSEA)(比如说我找出来了500多个差异基因,现在找一下这些基因都是干什么的,有没有一个通路或者GO包含了这500个基因的大部分)
PPI网络(蛋白-蛋白互作网络,找一下那些基因和别的基因有互作)
预后分析(影响生存的疾病)
图表介绍
heatmap:颜色代表数据大小
散点图、箱线图:
箱线图:一个连续型向量和一个有重复值的离散型(/分类型)向量——箱线图有(max、75%、median、25%、min)五个重要的数,竖着的两个封闭箱子的没有用(但是他有离群值,就是max和min不是事实的max和min,是计算出来的)
火山图:
一般后面都是用limma包做批量分析
log FC和P.Value
adj.P.Value
用哪个都行,但是文章里大多都用adj.P.Value
FC=FoldChange(FC):处理组平均值/对照组平均值
log2Foldchange(logFC):FoldChange取log2
芯片的差异分析
芯片差异分析的起点是一个取过log的表达矩阵(0-20)
如果拿到的是没做过log的(0-很大),需要自己做log
理解logFC
log2(FC)=log2(处理组平均值)-log2(对照组平均值)
永远记住是处理组-对照组
火山图的横坐标最大可能就个位数或者十几,几百肯定错
logFC>0,treat>control 基因表达量上升
logFC<0.treat<control 基因表达量下降
通常所说的上调、下调基因是指表达量显著上升/下降的基因
调阈值 没有标准答案,随便选一些常见阈值就行了 0.585 2.2 1.5 2 1...