DC+ (web version) | Residual Dipolar Coupling analysis tool for proteins & nucleic acids

Structure

NGL viewer
☰
Load coordinates (.pdb/.cif) to view the structure in 3D.
Mol
Tensor

RDC table

View, select, add, edit RDCs and Medium
About & FAQs
Formats, conventions, and quick answers.

About v1.0 · web

DC+ (web version) is an interactive RDC analysis tool for proteins and nucleic acids. Supports SVD, NLLS, restrained NLLS, simultaneous ensemble fitting, orthogonalization, RCSA, and comprehensive statistical validation.

Fits
SVD, NLLS, restrained NLLS, VW fit, orthogonalization
Stats
RMSD, Q, R, jackknife, Q_free, Monte Carlo, outlier detection
Viz
Correlation, prediction error, DDS heatmap, tensor ellipsoid
Extra
RCSA, ensemble fitting, S² dynamics, cross-media analysis, export

FAQs

  • What file formats are supported?+
    Coordinates: .pdb, .cif (mmCIF), RCSB fetch by PDB ID.
    RDC: NMRPipe .tab or manual entry.
    RCSA: NMRPipe .tab.
    Project: .json
  • How do I run a SVD fit?+
    1) Load coordinates. 2) Load/add ≥5 valid RDCs. 3) Select SVD and click Run Fit.
  • What is Simultaneous Variable-Weight Ensemble Fit?+
    Variable-Weight Fit jointly optimises the alignment tensor S and per-conformer weights w using an alternating SVD + projected-gradient algorithm. Requires a multi-model PDB (≥2 MODEL records). Open the Ensemble module to inspect per-conformer Q values and weights.
  • What is Q_free?+
    Q_free is an RDC analogue of R_free in X-ray crystallography. A fraction of RDCs (default 10%) are withheld from the fit; the tensor is evaluated on this "free" set. Q_free > Q_work by more than ~5% suggests overfitting. Access it in Analysis → Validation → Q_free.
  • How do I load multiple structures?+
    Use the "Additional structures" section in the Build project panel. Each structure gets its own slot. Use the structure selector (🧬) in the RDC table header to bind different structures to different media.

