专栏名称: 生信菜鸟团
生信菜鸟团荣誉归来,让所有想分析生物信息学数据的小伙伴找到归属,你值得拥有!
目录
相关文章推荐
生信宝典  ·  iMeta | ... ·  昨天  
生物制品圈  ·  Natrue综述丨诺如病毒疫苗的最新研发进展 ·  4 天前  
生物学霸  ·  2025 ... ·  2 天前  
51好读  ›  专栏  ›  生信菜鸟团

玩转服务器—Jupyterhub一键开启Python学习之旅

生信菜鸟团  · 公众号  · 生物  · 2025-01-21 12:49

正文

滴水穿石 非一日之功


JupyterHub

JupyterHub 是一个多用户的服务器端环境,基于 Jupyter Notebook 构建,旨在为不同用户提供一个共享的、交互式的计算环境。它允许用户在集中的服务器上运行 Jupyter Notebook 或 JupyterLab,并能够提供个性化的工作空间。

JupyterHub 起源于 Jupyter 项目(原名 IPython),最初由 Fernando Pérez 于 2001 年发起,目的是提供一个方便的交互式编程环境。在 2015 年,Jupyter 项目从 IPython 分离出来,成为一个独立的开源项目。JupyterHub 是为了满足教育领域和多用户需求而诞生的,能够在云端或大型服务器上为多个用户提供 Jupyter Notebook 环境。由于其具有多用户支持、灵活的身份验证和授权机制、可定制部署、支持多种内核、扩展性强、集中管理和监控、支持集成数据存储和处理等特性。在随后的几年中,JupyterHub 得到了广泛的应用,尤其在学术界、数据科学社区以及企业级数据分析和机器学习工作流中得到了极大的普及。

共享服务器JupyterHub使用

登录

  • 打开浏览器(最好是谷歌或者Edge)
  • 在搜索框输入服务器的域名和端口
  • 出现Jupyterhub登录界面后,输入收到的账号和密码
jupyterhub登录

主界面及功能

主界面

打开jupyterhub主界面,左边是一些管理控制选项,包括文件管理、运行控制、目录、插件管理等。右边是启动器界面,一般包含三个栏目。

  • 左1:文件管理,默认位置是用户家目录 ~。服务器登录Jupyterhub后,默认打开的目录都是Linux用户的家目录。我们如果以此作为工作目录直接使用,那么后续会使得整个家目录的文件乱糟糟的。所以我们尽量每开启一个项目,都创建一个新的目录来管理。
  • 右1:Notebook—最常用,python脚本的编写和交互
  • 右2:Console—纯命令行式的python页面,和在命令行里使用python差不多
  • 右3:Other—Terminal ,打开Linux服务器终端,进行Linux的相关操作

文件上传与下载

对于使用服务器端的jupyterhub与本地电脑进行文件的交互,小文件我们可以直接在网页端上传。大文件还是建议使用Filezilla等工具,详见玩转服务器2—数据上传与下载

上传本地文件到服务器

  1. 点击上传按钮
  2. 选择要上传的本地文件
  3. 打开(即可上传)
jupyterhub上传文件

下载服务器文件到本地电脑

  1. 选择文件,单击右键
  2. 选择Download
  3. 浏览器页面会跳出保存,保存文件到本地电脑指定位置即可
jupyterhub下载文件

Kernel 和 Cell

在 JupyterHub 和 Jupyter Notebook 环境中,Kernel 和 Cell 是两个非常重要的概念。它们是 Jupyter 工作流的核心组成部分,理解它们的功能和作用对于有效使用 JupyterHub 环境至关重要。

Kernel(内核):是一个计算引擎,负责执行代码并返回结果。每个 Jupyter Notebook 都会关联一个 Kernel,负责处理代码单元(Cell)中的代码。不同的语言和框架会有不同的内核,因此你可以在 JupyterHub 中使用不同的编程语言,只要相应的内核已安装并配置好。

Cell :是 Jupyter Notebook 中代码或文本的一个容器。Notebook 是由一系列 Cell 组成的,每个 Cell 中可以包含代码、注释或输出。有以下四种类型

  • Code Cell(代码单元格):用于编写和执行代码。用户可以在其中编写 Python、R 等代码,然后通过运行该 Cell 来执行这些代码。
  • Markdown Cell(标记单元格):用于书写文本内容,支持 Markdown 语法,可以用于记录说明、公式、图片等信息。这是 Jupyter Notebook 中用来做文档化和注释的主要方式。
  • Raw Cell(原始单元格):显示纯文本内容,不会被执行,适合用来添加原始格式的文档内容。
  • Heading Cell(标题单元格):用于创建不同级别的标题,通常与 Markdown Cell 结合使用。

