-
Notifications
You must be signed in to change notification settings - Fork 0
/
infercnv_PRJCA001063_PDAC.R
51 lines (41 loc) · 1.69 KB
/
infercnv_PRJCA001063_PDAC.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# Load necessary libraries
library(infercnv)
library(dplyr)
# Set up directory for outputs
PathName <- setwd(getwd())
RVersion <- "20210610V1"
outputDir <- paste0(PathName,"/",RVersion)
dir.create(outputDir)
# Define function to write data tables
writeData <- function(data, fileNamePrefix) {
filePathBase <- file.path(outputDir, fileNamePrefix)
write.table(data, paste0(filePathBase, ".csv"), row.names = TRUE, sep = ',')
write.table(data, paste0(filePathBase, ".txt"), row.names = TRUE, sep = '\t')
}
# Processing expression data and cell types from an inferCNV object
inferCNV_cds_sub_AcinaDucT_NewK_ReCluster <- cds_sub_AcinaDucT_NewK_ReCluster
expressionData <- as.data.frame(inferCNV_cds_sub_AcinaDucT_NewK_ReCluster@assays@data@listData[["logcounts"]])
filteredExpression <- expressionData[rowSums(expressionData) > 0, ]
writeData(filteredExpression, RVersion+"_filteredExpression")
cellTypes <- as.data.frame(inferCNV_cds_sub_AcinaDucT_NewK_ReCluster@colData)
cellTypesSimplified <- cellTypes[, 15, drop = FALSE]
writeData(cellTypesSimplified, RVersion+"_cellTypes")
# Create and run inferCNV analysis
infercnv_obj <- CreateInfercnvObject(
raw_counts_matrix=as.matrix(filteredExpression),
annotations_file=as.matrix(cellTypesSimplified),
gene_order_file=system.file("extdata", "gencode_downsampled.EXAMPLE_ONLY_DONT_REUSE.txt", package = "infercnv"),
ref_group_names=c("AC","ND01")
)
infercnv_results <- infercnv::run(
infercnv_obj,
cutoff=0.1,
out_dir=tempfile(),
cluster_by_groups=TRUE,
plot_steps=FALSE,
no_plot=FALSE,
denoise=TRUE,
resume_mode=FALSE,
HMM=TRUE
)
# The detailed filtering and plotting steps for cell types and various cell states have been omitted for clarity.