# Traj Desk > Paste a molecular dynamics trajectory as a multi-model PDB and find out what it supports. The > browser analyses it exactly as MDAnalysis 2.9.0 does - AlignTraj in memory, RMSD to a reference > frame, per-residue RMSF, mass-weighted radius of gyration, ligand contacts - and flags trajectories > whose numbers cannot be trusted. Then a metered reading explains what the frames support, or > writes the MDAnalysis script that reproduces them. URL: https://traj-desk.skillsafe.ai/ API: https://traj-desk.skillsafe.ai/api.html Model: gpt-terra ยท publisher markup 1000 bps (10%) ## The free engine (in the browser, no account) - Reads multi-model PDB files (MODEL/ENDMDL frames, optional CRYST1 per frame) the way MDAnalysis 2.9.0's PDB parser and reader do; files up to 60 MB, plain or .pdb.gz. A file whose frames are separated only by END records (no MODEL lines, as VMD writes) is recognised and can be rewritten with MODEL/ENDMDL in one click. Binary trajectories (XTC, DCD, TRR) must be converted first. - Selections in the MDAnalysis language: all, protein, backbone, nucleic, name, type, element, resname, resid, resnum, segid, chainID, index, bynum, altloc, record_type, and/or/not, parentheses and wildcards (and/or share one precedence, as in MDAnalysis). - Computes: AlignTraj(u, u, select=..., in_memory=True); rms.RMSD to a chosen reference frame; rms.RMSF from a chosen start frame on aligned or raw frames, with per-residue means; the mass-weighted radius of gyration per frame; protein residues within a cutoff of a ligand selection in every frame, with occupancy. RMSD, radius-of-gyration, RMSF and contact plots. - Flags: chains split by a periodic wrap, a single frame, RMSD drift over the second half, RMSD jumps, large RMSD, radius-of-gyration change, a ligand without contacts in over 20% of frames, overlapping selections, a missing ligand, few frames, kept equilibration, unaligned RMSF, chain gaps, altlocs, hydrogens, zero masses, resids shared across segments. - Reports two defects in the skill's own snippets on your input: compute_rmsf indexes the RMSF array with universe atom indices (IndexError for a backbone selection of an all-atom protein), and analyze_contacts passes positions to contacts.contact_matrix, which takes a distance matrix (TypeError). - Checked against MDAnalysis 2.9.0 on 700 random trajectories and the 38-model Trp-cage ensemble (PDB 1L2Y): about 150,000 compared values, agreeing to within 2e-5 Angstrom. - Exports: trajectory.pdb (the exact text analysed), RMSD and radius-of-gyration CSV, per-residue RMSF CSV, contacts CSV, a report JSON, a Markdown summary; file names carry the selection and reference frame. - Baseline: pin one analysis (replica 1, the apo run, the first settings), then load the next; the plots overlay the baseline dashed and a table gives the change in every summary metric and the largest per-residue RMSF changes, with a comparison CSV. ## The metered lanes (input field `task`) - `interpret` - a reading of each metric, what the frames show (RMSD and radius of gyration over time, the most mobile residues, the ligand's contacts), the user's claims judged against the facts, and what the analysis cannot show. Verdict sound / caveated / unreliable, never looser than the browser's read unless its flags are dismissed. - `script` - a Python script that loads trajectory.pdb with the page's settings, aligns in memory, computes RMSD, RMSF (indexed correctly), radius of gyration and distance_array contacts, checks every expected value with math.isclose, and runs follow-up checks (a later start frame, another selection, block averages, a periodic-wrap check, CSV output, contact occupancy). Every reply is reconciled on the page: every flag answered, every number found in the browser's facts or the user's notes, every residue one the trajectory contains, script settings, imports and expected values checked. Only the analysis is sent, never the trajectory. ## Sources - Derived from the agent skill @k-dense-ai/molecular-dynamics (https://skillsafe.ai/skill/@k-dense-ai/molecular-dynamics), K-Dense-AI/scientific-agent-skills by K-Dense Inc., skill author Kuan-lin Huang (MIT). - MDAnalysis: Michaud-Agrawal et al., J. Comput. Chem. 32, 2319-2327 (2011), doi:10.1002/jcc.21787; Gowers et al., Proc. SciPy 2016, 98-105, doi:10.25080/majora-629e541a-00e. - Example structures: wwPDB entries 1L2Y (Neidigh et al., Nat. Struct. Biol. 9, 425 (2002)) and 1STP (Weber et al., Science 243, 85-88 (1989)), CC0 1.0; the wrapped and ligand examples are altered or synthetic and say so. - Notice: https://traj-desk.skillsafe.ai/NOTICE.txt