跳到正文
0.16.6 文档

本页完整说明已译为现代汉语;函数、参数、代码和原始数据标识保留原样。 使用教程

全站目录 · 按任务查找

对三张输入表实施保守、可预测的清理,返回副本和完整报告,不修改原表。所有变更和删除均在 report 记录原始行号、原因、旧值与新值,不静默丢弃。历史默认排序有意区别于准备函数保留方向的默认值。有方向连接和跨圆形原点注释请用 reversed_interval = "keep";排序丢失的信息无法由后续工作流恢复。

用法

代码
clean_ggchord_data(
  seq_data,
  ribbon_data = NULL,
  gene_data = NULL,
  unknown_id = c("drop", "error", "keep"),
  out_of_range = c("clip", "drop", "error", "keep"),
  reversed_interval = c("sort", "drop", "error", "keep"),
  invalid_pident = c("clip", "drop", "error", "keep"),
  empty_annotation = c("keep", "drop", "replace"),
  replacement_annotation = "unannotated"
)

参数

seq_data

必需 data.frame/tibble,含 accver、length,作为裁剪坐标参照。不论 unknown_id 如何,参照 ID 均须非缺失、非空、唯一。

ribbon_data

可选比对 data.frame/tibble 或 NULL;其他类型会被拒绝,不视作缺省。

gene_data

可选基因注释 data.frame/tibble 或 NULL;其他类型会被拒绝,不视作缺省。

unknown_id

未知 ID 策略,默认 "drop"。ribbon_data 或 gene_data 中 ID 缺失、为空或未知时,"drop" 删除,"error" 报错停止,"keep" 保持原样。保留但无参照序列的行会报告,不清理其坐标/注释,也不保证能绘制。不会猜测或替换 ID;有限数值坐标和有效基因链等结构检查仍执行。

out_of_range

越界策略,默认 "clip"。坐标超出 [1, sequence length] 时,"clip" 限制到边界,"drop" 删除,"error" 停止,"keep" 保持。采用一基闭区间,start == end 是有效单碱基区间,会保留。"clip" 时,完全越界的区间删除并报告;部分重叠保留交集,即使仅一个碱基。

reversed_interval

反向区间策略,默认 "sort"。对 start > end,"sort" 交换端点以稳定绘制,并在报告记录原方向;"drop" 删除,"error" 停止,"keep" 保持。

invalid_pident

相似度策略,默认 "clip"。pident 超出 [0, 100] 时,"clip" 限制范围,"drop" 删除,"error" 停止,"keep" 保持。

empty_annotation

空注释策略,默认 "keep"。基因 anno 缺失或为空时,"replace" 用 replacement_annotation 填充,"drop" 删除,"keep" 保持。

replacement_annotation

替换文字,默认 "unannotated",用于 empty_annotation = "replace"。

返回值

四项列表:清理后的副本 seq_data、ribbon_data、gene_data,以及 report 报告表,含 table、row(原始行号)、column、reason、original_value、new_value、action。

示例

代码
library(dplyr)
data(seq_data_example)
seqs <- seq_data_example |>
  select(accver, length)
data(ribbon_data_example)
links <- ribbon_data_example |>
  select(qaccver, saccver, qstart, qend, sstart, send, pident, length)
# Deliberate diagnostic error in a copy; source observations remain unchanged.
problem <- links |>
  slice_head(n = 2) |>
  mutate(qaccver = replace(qaccver, 2, "absent"))
cleaned <- clean_ggchord_data(seqs, problem, unknown_id = "drop")
cleaned$report