Output formats and schemas¶
pyCurves exposes the same calculated records as Curves-style text, JSON, Pandas dataframes, and CSV files. JSON is the best interchange format; dataframes are the most convenient in Python.
Static JSON¶
CurvesWrapper.output(fmt="json") and
CurvesOutputFormatter.render_json() return a
pycurves-slim-v2 document with these top-level keys:
Key |
Contents |
|---|---|
|
Producer name. |
|
Schema identifier, currently |
|
Selected base-frame name, compatible tools, reference source, and axis convention. |
|
Effective combined-strand, groove, terminal-level, minimization, axis, weighting, and alternate-conformation settings. |
|
Coordinate path, Curves input path, and generated input paths. DSSR fields are added when DSSR supplied the topology. |
|
Strand count, level count, one-letter sequences, and residue identities. |
|
Named lists of row dictionaries described below. |
|
Present with visualization output; transforms needed to rebuild interaction frames from standard base frames. |
|
Present only when visualization geometry was requested. |
Static dataframe keys¶
Not every analysis produces every table. Axis-specific tables appear only for the relevant convention, and groove tables appear only when groove calculation is enabled.
Key |
Contents |
|---|---|
|
Base displacement, inclination, and tip relative to the global Curves axis. |
|
Base-pair displacement and orientation relative to the global axis. |
|
Base-pair displacement and orientation relative to the local Curves+ smooth axis. |
|
Helical intra-base-pair parameters. |
|
Local intra-base-pair shear, stretch, stagger, buckle, propeller, and opening. |
|
Global strand-by-strand inter-base step parameters. |
|
Local strand-by-strand inter-base step parameters. |
|
Global base-pair step parameters. |
|
Local base-pair step shift, slide, rise, tilt, roll, and twist. |
|
Backbone torsions, sugar-pucker descriptors, residue identity, validity, status, warnings, and missing parameters. |
|
Per-level axis curvature/path records. |
|
Per-level offsets and local bending direction. |
|
Per-strand path length, end-to-end distance, shortening, and overall bend angles. |
|
Minor/major width and depth plus diameter, flattened by level and sub-level in Pandas/CSV output. |
|
Pair presence, observed/reference LW family, named mode, classification state, helical context, and diagnostics. |
|
Modified-base and backbone-connectivity events. |
|
DSSR source pair records; present in dataframe output when DSSR provenance is available. |
Missing values¶
Gapped or uncomputed backbone positions remain in sequence-indexed tables with
null values. This keeps row positions aligned with the requested sequence.
Inspect the row’s valid, status, warnings, and
missing_parameters fields before treating a numeric null as an error.
CSV output¶
For static CLI output, --output-file PREFIX produces one
PREFIX_TABLE.csv file per dataframe.
For trajectory CSV, summary tables use
PREFIX_TABLE_summary.csv and per-frame tables use
PREFIX_TABLE_frames.csv. Frame and time are flattened into columns.
General trajectory JSON¶
pycurves-md and pycurves_md.analyze_trajectory() return
pycurves-trajectory-slim-v2. Common top-level keys are:
inputsTopology, reference topology, trajectory, Curves input, and generated input paths.
analysis_optionsEffective analysis settings.
selectionFrame selector, processed-frame count, and continuity settings.
frame_conventionFrame and axis conventions.
framesPresent for
per-frameandboth. Each item containsframe,time, anddataframes.summaryPresent for
summaryandboth.
Vectorized trajectory JSON¶
The batch engine uses pycurves-trajectory-batch-curvesplus-v1. It has
the same high-level inputs, analysis_options, selection,
frame_convention, frames, and summary organization, but
records the fixed standard-frame/local-axis constraints and batch settings.
Summary statistics¶
Numeric summary columns are emitted as NAME_count, NAME_mean,
and NAME_stddev. Angular columns use a circular mean and
resultant-length standard deviation in degrees; they are not averaged as linear
numbers.
base_pair_observations is categorical. Summary rows count each
pair/status/mode/LW/helical-context combination using frame_count and
frame_fraction.
Base-pair observations¶
Field |
Meaning |
|---|---|
|
Stable identifier made from the two sorted molecular subunit IDs. |
|
True for a pair from the reference map; false for a newly detected per-frame pair. |
|
Curves reference level, or null when a newly detected pair has no reference level. |
|
Human-readable chain, residue name, and residue number. |
|
|
|
Definitive named mode, or an empty string when unassigned. |
|
Confident current-frame LW family such as |
|
LW family supplied by the reference/input topology. |
|
Tentative named mode when evidence is insufficient for assignment. |
|
|
|
|
|
Machine-readable reasons requiring review; normally empty. |
Empty observed mode or LW-family strings mean unclassified, not non-canonical.
Annotation rows¶
annotations does not duplicate base-pair rows.
A
modified_baserow contains annotation type, severity, level, location, code, message, residue, and parent base.A
backbone_linkrow contains annotation type, severity, level, location, code, message, source/target subunits, bond source, and distance.
The table is empty when neither event type occurs.