Skip to content

GSoC 2024: 2D visualization for small molecules Release

Latest
Compare
Choose a tag to compare
@talagayev talagayev released this 26 Jul 14:35
· 15 commits to Main_code_PR since this release
81bd117

What's Changed

Following files were created:

  • mdonatello.py created with following classes:

    • MoleculeVisualizer A class for small molecule 2D visualization in jupyter notebook consisting of:

      • __init__ , which initializes the MoleculeVisualizer with an AtomGroup and visualization options.
      • initialize_widgets, which initializes the interactive widgets for molecule visualization.
      • initialize_output, which initializes the output display and arranges the widgets in the interface.
      • link_widget_callbacks, which links the interactive widgets to the update_display method to reflect changes.
      • update_display, which updates the molecule display based on the current selections.
      • save_selected_molecule, which saves the currently selected molecule as a PNG file.
  • drawer.py created with following classes:

    • PharmacophoreHighlighter A class responsible for highlighting of the pharmacophore features in a molecule consisting of:

      • __init__ , which initializes the PharmacophoreHighlighter with a molecule, pharmacophore checkboxes, and an RDKit feature factory.
      • determine_highlights, which determines the atom and bond indices to highlight them based on the selected pharmacophore features.
    • FunctionalGroupHighlighter A class responsible for highlighting of the functional groups in a molecule consisting of:

      • __init__ , which initializes the FunctionalGroupHighlighter with a molecule and functional group checkboxes.
      • determine_highlights , which determines the atom and bond indices to highlight based on the selected functional groups.
    • RotatableBondsHighlighter A class responsible for highlighting of rotatable bonds in a molecule consisting of:

      • __init__ , which initializes the RotatableBondsHighlighter with a molecule and a checkbox for rotatable bonds.
      • determine_highlights , which determines the atom and bond indices to highlight them based on the presence of rotatable bonds.
    • PartialChargeHighlighter A class responsible for highlighting of partial charges in a molecule consisting of:

      • __init__ , which initializes the PartialChargeHighlighter with a molecule and a checkbox for partial charges.
      • determine_highlights , which determines the atom and bond indices to highlight them based on the partial charges.
    • StereocenterHighlighter A class responsible for highlighting of stereocenters in a molecule consisting of:

      • __init__ , which initializes the StereocenterHighlighter with a molecule and a checkbox for stereocenters.
      • determine_highlights , which determines the atom and bond indices to highlight based on their stereocenter configuration.
    • MurckoScaffoldHighlighter A class responsible for highlighting of the Murcko scaffold in a molecule consisting of:

      • __init__ , which initializes the MurckoScaffoldHighlighter with a molecule and a checkbox for Murcko scaffolds.
      • determine_highlights , which determines the atom and bond indices to highlight them based on the presence of Murcko scaffolds.
    • MoleculeDrawer A class for drawing a molecule with various highlighted features consisting of:

      • __init__ , which initializes the MoleculeDrawer with a molecule and various highlighting checkboxes and features.
      • draw_molecule , which draws the molecule with the highlighted features.
  • mapper.py created with following classes:

    • FunctionalGroupHandler A class that is responsible for handling functional groups in molecules consisting of:

      • calculate_functional_groups , which identifies, calculates and counts the functional groups present in the given RDKit molecule.
      • get_color_for_functional_group , which determines the color associated with the given functional group based on its chemical structure.
    • PharmacophoreColorMapper A class for mapping pharmacophore features according to their respective colors consisting of:

      • get_color_for_pharmacophore , which determines the color associated with the given pharmacophore feature family.
  • properties.py created with following classes:

    • Property A base class for representing a property of a molecule consisting of:

      • __init__ , which initializes the Property class with a molecule.
      • property_value , which is abstract method to be implemented by subclasses to calculate the property value.
      • __repr__ , which returns the HTML-formatted string representation of the property name and value..
    • MolecularWeight A class for calculating the molecular weight of a molecule.

    • LogP A class for calculating the LogP value of a molecule.

    • TPSA A class for calculating the TPSA value of a molecule.

    • RotatableBonds A class for calculating the number of the rotatable bonds of a molecule.

    • HydrogenBondAcceptors A class for calculating the number of the hydrogen bond acceptors of a molecule.

    • HydrogenBondDonors A class for calculating the number of the hydrogen bond donors of a molecule.

    • Stereocenters A class for calculating the number of stereocenters of a molecule.

  • Following Pytests were created:

    • test_mdonatello.py for the testing of mdonatello.py
    • test_drawer.py for the testing of drawer.py
    • test_mapper.py for the testing of mapper.py
  • Documentation was created an uploaded to:

  • Following Workflow files were created:

    • Linux_CI_CD.yml for Linux based systems
    • MacOS_CI_CD.yml for MacOS based systems
    • Windows_CI_CD.yml for Windows based systems
  • Removed analysis folder, due to not using it

Full Changelog: https://github.com/talagayev/MDonatello/commits/0.0.1