单基因生信分析流程(6)单基因相似性分析

时间:2022-07-23
本文章向大家介绍单基因生信分析流程(6)单基因相似性分析,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
第一步,下载COAD数据
##########################################################################################
## step1 load package and change Working Directory
###########################################################################################

library(TCGAbiolinks)
library(dplyr)
library(tidyr)
library(tibble)
library(edgeR)
library(limma)
rm(list=ls())
setwd('D:\SCIwork\F20ELFN1\COAD')


##########################################################################################
## step2 download the expresssion data of lncRNA and mRNA
###########################################################################################


query <- GDCquery(project = "TCGA-COAD", 
                  data.category = "Transcriptome Profiling", 
                  data.type = "Gene Expression Quantification", 
                  workflow.type = "HTSeq - Counts")



GDCdownload(query, method = "api", files.per.chunk = 50)

library(SummarizedExperiment)

expdat <- GDCprepare(query = query,   save = TRUE, save.filename = "exp.rda")


count_matrix = as.data.frame(assay(expdat))
第二步,注释表达量
##########################################################################################

###########################################################################################



rm(list=ls())

setwd('D:\SCIwork\F20ELFN1\COAD')

load('exp.rda')

count_matrix = as.data.frame(assay(data))

count_matrix[1:4,1:4]



fpkmToTpm <- function(fpkm)
{
  exp(log(fpkm) - log(sum(fpkm)) + log(1e6))
}


expr <- as.data.frame (apply(count_matrix  , 2, fpkmToTpm))


expr <-  expr %>% rownames_to_column("gene_id")




##########################################################################################

###########################################################################################





setwd("D:\Originaldata\GRCH\Homo_sapiens.GRCh38.90")

load("gtf_df.Rda")

test <- gtf_df[1:5,]

View(test)




mRNA_exprSet <- gtf_df %>%
  dplyr::filter(type=="gene",gene_biotype=="protein_coding") %>%
  dplyr::select(c(gene_name,gene_id,gene_biotype)) %>%
  dplyr::inner_join(expr,by ="gene_id") %>%
  tidyr::unite(gene_id,gene_name,gene_id,gene_biotype,sep = " | ")


save(mRNA_exprSet,file = "mRNA_exprSet.Rda")


mRNA_exprSet <- mRNA_exprSet %>%
  tidyr::separate(gene_id, c("gene_name","gene_id","gene_biotype"),
                  sep = " \| ")


mRNA_exprSet <- mRNA_exprSet[,-(2:3)]


index <- duplicated(mRNA_exprSet$gene_name)
mRNA_exprSet <- mRNA_exprSet[!index,]
row.names(mRNA_exprSet) <- mRNA_exprSet$gene_name
mRNA_exprSet$gene_name <- NULL


setwd('D:\SCIwork\F20ELFN1\COAD')
save(mRNA_exprSet, file = "mRNA_exprSet.Rda")
第三步,提取肿瘤表达矩阵
##########################################################################################




###########################################################################################

rm(list=ls())


load( "mRNA_exprSet.Rda")



metadata <- data.frame(colnames(mRNA_exprSet ))

colnames(metadata) <- 'barcode'


for (i in 1:length(metadata[,1])) {
  num <- as.numeric(as.character(substring(metadata[i,'barcode'],14,15)))
  if (num == 1 ) {metadata[i,2] <- "T"}
  if (num != 1) {metadata[i,2] <- "N"}
}



names(metadata)[2] <- 'Barcode'

table(metadata$Barcode)

metadata <- subset(metadata, metadata$Barcode == 'T')


mRNA_exprSet <- mRNA_exprSet[,which(colnames(mRNA_exprSet) %in% metadata$barcode)]


setwd('D:\SCIwork\F20ELFN1\COAD')

save(mRNA_exprSet, file = "mRNA_exprSet.Rda")

第四步,根据基因表达量筛选一些基因