Bohrium
robot
新建

空间站广场

论文
Notebooks
比赛
课程
Apps
我的主页
我的Notebooks
我的论文库
我的足迹

我的工作空间

任务
节点
文件
数据集
镜像
项目
数据库
公开
一篇带你了解 Bohrium Notebook 的使用
Bohrium 帮助文档
Bohrium 帮助文档
Hui_Zhou
发布于 2023-11-24
推荐镜像 :Basic Image:bohrium-notebook:2023-04-07
推荐机型 :c2_m4_cpu
赞 3
3
写在最前
Markdown 可视化编辑
标题切换
加粗/倾斜
代码格式
引用格式
无序/有序列表
插入链接
插入图片
插入视频链接
代码运行
Notebook 可视化
支持 Matplotlib 绘图
支持 Plotly 绘图
支持 NGLView 结构预览
快捷键技巧
Bohr 助手
更多
参考

©️ Copyright 2023 @ Authors
作者: Hui Zhou 📨
共享协议:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
快速开始:点击上方的 开始连接 按钮,选择 bohrium-notebook 镜像和任意配置机型即可开始。

代码
文本

写在最前

代码
文本

Bohrium Notebook 是 Bohrium 上的一个一站式编写和运行代码的交互式环境,您可以在同一个文档中编写可执行代码、LaTeX、富文本、图片、HTML 等内容,使用 Bohrium 预装好的 DeePMD-kit 等软件和 PyTorch、TensorFlow 等框架,一键连接海量的CPU和GPU资源,并且可以非常便捷地分享给他人进行协作,具体内容可参看 Bohrium Notebook 的帮助文档

本文档主要针对 Bohrium Notebook 交互式环境的使用进行说明,具体内容分为以下几部分:

Bohrium Notebook 在两类页面上的表现可能稍有不同,一类是仅供阅读的案例广场页面(链接中含有 /detail),另一类则是供创作者编辑 Notebook 的页面(链接中含有 user/update);为表示方便,这两类页面分别称为详情页编辑页

代码
文本

Markdown 可视化编辑

Notebook 编辑页面双击 Markdown 单元格或点击单元格右上角快捷工具栏处的编辑图标即可进入 Markdown 可视化编辑页面,如下图所示:

alt

代码
文本

Markdown 可视化编辑提供以下多种快捷操作(在选中文本点击直接点击时具有不同的表现,具体可见下文):

  • 标题切换
  • 加粗
  • 倾斜
  • 代码格式
  • 引用格式
  • 无序列表
  • 有序列表
  • 插入链接
  • 插入图片
    • 上传本地图片
    • 插入图片链接
  • 插入视频链接
代码
文本

标题切换

  • 直接点击 Markdown 可视化编辑的标题切换图标后,将在光标所在行首添加一个 # 符号,多次点击后将逐渐递增一个 #,当行首的 # 数量达到6个(即六级标题)时,再次点击将重新回到1个 # 状态(即一级标题),如下图所示: alt

  • 选中文本再点击图标后,将在当前行把选中文字作为一级标题,再次选中后点击标题级别将会递增,如下图所示: alt

代码
文本

加粗/倾斜

  • 直接点击加粗倾斜图标后,将在光标后分别添加加粗倾斜标志,同时光标停留在一对标志中间,如下图所示: alt

  • 选中文本后再点击加粗倾斜图标后,将把选中文本分别进行加粗倾斜操作,并且光标停留在末尾,如下图所示: alt

代码
文本

代码格式

  • 直接点击代码格式图标后,将在光标后添加代码段格式,同时光标停留在一对标志中间,如下图所示: alt

  • 选中文本后再点击代码格式图标后,将把选中文本转变为代码格式,并且光标停留在末尾,如下图所示: alt

代码
文本

引用格式

  • 直接点击引用格式图标后,将在行首添加引用格式标志>,如下图所示: alt

  • 选中文本后点击引用格式图标与直接点击效果相同,如下图所示: alt

代码
文本

无序/有序列表

  • 直接点击无序/有序列表图标后,将在行首添加无序或有序列表标志,如下图所示: alt

  • 选中文本后点击无序/有序列表图标与直接点击效果相同,如下图所示: alt

代码
文本

插入链接

  • 直接点击插入链接图标后,将在文本后添加链接格式,同时光标定位在链接文本输入区域,如下图所示: alt

  • 选中文本后点击插入链接图标,会将选中的文本直接作为链接文本,并且光标定位在链接输入区域,如下图所示: alt

