贡献者指南¶
课程来源与翻译声明
- 原著版权:本教程翻译自瓦赫宁根大学(Wageningen University & Research)的经典开源课程 Introduction to Bioinformatics。
- 翻译说明:本版本主要采用人工智能(机器翻译)进行全文本地化,并由团队进行了初步校对。部分专业术语可能存在翻译不够地道或准确的地方。
- 勘误反馈:若你在学习过程中遇到语病、错别字、代码失效或概念歧义,欢迎随时点击页面右上角的 :material-edit: 编辑此页(或联系课题组/在 GitHub Issue 中)提交反馈,帮助我们持续完善本教程。
Jupyter Book¶
《生物信息学导论》是一部以 MyST Markdown 编写的开源教材,使用 Jupyter Book 2 编译,并通过 GitHub Pages 发布。Jupyter Book 2 目前仍处于 alpha 阶段,以下许多规范可能会有所变动。
规范¶
本教材通篇采用统一规范,旨在使内容结构清晰、便于贡献者理解,并为后续维护与调整提供便利。 以下对这些规范进行详细说明。请参阅 Jupyter Book 2 文档 获取更多信息。
标题与章节¶
本教材使用标题符号(#)来组织结构。每一章应以一个一级标题(#)开头,随后使用二级标题(##)。 如果某一节需要进一步细分,可以使用三级、四级以及最多五级标题(分别为 ###、####、#####)。 但需要注意,子章节将从属于其上方的二级标题,直到遇到下一个二级标题为止。 因此,二级标题应用于引入一个较宽泛的概念,而子章节则提供该概念各具体部分的信息。 每个标题(文末的参考文献部分除外)之后都以分节线(---)结尾。
一个结构规范的 Markdown 文件示例:
# 主标题
章节引言。
---
## 宽泛概念 1
对本节内容的简要概述。
---
### 与概念 1 相关的更具体信息。
具体内容。
---
### 与概念 1 相关的补充具体信息。
具体内容。
---
## 宽泛概念 2
对本节内容的简要概述。
---
## 参考文献
有关标题与章节的更多信息,请参阅 Jupyter Book 文档。
图片¶
当正文需要配图时,使用以下语法:
:::{figure} ../images/image.(png/jpg/svg/etc.)
:alt: 图片的替代文本描述
:align: (center/left/right)
:width: (px/%)
:name: 图片的引用名称
图片的描述说明。
:::
一个规范的图片内容块示例:
:::{figure} images/Week1/aminoacid.jpg
:alt: 氨基酸的结构
:align: center
:width: 40%
:name: aminoacid
氨基酸的结构。四个基团连接在 α-碳原子上:氨基、氢原子、羧基和侧链(R 基团)。
:::
图片描述的末尾应注明适用的许可协议(如有)并引用原始来源。 下一节将介绍如何在正文中添加参考文献并进行引用。 有关图片的更多信息,请参阅 Jupyter Book 文档。
引用、文献引用、许可协议与交叉引用¶
本教材中实现了多种链接方式,每种方式都有其各自的语法要求。以下将逐一详细说明。
引用¶
当需要引用图片时,使用以下语法:
参见 {numref}`图片的引用名称`。
例如,图片内容块如下所示:
:::{figure} images/Week1/protrep.jpg
:alt: 蛋白质表示方法
:align: center
:width: 60%
:name: protrep
使用 NGL 生成的 PDB 结构 5PEP 的不同表示方式。
:::
要在正文中引用该图片,应添加以下内容:
有关示例请参见 {numref}`protrep`。
使用 {numref} 可确保图片自动编号,并在正文中通过该编号进行引用。 有关引用图片的更多信息,请参阅 Jupyter Book 文档。
文献引用与许可协议¶
当使用来自外部来源(论文、网站等)的图片或文字时,必须进行适当的署名标注。
文献引用应使用以下语法在正文中或图片描述末尾进行:
{cite}`引用名称`
引用名称基于仓库根目录下 references.bib 文件中为该引用赋予的名称。 该文件为 BibTeX 文件,包含每个引用的 BibTeX 条目。 BibTeX 引用通常可以直接从论文中下载,但了解其通用格式也很有帮助。 有关 Jupyter Book 2 文献引用的更多信息,请参阅 Jupyter Book 2 文档;有关 BibTeX 引用的通用信息,请参阅 BibTeX.org。
一个包含单条引用的 BibTeX 文件示例:
@article{GDT_2020,
title = {`It will change everything`: DeepMind's AI makes gigantic leap in solving protein structures},
author = {Callaway, E.},
journal = {Nature},
volume = {588},
pages = {203-204},
url = {https://www.nature.com/articles/d41586-020-03348-4},
doi = {10.1038/d41586-020-03348-4},
year = {2020}
}
该引用的名称为 GDT_2020。命名的通用格式应遵循 名称_年份 的风格。 在此示例中,GDT 是全局距离测试(global distance test)的缩写,2020 为发表年份。
文献引用应先以 BibTeX 条目的形式添加到 references.bib 文件中,然后才能使用 {cite} 语法。
假设上述示例已保存在 references.bib 中,即可使用以下方式引用:
{cite}`GDT_2020`.
如果所使用的图片有 Creative Commons 许可协议,应在图片描述中注明该许可协议。 许可协议使用以下语法链接至 Creative Commons 网站:
[许可协议类型](许可协议网页链接)
例如,在为图片添加署名时:
:::{figure} images/Week1/terstructure.jpg
:alt: 三级结构相互作用
:align: center
:width: 80%
:name: terstructure
稳定蛋白质三级结构的化学相互作用。
来源:[CC BY 4.0](https://creativecommons.org/licenses/by/4.0) {cite}`proteins_2018`。
:::
这确保了教材中图片的使用不存在任何歧义。文献引用始终位于许可协议之后(如适用)。
瓦赫宁根大学及研究中心(WUR)倾向于将自创图片以 CC BY-NC 4.0 许可协议发布,并使用以下格式:
{cite}`own_[章节编号]_[年份]`.
例如:
{cite}`own_2_2024`.
用于第 2 章中的自创图片。
有关参考文献与文献引用的更多信息,请参阅 Jupyter Book 文档。
交叉引用¶
有时正文需要引用前面或后面的章节,以帮助读者理解某一主题。 这些即为交叉引用,其使用可以附加到标题上的标签来实现。
创建标题标签的语法如下:
(chapter[#]_label)=
# 标题
交叉引用标签的使用方式为:
[任意文本](#chapter[#]_label)
例如,当需要交叉引用一个关于翻译(translation)的章节时,应在包含翻译信息的标题上方添加以下标签:
(chapter1_translation)=
# Translation
关于翻译的信息。
然后可以使用以下方式进行引用:
有关翻译的更多信息,请参见上述章节 [Translation](#chapter1_translation)。
这将生成一个指向第 1 章 translation 标签的链接,链接文本为 Translation。
有关链接与交叉引用的更多信息,请参阅 Jupyter Book 2 文档。
术语表与术语¶
每一章都有自己的术语表,包含该章最重要的术语及其定义。术语表的创建方式如下:
:::{glossary}
条目 1
: 条目 1 的定义
条目 2
: 条目 2 的定义
:::
条目和定义可以自由创建,但我们同时也使用 {term} 语法直接链接到所有章节术语表中的条目。 这一点很重要,因为 {term} 只能链接到术语表中的精确匹配项(区分大小写)。请看以下示例:
某章的术语表结构如下:
:::{glossary}
MSA
: **M**ultiple **S**equence **A**lignment - 比对两条以上序列的方法。
DNA
: **D**eoxyribo**N**ucleic **A**cid
:::
该章中 MSA 一词的首次出现需要链接到术语表,方式如下:
Instead, in cases where we want to compare 3 or more sequences with each other, we use a **multiple sequence alignment** ({term}`MSA`).
这将创建一个指向术语表中 MSA 条目的直接链接。这不仅适用于本章的术语表条目,如果某术语出现在另一章的术语表中(不允许重复条目),它实际上也会链接到该章的术语表!
只有术语的首次出现才需要添加 {term} 交叉引用(除非你确实想强调之前已在教材中出现过的某个术语的重要性)。 这样做的目的是避免后续章节中出现过多的术语表交叉引用。
参考文献列表¶
每条文献引用都必须包含在参考文献列表中,否则引用将无法生效。 参考文献列表位于每章末尾,仅包含该章中使用过的引用。
在 Markdown 文件末尾添加参考文献列表的方式如下:
## References
:::{bibliography}
:::
这将把所有已使用的引用汇总为页面底部的参考文献列表。
注意:Jupyter Book 2 目前不支持参考文献列表的自定义。使用上述语法将生成标准格式的参考文献列表,无法进一步调整。
注释¶
在编写或审阅 Markdown 文件时,你可能希望为自己或其他贡献者留下注释。 编译器会将每个以 % 开头的行视为注释行。 然而,由于百分号在文本中使用频率较高,这使得筛选注释变得困难,因此推荐使用 %#%[在此处编写你的注释] 的格式来添加注释。 这样可以方便地在 Markdown 文件中搜索注释,并确保注释不会被包含在编译器的实际输出中。 注释应直接放在你想要评论的段落或图片下方。
例如:
#### Secondary structure prediction
As we have seen in Section X.X, there are key similarities and differences between α-helices and β-sheets.
%#%[不确定 Section X.X 指的是哪一节。]
章节编辑与发布¶
由于本教材处于迭代开发阶段,所有贡献者都应了解如何更新和发布各自负责的章节。 仓库使用 GitHub 工作流和 GitHub Actions,完全自动化了教材的部署、发布和上线流程。贡献者可以通过向仓库提交时在提交信息(commit message)中添加特定标记来触发该工作流。
当对某一章进行了修改后,贡献者需要评估此次提交的规模。小范围的更新,如少量修正或改动,应视为补丁更新(patch update)。较大规模的章节修订,可能包括新增或删除小节、新增图片等,应视为次要更新(minor update)。对一章或多章进行全面大改,且影响教材整体结构的,应视为主要更新(major update)。根据上述逻辑做出判断后,提交信息的末尾应添加以下对应的分类标记:
#patch(这将把教材版本号递增 0.0.1,并触发部署、发布和上线工作流)。#minor(这将把教材版本号递增 0.1.0,并触发部署、发布和上线工作流)。#major(这将把教材版本号递增 1.0.0,并触发部署、发布和上线工作流)。- 如果在提交信息末尾省略
#分类标记,更改将提交到仓库中,但不会触发部署、发布和上线工作流。这在计划连续提交多个更改时非常有用——你不会希望每次提交都重新部署教材。只需确保最后一次提交的提交信息末尾带有#分类标记,以便你的更改能够被发布并在教材中可见。
你可以通过访问 GitHub 仓库中的 "Actions" 选项卡来查看工作流的进度。"Deployment" 工作流中的 "Build HTML" 任务会输出潜在的错误或警告信息,贡献者需要修复这些问题,以确保教材正常运行。
本文阅读量 次本站总访问量 次