ActivePapers 教程
Python 版 JVM 版 Pharo 版 博客 … 库 —> ActivePapers 教程 这个简短的教程展示了如何检查 ActivePaper 的内容 提取代码和文档(包括绘图) 修改计算参数 修改代码 重新运行计算 从头开始创建 ActivePaper 本教程的示例文件可以从 Figshare 下载。查看 Figshare 网站上的描述也是一个好主意。您不需要了解它的作用或原因,但如果您有兴趣,请随意查看描述该工作的论文,该论文是关于从分子动力学轨迹计算溶液中蛋白质的平移和旋转扩散张量。请将下载的ActivePaper文件复制到空目录中。打开 shell 窗口,然后转到该目录。当您输入 ls -l 时,您应该看到类似 -rw-r—r— 1 hinsen Staff 148133188 Sep 26 16:21 lysozyme_diffusion.ap 检查内容 aptool ls 会生成一长串数据集,从 code/correlation_functions code/diffusion_tensor code/identify_trajectories code/plots code/python-packages/fitting code/python-packages/fitting code/python-packages/molecular_structure code/python-packages/mosaic code/python-packages/quaternion code/python-packages/time_series code/python-packages/units code/thermal_averages code/trajectory_processing data/coordinate_trajectories/rotation_laboratory_frame_1 data/coordinate_trajectories/rotation_laboratory_frame_10 data/coordinate_trajectories/rotation_laboratory_frame_2 但是 aptool 如何知道您要查看哪个 ActivePaper 文件呢?好吧,如果当前目录中只有一个扩展名为 .ap 的文件,那就是它所需要的文件。这就是为什么为每个 ActivePaper 项目使用单独的目录是一个好主意。如果出于某种原因您不想这样做,您可以显式传递 ActivePaper 文件名: aptool ls -p lysozyme_diffusion.ap 您可以使用 aptool ls -l 获得更多信息 2013-06-07/09:13:05 calclet code/correlation_functions 2013-06-07/09:19:48 calclet code/diffusion_tensor 2013-06-07/10:02:29 calclet code/identify_trajectories 2013-06-12/08:03:48 calclet code/plots 2013-06-04/15:42:02 module code/python-packages/fitting 2013-05-02/15:11:53 module code/python-packages/molecular_structure 2013-06-14/15:46:18 reference code/python-packages/mosaic 2013-05-23/11:42:31 module code/python-packages/quaternion 2013-05-27/04:13:09 module code/python-packages/time_series 2013-05-02/15:12:07 module code/python-packages/units 加上很多类似的行。第一列显示每个数据集上次修改的日期和时间。第二列显示数据集的类型。上面的列表包含两种可执行代码类型: calclet 和 module 。第三个没有出现在这个列表中,即 importlet 。模块正是您作为 Python 程序员所期望的:由其他 Python 代码导入的 Python 源代码文件。 Calclets 和 importlet 是 ActivePapers 提供的脚本的两种变体。最常见的类型是 calclet,它是一个具有受限权限的 Python 脚本:它不能在其包含的 ActivePaper 文件之外执行任何 I/O,这意味着它既不能访问文件,也不能访问网络资源。这些限制确保了可重复性(保证所有输入数据都在 ActivePaper 中)并保护用户免受错误和恶意代码的侵害。但它们也意味着 calclet 不能用于将数据导入 ActivePaper。这就是 importlet 发挥作用的地方:它们可以使用任何 Python 功能并访问任何资源。这也意味着您不应该在没有先查看别人的 importlet 的情况下运行它们。 [[Calclets]] 页面告诉您如何编写 calclet 和 importlet。上面的列表中还有一种数据集类型:引用,用于引用其他 ActivePaper 文件中的数据集。
引用由两部分组成:对文件的引用以及该文件中数据集的名称。文件引用可以是已发布文件的 DOI,也可以是本地文件名。显然,本地文件名在其他人的计算机上没有任何意义,因此本地引用有点像 importlet:它们记录数据的来源,但不使其可用。让我们看看 ActivePaper 中的参考文献: aptool refs 我们找到 1 个 DOI 和 10 个本地参考文献: doi:10.6084/m9.figshare.705829 local:lysozyme_spce_rbt_1 local:lysozyme_spce_rbt_10 local:lysozyme_spce_rbt_2 local:lysozyme_spce_rbt_3 local:lysozyme_spce_rbt_4 local:lysozyme_spce_rbt_5 local:lysozyme_spce_rbt_6 local:lysozyme_spce_rbt_7 local:lysozyme_spce_rbt_8 local:lysozyme_spce_rbt_9 DOI 适用于 pyMosaic 库,版本 0.1.1,存放在 Figshare 上。本地文件是在 ActivePaper 中分析的模拟轨迹。让我们获取有关这些引用的更多信息: aptool refs -v doi:10.6084/m9.figshare.705829 links: code/python-packages/mosaic local:lysozyme_spce_rbt_1 copies: data/center_of_mass data/orientation data/reference_structure data/time 等等其他九个输入文件。这表明 DOI 用于指向目标文件的数据集 code/python-packages/mosaic 的链接,而本地文件用作复制到 ActivePaper 本身的数据源。因此,副本引用仅用于文档,无需拥有引用文件的副本。回到数据集类型。还有一些没有出现在 aptool ls -l 的第一行中,所以让我们看一下剩下的几行: 2013-07-03/12:24:26 text documentation/README 2013-06-14/15:55:08 file documentation/c_rr_diagonals.pdf 2013-06-14/15:55:00 data data/correlation_function_integration_limit 2013-06-14/15:46:47 dummy data/coordinate_trajectories/rotation_laboratory_frame_1 您大概可以猜到文本的含义。文件就像 Unix 世界中的文件一样:字节序列,没有附加任何特定的解释。稍后您将看到如何提取这样的文件。数据的含义可能不太明显,特别是它与文件的区别。答案是数据是任意的 HDF5 数据集,其特征在于数据空间和数据类型。如果你愿意的话,可以把它想象成一个数组,事实上它非常接近。这就留下了 dummy ,它是一个不存在的数据集。更准确地说,不再存在的数据集。它是由 calclet 生成的数据集,然后显式删除(使用 aptool dummy …)以减小文件大小。如果您想检查它,或者运行任何读入它的 calclet,则必须首先通过重新运行 calclet 来重新生成它。因此,让我们这样做: aptool update -v 这将更新 ActivePaper 中需要更新的所有内容:虚拟数据集,但也包括过时的数据集,即比生成它们的 calclet 的当前版本更旧的数据集。 -v 选项使其变得冗长,它告诉您运行了哪些 calclet 以及运行的原因。准备好等待一段时间;在我的机器上,该操作大约需要八分钟。我们可以看到文件大小显着增加: ls -l -rw-r—r— 1 hinsen Staff 540352636 Oct 23 14:54 lysozyme_diffusion.ap 此外,以前的虚拟数据集现在是真实的数据集: aptool ls -l data/coordinate_trajectories/rotation_laboratory_frame_1 2013-10-23/14:45:29 data data/coordinate_trajectories/rotation_laboratory_frame_1 提取绘图 如果您查看 aptool ls -l 的完整输出,您会注意到 Documentation 下有几个 PDF 文件。要查看它们,请将它们提取到真实文件中: aptool checkout Documentation 这还将为您提供 README ,因为它将 HDF5 组文档中的所有内容提取到一个名为(您猜对了,documentation )的本地目录。
ActivePaper 中的文档组用于供人类使用的数据,它通常不用作计算的输入。请注意,您当然可以查看单个文件,例如aptool checkout documentation/README.txt checkout 命令仅提取比磁盘上相应文件更新的数据集(如果已存在)。因此,您可以编辑提取的文件,而不会覆盖它们。在使用代码时,我们将立即看到这一点。提取并修改代码接下来我们看一下全部代码
Learn Python by coding in your browser
Interactive Python and data-science courses you code directly in the browser