代码
文本

插入图片

Bohrium Notebook 支持两种插入图片方式,一种是上传本地图片,另一种是插入图片链接

  • 上传本地图片:点击上传本地图片后,选择你想上传的本地图片文件即可在 Markdown 单元格中进行预览
  • 插入图片链接:与插入链接类似,插入图片链接也有两种不同的操作方式,一种是直接点击,另一种则是选中文本后点击,具体效果如下图所示: alt
代码
文本

插入视频链接

Bohrium Notebook 也支持插入视频链接,点击插入视频链接的图标后,将在文本后添加视频链接格式,具体如下图所示: alt

在 Bohrium Notebook 中引用 bilibili 视频时无需使用插入视频链接的方式,可以使用下图所示方法进行: alt

代码
文本

代码运行

点击操作栏的开始连接,待 Notebook 节点启动后即可使用 Bohrium Notebook 运行代码。

Bohrium Notebook 支持一键运行单个或所有代码单元格,并支持更换 Notebook 内核;代码运行后,在代码输出区域可见运行成功的标志,鼠标悬停到运行按钮处还可查看运行时长

alt

代码运行功能在 Bohrium Notebook 的编辑页详情页均支持。

代码
文本

Notebook 可视化

借助 Bohrium Notebook,除了进行通常的 Markdown 可视化编辑和代码运行之外,还可以进行各种精美图表的可视化展示和交互操作,具体可以参看下述的三个可视化实例(点击上方的 开始连接 按钮并运行下述代码即可)

目前,Bohrium Notebook 仅支持 ipywidgets==7.6.5 和 nglview==3.0.3 版本的可视化渲染。

代码
文本

支持 Matplotlib 绘图

代码
文本
[7]
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt

data1, data2, data3, data4 = np.random.randn(4, 100)
X, Y = np.meshgrid(np.linspace(-3, 3, 128), np.linspace(-3, 3, 128))
Z = (1 - X/2 + X**5 + Y**3) * np.exp(-X**2 - Y**2)

fig, axs = plt.subplots(2, 2, layout='constrained')
pc = axs[0, 0].pcolormesh(X, Y, Z, vmin=-1, vmax=1, cmap='RdBu_r')
fig.colorbar(pc, ax=axs[0, 0])
axs[0, 0].set_title('pcolormesh()')

co = axs[0, 1].contourf(X, Y, Z, levels=np.linspace(-1.25, 1.25, 11))
fig.colorbar(co, ax=axs[0, 1])
axs[0, 1].set_title('contourf()')

pc = axs[1, 0].imshow(Z**2 * 100, cmap='plasma',
norm=mpl.colors.LogNorm(vmin=0.01, vmax=100))
fig.colorbar(pc, ax=axs[1, 0], extend='both')
axs[1, 0].set_title('imshow() with LogNorm()')

pc = axs[1, 1].scatter(data1, data2, c=data3, cmap='RdBu_r')
fig.colorbar(pc, ax=axs[1, 1], extend='both')
axs[1, 1].set_title('scatter()')
Text(0.5, 1.0, 'scatter()')
代码
文本

支持 Plotly 绘图

代码
文本
[8]
import plotly.graph_objects as go

import numpy as np

t = np.linspace(-1, 1.2, 2000)
x = (t**3) + (0.3 * np.random.randn(2000))
y = (t**6) + (0.3 * np.random.randn(2000))

fig = go.Figure()
fig.add_trace(go.Histogram2dContour(
x = x,
y = y,
colorscale = 'Blues',
reversescale = True,
xaxis = 'x',
yaxis = 'y'
))
fig.add_trace(go.Scatter(
x = x,
y = y,
xaxis = 'x',
yaxis = 'y',
mode = 'markers',
marker = dict(
color = 'rgba(0,0,0,0.3)',
size = 3
)
))
fig.add_trace(go.Histogram(
y = y,
xaxis = 'x2',
marker = dict(
color = 'rgba(0,0,0,1)'
)
))
fig.add_trace(go.Histogram(
x = x,
yaxis = 'y2',
marker = dict(
color = 'rgba(0,0,0,1)'
)
))

fig.update_layout(
autosize = False,
xaxis = dict(
zeroline = False,
domain = [0,0.85],
showgrid = False
),
yaxis = dict(
zeroline = False,
domain = [0,0.85],
showgrid = False
),
xaxis2 = dict(
zeroline = False,
domain = [0.85,1],
showgrid = False
),
yaxis2 = dict(
zeroline = False,
domain = [0.85,1],
showgrid = False
),
height = 600,
width = 600,
bargap = 0,
hovermode = 'closest',
showlegend = False
)

fig.show()
代码
文本

支持 NGLView 结构预览

代码
文本
[9]
import matplotlib.pyplot as plt
import networkx as nx # for graphs
import numpy as np # for matrices
import time

import nglview as nv # for 3D visualizations

from rdkit import Chem
from rdkit.Chem.Draw import IPythonConsole
from rdkit.Chem import Draw
from rdkit.Chem import AllChem, rdDistGeom
from rdkit.Chem import rdFingerprintGenerator

IPythonConsole.ipython_useSVG = True

# Here we define a caffeine molecule using Smiles.
mol_caffeine = Chem.MolFromSmiles("CN1C=NC2=C1C(=O)N(C(=O)N2C)C")
mol_caffeine

mol1 = Chem.MolFromSmiles("CC[CH](C)O") # without chiral information
mol2 = Chem.MolFromSmiles("CC[C@H](C)O") # enantiomer 1
mol3 = Chem.MolFromSmiles("CC[C@@H](C)O") # enantiomer 2

Draw.MolsToGridImage([mol1, mol2, mol3], molsPerRow=3, subImgSize=(200, 200))

m = Chem.AddHs(
Chem.MolFromSmiles("CC[C@@H](C)O")
) # replace with 'CC[C@H](C)O' for other enantiomer
AllChem.EmbedMultipleConfs(m, useExpTorsionAnglePrefs=True, useBasicKnowledge=True)
view = nv.show_rdkit(m)
view
代码
文本

快捷键技巧

Bohrium Notebook 支持多种快捷键操作,具体可参看下表:

快捷键 功能描述 详情页 编辑页
Shift + Enter 执行当前单元格并选中下一个单元格 支持 支持
Ctrl + Enter 执行当前单元格 支持 支持
Ctrl + / 代码注释/取消代码注释 支持 支持
ESC 命令模式 Z 全局撤销 支持 支持
Shift + Z 全局还原撤销 支持 支持
D,D 删除单元格 不支持 支持
X 剪切单元格 不支持 支持
C 复制单元格 不支持 支持
V 粘贴单元格 不支持 支持
A 在当前单元格上方插入代码单元格 不支持 支持
B 在当前单元格下方插入代码单元格 不支持 支持
选中上一个单元格 支持 支持
选中下一个单元格 支持 支持
代码
文本

Bohr 助手

Bohrium Notebook 集成了 Bohr 代码助手和翻译助手,可以自动解答代码运行的错误、对代码进行解读和全文翻译。

下图展示了详情页运行一段错误代码并选中源代码后同时展现【代码解读】【报错解答】以及操作栏常驻【对照翻译】的状态:

alt

具体来说:

  • 当选中一段代码后,代码单元格将会自动浮出【代码解读】按钮,点击后即可对选中代码进行解读;
  • 当运行一段错误代码后,代码单元格底部将会自动浮出【报错解答】模块,还可与 Bohr 聊天助手进行交互问答;
  • 点击操作栏的【对照翻译】,可以将全文的 Markdown 单元格进行翻译,提供【中译英】和【英译中】两种模式

编辑页仅提供了 Bohr 助手的【报错解答】功能

代码
文本

更多

Bohrium Notebook 的案例广场提供了更加丰富的 Notebook 实例,点击此处可以了解更多 Notebook 的使用技巧。

代码
文本
Bohrium 帮助文档
Bohrium 帮助文档
已赞3
本文被以下合集收录
notebook的基本使用
哈哈哈
更新于 2024-03-16
2 篇0 人关注
Bohrium Notebook
xinsui
更新于 2024-02-22
1 篇0 人关注
推荐阅读
公开
Play Around RNA Secondary Structure: Prediction and Visualization of RNA
RNA
RNA
Bohrium小助手
发布于 2023-09-26
1 转存文件
公开
charpter3_logistic_regression/logistic_regression
机器学习
机器学习
xuxh@dp.tech
更新于 2024-08-09