1、RNA-Seq跟着讲解分析,但发现最后筛选padj及logFC时代码频繁出错,下为最后正确代码
anno <- read.csv("annotables_grch38(1).csv") #导入文件
res_anno=inner_join(res1,anno,by=c("row"="ensgene")) #内连接取交集并合并差异分析及注释表
res_anno = filter(res_anno,res_anno$baseMean!="0") #去空,筛选第二列不为0的行
res_anno=distinct(res_anno,symbol,.keep_all = TRUE) #去重
res_anno=column_to_rownames(res_anno,var = "symbol") #基因名改为行名
res_anno %>%
filter((padj< 0.05 ) &
(log2FoldChange > 1.5 |
log2FoldChange < -1.5)) %>% #筛选padj小于0.05的行,log2FC 小于-1.5或大于1.5的行
fwrite("sigresult.csv",row.names=T)
2、第一遍错误
###其他部分相同
res_anno %>%
filter((padj< 0.05 )&
(log2FoldChange >1.5|log2FoldChange<-1.5)) %>% #此段未给或负号与字符间留空,报错
fwrite("sigresult.csv",row.names=T)
##报错
Error in `filter()`:
! Problem
while computing
`..1 = (padj <
0.05) & ...`.
Caused by error in `log2FoldChange > 1.5 |
log2FoldChange <- 1.5`:
! could not find function "|<-"
3、根据上述报错搜索谷歌改错
###其他部分相同
res_anno %>%
filter((padj< "0.05" )&
(log2FoldChange >"1.5"|log2FoldChange<"-1.5")) %>%
fwrite("sigresult.csv",row.names=T)
###没有报错,但是FC列并非(-∞,-1.5)|(1.5,+∞),而是(-1.5,0)|(1.5,+∞)
4、反复修改后发现逻辑符号与字符间留给适当空格间隔就得出了正确筛选结果,具体原因不详