Skip to content

Releases: BradyAJohnston/MolecularNodes

v2.2.0 for Blender 3.4.X

02 Jan 07:36
Compare
Choose a tag to compare

Reimplemented several nodes from the previous MN, as well as adding styling for nucleic acids. More boolean attributes when importing via MDAnalysis and frame-specific information via occupancy when importing via MDAnalysis.

Added

  • atom_name attribute, which is a numerical representation of the atom name (C, CA, C5 etc)
    • Dicussed in #118
    • Allows for more precise selections for new styling and animation nodes
  • Reimplemented amino acid 'wiggle' node: using the atom_name attribute
    • 3x faster with the improved atom_name attribute and refactor of the underlying nodes
  • Reimplemented the amino acid to curve node
  • Ribbon Style Nucleic: A ribbon representation for nucleic acids to complement the ribbon represenation of the proteins from alpha carbons. Enabled now thanks to the atom_name attribute.
  • Capturing the Index field in the selection node before the selection occurs, and added an Index field input to the MOL_animate_frames node to enable selection to occur before animating between frames, if the Pre-Sel Index field is used in the Index field of the MOL_animate_frames node
  • Added cutoff field for limiting the interpolation of atoms between frames based on a distance cutoff
  • Added bonds through MDAnalysis import when a trajectory supports it #129
  • Added is_solvent(), is_nucleic() and is_peptide() attributes when importing via MDAnalysis
  • Added frame-specific attribute occupancy which is added to each frame of the trajectory when imported via MDAnalysis. #128

Fixed

  • Changed naming of MOL_style_atoms to MOL_style_atoms_cycles and MOL_style_ribbon to MOL_style_ribbon_protein

MolecularNodes v2.1.0 for Blender 3.4.X

31 Dec 04:50
Compare
Choose a tag to compare
Pre-release

A number of bug fixes and minor improvements. Only major addition is the ability to specify custom string selections when importing via MDAnalysis.

Added

  • Proper support for Fields for ribbon width, enabling 'licorice' representation amoung others
  • Tooltips documentation for each of the custom node groups that can be added in Geometry Nodes
  • More selection nodes for distance, XYZ slice and whole residues.
  • Custom selections using a string when importing via MDAnalysis #123
  • Added option to disable interpolation of atom positions between frames
  • Added node for animating any field between frames of a trajectory (no fields currently added on import, but used in the new Aniamte Frames backend)
  • UVs are now available for the ribbon mesh style, idea from ErikMarklund and implemented by quellenform

Fixed

  • Error when defaulting to connect_via_distance() when importing with 'Find Bonds' enabled
  • Adding of a color node which was mis-labelled and couldn't be added
  • Non-.gro topology files were failling to add vdw_radii attribute #124
  • Remove use of np.int which is now deprecated and was causing errors when linking python on M1 Mac
  • Attributes now available on ribbon mesh which are sampled from backbone
  • Changed starting material to be appended instead of created, which should avoid duplication of material.

Molecular Nodes v2.0.2 for Blender 3.4.X

13 Dec 06:16
Compare
Choose a tag to compare

Fix error on import from #106 where error in reporting success stops import being actually successful.

Molecular Nodes v2.0.1 for Blender 3.4.X

12 Dec 03:50
Compare
Choose a tag to compare

I never really released a v1.0 of these nodes, but given this was a complete re-write and is incompatible with earlier versions of Molecular Nodes, I figured I would try to make that incompatibility obvious by labelling this as v2.0.

Major Changes

A complete rewrite of Molecular Nodes, from the ground up. The underlying python libraries have changed, along with most of the nodes and internal attribute names so this will be a breaking change with previous versions.

  • Remove usage of Atomium and switched to Biotite for most internal structural file parsing

  • Removed reliance upon Serpens to build the addon. Can now be developed by anybody without the requirements of additional Blender addons.

    • Aspects of the addon can now have changes tracked properly by git, rather than inside a binary .blend Serpens file.
    • Now also allows easier and clearer contributions from others who wish to contribute
    • Custom node trees still remain opaque to git unfortunately
  • Attributes are now created and stored on the molecular model itself, removing the need for properties models that store the data XYZ positions. Makes the import process clearer, more robust and more easily expandable.

  • Bond information is available by default as edges of the mesh along with bond types

  • Improve MDAnalysis installation and usage internally

  • Expose operators and functions to Blender Python console to enable user scripting with the addon

import MolecularNodes as mn

# to fetch structures from the protein data bank
struc_list = ['4ozs', '1xi4', '6n2y']
for pdb in struc_list:
    mn.load.molecule_rcsb(pdb, starting_style = 1)

# to open a local structure file
mn.load.molecule_local('file_path_here.pdb', 'SomeMoleculeName', starting_style = 2)

Current Limitations

Due the nature of a complete rewrite, not everything that was in previous versions has been ported over. The new version of Molecular Nodes also commits to using new nodes introduced in Blender 3.4 and thus most nodes are incompatible with earlier versions of Blender.

Missing Nodes

Some nodes have still not been ported from the old Molecular Nodes, such as the Amino Acid Wiggle and the Amino Acid to curve nodes. Membranes have also not yet been ported.

Limited Import Functionality

While the code for importing structures is now more robust, it requires more effort to write and so not as many structure formats are currently supported. PDB / PDBx & mmCIF are supported as well as mmtf via Biotite. The MD formats via MDAnalysis should remain unchanged and still supported. The .mol and other more chemistry-specific formats are yet to have thorough support and testing, but I welcome pull requests from anyone who would be interested in working on it.

Molecular Nodes 0.13.0 for Blender 3.3.X

22 Sep 09:50
Compare
Choose a tag to compare

Adds nodes for aligning amino acids to a curve object, as well as some more utility nodes.

Molecular Nodes 0.12.2 for Blender 3.2.X

06 Sep 00:23
Compare
Choose a tag to compare

Fix syntax error that prevented enabling of the addon, introduced in v0.12.1.

Sometimes you fix bugs only to introduce more bugs.

Molecular Nodes 0.12.1 for Blender 3.2.X

04 Sep 08:03
863eec2
Compare
Choose a tag to compare

What's Changed

  • Multiple Bug Fixes by @BradyAJohnston in #66
    • Fix error with Blender forgetting where the MDAnalysis installation was between sessions #45
    • Fix error with relative file paths breaking import #64

Full Changelog: v0.12...v0.12.1

Molecular Nodes 0.12.0 for Blender 3.2.X

31 Aug 08:13
Compare
Choose a tag to compare

New Nodes:

  • New wiggle atoms node to fake molecular dynamics based on B-factor.
  • New set of Membrane nodes for quickly creating lipid bilayers

Molecular Nodes 0.11.0 for Blender 3.2.X

09 Aug 11:53
Compare
Choose a tag to compare

Adds nodes for realising animation frames and using them to differentially animate instances.

Molecular Nodes 0.10.5 for Blender 3.2.X

25 Jul 00:18
Compare
Choose a tag to compare

Fixes bug with when importing via Atomium (fetch from PDB, open local file) that means node tree isn't set up for animate frames when multiple models detected.

Fixes #56