Kernel 和 Cell 的配合使得 Jupyter Notebook 成为一个交互式环境。每个 Cell 中的代码在运行时都与 Kernel 进行交互,通过内核来处理代码执行,并把结果返回给用户。

cell的两种模式

  • 命令模式:没有光标,可以使用快捷键
  • 编辑模式:出现光标,可以正常编辑文字或者代码

更改cell状态

cell状态
  • 把当前cell设置为Markdown —— 命令模式下键盘按M ,用来写文档
  • 把当前cell设置为代码—— 命令模式下键盘按Y,用来写代码

运行cell

命令模式下快捷键:

  • 运行选中的cells:Shift+Enter
  • 运行选中cells并在下方插入新cell:Alt+Enter
  • 运行所有cells:CTRL+A选中所有cell,然后CTRL+Enter运行(如果有错误会卡在有错误的地方)

增删改移 cell

在命令模式下:

  • 在上方添加一个cell:A
  • 在下方添加一个cell:B
  • 复制cell:C
  • 粘贴cell:V
  • 剪切cell:X
  • 删除当前cell:按两下D
  • 撤销cell操作:Z
  • 重做cell操作:Shift+Z

调整cell的前后顺序:鼠标直接拖拽即可
选中所有cells:Ctrl+A
选中上一个cell:K或↑
选中下一个cell:J或↓
当前cell往下移动:Ctrl + shift + ↓
当前cell往上移动:Ctrl + shift + ↑

更多的快捷键可以查看Keyboard Shortcuts:操作是:Settings ——> Advanced Setting Editors (也可用快捷键ctrl+, 或者 command+, 打开) ——>Keyboard Shortcuts

查看快捷键

关于更多使用技巧和Python的学习,最近我们也推出了Python正式课程,如果需要可以移步:掌握Python,解锁单细胞数据的无限可能

调用不同的Conda环境

通常我们会使用Conda创建不同的小环境来做不同的分析,如果我们想在Jupyterhub主界面显示不同的codna环境,那么就需要注册一下小环境对应的内核,一个环境注册通常只需要操作一次。

##激活环境
conda  activate  RNAseq

#
 在小环境中安装 ipykernel
conda install ipykernel -y

#
 将环境写入jupyterhub 的kernel中
python -m ipykernel install --user --name=RNAseq

#
#或者
conda activate sc
python -m ipykernel install --user --name=sc --display-name "Python (sc)"

--user #选项表示将内核安装到当前用户的环境,而不是系统级别的安装
--name #指定内核的内部名称
--display-name #(可选)指定内核在Jupyter界面上显示的名称。如果你想显示其他特定的名称(比如额外信息或说明),可以用这个参数设置
默认界面
安装不同conda环境的Jupyter Kernel后

这样就可以在主界面双击打开一个对应环境的.ipynb 文件,或者在已开的 .ipynb 文件自由切换需要的内核

切换Kernel

停止个人服务

如果长时间不使用的情况下,为节省服务器资源,建议停止个人服务。

操作是:File——>Hub Control Panel ——> Stop My Server

打开Hub控制面板
Hub控制面板

Stop My Server 停止当前的 Jupyter 服务器实例。此操作会关闭你正在运行的 Jupyter Notebook 或 JupyterLab 环境,但不会退出 JupyterHub 登录会话。

Stop My Server后

当你停止服务器实例后,工作环境会被关闭,将无法再访问当前的 Jupyter 环境,直到重新启动服务器实例。

退出登录

退出当前的 JupyterHub 会话,返回到登录页面

操作是:File ——> Log Out

Log Out 会结束当前的用户会话,你的 JupyterHub 会话和所有活动会被终止,包括服务器实例(如果已经启动)。要恢复工作,需要用户重新登录才能重新进入 JupyterHub 和启动新的服务器实例。

退出登录

Stop My Server 只是停止当前的 Jupyter 服务器,而 Log Out 是完全退出 JupyterHub 会话并返回登录页面。

  • 如果你希望暂时停止工作但保留登录状态,使用 Stop My Server。
  • 如果你需要退出 JupyterHub 并结束当前会话,使用 Log Out。

如果你也需要共享服务器,详见:满足你生信分析计算需求的低价解决方案 

福利抢购方式:

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





文末友情宣传

强烈建议你推荐给身边的博士后以及年轻生物学PI,多一点数据认知,让他们的科研上一个台阶: