Skip to contents

Run the app

run_app()
Launch the CONCERT Shiny Application

Headless curation

Curate a file without the Shiny app, or drive it from an agent loop.

curate_headless()
Run the full curation pipeline headlessly (without Shiny UI)
curate_iterate()
Run one iteration of the agent curation loop
curate_decisions_template()
Write a starter decisions.R for the agent curation loop
stage_clean()
Stage 2: run the cleaning pipeline
stage_curate()
Stage 3: run the CompTox curation search and optional candidate postprocessing
stage_export()
Stage 6: write outputs and build the result list
stage_harmonize()
Stage 5: run numeric, unit, media, and ToxVal harmonization
stage_ingest()
Stage 1: read a file, detect frontmatter, and validate the tag map
stage_review()
Stage 4: apply Review Results edits
run_curation_pipeline()
Orchestrate the full curation pipeline: dedup -> search -> map -> consensus -> resolution
generate_concert_script()
Generate a CONCERT replay script
write_curation_output()
Write Curation Output in a Requested Format
parse_concert_export()
Parse CONCERT Export

Read files and detect frontmatter

safely_read_file()
Safely read a file with multiple fallback strategies
validate_file()
Validate uploaded file before processing
validate_excel_size()
Validate Excel Size Limits
detect_data_start()
Main ensemble detection function combining all methods
detect_data_start_heuristic()
Detect data start using heuristic fill ratio method
detect_pattern_based()
Detect data start using pattern matching for common header keywords
detect_by_type_consistency()
Detect data start by checking column type consistency
extract_clean_data()
Extract clean data based on detection results
handle_merged_cells()
Handle merged cells by filling down first column
calculate_smart_preview_rows()
Calculate smart preview row count based on file size
format_file_size()
Format file size for display

Tag columns

suggest_column_tags()
Suggest Column Tags From Header Names
classify_tags()
Classify Tags into Categories
validate_tag_pairing()
Validate Tag Pairing Requirements
has_required_chemical_tags()
Check for Required Chemical Tags
detect_tag_changes()
Detect Changes Between Tag Sets
find_dtxsid_cols()
Auto-detect DTXSID columns by name pattern

Clean names and identifiers

run_cleaning_pipeline()
Run complete cleaning pipeline with audit trail tracking
apply_value_corrections()
Apply dataset-specific value corrections before cleaning
build_audit_trail()
Build audit trail by comparing two dataframes
clean_text_field()
Clean text field by stripping whitespace and punctuation artifacts
clean_unicode()
Clean Unicode symbols in character strings
perform_unicode_qc()
Perform post-curation Unicode QC (read-only detection)
detect_non_ascii_chars()
Detect non-ASCII characters in a character vector
strip_quality_adjectives()
Strip quality adjectives from name fields
strip_reference_terms()
Strip user-defined reference terms from name fields
strip_salt_references()
Strip salt references from name fields
strip_terminal_enclosures()
Strip terminal enclosures (parentheticals and brackets) from name fields
strip_terminal_unspecified()
Strip terminal "unspecified" suffixes from name fields
normalize_cas_fields()
Normalize CAS fields using ComptoxR
rescue_cas_from_text()
Rescue CAS-RNs from non-CASRN text columns
detect_multi_cas()
Detect rows with multiple CAS-RNs
detect_truncated_compound_names()
Detect likely truncated compound names
detect_bare_formulas()
Detect bare molecular formulas
expand_isotope_shortcodes()
Expand isotope shortcodes to canonical Name-Mass format (vectorized)
protect_chiral_designations()
Protect chiral designations from downstream stripping
restore_chiral_designations()
Restore chiral designation placeholders to original markers
split_synonyms()
Split semicolon-separated synonyms in name fields
extract_cas()
Extracts all valid CASRNs from a character vector
extract_formulas()
Extract molecular formulas from text
extract_mixture()
Detects chemical mixtures by name based on ratio patterns
as_cas()
Coerces and validates a string to a standard CASRN format
is_cas()
Checks if a string is a syntactically and algorithmically valid CASRN
flag_reference_matches()
Flag rows matching reference list entries
dedup_step()
Deduplication wrapper for cleaning step functions
get_dedup_preview()
Get deduplication preview counts before running full pipeline
remap_audit_to_parent()
Remap audit trail row IDs from unique-string slice to parent dataset
inject_row_lineage()
Inject row lineage tracking

Multi-analyte rows

flag_multi_analyte()
Flag rows containing naked multi-analyte expressions
suggest_multi_analyte_parts()
Suggest split parts for a multi-analyte value
resolve_multi_analyte_row()
Resolve one flagged multi-analyte row
apply_multi_analyte_resolutions()
Apply multiple multi-analyte resolutions
is_multi_analyte_review_row()
Identify rows still needing multi-analyte review

Reference lists

load_all_reference_lists()
Load all reference lists
load_block_patterns()
Load block patterns list
load_corrections()
Load one-off corrections table
load_functional_categories()
Load functional use categories
load_isotope_lookup()
Load isotope lookup table
load_media_map()
Load merged media harmonization map (user edits + bundled defaults)
load_or_fetch_reference()
Generic cache-or-fetch function
load_stop_words()
Load stop words list
load_strip_terms()
Load strip terms list
load_toxval_schema()
Load ToxVal schema manifest
load_unit_map()
Load unit conversion map
load_unit_synonyms()
Load unit synonym normalization table
load_user_reference_lists()
Load user reference list overrides
load_wqx_dictionary()
Load WQX dictionary lookup table
merge_reference_lists()
Merge Reference Lists
save_user_reference_lists()
Save user reference list overrides
update_user_reference_list()
Update a user reference list override
validate_reference_list_patterns()
Validate reference-list patterns
reference_list_help_text()
Reference-list help text
refresh_isotope_cache()
Refresh isotope lookup cache
refresh_wqx_cache()
Refresh WQX dictionary cache
clear_starts_with_cache()
Clear the starts-with cache

