Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/scientific-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ jobs:
- name: Install optional official wwPDB XML parser
run: Rscript -e 'install.packages("xml2", repos="https://cloud.r-project.org")'
shell: bash
- name: Verify Phase C geometry, ensembles and offline CLI
- name: Verify geometry, ensembles and offline CLI
run: |
Rscript tests/geometry.R
Rscript tests/experimental.R
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/ui-preview.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ on:
- "shinyRam/app.R"
- "shinyRam/www/**"
- "tests/ui-browser.cjs"
- "tests/structure-verification-browser.cjs"
- "tests/reports.R"
- "tests/model-integration.R"
- "shinyRam/R/**"
Expand Down Expand Up @@ -74,7 +75,7 @@ jobs:
- name: Verify AlphaFold and ESMFold uploads in the live browser
run: node tests/prediction-browser.cjs
- name: Verify official wwPDB evidence, density UI and NMR ensemble
run: node tests/phase-c-browser.cjs
run: node tests/structure-verification-browser.cjs
- name: Archive desktop/mobile screenshot previews and logs
if: always()
uses: actions/upload-artifact@v4
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/wwpdb-validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:
- "benchmarks/wwpdb_helpers.R"
- "benchmarks/compare_wwpdb.R"
- "tests/wwpdb.R"
- "tests/phase-a-baseline.R"
- "tests/wwpdb-baseline.R"
- "validation/**"
- ".github/workflows/wwpdb-validation.yml"
pull_request:
Expand All @@ -17,7 +17,7 @@ on:
- "benchmarks/wwpdb_helpers.R"
- "benchmarks/compare_wwpdb.R"
- "tests/wwpdb.R"
- "tests/phase-a-baseline.R"
- "tests/wwpdb-baseline.R"
- "validation/**"
- ".github/workflows/wwpdb-validation.yml"
workflow_dispatch:
Expand Down Expand Up @@ -79,7 +79,7 @@ jobs:
env:
ACCESSION: ${{ matrix.accession }}
run: |
Rscript tests/phase-a-baseline.R "$ACCESSION" "benchmarks/output/wwpdb/$ACCESSION"
Rscript tests/wwpdb-baseline.R "$ACCESSION" "benchmarks/output/wwpdb/$ACCESSION"
- name: Add independent validation summary
if: success()
shell: bash
Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,13 +67,13 @@ Rscript scripts/ramplotr-batch.R --input structures/ --output results/ --report

The offline command produces per-residue CSV, machine-readable JSON and a batch summary; `--report` additionally requests SVG and standalone HTML reports. For a compatible multi-model structure, add `--ensemble-models 20`. Use `--help` for all options, including declared prediction provenance and an optional matching wwPDB validation XML.

