CSOmap (一) 分析流程

发布于 2021-09-21  848 次阅读


第一步 明确CSOmap所需的数据

  • 先读readme,里面描述了输入数据的格式
  • label.txt:细胞标注表,格式如图
  • LR_pairs.txt:受体配体表,格式如图,用CSOmap自带的也行
  • TPM.txt:TPM标注化的表达矩阵,格式如图,第一行得用\t开头

第二步 导出CSOmap所需的数据

# 0、加载程辑包
library(Seurat)
library(dplyr)
library(patchwork)

# 配置数据路径
root_path = "~/zlliu/R_data/21.07.15.IntegrateData"

# 配置结果保存路径
output_path = "~/CSOmap/data/zlliu_IntegrateData_region"
if (!file.exists(output_path)){dir.create(output_path)}

# 设置工作目录,输出文件将保存在此目录下
setwd(output_path)
getwd()

# 1、读取数据
sn = readRDS(file.path(root_path, 'hBLA_scRNAs.rds'))

# 合并对象
scRNA <- merge(sn$BA213, y=c(sn$BA04, sn$BA06, sn$BA09, sn$BA21,
                                   sn$BA22, sn$BA37, sn$BA39, sn$BA40,
                                   sn$BA41, sn$BA42, sn$BA44, sn$BA45))

# 保存脑区信息
scRNA[["Region"]] <- Idents(scRNA)

# 导出label.txt
labels <- scRNA[["Region"]]
labels$cells <- gsub("-", "." ,rownames(labels)) # TPM的colnames 不知为何导出时被替换了,这里也替换一下
labels$labels <- as.character(labels$Region)
rownames(labels) <- NULL
labels = labels[,c("cells", "labels")]
write.table(labels, "label.txt", row.names = F, sep = "\t", quote = F) # 不要引号

# 导出TPM.txt
tpm <- exp(scRNA[['RNA']]@data)
tpm <- tpm - 1
tpm <- tpm*100 # 1E4 to 1E6
colnames(tpm)[1] = paste0('T', colnames(tpm)[1]) # 预留\t位置
write.table(tpm, "TPM.txt", sep = "\t", quote = F) # 不要引号
  • 对TPM.txt的格式进行小修补:
import mmap, os

def mapfile(filename, *args, size=None, **kwargs):
    file = open(filename, *args, **kwargs)
    if size is None: size = os.path.getsize(filename)
    return mmap.mmap(file.fileno(), size)

f = mapfile("data/zlliu_V1C/TPM.txt",'r+', size=10)

f[0:1] = b"\t"

f.close()

第三步 激活fat节点的matlab

  • 将许可证放入用户目录的License path,并修改后缀为 .lic
  • 测试:matlab -nodisplay

第四步 测试CSOmap分析

cd /home/rqzhang/CSOmap/code
matlab -nodisplay
runme('demo');

第五步 进行CSOmap分析

  • 直接分析,不推荐,断网气死:
runme('zlliu_IntegrateData_region');
  • 创建 21.09.21.CSOmap.pbs
#!/bin/bash
#PBS -q batch
#PBS -V
#PBS -o /home/rqzhang/zlliu/PBS/CSOmap/CSOmap.out
#PBS -e /home/rqzhang/zlliu/PBS/CSOmap/CSOmap.err
#PBS -l nodes=1:ppn=8
#PBS -r y
cd /home/rqzhang/CSOmap/code
matlab -nodisplay -r "runme('zlliu_IntegrateData_region');exit"
echo $HOME
  • 提交任务:qsub /home/rqzhang/zlliu/PBS/CSOmap/21.09.21.CSOmap.pbs

医学生