Skip to main content

PyMolinfo provides comprehensive molecular information and analysis.

Project description

PyMolinfo

Downloads PyPI Python Version License

PyMolInfo (previously molinfo) is a Python package designed for advanced molecular analysis by converting molecular structures into graph representations. This package enables researchers and chemists to load various molecular file formats, transform them into graphs, and extract valuable information through graph-based methods.

Features

  • File Format Support: Load molecular data from multiple file formats, including SDF and JSON (soon).

  • Graph Conversion: Transform molecular structures into graph representations for detailed analysis.

  • Functional Group Identification: Detect and analyze functional groups within the molecular graph.

  • Distance Measurement: Compute distances between atoms and bonds in the molecular graph.

  • Bond Angle Calculation: Measure angles between bonds using graph-based methods.

Getting Started:

To use PyMolinfo, simply install the package and import it into your Python script. Refer to the example code snippets above for a quick start.

Binder

Test this package by launching our example notebooks on Binder:

| Description | Launch Binder |

| --- | --- |

| Load a sdf file | Launch Binder |

| Visualize a compound | Launch Binder |

| Check and count functional groups | Launch Binder|

| Create custom functional groups | Launch Binder|

Google Colab

You can use the following code to run PyMolinfo in Google Colab:

| Version | Google Colab |

| --- | --- |

| 1.6.0 | Open In Colab |

| < 1.6.0 | Open In Colab |

Installation

Install molinfo with pip

  pip install PyMolinfo

Documentation

Import package as:

import pyMolinfo as mi

# check version

print(mi.__version__)

Examples

  • Create a graph
# sdf file

sdf_file_name_1 = 'test\Structure2D_COMPOUND_CID_261.sdf'

sdf_file = os.path.join(os.getcwd(), sdf_file_name_1)

# create graph

res = mi.create_graph(sdf_file)

print(type(res))

print(res)
  • Display a graph:
# visualize compound by sdf file

mi.g3d(sdf_file)
  • Check the availability of functional groups:
# check functional groups

res, comp1 = mi.check_functional_group(sdf_file, res_format='dataframe')

print(res)
  • Calculate angle/distance between atoms
# distance matrix

res_distance = comp1.distance_matrix(dataframe=True)

print(res_distance)



# distance between two atoms

distance = comp1.distance_atoms(['O1', 'C2'])

print(distance)



# angle between atoms

angle = comp1.angle_atoms(['O1', 'C2', 'H3'])

print(angle)



# dihedral angle

dihedral = comp1.d_angle_atoms(['H6', 'O1', 'C2', 'H3'])

print(dihedral)
  • Create custom functional groups:

[atom1-element][atom1-number][bond-type][atom2-element][atom2-number]

| Bond Types | Format |

|:----------|:----------|

| single bond CC | C1-C2 |

| double bond CC | C1=C2 |

| triple bond CC | C1#C2 |

How to create a custom functional group?

| Name | Symbol | Format |

|:-----------|:------------:|-------------:|

| cyanide-1 | CCN | ["N1#C2"] |

| custom_fg | NCH | ["N1-C2", "C2-H3"] |

| NC=O | NC=O | ["N1-C2", "C2=O3"] |

And coded as:

# C1-C2#N3

custom_functional_group = [

    {'cyanide': ["C1-C2", "C2#N3"]},

]



# define different custom functional groups as:

# N#C

# NCH

# NCO

custom_functional_group = [

    {'N#C': ["N1#C2"]},

    {'custom_fg': ["N1-C2", "C2-H3"]},

    {'NC=O': ["N1-C2", "C2=O3"]},

]



# create custom graph

custom_g = mi.create_custom_functional_groups(custom_functional_group)



# visualize custom graph

# custom_g.d("cyanide")



# find custom functional groups in a compound

res = mi.check_functional_group(

    sdf_file, functional_groups=[custom_g])

print(res)

FAQ

For any question, contact me on LinkedIn

Authors

@sinagilassi

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pymolinfo-1.7.2.tar.gz (40.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

PyMolinfo-1.7.2-py3-none-any.whl (42.5 kB view details)

Uploaded Python 3

File details

Details for the file pymolinfo-1.7.2.tar.gz.

File metadata

  • Download URL: pymolinfo-1.7.2.tar.gz
  • Upload date:
  • Size: 40.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.0

File hashes

Hashes for pymolinfo-1.7.2.tar.gz
Algorithm Hash digest
SHA256 b50e78abd9b4d436842208a08f8548ef2bd7c0652db62f7fdc15d8d8d62e8c57
MD5 16ba302dde5fc04a9c618a58e51a16f0
BLAKE2b-256 c7237b56faf9259526f9fe58af93963206d24bc48c16c918591b1e0ab921d6d8

See more details on using hashes here.

File details

Details for the file PyMolinfo-1.7.2-py3-none-any.whl.

File metadata

  • Download URL: PyMolinfo-1.7.2-py3-none-any.whl
  • Upload date:
  • Size: 42.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.0

File hashes

Hashes for PyMolinfo-1.7.2-py3-none-any.whl
Algorithm Hash digest
SHA256 62237588c76034265b9ab0f050a742dd2b7a8021f0973c6b92308457c5e61d7c
MD5 9df6ca3ba6087c2bd53e7797594a2d12
BLAKE2b-256 a5df8b51f20b98d40f3600936f6a851099bee86ff5c097c7670cb336ec57152e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page