Fitting & Analysis Workflows

  • Standard SVD fit (single structure)+
    Purpose: Determine the alignment tensor from a single structural model.

    Workflow:
    1. Load coordinates (.pdb / .cif) via Build project.
    2. Load RDC file (.tab) — or add RDCs manually in the RDC table.
    3. Select residues/RDC types using the selector bars.
    4. Choose SVD Fit in Fit method and click Run Fit.
    5. Review Da_NH, Rh, Q, Q_JK in the Tensor info and Fit statistics panels.
    6. Inspect correlation and prediction-difference plots.

    Requirements: ≥5 selected valid RDCs for SVD; ≥6 for jackknife uncertainty.
    Output: Saupe matrix, Da_NH, Rh, Euler angles, per-type and jackknife statistics.
  • NLLS fit (non-linear least squares)+
    Purpose: Non-linear optimisation of the alignment tensor; more robust to outliers and noise than SVD.

    Workflow:
    1. Load structure and RDC data (same as SVD).
    2. Choose NLLS Fit and set Number of Trials (default 1000 random starts).
    3. Click Run Fit. Multiple random initialisations are tried; the lowest chi² solution is kept.
    4. Inspect results identically to SVD.

    Requirements: ≥3 selected valid RDCs.
    Note: Slower than SVD due to repeated optimisation; increase trials for complex/noisy data.
  • Restrained NLLS fit+
    Purpose: Incorporate prior knowledge (e.g. from a previous experiment or related medium) as soft restraints on tensor parameters during NLLS.

    Workflow:
    1. Select NLLS Fit w/ Restraints.
    2. In the NLLS Parameters block, choose a parameter (Da_NH, Rhombicity, Sxx, Syy, Sxy, Sxz, or Syz), enter a target value and a weight, then click Add restraint.
    3. Add as many restraints as needed; remove any with the Remove button.
    4. Click Run Fit.

    Restraint weight guidance: A weight of 1–10 gives a soft restraint; 100–10000 approaches a hard constraint. Da targets are in Hz; Rhombicity in 0–2/3; Saupe elements are dimensionless (~10⁻³).
  • Unweighted SVD ensemble fit (equal-weight average)+
    Purpose: Fit a single alignment tensor to an NMR ensemble by averaging bond-vector direction cosines equally over all conformers.

    Workflow:
    1. Load a multi-model PDB (with multiple MODEL records).
    2. Load RDC data.
    3. In the Ensemble Fitting module (Functions & Modules panel), set mode to average and click Apply → refit.
    4. Choose SVD Fit and click Run Fit.

    Result: The A-vector for each coupling is the equal-weight mean over all N conformers, equivalent to the original multi-model SVD used in DC+ / DC+ alpha.
  • Weighted SVD ensemble fit+
    Purpose: Fit a single tensor where each conformer contributes with a user-defined or automatically optimised weight, reflecting its structural accuracy.

    Workflow:
    1. Load multi-model PDB and RDC data.
    2. Open the Ensemble Fitting module.
    3. Click Run per-model SVD to compute per-conformer Q and RMS values.
    4. Set weights manually in the table (W% column) or click Auto-weight 1/Q² to assign weights inversely proportional to Q².
    5. Click Apply → refit, then Run Fit (SVD).

    Tip: Inspect the Q bar chart on the right — click a bar to toggle that conformer in/out. Use Equal weights to reset.
  • Simultaneous Ensemble Fit (SE Fit)+
    Purpose: Jointly optimise the alignment tensor S and conformer weights w simultaneously using an alternating SVD + projected-gradient algorithm on the weight simplex.

    Workflow:
    1. Load multi-model PDB (≥2 MODEL records) and RDC data.
    2. Optionally pre-select conformers in the Ensemble Fitting module.
    3. Select Simultaneous Ensemble Fit in Fit method.
    4. Set Max iterations (200), Tolerance (1e-7), and Sparsify threshold (0 = keep all weights).
    5. Click Run Fit. The Ensemble Fitting panel opens automatically on completion.

    Convergence: The algorithm alternates between an SVD S-step (weighted average A-vectors) and a projected-gradient w-step until weight change falls below tolerance. The status reports convergence or early stop.
  • Structure alignment in NGL prior to ensemble fit+
    Purpose: Superimpose conformers before ensemble fitting to remove overall rigid-body translations and rotations, so that differences reflect genuine internal dynamics.

    Workflow:
    1. Load multi-model PDB and enable Show all models in NGL (Structure viewer ☰ menu) to confirm all models are visible.
    2. In the same menu expand Align models:
     • Enter atom names (space-separated): e.g. CA or CA N C.
     • Enter the reference model number (1-based).
     • Enter residue range: e.g. 2-70 or all.
     • Choose Align all models or Align selected models (uses Ensemble panel selection).
    3. Click Align. Atom coordinates are updated in-place; RDC vectors are recomputed; the NGL viewer reloads.
    4. The status bar reports per-model and average RMSD (Å).
    5. Proceed with weighted or SE ensemble fitting on the aligned structure.

    Note: Alignment modifies coordinates permanently in this session. Save the project JSON to preserve the aligned coordinates.
  • Tensor orthogonalization (multiple alignment media)+
    Purpose: Derive an orthonormal set of alignment tensors from two or more independently fitted tensors (different alignment media), and then re-fit each orthogonalised medium's RDC data against the new tensor basis.

    Workflow:
    1. Load the same structure for each medium (or one structure for all).
    2. Load RDC data for medium 1 (first .tab file) and run a SVD fit.
    3. Add a new medium (🧪+ icon in the RDC table header), load RDC data for medium 2, and run a second SVD fit.
    4. Repeat for any additional media.
    5. Select Orthogonalize Tensors in Fit method and click Run Fit.
    6. DC+ appends orthogonalised media to the project; each is re-fitted with SVD.

    Requirements: ≥2 media with fitted tensors. The method uses SVD of the stacked saupe2 matrix (Bax-lab convention).
  • SVD fit of RCSA data+
    Purpose: Determine the alignment tensor from Residual Chemical Shift Anisotropy data (¹⁵N, ¹HN, ¹³C′) which report the same tensor as RDCs but are measured from chemical shift changes rather than dipolar splittings.

    Key physics: RCSA(ppb) = Σⱼ A[j] · Saupe[j], where A is built from the CSA principal-axis tensor in the molecular frame. Values are field-independent when expressed in ppb (parts per billion).

    Workflow:
    1. Load structure coordinates.
    2. Open the RCSA Analysis module (Functions & Modules panel).
    3. Load an NMRPipe-format .tab file with VARS RESID RESNAME ATOMNAME D DD W; D values in ppb.
    4. Optionally adjust CSA principal values (σ11, σ22, σ33 in ppm) and tilt angle β for each nucleus (defaults: ¹⁵N Cornilescu & Bax 2000; ¹HN Loth et al. 2005; ¹³C′ Liu & Prestegard 2010).
    5. Click ← Back-calc from RDC tensor to validate geometry using an existing tensor, or click Fit RCSA (SVD)Joint RDC+RCSA fit to combine both data types.
    6. Inspect the D_obs vs D_calc correlation plot and per-residue table.

    Residue offset: ¹³C′ uses C′(i), N(i+1), HN(i+1) (the peptide plane of residue i points to the next amide).
  • S² order parameter / dynamics analysis+
    Purpose: Estimate generalised order parameters S² per residue from multiple alignment media without a dynamics model, following the approach of Tolman & Meiler. S² = 1 → rigid; S² → 0 → highly flexible.

    Method: For each RDC coupling shared across ≥2 fitted media, S² is computed as the least-squares amplitude scaling between observed and rigid-limit back-calculated RDCs:
    S²_j = Σₖ (D_obs,k,j · D_calc,k,j) / Σₖ (D_calc,k,j)²

    Workflow:
    1. Fit ≥2 alignment media (each with its own RDC dataset but the same structure).
    2. Open Analysis & Export → Dynamics S².
    3. Click Compute S².
    4. Click Color NGL to paint the structure blue (rigid) → red (flexible).
    5. Click Export CSV for the per-residue table.

    Requirement: ≥2 media with fitted tensors and overlapping selected RDC assignments. The more tensors used (and the more distinct their orientations), the more accurate the S² estimate.
  • Cross-media / structure-free analysis+
    Purpose: Assess the self-consistency of multiple RDC datasets without requiring a structure, and estimate the effective rank of the alignment data.

    Cross-media correlation matrix: For each pair of media, computes the Pearson correlation r of D_obs/|DI| values for shared couplings. High r (close to 1) indicates similar alignment geometry or a rigid molecule. Low or negative r can indicate very different tensors or internal motion.

    Singular value analysis: Builds the M×N matrix of D/DI values (M = number of media, N = number of common couplings) and decomposes it with SVD. The number of singular values above 5% of the largest estimates the effective tensor rank:
     • Rank 1 → single alignment mode (rigid, or motion averages to a single tensor).
     • Rank > 1 → multiple independent alignment modes or significant internal dynamics.

    Workflow:
    1. Load and fit ≥2 media.
    2. Open Analysis & Export → Cross-media.
    3. Click Correlation matrix or Singular value analysis.
    4. For scatter plots: select two media and click Plot scatter.
  • Q_free cross-validation+
    Purpose: Assess overfitting using an RDC analogue of crystallographic R_free. A random fraction of RDCs is withheld from fitting; the tensor is evaluated on this free set.

    Interpretation: Q_free ≈ Q_work → no overfitting. Q_free ≫ Q_work (Δ > 5%) → likely overfitting (too many parameters for the data).

    Workflow:
    1. Run a SVD or NLLS fit first.
    2. Open Analysis & Export → Validation → Q_free.
    3. Set free fraction (default 10%), repetitions (default 10), and stratification (by RDC type, residue, or none).
    4. Click Compute Q_free. Results are averaged over all repetitions.

    Tip: Use stratification by RDC type to ensure each type is represented in both work and free sets.
  • Outlier detection (Z-score analysis)+
    Purpose: Identify RDC data points whose residuals are statistically anomalous — potential measurement errors, conformational exchange, or misassignment.

    Method: Uses pre-computed jackknife back-calculations (dCalc_jk) when available; otherwise computes leave-one-out back-calculations on the fly. Z = (D_obs − D_calc) / DD.

    Workflow:
    1. Run a SVD fit (with jackknife, i.e. ≥6 selected RDCs).
    2. Open Analysis & Export → Validation → Outliers.
    3. Set the |Z| threshold (default 3.0 σ).
    4. Click Detect outliers. The table is sorted by |Z|, with outliers highlighted.
    5. Click Exclude & refit to deselect outliers and immediately re-run SVD, or manually deselect them in the RDC table.
    6. Use Restore all to re-select all valid RDCs.
  • Monte Carlo uncertainty propagation+
    Purpose: Propagate experimental RDC errors into tensor parameter uncertainties via repeated fitting of noise-perturbed datasets — more reliable than jackknife for small datasets or non-Gaussian error distributions.

    Method: Each D_obs is perturbed by a random draw from N(0, DD), the SVD fit is re-run, and tensor parameters are collected. Statistics (mean, std, 95% CI) are computed over all samples.

    Workflow:
    1. Run a SVD fit first.
    2. Open Analysis & Export → Validation → Monte Carlo.
    3. Set number of samples (default 200; more samples → more accurate CI).
    4. Click Run Monte Carlo. Histograms of Da_NH and Rh distributions are shown.
    5. Click Export CSV for all sample values (Da, Rh, full Saupe matrix).

    Output: Da_NH and Rh with ±σ and 95% confidence intervals; Da–Rh correlation coefficient; per-element Saupe σ.
  • How do I simulate RDCs from a structure and alignment tensor? +
    Purpose: The Simulate RDCs module (🎲, in Fit & Modules → More Modules) back-calculates RDC values for any set of bond vectors in the loaded structure given a user-specified alignment tensor, exactly replicating the approach of the Bax group DC+ server.

    Workflow:
    1. Load coordinates (.pdb/.cif).
    2. Open 🎲 Simulate RDCs in the secondary panel.
    3. ① Coupling classes — tick the bond-vector types to include (HN–N, CA–HA, nucleic sugar/base vectors, …). Toggle between distance-based or standard fixed-length DI values.
    4. ② Structure & models — choose whether to average over all NMR ensemble models or use only the first; optionally restrict to a residue range.
    5. ③ Alignment tensor — enter the tensor as either the five Saupe matrix elements [Szz, Sxx−Syy, Sxy, Sxz, Syz] (×10³) or as Da_NH (Hz), Rhombicity, and ZYZ Euler angles (°). Use ← From RDC fit to import the tensor from the current fit.
    6. ④ Noise parameters — optionally add realistic disorder:
     • RDC measurement noise σD (Hz): an independent Gaussian N(0, σD) is added to each simulated RDC value, mimicking experimental uncertainty.
     • Structural cone noise σcone (°): before the RDC is computed, each bond vector is independently tilted by a random angle β drawn from P(β) ∝ sin(β)·exp(−(β/σcone)²). The sin(β) factor is the solid-angle element; the Gaussian envelope controls the cone width. This models bond-vector disorder arising from local protein dynamics or structural uncertainty. 0° = perfect rigid-body geometry.

    7. Click ⚡ Generate Simulated RDCs.
    8. Inspect the preview table, then click Load into medium to add the results to the RDC table (a new medium is created automatically when other data are already present), or Export CSV for external analysis.

    Notes: When multiple NMR models are selected, the A-vector and DI are averaged over all models after optional per-model structural-noise perturbation (noise is drawn independently per model per coupling). The simulated D values can be used directly as input to an SVD or NLLS fit to verify tensor recovery or to benchmark fitting accuracy.