Resolve identities

CompTox and WQX matching, consensus, and review.

match_wqx()
Match chemical names against WQX Characteristic Name dictionary
classify_consensus()
Classify consensus across tagged columns for each row
classify_auto_resolve()
Classify disagree rows as auto-resolved, suggested, or leave as disagree
compute_similarity_scores()
Compute similarity scores for all disagree rows in resolution_state
score_one_candidate()
Compute similarity score for a single candidate against an input name
enrich_candidates()
Fetch CompTox chemical details for DTXSIDs and return structured cache
enrich_synonyms()
Fetch and cache CompTox synonym data for a set of DTXSIDs
merge_retry_results()
Merge retry curation results back into original resolution state
apply_priority_chain()
Apply en masse column priority to resolve all non-pinned disagree rows
compute_qc_tier()
Compute numeric QC tier for a consensus classification
init_resolution_state()
Initialize resolution state on a classified data frame
get_resolution_options()
Get available resolution options for a disagree row
resolve_row()
Resolve a single disagreement row by choosing a preferred column
resolve_review_row()
Resolve one flagged review row (multi-analyte and/or multi-CAS)
accept_all_suggestions()
Accept all suggested resolutions in bulk
build_review_overrides()
Build content-matched review overrides
apply_review_overrides()
Apply review overrides to a replayed resolution state
apply_review_resolutions()
Apply staged review decisions in one batch
validate_manual_dtxsids()
Validate manually-entered DTXSIDs via CompTox bulk API
set_row_flag()
Set one row flag
set_row_flags()
Set row flags in bulk
normalize_row_flag()
Normalize a row flag value
valid_row_flags()
Valid row flag values
hydrate_session_state()
Hydrate Session State

Review and accept source identities

Capture decision evidence, reconcile changes, and explicitly accept a source identity.

identity_review_state()
Derive accepted identity eligibility from current evidence
apply_identity_decisions()
Apply explicit row-scoped identity decisions
accepted_identity_view()
Return accepted identities with source lineage
source_identifier_evidence()
Validate source DTXSID membership without accepting source identity
unused_source_identifier_diagnostics()
Diagnose retained identifier columns without a source evidence role
build_candidate_review()
Report candidate validation work without changing identity or flags
validate_review_candidates()
Explicitly validate saved candidate IDs with an injected authority
capture_review_decision()
Capture evidence from an explicit review decision
capture_review_state()
Capture evidence currently inspected in a staged review
acknowledge_review_evidence()
Acknowledge current evidence for an existing decision revision
review_decision_key()
Construct a stable content-selector decision ID
review_evidence_scope()
Construct explicit source/content review scope
review_evidence_snapshot()
Construct evidence for an explicit review
identity_evidence_fingerprint()
Capture current row evidence for a scoped identity decision

Harmonize measurements

parse_numeric_results()
Parse messy numeric result strings into a structured tibble
parse_dates()
Parse mixed-format date strings into structured ISO-8601 output
harmonize_units()
Harmonize unit values using a conversion table
harmonize_media()
Harmonize environmental media strings to canonical CONCERT media terms
normalize_uncertainty_to_two_sigma()
Convert reported uncertainty to a two-sigma half-width
classify_detection_events()
Classify row-level detection events
classify_harmonized_detection()
Classify harmonized tagged measurements
map_to_toxval_schema()
Map curated data to ToxVal schema
build_export_sheets()
Build Export Sheets

Dataset context and sites

detect_site_columns()
Detect Site/Location Columns In A Dataset
extract_site_candidates()
Extract Site Candidates
build_site_manifest()
Build A Deterministic Site Manifest
build_chorus_site_manifest()
Build CHORUS Site Manifest Payload
build_site_alias_map()
Build A Deterministic Site Alias Map
normalize_site_manifest()
Normalize A Site Manifest

Shiny modules

mod_clean_data_server()
Clean Data Module - Server
mod_clean_data_ui()
Clean Data Module - UI
mod_data_preview_server()
Data Preview Module - Server
mod_data_preview_ui()
Data Preview Module - UI
mod_dataset_context_server()
Dataset Context Module - Server
mod_dataset_context_ui()
Dataset Context Module - UI
mod_detection_info_server()
Detection Info Module - Server
mod_detection_info_ui()
Detection Info Module - UI
mod_file_upload_server()
File Upload Module - Server
mod_file_upload_ui()
File Upload Module - UI
mod_harmonize_server()
Harmonize Module - Server
mod_harmonize_ui()
Harmonize Module - UI
mod_raw_data_server()
Raw Data Module - Server
mod_raw_data_ui()
Raw Data Module - UI
mod_review_results_server()
Review Results Module - Server
mod_review_results_ui()
Review Results Module - UI
mod_run_curation_server()
Run Curation Module - Server
mod_run_curation_ui()
Run Curation Module - UI
mod_tag_columns_server()
Tag Columns Module - Server
mod_tag_columns_ui()
Tag Columns Module - UI
notify_user()
Show a Shiny notification and mirror important messages to the console
log_condition()
Log a caught condition with structured console context