专栏首页生信菜鸟团没想到自己会放弃conda(docker镜像的pyscenic做单细胞转录因子分析)

没想到自己会放弃conda(docker镜像的pyscenic做单细胞转录因子分析)

本来是想测试一下,使用pyscenic做转录因子分析,然后记录笔记给大家!所以就有了昨天的:使用pyscenic做转录因子分析,但实际上我在里面埋下了一个伏笔,就是使用conda安装的这个pyscenic,它依赖于一系列的python模块,就会在这里报错!比如我遇到的就是其中一个python模块pandas的报错:

ImportError: cannot import name 'DtypeArg' from 'pandas._typing' (/home/x10/miniconda3/envs/pyscenic/lib/python3.7/site-packages/pandas/_typing.py)

不过,我使用了docker镜像的pyscenic,所以绕过了这个报错!那,我们现在演练一下如何使用docker镜像的pyscenic吧!

需要root权限安装docker

通常情况下, 可以找你的服务器管理员帮助你安装docker,并且添加你加入docker用户组,这样你就有权限使用它!

# https://docs.docker.com/engine/install/ubuntu/ 
sudo apt-get install     apt-transport-https     ca-certificates     curl     gnupg     lsb-release
 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo   "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

sudo usermod -aG docker x10
 sudo systemctl restart docker

所以,这个代码,大概率你是无需学习也无需弄懂,找你的管理员即可!

docker是一个解决方案,可以做到真正的一句话代码安装

它不仅仅是帮你安装软件,还打包好测试数据,运行的示例,配套数据库,甚至还赠送你一个操作系统!我在生信技能树上面写过部分docker教程, 目录如下:

感兴趣的可以简单浏览,如果要完全掌握,仍然是推荐大家看文档,多练习。比如gistic2就有docker镜像,一句话解决战斗:

docker pull cheungatm/gistic2:v2

同理,docker镜像的pyscenic 也是一句话:

docker pull aertslab/pyscenic:0.10.0

如果网络OK的话,你会看到如下所示的成功信息:

# https://pyscenic.readthedocs.io/en/latest/installation.html 


0.10.0: Pulling from aertslab/pyscenic
f5d23c7fed46: Pull complete
bac1b0ed365c: Pull complete
0699bcf8d873: Pull complete
f306e429bf35: Pull complete
64d56457d658: Pull complete
cd7482e5a1bf: Pull complete
37b049e1bc6b: Pull complete
Digest: sha256:48f84d615640ac3da4086ac79c383dd82009ab83952a64e78be40d007e68b72a
Status: Downloaded newer image for aertslab/pyscenic:0.10.0
docker.io/aertslab/pyscenic:0.10.0

安装好了docker镜像的pyscenic,接下来就是使用它!

使用pyscenic这个docker镜像里面的python

同样的,自己准备好如下所示的文件,如果有疑问,可以看昨天的:使用pyscenic做转录因子分析

 54M 7月  18 11:18 fibo_1000.csv
1.1G 7月  18 11:30 hg19-tss-centered-10kb-7species.mc9nr.feather
12K 7月  18 11:29 hs_hgnc_tfs.txt
99M 7月  18 11:29 motifs-v9-nr.hgnc-m0.001-o0.0.tbl 

然后进入pyscenic这个docker镜像里面的python,进行csv文件转换为loom文件

docker run -it --rm -v /home/x10/test/pyscenic/:/scenicdata  aertslab/pyscenic:0.10.0
# 默认直接进入python,可以输入python代码

我输入的python代码如下所示:

import os, sys
os.getcwd()
os.listdir(os.getcwd())
os.chdir("/scenicdata" )

import loompy as lp;
import numpy as np;
import scanpy as sc;
x=sc.read_csv("fibo_1000.csv");
row_attrs = {"Gene": np.array(x.var_names),};
col_attrs = {"CellID": np.array(x.obs_names)};
lp.create("sample.loom",x.X.transpose(),row_attrs,col_attrs);

这个代码就会把我 服务器的/home/x10/test/pyscenic/文件夹里面的 fibo_1000.csv 这个文件,转为 sample.loom 文件。

