Welcome to new contributors: talagayev, yuyuan871111, nilay-v3rma, VAKozyrev, H-EKE, weitse-hsu, amorehead, maabuu, tanii1125 👋
Summary
This release has been staggered for a very long time and so it's quite massive, here's a TL;DR
- New
WaterBridgeinteraction 💧 - Performance enhancements for parallelisation 🚀
- New utility functions
split_moleculeandselect_over_trajectory✂️ - Adjustments to the Hydrophobic and HBond SMARTS patterns 🎯
- Type-hints ℹ️
Added
- Added a new
queueparallelization strategy for trajectories, alongside the
existingchunkstrategy, and some simple heuristics to decide
between the two. Users can also force the usage of one strategy or the other
through theparallel_strategyparameter. - Added
split_moleculeto split a molecule into components based on a predicate
function. - Added
select_over_trajectoryto easily make AtomGroup distance-based selections
(including recursive selections) over the whole trajectory rather than just the first
frame. This helps making optimised selections when a protein is highly flexible
instead of usingprotein and byres around X group ligandwith a very large X. - Support for
WaterBridgeinteractions (PR #229 with @talagayev). - Refactored the
LigNetworkplotting code (PR #268 by @nilay-v3rma). - Type-checking and related pipelines:
poepipeline using preconfiguredmypy(PR #254 by @nilay-v3rma).- script for viewing current the progress on type hints (PR #257 by H-EKE).
- type hints (PR #259 by @VAKozyrev, PR #263).
- Support for
FrameIteratorIndicesas trajectories infp.run(PR #246 by @wehs7661). LigNetworknow optionally displays the percentage of interaction occurence when
show_interaction_datais enabled. The type of data shown on both the label and
hover title can be modified (PR #234 by @talagayev).VdWContactnow accepts apresetparameter to easily use different van der Waals
radii values: one ofmdanalysis(default),rdkit, orcsd. Documented in PR #253
by @yuyuan871111.IFP.interactions()iterator that yields all interaction data for a given frame in
a single flat structure. This makes iterating over thefp.ifpresults a bit
easier / less nested.Complex3Dandfp.plot_3dnow have access toonly_interactingand
remove_hydrogensparameters to control which residues and hydrogen atoms are
displayed. Non-polar hydrogen atoms that aren't involved in interactions are now
hidden by default.LigNetwork.save_pngto save the displayed plot to a PNG file through JavaScript
(Issue #163).Complex3D.save_pngto save the displayed plot to a PNG file through JavaScript.fp.plot_3dandfp.plot_lignetworknow return the underlyingLigNetworkor
Complex3Dobject which has been enhanced with rich display functionality. From the
user's perspective, nothing changes apart from being able to do
view = fp.plot_*(...); view.save_png()to display a popup window for saving the
image.cleanup_substructuresparameter now accessible inmol2_supplierto skip
sanitization based on atom types.sanitizeparameter now available for themol2_supplierandsdf_supplierclasses.rufflinter and formatter.uvandpoethepoetfor running local and automated CI pipelines.
Fixed
ResidueGroupresnumbers are now declared as uint32 instead of uint16 (PR #315,
Issue #313).- SMARTS pattern for
Hydrophobicwere not matching as expected due to the presence of
explicit hydrogens in the molecules. The SMARTS have been rewritten to account for
this. - ProLIF can now use the segment number as a
ResidueIdchain. This should help with
solvated systems that may reuse the same resname, resnumber and chain and were using
the segment number/identifier to distinguish them in the topology file. - Sorting
ResidueIdobjects where a subset of residues had no chain was raising a
TypeError, it will now put cases without a chain first (PR #235 by @amorehead). display_residueswas sanitizing each residue while preparing them for display, which
could make debugging faulty molecules difficult. This is now disabled.- Deprecation warnings
Changed
- For trajectory analysis, unless a number of jobs is specified through
n_jobs
inFingerprint.run, ProLIF will now use up to a maximum of 10 processes instead of
all available cores. The cap can be modified through thePROLIF_MAX_N_JOBS
environment variable. Fingerprint.runnow exposes aparallel_strategyparameter (chunk,queue, or
None).- Unpin the
numpyversion (PR #306 by @maabuu). HydrophobicSMARTS pattern now excludes all carbon linked to
nitrogen/oxygen/fluoride from being hydrophobic, previous versions were allowing such
carbons if they were aromatic.HBondSMARTS patterns now removes charged aromatic nitrogen, triazolium, and
guanidine/anidine-like from acceptors, and enables the charged nitrogen from
histidine as donor.- Strip whitespaces in
ResidueIdname and chain. - Improved parsing for less standard residue names in
ResidueId.