Pre-process
#save before omitting
genes_names = counts$gene_name
genes_lengths = counts[,5]
#omit non relevant cols
counts=counts[,7:ncol(counts)]
#create genes names
genes_names=make.unique(genes_names) %>% replace_na('NA')
rownames(counts) = genes_names
#omit non relevant genes
omitgenes= startsWith(rownames(counts),"NA")
counts=counts[!omitgenes,]
genes_lengths = genes_lengths[!omitgenes] #update genes_lengths
#calcualte gene length and MT genes
mt_genes = startsWith(rownames(counts),"MT-")| startsWith(rownames(counts),"ERCC-")
#get colnames
cell.labels <- gsub(pattern = ".bam",replacement = "",colnames(counts))
#change colnames
colnames(counts) <- cell.labels
counts_seurat <- CreateSeuratObject(counts = counts, project = "egfr_counts", min.cells = 0, min.features = 1000)
cell_type = str_extract(cell.labels, "^[A-Z]{1,3}[0-9]{3}")
condition = str_extract(cell.labels, "cp|osi|ctrl|roxa|op")
replicate = str_extract(cell.labels, ".$")
metadata = data.frame(cell_type = cell_type, condition = condition, replicate = replicate, row.names = colnames(counts))
library(DESeq2)
dds <- DESeqDataSetFromMatrix(countData = round(counts),
colData = metadata,
design = ~condition)
nrow(dds)
[1] 60445
dds1 <- dds[ rowSums(counts(dds)) >= 3, ]
nrow(dds1)
[1] 36882
vst = vst(dds1, blind=FALSE)
library("ggfortify")
PCAdata <- prcomp(t(assay(vst)))
autoplot(PCAdata, data = metadata,colour = "condition",label = FALSE, main="PCA") # Show dots
Warning in grSoftVersion() :
unable to load shared object '/usr/local/lib/R/modules//R_X11.so':
libXt.so.6: cannot open shared object file: No such file or directory

VlnPlot(counts_seurat, features = c("nCount_RNA"),group.by = "orig.ident",pt.size = 3)+theme(text = element_text(size=10),
axis.text.x = element_text(size = 8))
Warning: Groups with fewer than two data points have been dropped.
Warning: Groups with fewer than two data points have been dropped.
Warning: Groups with fewer than two data points have been dropped.
Warning: Groups with fewer than two data points have been dropped.
Warning: Groups with fewer than two data points have been dropped.
Warning: Groups with fewer than two data points have been dropped.
Warning: Groups with fewer than two data points have been dropped.
Warning: Groups with fewer than two data points have been dropped.
Warning: Groups with fewer than two data points have been dropped.
Warning: Groups with fewer than two data points have been dropped.
Warning: Groups with fewer than two data points have been dropped.
Warning: Groups with fewer than two data points have been dropped.
Warning: Groups with fewer than two data points have been dropped.
Warning: Groups with fewer than two data points have been dropped.
Warning: Groups with fewer than two data points have been dropped.
Warning: Groups with fewer than two data points have been dropped.
Warning: Groups with fewer than two data points have been dropped.
Warning: Groups with fewer than two data points have been dropped.
Warning: Groups with fewer than two data points have been dropped.
Warning: Groups with fewer than two data points have been dropped.
Warning: Groups with fewer than two data points have been dropped.
Warning: Groups with fewer than two data points have been dropped.
Warning: Groups with fewer than two data points have been dropped.
Warning: Groups with fewer than two data points have been dropped.
Warning: Groups with fewer than two data points have been dropped.
Warning: Groups with fewer than two data points have been dropped.
Warning: Groups with fewer than two data points have been dropped.
Warning: Groups with fewer than two data points have been dropped.
Warning: Groups with fewer than two data points have been dropped.
Warning: Groups with fewer than two data points have been dropped.
Warning: Computation failed in `stat_ydensity()`:
replacement has 1 row, data has 0