假如你使用conda安装的这个pyscenic,它依赖于一系列的python模块,就会在这里报错!比如我遇到的就是pandas的报错:

ImportError: cannot import name 'DtypeArg' from 'pandas._typing' (/home/x10/miniconda3/envs/pyscenic/lib/python3.7/site-packages/pandas/_typing.py)

不过,现在,我使用了docker镜像的pyscenic,所以绕过了这个报错!

使用pyscenic这个docker镜像的pyscenic命令

首先使用pyscenic命令的 grn 子命令,如下所示:

docker run -it --rm -v /home/x10/test/pyscenic/:/scenicdata  aertslab/pyscenic:0.10.0 \
pyscenic grn \
--num_workers 20 \
--output /scenicdata/adj.sample.tsv \
--method grnboost2 \
/scenicdata/sample.loom \
/scenicdata/hs_hgnc_tfs.txt

前面的 fibo_1000.csv 文件里面是1000成纤维细胞的表达量矩阵,20min就完成了这个步骤!

2021-07-18 08:03:35,140 - pyscenic.cli.pyscenic - INFO - Loading expression matrix.

2021-07-18 08:03:41,720 - pyscenic.cli.pyscenic - INFO - Inferring regulatory networks.

2021-07-18 08:24:21,520 - pyscenic.cli.pyscenic - INFO - Writing results to file.

再运行 cistarget 这个子命令:

docker run -it --rm -v /home/x10/test/pyscenic/:/scenicdata  aertslab/pyscenic:0.10.0 \
pyscenic   ctx \
/scenicdata/adj.sample.tsv \
/scenicdata/hg19-tss-centered-10kb-7species.mc9nr.feather \
--annotations_fname /scenicdata/motifs-v9-nr.hgnc-m0.001-o0.0.tbl \
--expression_mtx_fname /scenicdata/sample.loom \
--mode "dask_multiprocessing" \
--output /scenicdata/reg.csv \
--num_workers 3 \
--mask_dropouts

时间消耗如下:

2021-07-18 08:56:47,900 - pyscenic.utils - INFO - Creating modules.

2021-07-18 08:58:26,099 - pyscenic.cli.pyscenic - INFO - Loading databases.

2021-07-18 08:58:26,099 - pyscenic.cli.pyscenic - INFO - Calculating regulons.

2021-07-18 09:38:00,673 - pyscenic.cli.pyscenic - INFO - Writing results to file.

最后运行AUCell 这个子命令,这个步骤超级快

docker run -it --rm -v /home/x10/test/pyscenic/:/scenicdata  aertslab/pyscenic:0.10.0 \
pyscenic  aucell \
/scenicdata/sample.loom \
/scenicdata/reg.csv \
--output /scenicdata/sample_SCENIC.loom \
--num_workers 3

时间消耗如下:

2021-07-18 09:40:42,311 - pyscenic.cli.pyscenic - INFO - Loading expression matrix.

2021-07-18 09:40:43,745 - pyscenic.cli.pyscenic - INFO - Loading gene signatures.
Create regulons from a dataframe of enriched features.

2021-07-18 09:41:00,699 - pyscenic.cli.pyscenic - INFO - Calculating cellular enrichment.

2021-07-18 09:41:18,550 - pyscenic.cli.pyscenic - INFO - Writing results to file.

既然docker如此好用

首先你不一定有自己的服务器,其次你的服务器也不一定有docker环境。而我们提供手快有,手慢无(共享96线程384G内存服务器),一站式解决单细胞高级数据分析!

还等什么呢,赶快扫描下面二维码添加微信抢购吧!

