Metadata-Version: 2.1
Name: molcomplex
Version: 1.0.3
Summary: Molecular Complexity Calculations
Home-page: https://github.com/patonlab/molcomplex
Download-URL: https://github.com/patonlab/molcomplex/archive/refs/tags/v1.0.3.tar.gz
Author: Guilian Luchini, Shree Sowndarya S. V.
Author-email: guilian.luchini@colostate.edu, svss@colostate.edu
License: MIT
Keywords: workflows,computational chemistry,cheminformatics,molecular complexity,DFT,automation
Requires-Python: >=3.0
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: brotli ==1.1.0
Requires-Dist: click ==8.1.3
Requires-Dist: dash-bootstrap-components ==1.6.0
Requires-Dist: dash-core-components ==2.0.0
Requires-Dist: dash-dangerously-set-inner-html ==0.0.2
Requires-Dist: dash-html-components ==2.0.0
Requires-Dist: dash-table ==5.0.0
Requires-Dist: et-xmlfile ==1.1.0
Requires-Dist: fonttools ==4.51.0
Requires-Dist: greenlet ==3.0.3
Requires-Dist: kiwisolver ==1.4.5
Requires-Dist: markupsafe ==2.1.5
Requires-Dist: matplotlib ==3.5.3
Requires-Dist: mordred ==1.2.0
Requires-Dist: networkx ==2.8.8
Requires-Dist: numpy ==1.26.4
Requires-Dist: openpyxl ==3.1.2
Requires-Dist: pandas ==2.2.2
Requires-Dist: pillow ==10.3.0
Requires-Dist: pycairo ==1.23.0
Requires-Dist: pysocks ==1.7.1
Requires-Dist: python-dateutil ==2.9.0.post0
Requires-Dist: pytz ==2024.1
Requires-Dist: pyyaml ==6.0.2rc1
Requires-Dist: reportlab ==3.6.13
Requires-Dist: scipy ==1.13.1
Requires-Dist: sqlalchemy ==2.0.30
Requires-Dist: tzdata ==2024.1
Requires-Dist: unicodedata2 ==15.1.0
Requires-Dist: PyYAML
Requires-Dist: pandas >=2.0.2

          ___           ___                         ___           ___           ___           ___                       ___           ___      
         /\  \         /\  \                       /\__\         /\  \         /\  \         /\  \                     /\__\         /|  |     
        |::\  \       /::\  \                     /:/  /        /::\  \       |::\  \       /::\  \                   /:/ _/_       |:|  |     
        |:|:\  \     /:/\:\  \                   /:/  /        /:/\:\  \      |:|:\  \     /:/\:\__\                 /:/ /\__\      |:|  |     
      __|:|\:\  \   /:/  \:\  \   ___     ___   /:/  /  ___   /:/  \:\  \   __|:|\:\  \   /:/ /:/  /  ___     ___   /:/ /:/ _/_   __|:|__|     
     /::::|_\:\__\ /:/__/ \:\__\ /\  \   /\__\ /:/__/  /\__\ /:/__/ \:\__\ /::::|_\:\__\ /:/_/:/  /  /\  \   /\__\ /:/_/:/ /\__\ /::::\__\_____
     \:\~~\  \/__/ \:\  \ /:/  / \:\  \ /:/  / \:\  \ /:/  / \:\  \ /:/  / \:\~~\  \/__/ \:\/:/  /   \:\  \ /:/  / \:\/:/ /:/  / ~~~~\::::/___/
      \:\  \        \:\  /:/  /   \:\  /:/  /   \:\  /:/  /   \:\  /:/  /   \:\  \        \::/__/     \:\  /:/  /   \::/_/:/  /      |:|~~|    
       \:\  \        \:\/:/  /     \:\/:/  /     \:\/:/  /     \:\/:/  /     \:\  \        \:\  \      \:\/:/  /     \:\/:/  /       |:|  |    
        \:\__\        \::/  /       \::/  /       \::/  /       \::/  /       \:\__\        \:\__\      \::/  /       \::/  /        |:|__|    
         \/__/         \/__/         \/__/         \/__/         \/__/         \/__/         \/__/       \/__/         \/__/         |/__/     
                                                                                                                                                                                                                                                                                  
Implementing a variety of complementary metrics for molecular complexity and synthetic accessibility.

A collaboration with the Sarpong group to understand complexity of molecules

# Requirements
- numpy, pandas
- rdkit
- openbabel
- mordred 
- SYBA (conda install -c lich syba)

