加速小技巧:切换空闲计算节点

节点负荷查看

我们一致致力于给大家提提供高性价比的计算设备:足够支持你完成硕博生涯的生信环境。大家在使用西柚云服务器时不知道有没有发现,有的时候计算的负荷很高,从而会使计算速度变慢。对于共享资源的合理分配,我们早就做了很多硬件/软件的准备。这时大家可以看一下自己的CPU负载是否过高(内存是你独享的,占用多少应该你已经知道啦)。如果你对下面的教程比较迷茫,可以先行学习:十小时学会Linux生信Linux及服务器使用技巧5.5h入门R语言

FinalShell的左上角就有系统信息可以直接查看:

当然,你也可以使用htop命令来查看CPU占用情况:

    htop

    显然,在示例中,当前节点的CPU占用率高达84%(其实占用率可以超过100%)。长期的高占用这显然会影响我们的计算速度、甚至还有可能导致CPU硬件负荷高从而导致过热。好在我们给大家提供了数十个计算节点,并且按照用户数量定期添加算力。这时我们就可以来到大禹系统的控制台中的“仪表盘”。查看空闲计算节点,可以看到,我们的节点一篇绿色,很多节点的资源占用率只有个位数:

    甚至还可以看到当前节点的CPU占用率随时间波动的曲线:

    切换节点

    这时大家可以进入实例列表:

    查看实例并进入详情界面:

    需要先暂停你的实例运行,才可以完成迁移过程:

    点击确认停止:

    稍等片刻,确认实例停止后在实例列表中点击迁移:

    选择占用率低的节点:

    迁移完毕后记得重新启动实例:

    重新启动后,无需更换原来的ssh与Rstudio-server访问方式,可以直接丝滑的接着使用:

    切换节点前:

    切换节点后:

    总时间大概快了1/4

    测试代码与数据

    顺序计算

      # 测试代码system.time({  library(Seurat)  iri <- readRDS('./iri.intergrate.rds')  iri[["percent.mt"]] <- PercentageFeatureSet(iri, pattern = "^MT-") #通过线粒体的序列数来对数据进行计算  head(iri@meta.data, 5)  #QC的数据存在meta.data里,可以用这个来查看前5行  VlnPlot(iri, features = c("nFeature_RNA", "nCount_RNA", "percent.mt"), ncol = 3)   #用小提琴图来展示QC的结果,展示了每个barcode中基因的数目、UMI数目以及线粒体基因含量的分布情况  plot1 <- FeatureScatter(iri, feature1 = "nCount_RNA", feature2 = "percent.mt")  plot2 <- FeatureScatter(iri, feature1 = "nCount_RNA", feature2 = "nFeature_RNA")  CombinePlots(plots = list(plot1, plot2)) #高变基因,判断趋势及占比  #质控,选子集,RNA数量在200与2500之间的,多的可能是低质量细胞或空drouplets,gene count多的可能是doublets or multiplets  iri <- NormalizeData(iri, normalization.method = "LogNormalize", scale.factor = 10000)        #用LogNormalize法对数据进行标准化(乘10000再取对数)数据存在iri[["RNA"]]@data.里  #默认的方法也完成了log1p的操作,得到的结果就类似于TPM的对数  iri <- FindVariableFeatures(iri, selection.method = "vst", nfeatures = 2000)  # 筛选高变基因(输出2000个),用于下游的PCA及分群  top10 <- head(VariableFeatures(iri), 10) #输出差异最大的十个基因  plot1 <- VariableFeaturePlot(iri)  plot2 <- LabelPoints(plot = plot1, points = top10, repel = TRUE)  CombinePlots(plots = list(plot1, plot2))  #输出差异基因散点图(有无标签)  iri <- ScaleData(iri, features =  rownames(iri)) #将数据进行标准化,为后续的PCA分析做准备,数据存在iri[["RNA"]]@scale.data  ##for PCA DoHeatmap   #iri <- ScaleData(iri)#only4VariableFeatures  iri <- ScaleData(iri, vars.to.regress = "percent.mt") #剔除不想要的变量(如线粒体的比例)  #iri[["RNA"]]@scale.data  iri <- RunPCA(iri, features = VariableFeatures(object = iri)) #PCA降维分析  print(iri[["pca"]], dims = 1:5, nfeatures = 5) #打印PCA部分结果  VizDimLoadings(iri, dims = 1:2, reduction = "pca")   DimHeatmap(iri, dims = 1, cells = 500, balanced = TRUE) #三种PCA展示方式  DimHeatmap(iri, dims = 1:15, cells = 500, balanced = TRUE) #展示15种PCA  #筛选合适的维度:  iri <- JackStraw(iri, num.replicate = 100) #重复计算次数  iri <- ScoreJackStraw(iri, dims = 1:20) #计算维度这一步花的时间比较久  JackStrawPlot(iri, dims = 1:15) #画出1到15个维度  #JackStrawPlot相当于高级PCA,为挑选合适维度进行下游可视化提供依据  ElbowPlot(iri) #利用ElbowPlot来评价PC,PCA切记为了结果好看而降低PC数  iri <- FindNeighbors(iri, dims = 1:10)  iri <- FindClusters(iri, resolution = 0.5)   #细胞分群,resolution分辨率在细胞数在3000附近时一般设为0.4-1.2,resolution越大得到的类群越多  head(Idents(iri), 5) #看前五个分类群ID  #非线性降维方法:UMAP、tSNE  iri <- RunUMAP(iri, dims = 1:10) #运行UMAP算法  #sce.all <- RunUMAP(sce.all, dims = 1:30, min.dist = 0.01, n.neighbors = 4L)  #可以调整亚群之间的距离  iri <- RunTSNE(iri, dims = 1:10) #运行TSNE算法,TSNE算法运行时间较UMAP更久  DimPlot(iri, reduction = "umap", label = TRUE)    iri.markers <- FindAllMarkers(iri, only.pos = TRUE, min.pct = 0.25, logfc.threshold = 0.25)   })

      设置并行计算在上面的实际计算代码前设置如下命令:

        makecore <- function(workcore,memory){  if(!require(Seurat))install.packages('Seurat')  if(!require(future))install.packages('future')  plan("multisession", workers = workcore)  options(future.globals.maxSize= memory*1024*1024**2)}makecore(4,10)#这里以四线程,10GB为例

        测试文件:(点击了解更多)

        评论
        添加红包

        请填写红包祝福语或标题

        红包个数最小为10个

        红包金额最低5元

        当前余额3.43前往充值 >
        需支付:10.00
        成就一亿技术人!
        领取后你会自动成为博主和红包主的粉丝 规则
        hope_wisdom
        发出的红包
        实付
        使用余额支付
        点击重新获取
        扫码支付
        钱包余额 0

        抵扣说明:

        1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
        2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

        余额充值