本文分享自微信公众号 - 生信菜鸟团(bio_123456789)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-07-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 没想到自己会放弃conda(docker镜像的pyscenic做单细胞转录因子分析)

    不过,我使用了docker镜像的pyscenic,所以绕过了这个报错!那,我们现在演练一下如何使用docker镜像的pyscenic吧!

    生信技能树
  • 使用pyscenic做转录因子分析

    毕竟在文章《A scalable SCENIC workflow for single-cell gene regulatory network analysi...

    生信技能树
  • 单细胞转录因子分析之SCENIC流程

    SCENIC (Single-Cell rEgulatory Network Inference and Clustering) is a computatio...

    生信技能树
  • dyno使用教程--1个R包实现59种单细胞轨迹推断分析

    A comparison of single-cell trajectory inference methods[1](Saelens et al., 2019...

    生信技能树jimmy
  • 一步到位-把生信分析装在“盒子”里

    每一个做生信的人在安装新软件之前都曾有过期待,这个软件要一次性安装好,可现实往往是残酷的...可见有一个良好的分析环境,对我们的研究效率是有多么的高!

    阿凡亮
  • 使用基于python的velocyto软件做RNA速率分析

    上游分析需要在Linux操作环境里面,前面对10x的测序数据fq文件完成了 cellranger命令之后会有一个outputs文件夹。在该文件夹运行conda安...

    生信技能树
  • SCENIC | 以single-cell RNA-seq数据推断基因调控网络和细胞功能聚类

    目前单细胞转录组领域用的比较多的细胞聚类方法大多是直接从基因表达矩阵推断,但是对于多样本合并分析,很多情况下会出现难以解决的批次效应,例如:

    生信技能树jimmy
  • scRNA小鼠发育Smartseq2流程—前言及上游介绍

    这次要重复的文章是:Dissecting Cell Lineage Specification and Sex Fate Determination in Go...

    生信技能树jimmy
  • 什么,ENA和SRA数据库存放的单细胞转录组测序数据并不一致啊?

    但是这个两年前的系列笔记是基于V2,V3版本的cellranger,目前呢它更新到了版本4,建议大家以最新版教程为准,在《生信技能树》:cellranger更新...

    生信技能树
  • CNS图表复现10—表达矩阵是如何得到的

    CNS图表复现之旅前面我们已经进行了9讲,你可以点击图表复现话题回顾。如果你感兴趣也想加入交流群,自己去:你要的rmarkdown文献图表复现全套代码来了(单细...

    生信技能树jimmy
  • 服务器被关机,不妨试试看用你的Mac电脑跑NGS流程

    现在我就分享一下我自己mac电脑的conda等生物信息学环境配置,提高大家的生产力!

    生信技能树
  • 如何从看不懂Dockerfile到创建自己的镜像

    开始了解Docker是健明的一篇文章跟着jimmy学docker系列之第2讲:一个软件一个容器,那时正在研究虚拟机(Virtual Machine),发现Doc...

    生信技能树
  • 没有docker我真的不想动这样的生信软件

    最开始开发者都是C语言流派, 所以标准的源代码安装三部曲即可,即使 configure+make+ make install 来安装

    生信技能树
  • 可重复的生信分析系列一:Docker的介绍

    可重复的生信分析一直是未来的趋势。如果实现可重复的生信分析,关键在于分析软件版本的控制,一致的环境设置还有良好的分析流程的记录。最近发现一篇关于这方面很好的教程...

    生信菜鸟团
  • 深度学习工作站配置指南

    来源丨https://zhuanlan.zhihu.com/p/336429888

    公众号机器学习与生成对抗网络
  • 保姆级教程:个人深度学习工作站配置指南

    来源丨https://zhuanlan.zhihu.com/p/336429888

    Datawhale
  • 明码标价之探索新流程(以MSIpred为例)

    用于整合所有样本的体细胞突变注释结果,由\t分隔的许多列构成,开头的#为注释行,完整的MAF文件有100多列,官网有关于它的详细介绍:

    生信技能树
  • Kubernetes VS Docker:了解2021年的容器

    几个星期前,Kubernetes开发团队宣布,他们正在弃用docker。这则新闻通过科技界和社交网络广为流传。Kubernetes 群集是否会中断,如果是,我们...

    孙玄@奈学教育
  • Python 做 Nature 级的单细胞分析(图文详解)

    如果 conda 不熟悉的小伙伴,可以参考:https://blog.csdn.net/u011262253/article/details/88828229

    生信菜鸟团

扫码关注云+社区

领取腾讯云代金券