## Set up conda environment directly using the yml file:
To install the required packages through Conda, use the env.yml file as follows and the activate the environment: 
1. `conda env create -f env.yml`
2. `conda activate mc`
This will set up the environment with molcomplex installed.

## For installation by cloning the GitHub folder, perform the follwoing steps:
1. Download the zipped folder or clone using: `git clone https://github.com/patonlab/molcomplex.git`  
2. Navigate to the installed folder and run: `python setup.py install`. This will install `molcomplex` in the environment you are present in. 
3. Install necessary dependencies using the following: `conda install -c lich syba`, `conda install -c conda-forge rdkit`, and `conda install -c conda-forge openbabel`

## Recommended installation and update guide (under works)
In a nutshell, `molcomplex` and its dependencies are installed/updated as follows:  
1. Install using conda-forge: `conda install -c conda-forge molcomplex`  
2. Update to the latest version: `pip install molcomplex --upgrade` 

## Usage
To display the options type:

``python -m molcomplex -h``

The `molcomplex` package can be utilised as follows to obtain a csv with complexity scores.

``python -m molcomplex -f examples/test.txt``

To write to CSV add in the following:

``python -m molcomplex -f examples/test.txt --csv``

To perform a retro analysis by breaking down bonds to get complexity scores for precursors of the input SMILES add the following option:

``python -m molcomplex -f examples/test.txt --csv --retro``

## Usage APP
To run the web app perform the following steps:
1. Navigate to the webapp folder: `cd mcwebapp`
2. Run the app as follows: `python molcomplexapp.py`
3. copy paste the `http://127.0.0.1:8050/` or similar into web browser to utilise as an app.


# Metrics implemented
- Bertz Complexity (CT) Score (JACS 1981, 103, 3241-3243)
- Balaban J Score (Chem. Phys. Lett. 1982, 89, 399-404)
- Coley SCScore (J. Chem. Inf. Model. 2018, 58, 2, 252)
- IPC: Bonchev & Trinajstic's information content of the coefficients of the characteristic polynomial of the adjacency matrix of a hydrogen-suppressed graph of a molecule (J. Chem. Phys. 1977, 67, 4517-4533)
- Ertl SA_Score (J. Cheminform. 2009, 1, 8)
- Boettcher Score (J. Chem. Inf. Model. 2016, 56, 3, 462–470)
- Rücker's total walk count (twc) index: Rücker, G.; Rücker, C. Counts of All Walks as Atomic and Molecular Descriptors. (J. Chem. Inf. Comput. Sci. 1993, 33, 683-695)
- Proudfoot's Cm index based on atom environments: Proudfoot, J. R. A path based approach to assessing molecular complexity. Bioorganic Med. Chem. Lett. 27, 2014–2017 (2017)
- Kappa Shape Indices 1, 2 & 3 (Quant. Struct. Act. Relat. 1986, 5, 1-7)
- McGowan Volume (Chromatographia, 1987, 23, 243-246)
- Labute Approximate Surface Area (Methods Mol Biol 2004, 275, 261-78)
- Van der Waals Volume Atomic and Bond Contributions (J. Org. Chem. 2003, 68, 7368-7373).
- Zagreb Index 
- MOE Type Desciptors (Labute ASA, PEOE VSA, SMR VSA, SLogP VSA)
- SYBA Score (J. Cheminformatics 2020, 12, 35)
- Multiple additional 2D metrics.

# To do list
- compare against human metric
- comment out descriptors that are highly correlated (say > 0.9)

# Currently broken
- Kier's alpha-modified shape indices

# Metrics to implement:

- Bertz’s Ns and Nt index: Bertz, S. H. & Sommer, T. J. Rigorous mathematical approaches to strategic bonds and synthetic analysis based on conceptually simple new complexity indices. Chem. Commun. 16, 2409–2410 (1997).

- Randić's zeta index: Randić, M. & Plavšić, D. Characterization of molecular complexity. Int. J. Quantum Chem. 91, 20–31 (2002).

- https://www.nature.com/articles/s41598-018-37253-8

Two noteworthy substructure-based methods are:
- Barone, R. & Chanon, M. A new and simple approach to chemical complexity. Application to the synthesis of natural products. J. Chem. Inf. Comput. Sci. 41, 269–272 (2001).

- Whitlock, H. W. On the structure of total synthesis of complex natural products. J. Org. Chem. 63, 7982–7989 (1998).
