0 实验设计
思路:(1)得到胁迫处理诱导的基因和突变体野生型间的差异基因作为候选基因集(2)两两计算候选基因的皮尔逊相关系数(3)使用igrah计算各个基因的中心度。从RNA-seq开始构建共表达网络。1 使用软件FastQC进行测序质量评估 (NGS基础 - FASTQ格式解释和质量评估)$ ls *.fastq.gz | xargs -n1 -P2 fastqc $1 备注: -n1 表示一个参数传递给fastqc,-P表示线程数 2 使用trimmomatic质量清理script.trimmo.sh,对测序数据进行质量控制 $ echo 'nohup java -jar trimmomatic-0.36.jar SE $1 $1.trim.fil.gz LEADING:20 TRAILING:20 AVGQUAL:25 SLIDINGWINDOW:10:30 MINLEN:36 > $1.trim.nohup' > script.trimmo.sh $ ls *.fastq.gz | xargs -n1 -P2 sh script.trimmo.sh 3 使用hisat2比对 (转录组分析工具哪家强?)使用比对软件hisat2建立索引和比对
4使用htseq-count,获得每个基因的counts数目
备注:PE数据必须先根据序列的名字或者位置进行排序,本次项目是单端,所以随意。 5 使用DESeq2 计算差异基因 (DESeq2差异基因分析和批次效应移除)将0、6、12 h的count的table依次导入,分别计算这3个时间点的差异基因。 过滤掉低表达的基因(所有样本的和 >1),log2FC >1 with adjusted p-values<0.01 筛选差异基因 >library(DESeq2) >table=read.table('0_H_count.txt',header=F,sep='\t',row.names =1) > colname(table)=c('0h_c_rep1','0h_c_rep2','0h_c_rep3','0h_t_rep1','0h_t_rep2','0h_t_rep3') >countData <- countData[rowSums(countData) > 1, ] # 去除掉低表达的基因 >condition <- c('c','c','c','t','t','t') >coldata <- data.frame(row.names=colnames(countData), condition) >dds <- DESeqDataSetFromMatrix(countData = countData, colData = group, design = ~condition ) >results <- results(DESeq(dds)) >res <- na.exclude(as.data.frame(results)) > filter <- res[(abs(res$log2FoldChange)>1 & res$padj<0.01),] > write.table(filter,'DGE_0h.txt', quote=F,sep='\t', col. names = NA) 6 使用EBSeq 对count数目进行标准化(生信宝典注:标准化后的数据可以也直接从DESeq2获取) 获得每个基因的counts数目之后,就可以计算两两基因的皮尔逊相关系数。使用EBSeq的函数median normalization 对count数目进行标准化,再进行对数化。 > if (!requireNamespace('BiocManager', quietly = TRUE)) install.packages('BiocManager') BiocManager::install('EBSeq', version = '3.8') > library(EBSeq) > NormData <- GetNormalizedMat(counts, MedianNorm(counts)) > NormData.log <- log2(NormData + 1) > Norm.interest <- NormData.log[rownames(filter),] # filter是步骤5获得的基因集 7 使用psych 计算两两相关性psych在CRAN官网进行下载。使用corr.test (也可以使用WGCNA的bicor函数,如果用Python更快)函数对差异基因进行两两的相关性计算。如果用所有基因计算数据量将大得可怕。因此我们只挑选差异基因进行分析。如我们对这个2 x 3的实验组进行两两差异计算,得到一个差异基因的总表,挑选这些基因进行计算。以相关性 > 0.9 p小于0.01筛选出共表达基因 >library('psych') >Norm.interest.corr <- corr.test( t(Norm.interest), method='pearson', ci=F) > Norm.interest.corr$p[lower.tri( Norm.interest.corr$p,diag=TRUE)]=NA >Pval.adj <- as.data.frame(as.table(Norm.interest.corr$p)) > Correlation <- as.data.frame(as.table(Norm.interest.corr $r)) > Cor.table <- na.exclude(cbind( Correlation, Pval.adj))[,c (1,2,3,6)] > colnames(Cor.table) <- c('gene1','gene2','cor','p.adj') > Cor.table.filt <- Cor.table [(abs(Cor.table[,3])>0.9 & Cor.table[,4] <0.01 ),] 8 使用igraph和Cytoscape可视化网络使用igrah对前面筛出的互作基因Cor.table.filt进行网络分析,degree 是指节点 (这里指基因)的连接度,即一个点有多少条边相连,degree centrality是某个节点的度除以网络中所有点能构成的连接数目,能反应一个基因的中心度。介度中心性 (betweenness centrality) 是指一个节点充当其它两个节点中间人的次数“被经过”的感觉,用“被经过次数”除以总的ties,即n(n-1)/2,计算方法见下图 (来源于 易生信陈亮博士的扩增子和宏基因组授课,本期推文同期有陈亮博士的“一文学会网络分析 igraph更详细假设”)。输出的文件Node_nw_st.txt和之前获得的Cor.table.filt两个表格共同用于Cytoscape可视化了。
具体可视化见: R统计和作图
易生信系列培训课程,扫码获取免费资料更多阅读
|
|