See the [batch-analysis instructions](docs/phase-c-guide.md#offline-batch-mode) for examples and resource limits.
See the [batch-analysis instructions](docs/structural-verification.md#offline-batch-mode) for examples and resource limits.

## Scientific interpretation

RamplotR's **residue-aware mode** evaluates general residues, glycine, proline and pre-proline against their corresponding bundled reference distributions. The selected plotting background is independent of those residue-specific classification calculations. The original density references trace back to the distributions discussed by [Lovell et al. (2003)](https://pubmed.ncbi.nlm.nih.gov/12557186/); other bundled reference datasets can also be selected.

**RamplotR region labels are not interchangeable with MolProbity or wwPDB classifications.** They use different reference populations, residue treatments and region definitions. Our [independent validation results](docs/phase-a-results.md), [reproducible protocol](docs/wwpdb-validation.md) and [pinned experimental-structure corpus](validation/manifest.csv) document agreement in calculated angles as well as differences in classification. For deposited experimental structures, attach the official report for the **same structure and model** when making independent quality assessments.
**RamplotR region labels are not interchangeable with MolProbity or wwPDB classifications.** They use different reference populations, residue treatments and region definitions. Our [independent validation results](docs/validation-results.md), [reproducible protocol](docs/wwpdb-validation.md) and [pinned experimental-structure corpus](validation/manifest.csv) document agreement in calculated angles as well as differences in classification. For deposited experimental structures, attach the official report for the **same structure and model** when making independent quality assessments.

For predictions, pLDDT and PAE describe model confidence rather than experimental verification. ESMFold normally provides pLDDT but not PAE; experimental thermal B-factors are **never** automatically interpreted as prediction confidence. The native ω, χ1 and Cβ measurements are descriptive, and visualising a density map is not a quantitative map–model fit measurement.

Expand All @@ -82,9 +82,9 @@ The default RamplotR teal contour palette provides consistent, recognisable publ
## Documentation

- [Interactive inspection, colours, comparisons and exports](docs/inspection-user-guide.md)
- [AlphaFold, ColabFold and ESMFold confidence analysis](docs/phase-b-guide.md)
- [Geometry, official wwPDB evidence, cryo-EM overlays, ensembles and batch mode](docs/phase-c-guide.md)
- [Independent wwPDB validation protocol and benchmark results](docs/wwpdb-validation.md) · [Results](docs/phase-a-results.md)
- [AlphaFold, ColabFold and ESMFold confidence analysis](docs/prediction-confidence.md)
- [Geometry, official wwPDB evidence, cryo-EM overlays, ensembles and batch mode](docs/structural-verification.md)
- [Independent wwPDB validation protocol and benchmark results](docs/wwpdb-validation.md) · [Results](docs/validation-results.md)
- [Performance and large-structure benchmarks](docs/benchmark-results.md) · [Scaling results](docs/scaling-results.md)

Developers can run the pure-R scientific regression suite from the repository root with `Rscript tests/scientific.R`. Additional tests cover structure parsing, validation imports, confidence formats, geometry, ensembles and the batch CLI. GitHub Actions also exercises the application in a real browser and runs the scientific tests on Ubuntu and Windows.
Expand Down
18 changes: 18 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# RamplotR documentation

Choose a guide by the research task you want to perform. The [main README](../README.md) introduces the application, screenshots and installation.

## Working with structures

- [Interactive inspection and publication-ready figures](inspection-user-guide.md): linked Ramachandran plot, residue table, sequence navigator, 3D viewer, comparison and exports.
- [AlphaFold, ColabFold and ESMFold confidence](prediction-confidence.md): model imports, pLDDT and linked PAE inspection.
- [Structural verification, cryo-EM overlays and ensembles](structural-verification.md): measured backbone/side-chain geometry, independent official reports, maps and offline batch processing.

## Scientific validation and performance

- [Independent wwPDB validation method](wwpdb-validation.md) and [five-structure results](validation-results.md).
- [Benchmark results](benchmark-results.md), [scaling study](scaling-study.md) and [scaling measurements](scaling-results.md).

## Development records

[Implementation and verification history](development/README.md) is kept separately from the user guides. Its historical notes describe what changed during development, not different current application modes.
12 changes: 12 additions & 0 deletions docs/development/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Development and verification history

These records document the implementation of RamplotR's current capabilities. They are retained for traceability and are **not** separate application versions or user workflows. Start with the [user documentation](../README.md) instead.

- [Scientific corrections, reference handling and performance](scientific-upgrade.md)
- [Interactive interface and linked residue inspection](interface-and-inspection.md)
- [Earlier interface design and browser verification](interface-refresh.md)
- [Independent experimental validation](independent-validation.md)
- [AlphaFold and ESMFold prediction-confidence integration](prediction-confidence.md)
- [Extended geometry, wwPDB evidence, ensemble and batch implementation](structural-verification.md)

The [historical release tag](https://github.com/BiKC/RamplotR/tree/v0.1.0-legacy) remains available for reproducing earlier analyses.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Phase A: independent structural validation
# Independent experimental validation: implementation record

Base: main at a09d3eed4800bbe5c3aea37869fb181ea8fc8a6f. Historical version v0.1.0-legacy and reference grids are unchanged.

Expand All @@ -8,17 +8,17 @@ Base: main at a09d3eed4800bbe5c3aea37869fb181ea8fc8a6f. Historical version v0.1.
- [x] Test XML parsing, stable residue matching, alt locations, insertion codes, missing angles and unequal classification vocabularies.
- [x] Add a public manifest and an easy-to-run verification workflow; fail CI on coverage/angle regressions, not on genuine differences between reference models.
- [x] Document why the four-region, four-reference-group RamplotR original method is not directly MolProbity-equivalent to its three regions and six groups.
- [x] Pass Ubuntu/Windows scientific regression, independent five-structure wwPDB validation, structure-validation benchmark and full live-browser CI, and merge PR #13 into main. ESMFold and AlphaFold are explicitly Phase B.
- [x] Pass Ubuntu/Windows scientific regression, independent five-structure wwPDB validation, structure-validation benchmark and full live-browser CI, and merge PR #13 into main. AlphaFold and ESMFold prediction confidence are documented separately.

## Independent findings

[Five-structure results](phase-a-results.md) and
[pinned SHA256 source manifests](../validation/baseline-source-hashes-2026-09-28.csv)
[Five-structure results](../validation-results.md) and
[pinned SHA256 source manifests](../../validation/baseline-source-hashes-2026-09-28.csv)
were generated from official wwPDB validation reports. 2DQ4's seven official
outliers are not classified as outliers by the original RamplotR references.
The independent numerical geometry and group-specific class comparisons are
tested separately. Do not claim MolProbity-equivalent categories. Phase B
includes AlphaFold and ESMFold predicted-model confidence integration.
tested separately. Do not claim MolProbity-equivalent categories. Prediction-confidence analysis for AlphaFold and ESMFold is documented
in the separate [prediction-confidence guide](../prediction-confidence.md).

Completed integration: https://github.com/BiKC/RamplotR/pull/13
Reviewed independent validation workflow: https://github.com/BiKC/RamplotR/actions/runs/36476627652
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# RamplotR inspection and publication upgrade
# Interactive inspection and publication tools: implementation record

Branch: `upgrade/inspection-visualization-reporting` (integration PR #12).
Historical reference: `v0.1.0-legacy` is unchanged; all scientific reference grids are preserved.
Expand All @@ -22,7 +22,7 @@ Historical reference: `v0.1.0-legacy` is unchanged; all scientific reference gri
- [Structure validation and benchmark](https://github.com/BiKC/RamplotR/actions/runs/36470803613)
- [Live Shiny browser test and visual-preview artifact](https://github.com/BiKC/RamplotR/actions/runs/36470803548)

These runs confirm the implemented regression and browser scenarios. Independent agreement of every RamplotR region classification against MolProbity is separate future validation, not a claim from these tests. Hosted deployments must be updated separately from merging the GitHub repository.
These runs confirm the implemented regression and browser scenarios. Independent wwPDB comparisons have since been performed and are documented in the [validation results](../validation-results.md). These are method comparisons, not a claim of identical RamplotR and MolProbity classifications. Hosted deployments must be updated separately from merging the GitHub repository.

## Scientific boundaries

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Interface refresh
# Interactive interface: design and verification record

The interface refresh changes the layout and plotting presentation without
This historical record describes the layout and plotting changes without
changing backbone extraction, reference grids or scientific classifications.
The historical application remains available as v0.1.0-legacy.

Expand Down Expand Up @@ -71,6 +71,6 @@ In a browser, check both a wide desktop window and a mobile-width window:
5. Test a structure with many chains and a structure with missing angles,
then download a PNG with the Plotly toolbar.

The old README screenshot is historical; capture a new screenshot from a
running app before replacing it. The shinyapps.io deployment is separate
The [main README](../../README.md) now contains curated screenshots generated
from the real browser tests. The shinyapps.io deployment is separate
from merging changes into the GitHub repository.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Phase B — AlphaFold and ESMFold confidence integration
# Prediction confidence: implementation record

Base: main `99fd7f38c17e88dce28b043560ecd5a147d647ea`. Scientific Phase A and historical tag stay unchanged.
Base: main `99fd7f38c17e88dce28b043560ecd5a147d647ea`. Independent validation and the historical tag remain unchanged.

- [x] Native prediction provenance and per-residue pLDDT extraction from AlphaFold and ESMFold B-factors; experimental B-factors must never be relabelled confidence.
- [x] Optional AlphaFold DB accession retrieval and JSON confidence sidecar uploads (AlphaFold 2 PAE and AlphaFold 3 full confidence/summary JSON).
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# RamplotR upgrade worklog

This log records the main changes and their verification status. Work happens in separately scoped commits. The published historical baseline is preserved as `v0.1.0-legacy` (commit `aa3eba2180d505f4dc01c9c2bf977cef00b3252a`).
This historical log records early scientific changes and verification. For current usage, see [the documentation index](../README.md). Some unchecked historical proposals were subsequently implemented in other pull requests; refer to the current user guides for available features. Work happens in separately scoped commits. The published historical baseline is preserved as `v0.1.0-legacy` (commit `aa3eba2180d505f4dc01c9c2bf977cef00b3252a`).

## Completed in PR #2

1. Residue-aware classification independent of the plotting background, with an explicit legacy option.
2. Deterministic density thresholds and reusable reference grids.
3. Atom-based backbone torsions that respect peptide connectivity, chain boundaries and insertion codes.

## Phase 2: CI, inputs, reproducibility
## Regression testing, input handling and reproducibility

- [x] Keep scientific changes in their own commits, merged without squashing.
- [x] Add a two-platform R regression workflow for existing scientific test scripts.
Expand All @@ -21,22 +21,22 @@ This log records the main changes and their verification status. Work happens in

The scientific classifications are tied to the bundled reference densities. Do not claim MolProbity-equivalent outlier percentages without a separate benchmark. New methods and reference datasets will be versioned.

## Phase 3: scientific comparisons and timing
## Scientific comparisons and timing

- [x] Provide a repeatable analysis/timing script recording the structure, reference dataset, software environment and per-stage elapsed time.
- [x] Provide an independent torsion-angle comparison with Bio3D for PDB accessions without insertion codes.
- [x] Correct Bio3D whitespace-padded residue identifiers and require at least 98% comparison coverage: 45 phi and 45 psi comparisons for 1CRN; 2,880 of each for 6VXX, with zero differences over 0.5 degrees.
- [ ] Run scaling benchmarks on large PDB/mmCIF inputs and record benchmark output.
- [ ] Compare region labels against independently generated structural-validation reports; numerical thresholds differ across implementations.

## Phase 4: larger-structure performance and paper preparation
## Larger-structure performance and manuscript planning

- [x] Preallocate and vectorize backbone extraction (PR #5).
- [x] Cache immutable classification reference profiles (PR #6).
- [x] Correct independent validation identifier matching and enforce coverage (PR #7).
- [x] Run a same-runner 6VXX scaling pilot with 1x, 3x and 10x replicated
complexes and record peak RSS, warm/cold stage timings and software metadata.
See [measured results](scaling-results.md) and [run 36430181464](https://github.com/BiKC/RamplotR/actions/runs/36430181464).
See [measured results](../scaling-results.md) and [run 36430181464](https://github.com/BiKC/RamplotR/actions/runs/36430181464).
- [ ] Run paired same-host comparisons of legacy and current algorithms, including peak RSS.
- [ ] Compare RamplotR region labels against independent MolProbity-style reports.
- [ ] Prepare the methods, validation tables and figures for the arXiv preprint once validation is complete.
Loading
Loading