← SkillSafe / Traj Desk

What does your MD trajectory actually show?

Paste a multi-model PDB. Your browser aligns it and computes RMSD, per-residue RMSF, radius of gyration and ligand contacts exactly as MDAnalysis does - free, nothing uploaded. A paid run then interprets the frames or writes the MDAnalysis script that reproduces them.

Each example has a saved model run, so you can see the whole page for free.

Drop a .pdb, .pdb.gz, .ent or .txt file, or

Files up to 60 MB - about 700,000 atom lines, for example 3,500 atoms x 200 frames. Strip water with your MD tools first for a big system. Every frame must have the same atoms as the first. Browsers cannot read binary trajectories (XTC, DCD, TRR, NetCDF): convert first, for example gmx trjconv -s topol.tpr -f traj.xtc -o traj.pdb -dt 100, or in MDAnalysis u.atoms.write("traj.pdb", frames="all").

Analysis settings (MDAnalysis selection language)

Defaults are the skill's: backbone, frame 0, cutoff 4.5 Å, resname LIG. Supported keywords: all, protein, backbone, nucleic, name, type, element, resname, resid (10:50), resnum, segid, chainID, index, bynum, altloc, record_type with and, or, not and parentheses; wildcards like name H*. As in MDAnalysis, and and or have equal precedence, read left to right.

Paste a trajectory to price the run.

Your recent runs

What this does, and what it does not

The page reads a multi-model PDB the way MDAnalysis 2.9.0 does - the first model is the topology, each MODEL is a frame, masses come from the element column or are guessed from atom names - and runs the molecular-dynamics skill's analysis: align.AlignTraj(u, u, select=..., in_memory=True), rms.RMSD to a reference frame, rms.RMSF from a start frame with per-residue means, the mass-weighted radius of gyration, and the protein residues within a cutoff of a ligand in each frame. It was checked against MDAnalysis 2.9.0 on 700 random trajectories (mixed residues, ligands, water and ions, altlocs, segids, CRYST1 records, varied selections and settings) and on the 38-model Trp-cage ensemble (PDB 1L2Y) - RMSD, RMSF and radius of gyration agree to about 1e-5 Å; the only differences are selections of fewer than three atoms, whose orientation is undefined, which the page refuses.

Two of the skill's snippets cannot run as written, and the page says so on your input: compute_rmsf indexes the RMSF array with universe atom indices (an IndexError for a backbone selection of an all-atom protein), and analyze_contacts passes positions to contacts.contact_matrix, which takes a distance matrix (a TypeError). The page and its script use the intended calculations instead. RMSD, RMSF and contacts describe the frames you pasted; they do not establish convergence, stability or binding affinity, and distances here ignore periodic images, as the skill's do. The paid run reads only what the browser computed and your notes, is told never to compute a new number, and the page checks every number and residue it writes. Derived from the agent skill @k-dense-ai/molecular-dynamics (k-dense-ai/scientific-agent-skills). The examples use wwPDB entries 1L2Y and 1STP (see the notice); two of them are altered or synthetic and say so.