本页完整说明已译为现代汉语;函数、参数、代码和原始数据标识保留原样。 使用教程
全站目录 · 按任务查找
安装与学习路线
首页安装与环境准备选择合适的学习模块模块一『弦图』部分
1.1 输入表与字段含义1.2 生成与导入比对数据1.3 从骨架逐层添加1.4 方向、曲率与避障1.5 筛选与整理连接1.6 原始文件完整流程1.7 弦图综合展示模块二『共线性图』部分
2.1 复用弦图的数据2.2 只替换坐标系,再逐层添加2.3 跨行连接、避障与比例尺2.4 比较基因邻域2.5 局部、锚定与分段2.6 共线性综合展示模块三『质粒图』部分
3.1 DNA、注释与13个参考序列3.2 从圆圈到多层注释3.3 识别特征、引物与酶切3.4 13个质粒参考案例3.5 质粒综合实战按需查阅:数据与图层
数据与坐标导入和转换数据导入核酸和蛋白比对将蛋白区间转换为基因组坐标绘制注释与处理重叠放置和调整标签添加数据轨道设置配色、图例和主题按序列和链设置参数调整图形预览和保存图形学习地图与函数查阅
使用教程函数文档示例图集常见问题迁移到候选 API术语说明更新日志对明确请求的序列对,连接属于同一已声明分组的注释区间。成员归属是输入断言,不是推断的比对;不编造相似度、比对长度或得分。序列和注释标识均原样保留。
参数
- feature_data
注释数据框,含
feature_id、accver、start、end,可选strand,应符合as_ggchord_feature()。- membership
含
feature_id和cluster_id的数据框;每个注释只能属于一个组,其余列保留在报告中。- pairs
以
qaccver和saccver明确指定比较的数据框。- paralogs
同一组、同一序列有多个成员时,默认
"drop",或显式"all"。- segment_policy
默认
"error"拒绝重复注释 ID;"span"显式使用已校验不连续注释的外边界。- max_links
生成行数的正整数上限,默认 10000;超限会在分配笛卡尔积前停止。
返回值
列表,含普通连接数据框 data 和 report。连接保留组/成员 ID、链、源注释/成员行及分段表。report$comparisons 为每个请求比较对及任一侧出现的组列出成员数、输出数、保留/省略原因;两侧均未出现的组省略。report$members 保留成员元数据及解析状态。成员表含未知注释 ID 时,report$valid 为 false。
详细说明
默认 paralogs = "drop" 只保留每侧恰好一个成员的比较;歧义一对多/多对多省略并报告。"all" 明确请求笛卡尔积,在展开前用 max_links 检查总量。保留比较对行顺序及 query/subject 角色,自比对和重复对(含反向重复)由调用者处理。注释 ID 通常对应一行;若多行有意描述同一个不连续注释,segment_policy = "span" 要求同序列、同链、区间不重叠。连接锚定外部基因组边界,真实片段保留在 qsegments、ssegments 列表列;这不是外显子逐碱基比对,也不移除中间序列。单行嵌套 segments 原样保留。未知成员 ID 会报告并省略;标识格式错误、分组冲突、歧义重复注释、不支持的跨原点区间及未知比较序列 ID 会明确报错。报告也列出未分组注释。负链反转端点,未知链保持递增坐标及 orientation_known = FALSE。
示例
代码
library(ggchord)
library(dplyr)
data(plasmid_example_pUC19)
data(plasmid_example_pETDuet_1)
homolog_source <- bind_rows(plasmid_example_pUC19, plasmid_example_pETDuet_1)
homolog_seq <- homolog_source |>
select(accver, length)
cluster_features <- homolog_source |>
find_common_features() |>
filter(type == "CDS", anno == "AmpR") |>
select(accver, start, end, strand, anno) |>
arrange(match(accver, homolog_source$accver)) |>
mutate(feature_id = paste(accver, start, end, sep = ":"))
# Membership is computed from exact strand-corrected CDS DNA equality, not gene names.
reverse_complement <- function(sequence) {
bases <- strsplit(sequence, "")[[1]]
chartr("ACGT", "TGCA", paste(rev(bases), collapse = ""))
}
coding_sequences <- cluster_features |>
left_join(select(homolog_source, accver, sequence), by = "accver") |>
rowwise() |>
mutate(
coding_dna = substr(sequence, start, end),
coding_dna = if (strand == "-") reverse_complement(coding_dna) else coding_dna
) |>
ungroup()
cds_dna <- pull(coding_sequences, coding_dna)
membership <- tibble(
feature_id = cluster_features$feature_id,
cluster_id = paste0("exact_CDS_", match(cds_dna, unique(cds_dna)))
)
homologs <- link_ggchord_clusters(cluster_features, membership,
pairs = tibble(qaccver = homolog_seq$accver[1], saccver = homolog_seq$accver[2])
)
loci <- find_ggchord_loci(homolog_seq, cluster_features,
targets = cluster_features$feature_id[cluster_features$anno == "AmpR"][1], upstream = 100, downstream = 100
)
gene_palette <- c("+" = "#56887C", "-" = "#B58169", "." = "#AAB9AE")
doc_theme <- theme_ggchord_publication(
axis.text = element_text(size = 9), axis.text.check.overlap = TRUE
) +
theme(legend.position = "bottom")
p_homologs <- ggchord(seq_data = homolog_seq) +
geom_link_ribbon(data = homologs$data, fill = "#ADC5B9", alpha = .6) +
geom_seq() +
geom_gene(data = cluster_features) +
geom_seq_label(size = 4) +
coord_collinear() +
scale_gene_fill_manual(values = gene_palette) +
doc_theme