Repository navigation
Releases: mjgplab/proprep
Release list
ProPrep 1.23.0
Added
- Molecular Docking (main menu, Simulate stage): dock a ligand into the
loaded structure with AutoDock Vina, scored by Vina, Vinardo or AutoDock4
(maps from autogrid4), with ligand and receptor prepared by Meeko and
Gasteiger charges only; no force-field parameters are needed. The ligand
comes from a residue of the structure (its Chemical Component Dictionary
entry placed on the crystal coordinates, an inconsistent entry reported
atom by atom), a SMILES string, or a file loaded with the Structure Loader
(its new option 4 loads SDF, mol2 or SMILES files and libraries). The
dashboard walks the decisions in order: receptor and chains (alternate
locations chosen residue by residue), the ligand, which HETATM residues
stay in the receptor (distances to the ligand, waters within a
hydrogen-bond distance listed with their contacts), protonation from
pdb2pqr/PROPKA and chain ends from REMARK 465, SEQRES or OXT (asked when
the file says nothing), metal charges and cofactor chemistry, flexible
side chains, rotatable bonds, the search box and the settings. Bond
orders, charges and rotatable bonds are edited by typed commands or by
picking atoms and bonds in the viewer, where each table's rows are drawn
and numbered. A run compares every pose with the crystal ligand when there
is one. A docking campaign (c) docks every ligand of a library into the
same receptor, box and settings, with the per-ligand questions answered
once as recorded policies, resumes after an interruption, and ranks the
ligands. Validated by redocking (biotin in streptavidin 0.35-0.77 A,
indinavir in HIV-1 protease 0.28-0.33 A) and a protease campaign in which
all seven inhibitors rank above all five decoys. Its dependencies (RDKit,
gemmi, Meeko 0.8.0, AutoDock Vina 1.2.7, autogrid) are now ProPrep
dependencies; Meeko comes from the mjgplab channel built without prody,
which conda-forge cannot install on Apple Silicon with Python 3.12 or
newer (packaging/meeko-noprody). - Startup notice of a newer release. When a newer ProPrep release is on
GitHub, the lines under the banner give its version, the one update
command that fits how this copy was installed (the installer with-u
for installer copies, the install script for theProPrepconda
environment, the in-place updater for an AmberTools environment) and the
release page. Nothing is downloaded or changed, and the request carries
nothing about the user. GitHub is asked at most once a day (the answer is
kept in~/.proprep/update_check.json, since a workshop room shares one
address and GitHub's limit is per address); startup waits at most 1.5 s
for the answer and says nothing when offline. Installer copies are told
only once their platform's installer is attached to the release. The
first check says how to turn it off: Preferences, option 4. Only copies
built by the mjgplab conda recipe check at all: the recipe writes
CHANNEL = "mjgplab"intoproprep/_distribution.pyat build time, and
the source tree, and so the AmberTools build, keepsCHANNEL = None, so
ProPrep inside AmberTools never points its users at ProPrep's own
releases. The installers mark their install directory
(.proprep_installer) so the notice can give the installer command.
Preferences gains option 4 (Reset moves to 5, Back to 6). - Structure viewer: an "Axes" button under View Controls draws the X, Y
and Z axes of the coordinate frame as labelled arrows from the origin,
each reaching just past the far edge of the structure along its axis,
and takes them away again. NGL frames every structure the same way
whatever its coordinates, so a structure the Structure Orientation module
had rotated onto its principal axes looked exactly like the original.
The colours are chosen by computed contrast for the dark, black and white
backgrounds and follow the background when it is cycled; each letter has
a border in the opposite tone so it reads over the molecule. The setting
is saved with a scene and restored from one. The Structure Orientation
module turns the axes on before and after it aligns a structure, in place
of four unlabelled spheres 15 A out along each axis, which sat inside any
protein of ordinary size and were never seen.
Changed
- Alternate locations: the Structure Fixer's per-residue picker (occupancy,
atoms covered, a partial alternate completed from another, viewer
colours) is shared with Molecular Docking, and the viewer selections now
carry insertion codes. - Topology Generator: the PDB is no longer reordered before tLEaP, and
the "Configure molecule grouping for AMBER?" question no longer appears
when tLEaP runs. sander and pmemd need every bonded unit (a chain plus
the cofactors bonded to it) to be one contiguous block of atoms, and
tLEaP writes ATOMS_PER_MOLECULE as if that were already so; the ParmEd
validation after every build repairs it with rediscover_molecules and
saves the prmtop and rst7 as a matching pair, which made the pre-build
reordering a second mechanism for the same problem. Its analyzer also
misread packed membrane systems (every water chain typed as protein,
lipid residue numbers colliding with protein ones). The reordering code
is kept, uncalled. ParmEd now also writes<name>_parmed.pdbnext to
the topology, a PDB in the topology's atom order, since after a reorder
the PDB tLEaP read no longer matches the prmtop. Sessions recorded with
the old questions will find them missing on replay.
Fixed
- Installing ProPrep over AmberTools 26 (the install script, the installers,
the AmberTools updater) left inside the package the files that only
AmberTools' bundled ProPrep 1.0.0 had: 35 of them, among them a retired
built-in MD workflow (protein_equilibration) the MD Manager still
offered, old MD templates, a backup module and old heme and Fe4S4
parameter files. Every install path now removes the files ProPrep's conda
package does not own (python -m proprep.utils.bundled_copy). An existing
installation is cleaned by updating it: run the install script again and
choose 1 (Update), run the new installer with-u, or run
update_proprep_in_ambertools.shfor an AmberTools environment. - Structure Fixer: an alternate location that models only part of a
residue was offered as an ordinary choice, and choosing it dropped every
atom it did not model; on the 0.80 A lysozyme 8ZST that removed the
C-terminal leucine's backbone and left tLEaP closing the chain with a
3.79 A peptide bond. The picker now shows how many atoms each alternate
models, flags a partial one, and completes it from the alternate with the
highest occupancy that has the missing atoms. Alternate labels left on
retained atoms (lone labels, waters) are cleared too. - Topology Generator: it builds from the Structure Orientator's output when
there is one. The oriented structure was ranked where it could never be
chosen, so orienting a structure did not change what tLEaP built. - Topology Generator: tLEaP's errors and warnings are reported from the
current run only. tLEaP appends to leap.log, so a clean build printed its
summary of zero errors above errors left by earlier runs in the same
folder. - Install commands list conda-forge before salilab and bioconda. With
salilab and bioconda first, 1.22.0 did not install on Linux under strict
channel priority (Miniforge's default): AmberTools 26 needs RDKit, which
bioconda has only as 2015-2016 Python 2.7 builds for Linux, and
conda-forge's MPI fftw, where salilab has fftw 3.3.4. Changed in the
install script, the README, the AmberTools updater, the installer recipe
and the release build. - Structure viewer in the terminal: an open browser tab now follows the
viewer when a module shows other structures or re-reads edited files. The
restarted server began its version count at 1 again, which an untouched
page already held, and the page never reloaded structures; and a restart
asked for port 8765 again, moving to another port when 8765 was taken and
leaving the tab on a dead one. Each server start now has an id the page
reloads on (keeping the camera when the files are the same), and a
restart reclaims its port. - Structure viewer: a view a module shows on request (the Redox Site
Detector'sview, a docking pose) opened a new browser tab every time,
so a session collected tabs; a tab now opens only when none is open or
loading, and the open one updates in place. A viewer server could also
keep running unrecorded after a failed launch, leaving two in one session;
a started server is now recorded at once, and a server whose thread died
has its port closed. And with the main menu's Structure Viewer opened
first, no module's views or highlights reached it (the Structure Viewer
and the modules each had their own viewer, and updates went to the one
that had started nothing); the modules' viewer now takes the open viewer
over, on the same port, and the tab updates in place. - Transformer Creator:
droptakes back the last operation. Itsundo
could never run: typingundoat any prompt rewinds the session first. - Structure Aligner: a second alignment in the same session started with
the previous run's list of ions and waters to add and its transformation
matrices. Both are keyed by a structure's position in the run's list, so
they named whatever structure now held that position. The second
redox-site alignment of calmodulin 1CLL against 2LL6 therefore re-added
the first run's two Ca2+ and two waters, and put them into the reference
copy (1CLL_noH_aligned_2.pdbgained residues A:293-296 on top of the
originals) while the target got only the four it asked for. Both
alignment entry points andcleanup()now forget the previous run.
Installers
Self-contained installers (conda not required). Download, then `bash ProPrep-1.23.0-<O...
ProPrep 1.22.0
Added
- MD Manager: how close the solute comes to its own periodic images, along a
simulation. Under periodic boundaries where the solute sits in the box means
nothing; its shortest distance to any atom of any copy of itself does, and
it changes as the solute tumbles or extends and as the box shrinks under
constant pressure. It is analysis 23 of the trajectory analysis menu
("Periodic image distance") and option 12 of the simulation monitor, where
it covers the frames written so far by a run that is still going. Any Amber
box is handled: rectangular, truncated octahedron, or triclinic. Reported:
the box shape and the range of its edges, the closest approach with its
frame and the two atoms involved (which says what part of the solute is
approaching its image), the mean and range, and the frames in which the
solute is within the nonbonded cutoff of its own image, where it interacts
directly with itself. That cutoff is the only criterion applied. It is read
from the run's own output, which echoes what the engine used, or from its
input; if neither is beside the topology, Amber's default of 8 Å is offered
and said to be that. The solute can be the protein residues, every molecule
the topology does not mark as solvent (no list of residue names is used),
chosen residues, or a mask; in a membrane system choose the protein, since
the lipids are continuous across the box and always touch their images. The
distances equal those of cpptraj'sminimage, and are found faster: about
0.2 s a frame for 6,000 atoms, whereminimagetakes 0.9 s and grows with
the square of the size. - Membrane Builder: the build now reports packmol's progress. After
"Initiating all-together packing" ProPrep used to print nothing until the
build ended, which for a large system is more than an hour. It followed
packmol-memgen's log, which goes quiet once packmol starts; the progress is
in packmol's own log. Each packing phase is now named with its loop budget,
and each loop gives packmol's objective function, its two violations, the
time per loop and the most time left. A build that is stopped says where
packmol stood. Ending "without perfect packing" is reported as what it is,
packmol-memgen's normal outcome: a protein-free POPC patch ends the same
way and packmol-memgen keeps packmol's best structure. - Membrane Builder: a warning, as soon as packmol-memgen reports it, when the
oriented protein has volume in one leaflet only, that is, when it does not
cross the membrane as placed. For a transmembrane protein this means the
orientation failed (stop with Ctrl-C and choose another method); for a
peripheral protein it is expected, so the build is not stopped. - Membrane Builder: when ProPrep orients the protein with PPM3 and the protein
came from a PDB entry that the OPM database holds, the placement is compared
with OPM's before packing starts. OPM's placements are computed with the
same method and then curated; in particular, which side of the membrane each
face of the protein is on comes from the literature, which no calculation on
a structure can know. The build reports whether the protein is the same way
up as in OPM (in red if it is not), the angle between the two membrane
normals, how deep the protein's centre sits in each, and OPM's hydrophobic
thickness. For 6R2Q: the same way up, 1.1° and 0.4 Å apart. It reports and
changes nothing: "OPM has no entry", no internet connection, or a structure
that has been moved since it was loaded are each one grey line, never a
stopped build. It needs the internet and can be switched off (Protein
Orientation, option 6). The prepared structure is matched to OPM's file
through the file it was loaded from, by position, so renumbered and renamed
residues do not matter. - Membrane Builder, PACKMOL Settings: a time limit for the build (option 9),
shown in the review. None by default. - Structure viewer: every row in the Representations panel has a Zoom
button that frames that row's selection, annotations from the PDB Filter,
the Protonation State Analyzer and the Redox Site Detector included. It uses
the selection as it is typed in the row at that moment, works on a hidden
row, and glides to the new view. A selection that matches no atom leaves the
view where it is and marks the button and the selection field in red.
Fixed
- Session logs: the first line of a session file read
"version": "1.1"and
the last block"proprep_version": "1.21.0". The first is the version of the
file's format, not of ProPrep; under that name it looked like ProPrep's, and
wrong. The key is nowsession_format_version. Logs recorded before this
change replay and rewind as before. - Structure viewer: turning a representation off left its visibility button
with nothing to see. The eye was replaced by a dash in a grey almost the
colour of the row behind it (a contrast of 1.26:1), so the button was still
there to press and could not be found. Both states are now drawn: an open
eye in white when the representation is shown, the same eye crossed out in
amber when it is hidden, so that they differ in shape as well as in colour.
The button's tooltip says which state it is in and what a click will do. - Structure Completeness: the ACE and NME caps it adds were placed at a fixed
offset along the x axis of the file, whichever way the residue faced: ACE
from the residue's first atom, NME from its last, which is usually a
side-chain atom and not the carbonyl carbon. tLEaP does not correct this: it
builds only atoms that are missing, and the caps' atoms are given. On a
repaired 6R2Q the three ACE caps had C-N-CA angles of 166°, 54° and 50° where
a peptide has 121.7°, and one carbonyl oxygen sat 0.41 Å from the next
residue's CB. A cap is now built as what it is, a trans peptide bond onto
the residue, from the residue's own backbone atoms and standard peptide bond
lengths and angles. NME is then fully determined. ACE has one free rotation,
the residue before it not being there, and is turned to where it stays
farthest from every other atom. A residue with no usable backbone keeps the
old placement, and ProPrep says so. Systems prepared earlier are not wrong
for it, as long as their minimization ran: it starts from a worse geometry
and recovers. - Membrane Builder: packmol's progress reached the screen in bursts, one update
every five or six packing loops (every five minutes on a large system),
because packmol-memgen writes packmol's log 8 KB at a time. ProPrep now
starts packmol-memgen so that its logs are written line by line, which
changes nothing else about it, and the progress is per loop. When several
loops do arrive together the latest is shown. The time per loop is measured
from one loop to the next and is not quoted until two have been seen (it
used to read "0.0 s per loop" at the first). The long all-together phase
opens by saying what to expect of it: packmol-memgen does not wait for a
perfect packing, it keeps the best structure packmol reached; the objective
falls, jumps when packmol moves its worst-placed molecules, and falls again;
"lowest so far" is the number to watch. - Membrane Builder: tLEaP, when it saves a system, moves every water to the
end of it, and the hydrogen pass let it. A structure with crystal waters
lying between its cofactors (6R2Q after a repair: 10 waters among the hemes)
therefore came out with every residue after the first water at another
position in the file. tLEaP addresses residues in bond commands by that
position, and the Topology Generator's bond directives are written for the
order of the structure that went in, so in the bilayer they would have named
the wrong residues ("bond: Argument #2 is of type String", or, worse, a bond
made to the wrong atom). Whether it happened depended on where the waters
were: a structure with its waters after the cofactors was unaffected. The
hydrogen pass now tells tLEaP to keep the order (set default reorder_residues off), and after the build the protein at the head of the
bilayer file is compared, atom by atom and residue by residue, with the one
packmol-memgen was given; a build that fails the comparison is not recorded.
A bilayer built earlier from a structure with waters between its cofactors
should be rebuilt. - Structure Completeness, with redox sites imported from a site file: after a
repair, each heme site's atoms were moved to the new residue numbers but its
center stayed on the old one (6R2Q: atoms at A:274, center at A:901), and
nothing was said. The Redox Site Preparer addresses a site by its center, so
every step on the heme did nothing: the prepared structure kept 20 residues
named HEC with all of the heme's atoms, HCO held only the His/Cys side
chains, there was no PRD, and tLEaP later stopped on "Unknown residue: HEC".
The cause was one character: a heme's center is the centroid of its residue,
and that case compared insertion codes as text, where a structure read from
a file has a space and a center read from a site file had nothing, the site
file not storing it. Sites detected in the same session, and sites whose
center is an atom (a disulfide), were not affected. Blank insertion codes
are now treated as the same, the site file stores the insertion code and
alternate location, and a center that cannot be placed in the repaired
structure is reported in red with the advice to detect the sites again.
Structures prepared from imported sites after a repair should be checked for
leftover HEC (or other untransformed cofactor) residues. - Redox Site Preparer: a transformation step that names a residue its site
does not contain is now reported, in red, at any verbosity and for every
transformer; the site's own residues are listed. Such a step used to do
nothing and say nothing, and the structure f...
ProPrep 1.21.0
Added
-
MD Manager trajectory analysis: method choices that used to be fixed inside
the code are now yours to make. Each is a prompt with its default shown, and
each is recorded in the session log.- Clustering and Pairwise RMSD: the distance between frames can be best-fit
RMSD, RMSD without fitting, or distance RMSD. K-means asks for its random
seed (the same seed reproduces the same clusters); hierarchical clustering
asks for average, single or complete linkage. - Density maps can be accumulated in the solute's frame: molecules are made
whole around the solute (autoimage) and every frame is fitted on a mask to
the first frame, on a copy of the trajectory. This is what density around
a tumbling solute needs, and it is the default; the lab frame is still
offered. The grid point limit and the number of peaks listed are asked. - RMSF and B-factors ask for the alignment mask and reference frame. PCA
asks whether to fit to the average structure. - Contacts and Salt bridges ask for the persistence threshold; Contact
frequency asks for its distance cutoff; Autocorrelation asks for the RMSD
reference frame and the maximum lag. - Ramachandran asks for the bounds of the alpha and beta regions and for the
flexibility threshold; omega asks for the planarity tolerance.
- Clustering and Pairwise RMSD: the distance between frames can be best-fit
-
A trajectory file that stores no frame times: ProPrep says so and asks for
the time between frames. With none given, plots use the frame number. -
Results state the definitions behind them: the charged atoms used for salt
bridges (now including AMBER's charged histidine,HIP), the water mask
used for water shells, how DSSP codes are grouped into helix, sheet, turn
and coil, that vector ends are geometric centres, and that contact
distances are not imaged. -
Structure Viewer: a structure against its electron density (option 6,
"Launch viewer with electron density"). For an X-ray entry deposited with
its structure factors, ProPrep fetches the two maps PDBe provides, the
2mFo-DFc map and the mFo-DFc difference map, and shows them in the viewer
with a new Electron Density panel: each map on or off, and its contour level
(starting at the usual 1.0 and +/-3.0 sigma, green for unexplained density
and red for model without density). The whole map is shown to begin with.
To look at one place, pick a ligand, ion or cofactor from the panel's list,
or type a selection such as79:Aor[HBI]: the view moves there and the
density is drawn in a box around it, whose size you set. The box belongs to
the model and stays on it when you move the view; a checkbox gives the other
convention, used by Coot, where the box stays mid-screen and the model moves
through it. A selection that NGL cannot read matches every atom instead of
failing, so the panel says how many atoms matched and refuses that case.- For contrast, the mesh near the atoms you choose is coloured differently
from the mesh elsewhere. Choose atoms by clicking them (one at a time or
a whole residue per click; click again to take them out), from the panel's
list of ligands, or with a selection; none of these needs a precise
pointer. You set how near counts (default 2 A), the two colours, and how
bright the rest of the mesh stays. Dimming the rest is what makes the
difference: the default yellow on the default blue mesh is only 1.9 : 1,
below the 3 : 1 asked of graphics, because both are bright; with the rest
at 40%, the default, it is 7.8 : 1. The panel states the contrast ratio
for whatever colours you pick and warns below 3 : 1. The difference map
keeps its green and red near your atoms, since those colours carry
meaning, and is dimmed elsewhere with the rest. - The maps are calculated by PDBe from the deposited data and the deposited
model, so the 2mFo-DFc map leans towards the model; ProPrep says so, and
the difference map is the more honest of the two. - A PDBe map covers one unit cell at the origin, while models mostly lie in
neighbouring cells (no cofactor atom of 1LTZ or 1J8U is inside its map).
ProPrep re-cuts the periodic density around the model, an exact copy of
grid values, so density appears where the atoms are. Sigma levels are
those of the whole unit cell, the crystallographic convention, not of the
re-cut box. - Density is shown only for a structure that still lies where the entry was
deposited: as downloaded, filtered, protonated or renamed. A structure
superposed onto another has left its map behind. ProPrep decides this from
the map itself (a model in its own density sits near +3 sigma on average,
the same atoms anywhere else at 0) and tells you the number, so a moved
structure is refused even if its file still carries the entry's header.
NMR and cryo-EM entries, and entries without deposited structure factors,
are told why they have no density. The margin of density kept around the
model is asked (default 5 A).
- For contrast, the mesh near the atoms you choose is coloured differently
-
Structure Loader: the article behind a structure. When a structure is
loaded, from the PDB or from a local file, ProPrep shows the publication
recorded in the file: title, authors, journal reference, and PubMed and DOI
links, or says that the entry was never published. This needs no internet
connection and asks nothing. Under View structure metadata, the
publications view adds the article's abstract and says whether a free full
text exists and where, from Europe PMC. The abstract is often what says
which form of a cofactor is really in the structure. ProPrep does not
download articles: most are behind a subscription, and PubMed Central and
the publishers refuse scripted PDF downloads, so it gives links to open in
a browser, where your own access applies. -
Structure Loader: search the Protein Data Bank by ligand (Query Protein Data
Bank, option 4). Enter a ligand code or words from its name; ProPrep lists
the matching ligands and how many structures contain each. From any code it
can then list the related ligands, because one compound is in the PDB under
several codes: those made of the same atoms with a different number of
hydrogens (other redox and protonation states, tautomers, stereoisomers) and
those RCSB scores as structurally similar, each labelled with how it was
found. Starting from tetrahydrobiopterin (H4B) this finds its 6S epimer
BHS, the dihydrobiopterinsHBIandH2B, and biopterinBIO. You type
the codes to search for and how many structures to list; they come best
resolution first, with the ligand code each contains and the real-space
correlation of that ligand with the electron density. Nothing is filtered
out for you: lookalikes are shown and labelled, and a reminder is printed
that the code is the depositors' choice and does not always match the state
their title describes. A search that cannot reach RCSB says so, and is not
reported as "no results". -
Structure Viewer: "View the loaded MD trajectory" plays the topology and
trajectory loaded with Structure Loader > Load AMBER topology & coordinate
files. Every loaded segment is read in order as one trajectory, in any
format cpptraj reads (NetCDF, mdcrd, DCD, XTC, TRR, binpos), and no PDB
structure needs to be loaded. The option is available once a topology and
trajectory are in the workspace, and says where to load them until then;
the Structure Loader now points to it. In 1.20.0 the only way to a playing
trajectory was MD Manager > Analyze completed simulations > a simulation >
"Select analysis type" > 4, which is still there and shares the same code. -
Structure viewer: save a trajectory movie. The Movie panel (shown with the
Trajectory panel;mrecords,Esccancels) renders the trajectory frame
by frame to an MP4 with the current camera, representations and background:
frame range (backwards too), stride, interpolated in-between frames, frame
rate, size (1-3x the viewport), quality and antialiasing. It is frame-exact
rather than a screen recording, so it plays at the chosen frame rate however
long a frame took to render, and H.264 MP4 opens in Keynote, PowerPoint and
QuickTime. Encoding happens in the browser (WebCodecs; a current Chrome,
Edge, Safari 17+ or Firefox 130+) and the file downloads like a screenshot.
The MP4 writer (mp4-muxer 5.2.2, MIT) ships with ProPrep and is served by the
viewer's own server, so saving a movie works offline. -
Structure viewer: a Depth cue button turns NGL's distance fog off and on.
Off gives a cleaner figure of a small solute. The setting is saved with a
scene. -
Structure viewer:
hhides and shows the control panel, for any structure,
so the molecule fills the window (for a figure, or a wider movie). The Hide
Panel button was already there; the key is ignored while typing in a field.
Changed
- Every menu and yes/no question: an answer that is not accepted is now
named.Received "'4", which is not one of the available optionsreplaces
"Please select one of the available options", which read as though the
option were unavailable. The usual cause is a key pressed while ProPrep was
busy printing: the terminal holds it and puts it in front of your next
answer, and shows it where the cursor was at the time, not at the prompt, so
the prompt line itself looks correct. The answer is shown exactly as
received, so a stray quote, space or arrow key is visible. Nothing else
changes: the question is asked again as before, and session recordings still
hold only the accepted answer. - Structure Loader, search by entry title: the number of structures listed
was fixed at 100 inside the code and never mentioned. ProPrep now reports
how many structures match, then asks how many to list (default 100, up to
the 10,000 that RCSB returns for one search). The most relevant are kept and
shown best resolution first, and the results heading says s...
ProPrep 1.20.0
Added
- The structure viewer plays MD trajectories. In the MD Manager's analysis
menu, "View trajectory in the structure viewer" takes a simulation's
NetCDF trajectory, runs one cpptraj pass that re-images the solute and,
if asked, strips water and ions, writes a first-frame PDB and a NetCDF
with matching atoms, and opens them in the viewer with a Trajectory panel
(play, pause, frame slider, single-frame step, speed, smooth
interpolation, loop/once, forward/backward/bounce, stride, superpose on a
selection, remove/center PBC; space and the arrow keys work when no field
has focus). NGL reads the NetCDF directly; no format conversion.
Fixed
- MD Manager monitor: a minimization was reported with a "Time (ps)" row
holding the cycle number; it now shows Cycle, Energy and Max gradient,
and the analysis overview shows Total Cycles. The "other recent
simulations" list offered one entry per batch, labelled by the batch
and reading the newest output anywhere beneath it, so after a later step
had auto-started it showed that step's numbers under the earlier step's
name (heating at 4 ps and 76 K under "Energy Minimization"). Every step
output is now listed separately, labelled batch/step, newest first.
Installers (SHA-256)
Self-contained installers with AmberTools, MODELLER and every dependency; no conda needed. See INSTALL.md.
101ec184f6b0b89b12a76961152540abe925ee503327dbff15001d6000c60fa4 ProPrep-1.20.0-Linux-x86_64.sh
3bb1d802057b2470f17ba844baff3e26429236b53a96bcfad20b09b738dac9ca ProPrep-1.20.0-MacOSX-arm64.sh
e8571652b5c792a3532859f71785e77c59f03a2503d056f7115ba4b8a1d4e968 ProPrep-1.20.0-MacOSX-x86_64.sh
ProPrep 1.19.1
Added
- A
sander.MPIengine in the MD Manager. AmberTools shipssanderand
sander.MPIbut notpmemd, so on the installers the only multi-core
choice,pmemd.MPI, and the default,pmemd, did not exist. The engine
menus now list sander, sander.MPI, pmemd, pmemd.MPI, pmemd.cuda in that
order, mark any engine that is not installed, default to the best engine
that is, and the automatic recommendation uses sander.MPI when pmemd.MPI
is absent. Selecting sander.MPI asks for the number of MPI tasks. - A "Workshop Protocol (CPU, under an hour)" workflow with its own
templates: 1000-cycle minimization, 20 ps heating, 100 ps NPT, 300 ps
production. Measured end to end on a 3923-atom peptide box: 41 minutes
with sander.MPI on 4 laptop cores.
Changed
- Session replay matches a recorded menu answer by the option's label, not
only its number. A recording stores both; when a menu has been reordered
since (the engine menu above), replay picks the key that now carries the
recorded label and says so.
Fixed
- MD Manager: on entering execution with a simulation still running from an
earlier session, restoring it printed "Warning: Could not restore process
...: 'MolecularDynamicsManager' object has no attribute
'_restore_workflow_pending_steps'" and forgot the running process. The
call was to a method that never existed; the workflow's pending steps are
restored by the existing file-wide restore that follows. - Protonation State Analyzer failed with "'int' object has no attribute
'items'" on any multi-model structure (NMR ensembles such as 1UAO) when
one model was selected in PDB Filter. The chosen model index was stored
insidefilter_selectionsnext to the per-chain selections, so the
analyzer, the structure viewer's annotation summary and the disulfide
detector's chain mapping could all trip over it. The index now has its
own workspace key,selected_model_idx, and the consumers ignore any
non-chain entry left by an older run.
Installers (SHA-256)
Self-contained installers with AmberTools, MODELLER and every dependency; no conda needed. See INSTALL.md.
a24c55ef2b99b51bf64d8fbeede695a6a48d9f9d1e9b42e5fddad48d5584b45d ProPrep-1.19.1-Linux-x86_64.sh
017cd5396db673509230978ca544d204142d039bc484c74f5f3dbaeb9b2209b7 ProPrep-1.19.1-MacOSX-arm64.sh
bff5014c7c5ac7c0e33cecbe76ca5a41d9314da58972f41b9ab7c31cbfac9457 ProPrep-1.19.1-MacOSX-x86_64.sh
ProPrep 1.19.0
Added
-
The Transformer Creator shows what the linked library expects. When it
opens after an import it prints, for the residue the library fits, which
heavy atoms share a name with the library unit, which exist only in the
structure, which exist only in the library, and which differ only in
case; a newlibcommand lists every library atom, andlib <chain> <resid>compares any residue. The site-match line after an import now
reports the residue-name match and the atom-name overlap separately
instead of calling a name match "100% of its atoms". -
The Force Field Parameterizer's import accepts a prep file in place of a
library. Published parameter sets (the Bryce database, journal SI) often
ship a residue as prep + frcmod; ProPrep's library, loader and
transformers want an OFF library, so the wizard now converts the prep
with tLEaP at import time, deposits the resulting library, and keeps the
prep alongside it. The residue name is read from inside the prep, every
residue of a multi-residue prep is saved, and a digit-leading residue
name is refused with an explanation rather than failing inside tLEaP. -
Dihedral refinement is the same in every parameterizer and fits jointly.
The small-molecule step sm-7 and the modified-amino-acid step 9 (both
routes) share one engine: pick dihedrals from the parmchk2 penalty table,
reuse any relaxed scan already run (the amino-acid linkage scan chosen at
step 3, every scanned conformer, the de-novo sidechain scan), derive
further scan inputs from the molecule's own optimization input at the
optimized geometry, pause at a checkpoint until Gaussian has run, then fit
every selected dihedral together in one paramfit run against a topology
built from the current frcmod (after Seminario). Previously each dihedral
was fitted alone against the topology built before any refinement, and
the amino-acid routes could only refit the one torsion scanned at step 3.
A refit is written under the residue's shared atom types and loaded after
the protein force field, so before fitting, each scanned dihedral is
checked against Amber's parameter files and residue libraries: a quad the
force field defines explicitly, or that any standard residue contains, is
shown but not refit; a quad covered only by a wildcard and absent from
every standard residue, the usual covalent-linkage case, is refit. -
Undo. Typing
undoat any prompt lists the answers recorded so far and
rewinds the session to one of them, either asking that question again or
replacing its answer and replaying what followed. ProPrep unwinds to the
top, rebuilds its state, and replays the session log to that point in the
same process, so the exit, relaunch, edit-the-log, replay cycle is no
longer needed. The replaced tail is kept in a timestamped backup of the
log. Requires session recording, which is on by default.
Changed
- The Structure Loader no longer says "cancel", which read as cancelling
the structure just loaded. The source menu's last item is "Done (return
to the Structure Loader menu)", the RCSB, AlphaFold, and AlphaFill method
menus end in "Back to source selection", the search-refinement menu ends
in "Back to results (no filter)", and a declined download says "Download
skipped". The AlphaFold, AlphaFill, and UniProt entry prompts offer 'b'
to go back, and the PDB search and UniProt structure pages offer 'back';
the old 'c' and 'cancel' still work so recorded sessions replay. Menu
numbers are unchanged.
Fixed
-
~/ProPrep/bin/proprepand~/ProPrep/bin/proprep-web, launched by
absolute path as INSTALL.md says, could not find tLEaP ("not found in
PATH") and had noAMBERHOME. A console script never activates the
environment it lives in, so the bundled AmberTools was invisible unless
the user first sourcedamber.sh. Both entry points now locate the
Amber tree next to the running interpreter and setAMBERHOMEand
PATHthemselves; anAMBERHOMEthat is already set and valid is kept.
The ONIOM atom typer no longer falls back to a developer-machine path. -
CREST dihedral refinement handed tLEaP paramfit's output, which contains
only the fitted terms; the final topology was built from an incomplete
frcmod. The fitted terms are now spliced into the full frcmod. -
Re-running sm-7 in a new session found no refinement selection and
skipped; the sm-5 choice is now persisted and sm-7 can also make it.
Waiting for Gaussian no longer marks sm-7 completed. -
Replacing a fitted dihedral matched the reversed orientation by reversing
the character string, so two-character types (c3-c3-os-c) never
matched their reverse; multi-term dihedrals are now replaced whole. -
Scan angles were reported as 15-degree steps whatever step size was chosen.
-
Resuming a de-novo modified-amino-acid run in a new session could not
find the step-7 AC file when it had been given a custom residue name, so
step 9 skipped the torsion refinement; a lone AC file in the run
directory is now accepted. -
paramfit was allowed to fit dihedral periodicity as a continuous number
and could return values such as 2.93; periodicity is now held at the
parmchk2 value and only the barrier and phase are fitted. -
A modified amino acid parameterized against ff19SB changed every
arginine and tyrosine in the protein. parmchk2 runs with -a Y, so the
residue's frcmod carries a copy of each of its standard bonded terms,
and tLEaP gives that file priority once it is loaded after the leaprc.
The ff19SB path gave parmchk2 parm19.dat without frcmod.ff19SB, so the
copies held the older single-term values for the guanidinium and
hydroxyl torsions and replaced ff19SB's multi-term definitions system
wide. parmchk2 now receives frcmod.ff19SB too, and a regression test
loads a generated frcmod into an ff19SB peptide and checks that no
parameter of any standard residue changes. ff14SB and ff99SB already
passed their correction files and were unaffected. -
Seminario's "all" scope in the modified amino acid route refined the
residue's standard bonded terms and wrote them under the shared atom
types, which would have replaced the protein force field's values for
every residue. The option stays listed, but choosing it now explains
why only the by-analogy terms can be refined and asks again. -
An AlphaFold structure loaded from the AlphaFold Database did not appear
in the Structure Viewer. The download is mmCIF, but the viewer told NGL
every served file was PDB, so the model parsed as empty. The viewer now
passes each file's format from its suffix (pdb, cif, mol2, ...), and
structure names in the viewer and saved scenes drop whichever suffix the
file has. -
Site templates in the Redox Site Detector now resolve bonds and custom
boundary atoms by identity instead of position. A template recorded each
bond as a row number in the residue table and each boundary atom as an
index into the site's atom list, then replayed both as positions in every
other site. Rows of same-type residues are ordered by a distance sort that
is a near-tie, so the two Cys, two His, or two propionates swapped in
about half the sites and produced 6 to 12 Å "bonds". Transformed HCO hemes
also carry their grafted atoms in per-site order, so the boundary indices
pointed at other atoms in 48 of 64 hemes of a multiheme structure, and at
three sites the search then picked a neighbouring heme's His over the true
one. Bonds now store residue names and bond the closest unused residue
pair of those names; boundary atoms store residue name, ordinal, and atom
name and fall back to the index only when the name is absent. The
applied-bond log line now names both residues. -
The Homology Searcher no longer requires a loaded structure to run a
BLAST search. The entry point checked for a structure before it ever
reached the sequence-source prompt, so the "enter a sequence directly"
and "load from FASTA" choices were unreachable without one, and since
1.17 the menu greyed out the option to match. A structure is now
optional: the prompt always lists the same three sources (typed, FASTA,
loaded structure) so session replay is unaffected, and picking the
structure source with nothing loaded explains and asks again. The
MODELLER build still needs a template structure. -
Eleven bare
except:clauses in the MD Manager, workflow editor, and
restraint manager wrapped a prompt and would have swallowed the rewind
signal (and aSystemExit); they now catchException.
Installers (SHA-256)
Self-contained installers with AmberTools, MODELLER and every dependency; no conda needed. See INSTALL.md.
a3600f71ce5e742fc32b25510dd4beb39073f40b912297218af4a8079e907269 ProPrep-1.19.0-Linux-x86_64.sh
0159220c6246537fb62629ba90f4c6d61f72761b154ffef5cad9ce457385c547 ProPrep-1.19.0-MacOSX-arm64.sh
cca1ada074edcd6ae17812521486698521a685922b241f8f753b3abf7f0830ac ProPrep-1.19.0-MacOSX-x86_64.sh
ProPrep 1.18.0
Removed
- Membrane Builder: the "preset composition" menu and its ten named
membranes (mammalian, bacterial, mitochondrial, thylakoid, ER, yeast).
They were ProPrep's own lipid strings and ratios with no literature
source behind them, and two used lipid names that packmol-memgen's
database does not contain (TLCL2; MGDG, DGDG, SQDG). The in-panel
"common starting points" list is gone for the same reason. Compositions
are built from packmol-memgen's own lipid database, entered as a raw
string, or set to solvate-only, as before. The lipid library's category
blurbs ("common in bacterial membranes" and the like) are replaced by a
charge summary computed from memgen.parm, and three categories that
matched nothing in that database (glycolipids, ceramides, ether lipids)
are gone with the names they listed.
Added
- Redox Site Detector: the template results table now shows, for each
site, the residue that was farthest from the search boundary when it was
added, and warns when a residue belongs to more than one site. A
count-based search always returns the requested number of residues, so a
heme missing one axial His (a truncated multiheme chain) silently took the
next-nearest His, which already belonged to the neighbouring site; every
row still read ✓ because the only check was on bond length. The site
summary lists each residue's search distance as well.
Fixed
- Banner and
proprep --versionread the checkout'spyproject.tomlwhen
ProPrep runs from source. An editable dev install keeps the package
metadata of the version it was installed at, so the banner said 1.16.0 on
the 1.17.0 tree; the lockstep check now warns when that metadata lags. - ONIOM Preparer: the suggested QM (model-system) charge pooled MM partial
charges over every selected fragment and rounded once. Whole residues
sum to integers, but a side chain trimmed at CA-CB does not (ASP -0.86,
GLU -0.88), so four trimmed carboxylates pooled to -3.43 and were
suggested as -3 instead of -4. Each fragment is now rounded to its own
formal charge and the integers summed. The on-screen note now says what
is counted: the selected residues and side chains, with the formally
neutral capping groups (promoted C=O or N-H plus the link H) excluded. - Redox Site Preparer: side-chain atoms moved into a heme residue (the Cys
and His migrations of the c-type heme transformers) were written one
column short. The framework cleared the insertion code by splicing an
empty string into column 27, deleting the column and shifting x/y/z left
by one; fixed-column readers survived only by absorbing a trailing space,
and a coordinate such as -106.695 would have lost its sign. A His claimed
by two sites went through the splice twice and its coordinates became
unparseable, stranding its ring atoms as a separate HEC residue and
failing workspace validation. The chain and insertion-code fields now
always keep their one-column width.
Installers (no conda required)
Download the file for your platform, then bash ProPrep-1.18.0-<OS>.sh. MODELLER needs your own free academic key; see INSTALL.md.
SHA-256
33ea949456bcb10514fe3a636224969d6d078b73ba841b945bd68944eae0a544 ProPrep-1.18.0-Linux-x86_64.sh
0021257fd394ec70d936db5b1f98de4d3a832e981c1d6e0355fa4b95219f7964 ProPrep-1.18.0-MacOSX-arm64.sh
1af81d97eb059dbf0c0583c7913217545e79485d78cb61ee8dd6e7a7ba39c4a2 ProPrep-1.18.0-MacOSX-x86_64.sh
ProPrep 1.17.0
Changed
-
PDB Filter water analysis, metric 4: burial is now computed from geometry
alone instead of an atom count normalised by an uncalibrated constant.
Each water oxygen gets its Lee-Richards accessible area against the
protein and hetero atoms (1.4 Å probe, Bondi radii; other waters never
occlude), a bulk/enclosed flag from a flood fill of probe-accessible
space, and its nearest heavy atom. Categories are physical statements:
Clash (nearest C/N/O/S/P atom under 2.2 Å, the wwPDB close-contact
criterion), Enclosed (no path to bulk solvent), Buried (0 Ų but
bulk-connected), Exposed. The count-basedburial_max_expectedand the
40 Ų × (1 − burial)"estimated SASA" are gone. On 3WL2 the old score
put every enclosed cavity water at 46-68%, and nothing above 80%. The
multi-radius and directional profiles (metrics 6 and 7) keep the count and
now have their own parameter entries. -
The water burial table shows a Covered column (100 × (1 − SASA / the
area of a free water)) and prints every category rule with its cutoff,
in the order the rules are applied, both in the method panel and in a
legend under the table; the panel also explains that SASA is measured on
the contact sphere while enclosure is looked for one grid cell beyond it,
which is how a water can be untouchable yet bulk-connected. The unit
symbol had been U+0172 "Ų" (U with ogonek) and now reads Ų. -
Metrics 6 and 7 (multi-radius and directional atom counts) state the
conventions behind their labels: the "saturation" radius is the first
step with less than 10% growth, the directional "pattern" compares the
sector-count range with the mean at 0.5× and 1.5×, and the compass glyphs
are quarters of that water's own largest sector. Each label carries its
rule, and both tables gained a legend saying so; the menu names them
atom-count profiles. -
The structure fixer's alternate-location picker says which viewer colour
each alternate is drawn in ("■ red in viewer") beside its occupancy, and
the viewer's representation list is labelled "Alt A (red), occ 0.60"
instead of "Altloc A", so the colours on screen can be matched to the
numbers in the prompt. -
Water analysis viewer halos and the "Ordered" category. The viewer reps
were labelledWater Cat Hbond/Water Cat Ordered; they now say the
rule and its cutoff ("Waters: ≥ 3 H-bond partners (≤ 3.5 Å)"). With the
burial metric selected the halos follow the burial categories (clash,
enclosed, SASA 0, covered ≥ 90 %, covered 50–90 %) instead of the
recommendation categories, which hid a buried water behind "Highly
connected". "Ordered" was B-factor < 30 Ų; B-factors scale with
resolution and refinement, so it is now B below the median of this
structure's protein heavy atoms, and the B-factor table shows that ratio
and the median instead of 20/40/60 Ų bins. -
Water burial treats a water as one 1.4 Å sphere whether it is the probe
or a crystallographic water. The crystallographic water's oxygen had been
given Bondi's 1.52 Å, the radius of an oxygen atom inside a molecule, so
the same species had two sizes and two waters "touched" at 2.92 Å where
real ones touch at 2.80 Å. Contact distance is now 2.80 Å, the isolated
water area 98.5 Ų, and the enclosure reach 3.30 Å; protein, heteroatom,
and metal occluders keep Bondi radii. -
Water hydrogen-bond partners are ranked by distance alone. The previous
ranking multiplied an "angle quality" (bins at 150/120/90° scored
1.0/0.8/0.6/0.3) by a distance bin and then by 1/distance again. The
angle it measured was the one at the partner atom, X–A···O, whose ideal
value depends on hybridisation (about 120–160° at a carbonyl oxygen, about
110° at an sp³ oxygen or amine), so "linear is best" rated a textbook
Ser OG contact "acceptable" and an on-axis approach "excellent"; water
partners never got an angle at all. None of the numbers had a source.
Candidates within the 3.5 Å heavy-atom cutoff are now listed closest
first and truncated to the configured maximum; the unused
hbond_angle_cutoffparameter is gone. -
The water classification cascade is gone. Every analysed water used to be
given one label (Metal-coordinating, Highly connected, Interface, Buried,
Ordered, or Bulk solvent) by a first-match-wins rule chain, and the viewer
halos followed it, so a metal-bound water that was also enclosed showed
only as metal-bound. That is a single score under another name and runs
against the rest of the analysis, which reports each metric on its own.
The viewer now draws one highlight group per fact each displayed metric
establishes (metal within cutoff; 1, 2, 3, or 4 H-bond partners; B below
the protein median; the burial categories and coverage bands; interface),
each labelled with its rule and cutoff, and a water may appear in several. -
Water burial counts metal ions as occluders by default. Metal ions are
their own residue class in the burial code, and the default set was
protein,hetero, so a coordinated ion neither shielded its water nor
blocked the enclosure flood fill. Default is nowprotein,hetero,metal.
Fixed
-
Coordinated waters are part of the transformer connectivity fingerprint.
The Weisfeiler-Lehman fingerprint that lets a reused transformer tell
same-name residues apart excluded waters entirely, so water renames (say
HOH to MW1 and MW2 on a di-metal site) could never auto-resolve and always
fell to the manual prompt. Every emitter now bakes two fingerprints per
role, the anhydrous one exactly as before and a hydrated one with waters
as nodes; matching tries the hydrated bijection first and falls back to
the anhydrous one, so transformers emitted before this change, and reuse
sites whose water-metal bonds are left undefined (a restraint instead),
match exactly as they did, while water roles resolve automatically when
the bonds are defined on both sides. -
Structure Viewer: colouring by "Chain ID" coloured a multi-chain
structure almost uniformly red. The option used NGL'schainidscheme,
which keys on the parser's internal chain record (a new one at every TER
and every polymer-to-HETATM break), so 9YUQ's 16 chains became 112
records and the protein segments, first in the file, all sat at the red
end of the scale. The option now useschainname, the chain letter;
saved scenes carryingchainidare mapped. -
Replaying a session recorded from
proprep --pdbid Xor--pdbfile F
now reloads that structure first. The argument-driven load happens in
main()with no prompts, so such a session holds no loader interactions,
onlymetadata.pdb_id/pdb_file; replay printed that and then started
at the main menu with no structure, and the first module diverged. A
pdb_filerecorded on another machine is found by basename in the
project directory; if it is absent the replay says which file to copy in. -
Constant-pH/redox namelist variables (icnstph/solvph/ntcnstph, icnste/
solve/ntcnste, saltcon) reach every productionsimulation.mdin. Only
the live runner injected them; the batch directory writer, the
standalone writer, and the three SLURM writers staged the cpin and passed
-cpin -cpout -cprestrtbut wrote the mdin untouched, so sander would
have run plain MD with a cpin on the command line. An imported .mdin is
now read, given its configured restraints and the titration namelist,
and written, instead of being copied verbatim. -
The MD Manager's recommended engine assignment numbered NPT steps across
the whole queue, so with several structures only the first structure's
density equilibration was treated as early NPT (CPU) and every other
structure's went to the GPU with a fixed PME grid. NPT steps are now
numbered within each structure's own workflow. -
Every generated microstate tLEaP script starts with
logFile <microstate>_leap.log, so each build writes its own log instead of all
of them (and the info passes before them) appending to oneleap.log
in the working directory. Parallel builds copy that log back beside the
inputs; the info passes log to scratch files that are removed with the
script. The log parser and the post-run message display read the
script's own log. -
The titration-file step accepts several topologies at once (a number, a
comma list, a range, orall, which is the default). Residue and
initial-state choices are made on the first topology and reused for any
later one whose titratable residues match it exactly; a topology that
differs is prompted on its own. Onetitration_configsentry is kept per
topology alongside the legacy singletitration_config. -
The MD Manager's constant-pH/redox offer looks up each structure's own
titration files by prmtop name and lists every structure it applies to
before asking once. Previously it read the single most recent config, so
a set of five microstates was offered only the fifth's cpin. -
Batch microstate generation offered the constant-E HEH heme library next
to the HCO library in the Topology Generator (and only HCR for the
reduced state). The batch path recorded no redox treatment, so the set
picker had nothing to filter on; choosing HEH loaded a library that
defines no HCO, tLEaP built the hemes as untyped, chargeless atoms, and
every microstate reported the same net charge. Batch microstates
enumerate redox states explicitly, one topology each, so the treatment is
fixed_E by construction; it is now recorded as such and the picker offers
only the fixed_E sets. The microstate info pass also refuses to continue
when tLEaP reports an unknown residue, instead of printing a charge that
omits it. -
The per-water FreeSASA value that drove the "Buried" recommendation was
always 0.0:Result.atomArea()takes an atom index and was given selector
strings, and FreeSASA's PDB reader drops HETATM records so the water was
not in t...
ProPrep 1.16.0
Added
-
Externally obtained parameters can be imported and used. The import wizard
browses for the.frcmod,.lib/.offand optional.prepwith the same
file browser the rest of ProPrep uses, shows what each parameter category
means and where it will be stored, and reads any atom types the frcmod
declares so they reach tLEaP asaddAtomTypesentries. Generated parameters
cannot introduce new types, which is why the wizard never asked; imported
ones can. -
A transformer can be saved that only binds a force-field library, with no
renaming. Renaming and parameter-binding are separate jobs: MCPB output needs
both, while a cofactor already named as its library names it needs only the
binding. There was no way to express the second, so an imported cofactor's
library was unreachable. The library and its redox/spin state are chosen from
lists of what exists rather than typed as a path. -
Deposits record which force fields their parameters require, derived from the
atom types in the files. The Topology Generator already enforced declared
prerequisites, but almost nothing declared any. -
Pure inorganic metal clusters can be given hydrogens before parameterization.
Hydrogen addition covered protein and organic residues only, andreducehas
no chemistry for a Mo-S-O or Fe-S core, so a cofactor whose resting state
carries a hydroxo —Mo(=O)(=S)(OH)in a molybdenum cofactor — reached the QM
model as a bare oxo with the wrong electron count and charge, and there was no
way to correct it. Editing the Gaussian input by hand is not an alternative:
it and the model PDB are matched by index, so an atom added to one shifts the
Seminario force-constant indices and leaves the deposited residue template
without the hydrogen its charges were fitted with. Offered for every cluster,
defaulting to no. -
The structure viewer focuses on a cluster while its hydrogen-addition prompt
is on screen, and re-reads the file once a hydrogen is added so the new atom
is visible.ViewerCoordinator.refresh_structure()re-serves the current
path, whichshow_structuredeliberately will not do — it treats a repeated
path as a no-op, correct until the file is edited in place. It never starts a
viewer or opens a tab. -
A hydrogen added to an atom with only one bond is now placed at an angle to
that bond, rotated to the least crowded side, instead of directly opposite it
— a hydroxo, thiol or amine hydrogen is bent, never linear. The opening angle
can be set at the prompt.
Changed
-
The cofactor prerequisites panel reports what the selected parameter sets
declare instead of describing their chemistry. It asserted that every
cofactor needs a protein force field and inferred GAFF2 from residue names,
while explaining the requirement in terms of a ribitol tail and which bond
would fail — none of which is knowable about an arbitrary parameter set. -
MCPB step results are stored per site. A single shared record meant
step_1
belonged to whichever site ran last, which cross-wired one site's atom-type
fingerprint and RESP charge constraint onto another. -
The session editor table labels its status column
Statusinstead ofSt. -
The parameterization prompt selects sites, and each selected site goes to
the parameterizer its own category implies. It no longer groups residues:
that was for a modified amino acid covalently bound to a cofactor, which is
now expressed by defining the pair as a site in the Redox Site Detector, so
the combine/separate and category-conflict prompts are gone. A mixed
selection is ordinary rather than a conflict. -
Selecting metal sites now parameterizes those sites and no others. MCPB
previously re-detected and parameterized every metal site in the structure
regardless of the selection, so a structure with two equivalent Fe2S2
clusters could not have one derived and the other served by the reuse
transformer. Sites left out are named, with a note that every metal site
needs parameters before the topology build will succeed.
Fixed
-
A Gaussian output that describes a different model than the input beside it
is refused rather than fitted. Re-running the atom-typing step rebuilds the
models but Gaussian is run by hand, so a leftover log gives the Hessian or
ESP of a superseded model — and the result still looks like force constants
or charges. Compared by content: atom count, elements, then coordinates. -
A withheld metal cluster's own bonds get force constants. Fe-S inside an
Fe2S2, Mo-S/Mo-O inside a Mo cofactor and the O-H of a hydroxo reached
neither the coordination bond list nor the prmtop, so nothing derived a
parameter for them and tLEaP reported one missing for each. -
Metal covalent radii are used when perceiving a cluster's bonds. Molybdenum
fell to a carbon-like default, so a Mo cofactor was deposited with two of its
four bonds; Fe-S was passing only because it sat just under that accidental
cutoff. Metal-metal pairs are excluded — a cluster's metals are bridged
through their ligands. -
An inferred hydrogen is typed for the atom it is bonded to. Amber names a
hydrogen after its neighbour, so a metal-bound hydroxo proton typedHtook
the amide hydrogen's van der Waals radius where the hydroxyl conventionHO
is zero. -
RESP scaffolding residues are constrained to their own charge rather than to
zero. Keeping a real ARG as a gap bridge left its +1 nowhere to go but the
neighbouring coordinating residues, one of which came out positive. -
Charges are found for metal-site atoms again. The lookup is keyed by
coordinate tuple, and BioPython's float32 does not compare equal to the
float64 a resumed session restores, so every site atom summed as zero and a
−2 site was proposed as 0. -
Atom types are read from a library once. The section test also matched
atomspertinfo, whose rows repeat every name, so an 84-atom residue was
reported as 168. -
A supplied library is matched on heavy atoms when the structure has no
hydrogens, instead of demanding a hand-written mapping for a library that
fits. -
Caps stay in the chain when the PDB is reordered for tLEaP. Caps bracketing
an unfilled internal gap were moved to opposite ends of the chain, leaving a
70 Å peptide bond and the gap they had guarded open. -
The PDB written back from a topology keeps the topology's atom names. They
were translated to PDB v3 conventions, so a library using older names —O1P
rather thanOP1, say — built once and then failed against the file it had
just produced. -
Triage categories survive a resume. They lived only on the instance, so a
resumed run found no organic residues, no clusters and no isolated metals,
and ticked those steps off as complete. -
Resuming a pending small-molecule or modified-amino-acid parameterization
works; both dispatched to methods that were never written. -
Force Field Integration names a deposited frcmod for its library entry rather
than the working directory'ssite_N. -
Implicit solvation for the large model is now asked for rather than
inherited. The prompt sat entirely under an anion check, so an anionic large
model silently adopted the small model's SCRF (announced only after the fact)
while a neutral or cationic one dropped it with no message at all, leaving the
two calculations at different levels of theory for no stated reason. It is now
offered in every case, defaulting to yes whenever the small model was solvated,
and declining says plainly that the models will differ. -
The Merz-Kollman ESP radius is taken from MCPB.py's own
vdwRadiiDict2023
(Smith et al. JCTC 2023, 19, 2064) rather than from the force-field IOD
parameters. They are different quantities — the MK value decides how close to
the nucleus ESP grid points may fall, the IOD value is a Lennard-Jones term —
and the IOD tables stop at tetravalent, so a Mo(VI) cofactor could not resolve
one at all and fell back to a generic 1.5 A with no cited source. Force-field
parameters are unchanged.tools/patch_readradii.pyadds the block to
large_resp.gjffiles generated before this, so they need not be rebuilt. -
Checklist state stores numbers as numbers. The serializer recognised only
Pythonint/float, and a numpy scalar is neither —np.float32fails
isinstance(v, float)and has no__dict__— so every coordinate read from
BioPython was written as{"__type__": "str", "value": "-46.078"}. On resume,
metal reinsertion then handed PDBIO a dict where it wanted a number and the
step failed with "must be real number, not dict". numpy scalars now serialize
as plain numbers, andMetalInfo.from_dictunwraps and coerces so a state
file written before this still resumes. -
Resuming a metal-site run from saved checklist state no longer fails at
structure recombination withtLEaP error: 'site_id'. Checklist state stores
objects wrapped as{"__type__", "value"}and uses the dataclass field names,
while the exporters write a flat dict with three fields spelled differently
(coordinatesforcoords, and so on).dict_to_redox_site, the documented
normalizer for exactly this case, understood only the exported shape; it now
accepts both. -
A checklist step that reports a failure without raising is recorded as failed
rather than completed. Structure recombination printed "tLEaP failed" and was
ticked off, so the following step ran and died on the prepared structure it
had never produced, hiding the real cause. Handlers signal this by returning
success: False. -
RESP is constrained to the charge its own ESP was computed with. Per-site
results are restored from a single shared workspace key, so in a multi-site
run the charge came from whichever site ran last: a -1 Fe2S2 model was fitted
against a -3 constraint and RESP spread the missing two electrons over the
site, reaching +5.6 on a metal. It does n...
ProPrep 1.15.0
Added
- Modified amino acid parameterization gained a from-structure route (Route B):
a structure analyzer, a redesigned ten-step workflow with an explicit
conformer-selection step, consistent residue naming, and resume resilience
at every step. Torsional sampling is shared with Route A, which now
auto-generates its sidechain scan rather than requiring one to be specified. - Route B can optionally run a relaxed dihedral scan as a sampling mode and
refit the scanned torsion with paramfit, so a rotatable bond that GAFF
describes poorly can be corrected without leaving the workflow. - Conjugate naming checks the force-field library for an existing residue of
the same name before writing, and offers to reuse it instead of silently
producing a second definition. - The MD wizard offers the mdin keywords its own help text already referred
to, addsbaro_stochasticandninterface, and completes four features
that were previously only half-exposed. Coverage was swept against the full
Amber manual by parameter index. - Batch replay checks up front that every run supplies each variable the
template needs, and fails loudly on divergence rather than blocking on
stdin. The summary now distinguishes runs that failed from runs never
attempted, and writes a retry list naming the runs still owed. - The web shell tees each session to a plain-text transcript.
- The structure viewer can measure dihedrals, supports per-representation
opacity, and defaults to an orthographic camera. - The membrane builder offers solvate-only directly from the lipid menu.
- Force-field preparation deposits finished parameters from every
parameterizer's final step, so the deposited library no longer depends on
which route produced the parameters. - An in-place updater,
update_proprep_in_ambertools.sh, refreshes ProPrep
inside an existing conda AmberTools environment without a full reinstall. - Workspace inventory gained compact
--abbrevoutput that collapses
duplicate labels.
Changed
- The MD manager treats the restraint manager as authoritative for imported
mdin files, so restraints defined on import are no longer overwritten by
the file's own restraint block. - Heme transformers require their match criteria to be met exactly and clamp
the bond credit awarded, so a partially matching site is no longer claimed
by a transformer that does not fit it. - The Seminario refinement scope reads "by-analogy" rather than "flagged",
which describes what the option actually does. - The membrane builder's "Advanced" geometry menu is now "Specialized
Geometry". - Component-type display names in the PDB filter come from a single source,
so the triage table and the filter menu can no longer disagree. - Checklist step numbers and section headings remain legible on light
terminal backgrounds. - The viewer's measurement pick marker is a fixed radius rather than scaling
with the structure.
Fixed
- Heme HMO (ferric) and HMR (ferrous) parameter sets had lost the trans
pyrrole N-Fe-N angles; both are restored. - The generated mdin carried an inverted comment for
ntmin, and several MD
wizard parameter descriptions were inaccurate. The help text was audited
against the Amber manual across all 89 parameters and the advisory fields,
which could not be kept correct, were dropped. - Force-field parameter analysis no longer crashes on string-valued
*_structurekeys. - Route B step 9 recovers the antechamber AC file on resume, and step 10
reconstructs RedoxSite objects before syncing, so a resumed run no longer
fails where a continuous one succeeds. - The protonation summary surfaces desolvation, and the viewer no longer
renders a stale structure after an edit. - The installer no longer defaults past the orphan purge when run through
curl | bash, self-heals on the update path, and forces a standalone
ProPrep to win theambertools-dacfile clobber. - Workspace inventory covers aliased receivers, wrappers, and comments, and
excludes legacy metallo files that cannot be imported.