counts_filtered = counts[, colnames(counts) != "HCC827cp3"]
metadata_filtered = metadata[ rownames(metadata) != "HCC827cp3",]
dds <- DESeqDataSetFromMatrix(countData = round(counts_filtered),
colData = metadata_filtered,
design = ~condition)
converting counts to integer mode
Warning in DESeqDataSet(se, design = design, ignoreRank) :
some variables in design formula are characters, converting to factors
vst = vst(dds1, blind=FALSE)
PCAdata <- prcomp(t(assay(vst)))
autoplot(PCAdata, data = metadata,colour = "condition",label = FALSE, main="PCA")

autoplot(PCAdata, data = metadata,colour = "cell_type",label = FALSE, main="PCA")

pheatmap(sampleDistMatrix,
clustering_distance_rows=sampleDists,
clustering_distance_cols=sampleDists,
col=colors, main = "Sample Distance Matrix ",show_colnames = T)+
theme(axis.text.x = element_text(angle=30, hjust=1))
NULL

LS0tCnRpdGxlOiAnYHIgcnN0dWRpb2FwaTo6Z2V0U291cmNlRWRpdG9yQ29udGV4dCgpJHBhdGggJT4lIGJhc2VuYW1lKCkgJT4lIGdzdWIocGF0dGVybiA9ICJcXC5SbWQiLHJlcGxhY2VtZW50ID0gIiIpYCcgCmF1dGhvcjogIkF2aXNoYWkgV2l6ZWwiCmRhdGU6ICdgciBTeXMudGltZSgpYCcKb3V0cHV0OiAKICBodG1sX25vdGVib29rOiAKICAgIGNvZGVfZm9sZGluZzogaGlkZQogICAgdG9jOiB5ZXMKICAgIHRvY19jb2xsYXBzZTogeWVzCiAgICB0b2NfZmxvYXQ6IAogICAgICBjb2xsYXBzZWQ6IEZBTFNFCiAgICBudW1iZXJfc2VjdGlvbnM6IHRydWUKICAgIHRvY19kZXB0aDogMQotLS0KCiMjIFBhcmFtZXRlcnMKCmBgYHtyIHdhcm5pbmc9RkFMU0V9CnN1ZmZpeCA9ICIiCmRhdGFfdG9fcmVhZCA9ICIiCmBgYAoKCiMjIGZ1bmN0aW9ucwoKYGBge3Igd2FybmluZz1GQUxTRX0KYGBgCgojIyBEYXRhCgoKCmBgYHtyfQpjb3VudHMgPC0gcmVhZC5kZWxpbSgiL3NjaS9sYWJzL3lvdGFtZC9sYWJfc2hhcmUvbHVuZ19zYy9idWxrL1JveGFPc2kvMDIuQmFtL2FsbF9ub01UR0xLSSIsc2tpcD0xLGhlYWRlcj1ULHNlcD0iXHQiLHN0cmluZ3NBc0ZhY3RvcnM9Rixyb3cubmFtZXM9MSxjaGVjay5uYW1lcyA9IEYpCgp0cG0gPC0gcmVhZC5kZWxpbSgiL3NjaS9sYWJzL3lvdGFtZC9sYWJfc2hhcmUvbHVuZ19zYy9idWxrL1JveGFPc2kvMDIuQmFtL1JveGFPc2lfbm9NVEdMS0lfdHBtLnR4dCIsc2tpcD0xLGhlYWRlcj1ULHNlcD0iXHQiLHN0cmluZ3NBc0ZhY3RvcnM9Rixyb3cubmFtZXM9MSxjaGVjay5uYW1lcyA9IEYpCmBgYAoKIyBQcmUtcHJvY2VzcwpgYGB7cn0KI3NhdmUgYmVmb3JlIG9taXR0aW5nCmdlbmVzX25hbWVzID0gY291bnRzJGdlbmVfbmFtZQpnZW5lc19sZW5ndGhzID0gY291bnRzWyw1XQoKI29taXQgbm9uIHJlbGV2YW50IGNvbHMKY291bnRzPWNvdW50c1ssNzpuY29sKGNvdW50cyldCgoKI2NyZWF0ZSBnZW5lcyBuYW1lcwpnZW5lc19uYW1lcz1tYWtlLnVuaXF1ZShnZW5lc19uYW1lcykgJT4lIHJlcGxhY2VfbmEoJ05BJykKcm93bmFtZXMoY291bnRzKSA9IGdlbmVzX25hbWVzCgojb21pdCBub24gcmVsZXZhbnQgZ2VuZXMKb21pdGdlbmVzPSBzdGFydHNXaXRoKHJvd25hbWVzKGNvdW50cyksIk5BIikKY291bnRzPWNvdW50c1shb21pdGdlbmVzLF0KZ2VuZXNfbGVuZ3RocyA9IGdlbmVzX2xlbmd0aHNbIW9taXRnZW5lc10gI3VwZGF0ZSBnZW5lc19sZW5ndGhzCgojY2FsY3VhbHRlIGdlbmUgbGVuZ3RoIGFuZCBNVCBnZW5lcwptdF9nZW5lcyA9IHN0YXJ0c1dpdGgocm93bmFtZXMoY291bnRzKSwiTVQtIil8IHN0YXJ0c1dpdGgocm93bmFtZXMoY291bnRzKSwiRVJDQy0iKQoKI2dldCBjb2xuYW1lcwpjZWxsLmxhYmVscyA8LSBnc3ViKHBhdHRlcm4gPSAiLmJhbSIscmVwbGFjZW1lbnQgPSAiIixjb2xuYW1lcyhjb3VudHMpKQoKI2NoYW5nZSBjb2xuYW1lcwpjb2xuYW1lcyhjb3VudHMpIDwtIGNlbGwubGFiZWxzCgoKY291bnRzX3NldXJhdCA8LSBDcmVhdGVTZXVyYXRPYmplY3QoY291bnRzID0gY291bnRzLCBwcm9qZWN0ID0gImVnZnJfY291bnRzIiwgbWluLmNlbGxzID0gMCwgbWluLmZlYXR1cmVzID0gMTAwMCkKYGBgCgpgYGB7cn0KY2VsbF90eXBlID0gc3RyX2V4dHJhY3QoY2VsbC5sYWJlbHMsICJeW0EtWl17MSwzfVswLTldezN9IikKY29uZGl0aW9uID0gc3RyX2V4dHJhY3QoY2VsbC5sYWJlbHMsICJjcHxvc2l8Y3RybHxyb3hhfG9wIikKcmVwbGljYXRlID0gc3RyX2V4dHJhY3QoY2VsbC5sYWJlbHMsICIuJCIpCm1ldGFkYXRhID0gZGF0YS5mcmFtZShjZWxsX3R5cGUgPSBjZWxsX3R5cGUsIGNvbmRpdGlvbiA9IGNvbmRpdGlvbiwgcmVwbGljYXRlID0gcmVwbGljYXRlLCByb3cubmFtZXMgPSBjb2xuYW1lcyhjb3VudHMpKQoKYGBgCgpgYGB7cn0KbGlicmFyeShERVNlcTIpCmRkcyA8LSBERVNlcURhdGFTZXRGcm9tTWF0cml4KGNvdW50RGF0YSA9IHJvdW5kKGNvdW50cyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbERhdGEgPSBtZXRhZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzaWduID0gfmNvbmRpdGlvbikKYGBgCmBgYHtyfQpucm93KGRkcykKZGRzMSA8LSBkZHNbIHJvd1N1bXMoY291bnRzKGRkcykpID49IDMsIF0KbnJvdyhkZHMxKQpgYGAKYGBge3J9CnZzdCA9IHZzdChkZHMxLCBibGluZD1GQUxTRSkKYGBgCmBgYHtyfQpsaWJyYXJ5KCJnZ2ZvcnRpZnkiKQpQQ0FkYXRhIDwtIHByY29tcCh0KGFzc2F5KHZzdCkpKQphdXRvcGxvdChQQ0FkYXRhLCBkYXRhID0gbWV0YWRhdGEsY29sb3VyID0gImNvbmRpdGlvbiIsbGFiZWwgPSBGQUxTRSwgbWFpbj0iUENBIikgIyBTaG93IGRvdHMKCgpgYGAKCgpgYGB7ciBmaWcud2lkdGg9OH0KY291bnRzX3NldXJhdCA9IEFkZE1ldGFEYXRhKG9iamVjdCA9IGNvdW50c19zZXVyYXQsbWV0YWRhdGEgPSBtZXRhZGF0YSkKY291bnRzX3NldXJhdCRvcmlnLmlkZW50ID0gY29sbmFtZXMoY291bnRzX3NldXJhdCkKVmxuUGxvdChjb3VudHNfc2V1cmF0LCBmZWF0dXJlcyA9IGMoIm5Db3VudF9STkEiKSxncm91cC5ieSA9ICJvcmlnLmlkZW50IixwdC5zaXplID0gMykrdGhlbWUodGV4dCA9IGVsZW1lbnRfdGV4dChzaXplPTEwKSwKICAgICAgICBheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChzaXplID0gOCkpIApgYGAKCmBgYHtyfQojIGNvdW50c19maWx0ZXJlZCA9IGNvdW50c1ssIGNvbG5hbWVzKGNvdW50cykgIT0gIkhDQzgyN2NwMyJdCiMgbWV0YWRhdGFfZmlsdGVyZWQgPSBtZXRhZGF0YVsgcm93bmFtZXMobWV0YWRhdGEpICE9ICJIQ0M4MjdjcDMiLF0KIyBkZHMgPC0gREVTZXFEYXRhU2V0RnJvbU1hdHJpeChjb3VudERhdGEgPSByb3VuZChjb3VudHNfZmlsdGVyZWQpLAojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbERhdGEgPSBtZXRhZGF0YV9maWx0ZXJlZCwKIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNpZ24gPSB+Y29uZGl0aW9uKQojIG5yb3coZGRzKQojIGRkczEgPC0gZGRzWyByb3dTdW1zKGNvdW50cyhkZHMpKSA+PSAzLCBdCiMgbnJvdyhkZHMxKQpgYGAKCmBgYHtyfQp2c3QgPSB2c3QoZGRzMSwgYmxpbmQ9RkFMU0UpCmBgYAoKYGBge3J9ClBDQWRhdGEgPC0gcHJjb21wKHQoYXNzYXkodnN0KSkpCmF1dG9wbG90KFBDQWRhdGEsIGRhdGEgPSBtZXRhZGF0YSxjb2xvdXIgPSAiY29uZGl0aW9uIixsYWJlbCA9IEZBTFNFLCBtYWluPSJQQ0EiKQphdXRvcGxvdChQQ0FkYXRhLCBkYXRhID0gbWV0YWRhdGEsY29sb3VyID0gImNlbGxfdHlwZSIsbGFiZWwgPSBGQUxTRSwgbWFpbj0iUENBIikKCmBgYApgYGB7ciBmaWcuaGVpZ2h0PTh9CnNhbXBsZURpc3RzIDwtIGRpc3QoIHQoIGFzc2F5KHZzdCkgKSApCnNhbXBsZURpc3RNYXRyaXggPC0gYXMubWF0cml4KCBzYW1wbGVEaXN0cyApCnJvd25hbWVzKHNhbXBsZURpc3RNYXRyaXgpIDwtIGNvbG5hbWVzKGNvdW50cykKY29sbmFtZXMoc2FtcGxlRGlzdE1hdHJpeCkgPC0gY29sbmFtZXMoY291bnRzKQpjb2xvcnMgPC0gY29sb3JSYW1wUGFsZXR0ZSggcmV2KGJyZXdlci5wYWwoOSwgIkJsdWVzIikpICkoMjU1KQpwaGVhdG1hcChzYW1wbGVEaXN0TWF0cml4LAogICAgICAgICBjbHVzdGVyaW5nX2Rpc3RhbmNlX3Jvd3M9c2FtcGxlRGlzdHMsCiAgICAgICAgIGNsdXN0ZXJpbmdfZGlzdGFuY2VfY29scz1zYW1wbGVEaXN0cywKICAgICAgICAgY29sPWNvbG9ycywgbWFpbiA9ICJTYW1wbGUgRGlzdGFuY2UgTWF0cml4ICIsc2hvd19jb2xuYW1lcyA9IFQpKwogICAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGU9MzAsIGhqdXN0PTEpKSAKYGBgCg==