---
title: "ggchord:弦图、共线性图与质粒图教程"
output:
rmarkdown::html_vignette:
self_contained: true
css: vignette.css
vignette: >
%\VignetteIndexEntry{ggchord:弦图、共线性图与质粒图教程}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(eval = FALSE, collapse = TRUE, comment = "#>")
```
本教程与英语教程、网站从同一组来源生成。vignette 渲染时只展示代码,不自动执行;共享文档脚本直接验证相关例子。示例优先使用随包数据和有来源的原始记录;人为构造的诊断错误会明确标注。每章提供本页准备代码;第一次使用请从首图教程开始。
## 安装与环境准备 {#installation}
随包序列与已有比对区间的弦图
随包序列与已有比对区间的弦图 · 点击放大查看数据、代码与读图说明 →
p_chord · 10 × 8 in · 144 dpi
pUC19 注释的单序列圆图
pUC19 注释的单序列圆图 · 点击放大查看数据、代码与读图说明 →
p_circular · 9 × 8 in · 144 dpi
按选定注释锚定的随包序列共线性图
按选定注释锚定的随包序列共线性图 · 点击放大查看数据、代码与读图说明 →
p_collinear · 10 × 6 in · 144 dpi
从随包 pUC19 DNA 计算的 GC 比例
从随包 pUC19 DNA 计算的 GC 比例 · 点击放大查看数据、代码与读图说明 →
p_tracks · 9 × 8 in · 144 dpi
保留原始坐标刻度的局部序列视图
保留原始坐标刻度的局部序列视图 · 点击放大查看数据、代码与读图说明 →
p_focus · 10 × 6 in · 144 dpi
实际基因注释的自动标签布局
实际基因注释的自动标签布局 · 点击放大查看数据、代码与读图说明 →
p_labels · 10 × 6 in · 144 dpi
原始序列、选定 CDS 与已有比对的弦图
原始序列、选定 CDS 与已有比对的弦图 · 点击放大查看数据、代码与读图说明 →
p_real_chord · 10 × 8 in · 144 dpi
原始序列、全部导入 CDS 与筛选连接的线性图
原始序列、全部导入 CDS 与筛选连接的线性图 · 点击放大查看数据、代码与读图说明 →
p_real_linear · 10 × 6 in · 144 dpi
pUC19 注释、精确引物命中与三个选定酶切位点
pUC19 注释、精确引物命中与三个选定酶切位点 · 点击放大查看数据、代码与读图说明 →
p_plasmid · 10 × 9 in · 144 dpi
原始比对记录的区间密度
原始比对记录的区间密度 · 点击放大查看数据、代码与读图说明 →
p_density · 10 × 8 in · 144 dpi
从已有 HSP 区间计算中点的点连接
从已有 HSP 区间计算中点的点连接 · 点击放大查看数据、代码与读图说明 →
p_points · 10 × 8 in · 144 dpi
pUC19 中重叠注释的分层显示
pUC19 中重叠注释的分层显示 · 点击放大查看数据、代码与读图说明 →
p_stack · 10 × 5 in · 144 dpi
pUC19 GC 比例、三点滑动均值和注释类型带
pUC19 GC 比例、三点滑动均值和注释类型带 · 点击放大查看数据、代码与读图说明 →
p_multitrack · 9 × 8 in · 144 dpi
两条质粒的 AmpR 邻域:相同 CDS、200 bp 侧翼与源坐标
两条质粒的 AmpR 邻域:相同 CDS、200 bp 侧翼与源坐标 · 点击放大查看数据、代码与读图说明 →
p_homologs · 10 × 5 in · 144 dpi
突出显示一条实际比对的查询区间
突出显示一条实际比对的查询区间 · 点击放大查看数据、代码与读图说明 →
p_decorated · 10 × 6 in · 144 dpi
实际基因注释的自动侧边标签
实际基因注释的自动侧边标签 · 点击放大查看数据、代码与读图说明 →
p_labelauto · 12 × 10 in · 144 dpi
同一组基因注释的径向标签
同一组基因注释的径向标签 · 点击放大查看数据、代码与读图说明 →
p_labelradial · 12 × 10 in · 144 dpi
同一组基因注释的沿弧标签
同一组基因注释的沿弧标签 · 点击放大查看数据、代码与读图说明 →
p_labelarc · 12 × 10 in · 144 dpi
显式设置序列、链方向和查询类别的颜色标度
显式设置序列、链方向和查询类别的颜色标度 · 点击放大查看数据、代码与读图说明 →
p_styled · 10 × 6 in · 144 dpi
从真实 minimap2 PAF 结果绘制的两条 EMALE 序列
从真实 minimap2 PAF 结果绘制的两条 EMALE 序列 · 点击放大查看数据、代码与读图说明 →
p_paf · 10 × 5 in · 144 dpi
第一张图:两条真实随包序列、基因箭头及已有比对区间
第一张图:两条真实随包序列、基因箭头及已有比对区间 · 点击放大查看数据、代码与读图说明 →
p_first · 10 × 5 in · 144 dpi
四基因组弦图:混合骨架曲率与实测相似度
四基因组弦图:混合骨架曲率与实测相似度 · 点击放大查看数据、代码与读图说明 →
p_show_chord · 12 × 10 in · 144 dpi
pETDuet-1密集质粒图:特征、参考引物与合并酶切位点
pETDuet-1密集质粒图:特征、参考引物与合并酶切位点 · 点击放大查看数据、代码与读图说明 →
p_show_plasmid · 16.5 × 8 in · 144 dpi
四基因组共线性图:分链特征与绕行的跨行连接
四基因组共线性图:分链特征与绕行的跨行连接 · 点击放大查看数据、代码与读图说明 →
p_show_collinear · 12 × 8 in · 144 dpi
弦图第一步:序列骨架
弦图第一步:序列骨架 · 点击放大查看数据、代码与读图说明 →
p_learn_seq · 10 × 8 in · 144 dpi
弦图第二步:已有比对
弦图第二步:已有比对 · 点击放大查看数据、代码与读图说明 →
p_learn_links · 10 × 8 in · 144 dpi
弦图第三步:精选基因
弦图第三步:精选基因 · 点击放大查看数据、代码与读图说明 →
p_learn_genes · 10 × 8 in · 144 dpi
弦图第四步:逐一添加标签
弦图第四步:逐一添加标签 · 点击放大查看数据、代码与读图说明 →
p_learn_labels · 10 × 8 in · 144 dpi
相同骨架,仅替换坐标系
相同骨架,仅替换坐标系 · 点击放大查看数据、代码与读图说明 →
p_linear_seq · 10 × 6 in · 144 dpi
相同连接,仅替换坐标系
相同连接,仅替换坐标系 · 点击放大查看数据、代码与读图说明 →
p_linear_links · 10 × 6 in · 144 dpi
相同基因与标签,仅替换坐标系
相同基因与标签,仅替换坐标系 · 点击放大查看数据、代码与读图说明 →
p_linear_labels · 10 × 6 in · 144 dpi
pUC19第一步:双线骨架
pUC19第一步:双线骨架 · 点击放大查看数据、代码与读图说明 →
p_plasmid_backbone · 10 × 8 in · 144 dpi
pUC19第二步:特征
pUC19第二步:特征 · 点击放大查看数据、代码与读图说明 →
p_plasmid_features · 10 × 8 in · 144 dpi
pUC19第三步:标签
pUC19第三步:标签 · 点击放大查看数据、代码与读图说明 →
p_plasmid_text · 10 × 8 in · 144 dpi
pSB1C3:参考特征图
pSB1C3:参考特征图 · 点击放大查看数据、代码与读图说明 →
p_catalogpsb · 10 × 8 in · 144 dpi
pUC19:参考特征图
pUC19:参考特征图 · 点击放大查看数据、代码与读图说明 →
p_catalogpuc · 10 × 8 in · 144 dpi
pBR322:参考特征图
pBR322:参考特征图 · 点击放大查看数据、代码与读图说明 →
p_catalogpbr · 10 × 8 in · 144 dpi
pBluescript II SK(+):参考特征图
pBluescript II SK(+):参考特征图 · 点击放大查看数据、代码与读图说明 →
p_catalogblue · 10 × 8 in · 144 dpi
pET-28a(+):参考特征图
pET-28a(+):参考特征图 · 点击放大查看数据、代码与读图说明 →
p_catalogpet · 10 × 8 in · 144 dpi
pETDuet-1:参考特征图
pETDuet-1:参考特征图 · 点击放大查看数据、代码与读图说明 →
p_catalogduet · 10 × 8 in · 144 dpi
pDONR221:参考特征图
pDONR221:参考特征图 · 点击放大查看数据、代码与读图说明 →
p_catalogdonr · 10 × 8 in · 144 dpi
pcDNA3.1(+):参考特征图
pcDNA3.1(+):参考特征图 · 点击放大查看数据、代码与读图说明 →
p_catalogpcdna · 10 × 8 in · 144 dpi
pTRE-Tight-BI:参考特征图
pTRE-Tight-BI:参考特征图 · 点击放大查看数据、代码与读图说明 →
p_catalogtre · 10 × 8 in · 144 dpi
pTRIPZ:参考特征图
pTRIPZ:参考特征图 · 点击放大查看数据、代码与读图说明 →
p_catalogtripz · 10 × 8 in · 144 dpi
pCAMBIA1300:参考特征图
pCAMBIA1300:参考特征图 · 点击放大查看数据、代码与读图说明 →
p_catalogcambia · 10 × 8 in · 144 dpi
pEarleyGate 201:参考特征图
pEarleyGate 201:参考特征图 · 点击放大查看数据、代码与读图说明 →
p_catalogearley · 10 × 8 in · 144 dpi
pSpCas9(BB)-2A-GFP (PX458):参考特征图
pSpCas9(BB)-2A-GFP (PX458):参考特征图 · 点击放大查看数据、代码与读图说明 →
p_catalogcas · 10 × 8 in · 144 dpi
### 两种语言共用一个来源 {#gallery-source}
所有图均使用随包数据或有来源的真实记录,见[共享文档示例源码](https://github.com/DangJem/ggchord/blob/main/tools/documentation-examples.R)
。未为改善外观改写任何原始 FASTA/GFF3/BLAST 记录。
两种语言、README 和 vignette 引用相同图片字节,图注分别说明含义。
源码及资产 hash 记录在资产清单 (`website/assets/plots.csv` in the source repository)中。
各专题说明显示筛选。GC 来自实际 DNA 计算,同源分组例子核对实际编码序列;
只有诊断示例会故意修改原始记录的副本,并明确标注,不把错误副本当作生物学数据。
### 重建 {#gallery-reproduce}
在源码仓库中准备好建议的开发依赖后运行:
```sh
Rscript tools/documentation-plots.R
python3 tools/sync-tutorials.py --check
python3 tools/build-website.py
python3 tools/check-documentation.py
```
PNG 设备仅用于更新这些文档图片,不是输出设备矩阵或发布验收。
源码和尺寸位于 `tools/documentation-plots.R`,参数变化后须重建清单。
自己的图片导出方式见[输出](#output)。
### 资产来源 {#gallery-assets}
[原画、模板和依赖许可](https://github.com/DangJem/ggchord/blob/main/website/ASSET-SOURCES.md)。
## 常见问题 {#faq}
### 调整尺寸后标签为什么不同? {#faq-resize}
可用物理空间改变了。使用[显式尺寸预览与保存](#output-size),并检查隐藏标签
诊断,不能由文字未显示直接推断输入行丢失。
### 旧参数为什么报错? {#faq-removed}
API 清理已删除旧别名的执行路径,见[迁移表](#migration)。同一语义不要混用新旧
写法。colour/color 函数拼写别名仍保留,文档优先使用 `colour`。
### 注释为什么不能作为 gene 绘制? {#faq-strand}
基因快捷层要求已知 `+`/`-` 链。未知链保留在通用注释层,不要猜成 `+`。
氨基酸区间需要显式投影。
### 直线模式的区间连接为什么没显示? {#faq-ribbons}
默认只连接相邻显示序列。应检查序列对选择、裁剪和校验结果,再有意使用明确 `pairs`
或 `adjacent_only = FALSE`。这个默认规则不删除原始输入记录。
### 包会计算比对或验证引物实验吗? {#faq-biology}
包可视化已有比对和计算搜索结果,不运行 BLAST、不由名称推断同源分组,也不验证湿实验
结果。搜索 confidence 不是概率。详见[识别能力边界](#recognition)。
### 已测量诊断等于发布认证吗? {#faq-quality}
不等于。它描述一次指定渲染。平台、设备、字体、完整 vignette 和包检查属于明确授权
后的发布流程。验证范围见正式发布验收记录。
### 在哪里报告问题? {#faq-report}
在 [问题反馈页](https://github.com/DangJem/ggchord/issues) 提供小型输入、包与 ggplot2
版本、代码、目标宽高、设备和诊断结果。避免附带私有序列,通常可用合成数据复现。
## 迁移到候选 API {#migration}
### 范围与时间 {#migration-scope}
下列写法是当前候选替代,不是 v1.0.0 长期兼容承诺。0.16.0–0.16.4 阶段成果已随 v0.16.5 交付。
当前安装标签为 v0.16.6。RC 审计保留
灵活参数、拼写别名、重导出及 getter/export 入口,没有新增弃用。
表中的旧调用用于解释迁移,不应作为当前例子执行。
历史证据只提供删除上界时,不猜测精确首删 tag。
### 替代表 {#migration-table}
| 旧写法(勿执行) | 当前写法 | 删除 / 守卫 | 含义 |
| --- | --- | --- | --- |
| `geom_ribbon()` | `geom_link_ribbon()` | ≤ 0.16.1 | 连接图层改名,不影响 ggplot2::geom_ribbon()。 |
| `ggchord(..., rotation = 20)` | `ggchord(...) + coord_chord(rotation = 20)` | ≤ 0.16.1 | 全局坐标使用 + 组合。 |
| `geom_feature(feature_shape = "block", feature_width = .05)` | `geom_feature(shape = "block", width = .05)` | 0.16.1 | 映射角色 feature_shape 保留。 |
| `geom_gene(gene_offset = c("+" = .1, "-" = .2))` | `geom_gene(position = position_strand(c("+" = .1, "-" = -.2)))` | 0.16.1 | 显式 Position 值带符号。 |
| `geom_feature(feature_offset = .1)` | `geom_feature(position = position_strand(.1))` | 0.16.1 | 使用 Position 对象。 |
| `geom_gene(gene_width = .05)` | `geom_gene(width = .05)` | 0.16.1 | 固定几何统一使用 width。 |
| `geom_link_ribbon(ribbon_gap = .01)` | `geom_link_ribbon(link_gap = .01)` | 0.16.1 | 使用 link_gap,控制点同样使用 link_ctrl_point。 |
| `geom_gene_label_repel(gene_label_layout = "aligned")` | `geom_gene_label_repel(label_layout = "auto")` | 0.16.1 | 同时迁移参数名和取值。 |
| `geom_gene_label_repel(label_rotation = 90)` | `geom_gene_label(label_rotation = 90)` | 0.16.4 guard | 原先忽略的手动控制现报错,也可删除它使用自动布局。 |
| `geom_feature_label_repel(label_orientation = "horizontal")` | `geom_feature_label(label_orientation = "horizontal")` | 0.16.4 guard | 未知链 feature 使用固定 feature 标签层。 |
| `geom_restriction_site(leader = "trunk")` | `geom_restriction_site(leader = "radial")` | 0.16.1 | radial 默认值保持。 |
| `theme_ggchord(base_size = 10)` | `theme_ggchord() + theme(text = element_text(size = 10))` | ≤ 0.16.1 | 文字外观属于 theme 元素。 |
### 运行当前替代 {#migration-replacement}
在新会话中运行下面的准备代码,再执行当前替代写法: