An open API service indexing awesome lists of open source software.

https://github.com/mordred-descriptor/mordred

a molecular descriptor calculator
https://github.com/mordred-descriptor/mordred

Last synced: 4 months ago
JSON representation

a molecular descriptor calculator

Awesome Lists containing this project

README

          

mordred
=======
molecular descriptor calculator.

.. image:: https://travis-ci.org/mordred-descriptor/mordred.svg?branch=master
:target: https://travis-ci.org/mordred-descriptor/mordred

.. image:: https://coveralls.io/repos/github/mordred-descriptor/mordred/badge.svg?branch=master
:target: https://coveralls.io/github/mordred-descriptor/mordred?branch=master

.. image:: https://codeclimate.com/github/mordred-descriptor/mordred/badges/gpa.svg
:target: https://codeclimate.com/github/mordred-descriptor/mordred
:alt: Code Climate

.. image:: https://anaconda.org/mordred-descriptor/mordred/badges/version.svg
:target: https://anaconda.org/mordred-descriptor/mordred

.. image:: https://img.shields.io/pypi/v/mordred.svg
:target: https://pypi.python.org/pypi/mordred

.. image:: https://img.shields.io/badge/doi-10.1186%2Fs13321--018--0258--y-blue.svg
:target: https://doi.org/10.1186/s13321-018-0258-y

.. image:: https://img.shields.io/badge/slack-mordred--descriptor-brightgreen.svg
:target: https://join.slack.com/t/mordred-descriptor/shared_invite/enQtMzc1MzkyODk1NTY5LTdlYzM4MWUzY2YwZmEwMWYzN2M4YTVkMGRlMDY0ZjU2NjQ1M2RiYzllMzVjZGE4NGZkNWZjODBjODE0YmExNjk

number of descriptors
---------------------
.. code:: python

>>> from mordred import Calculator, descriptors
>>> n_all = len(Calculator(descriptors, ignore_3D=False).descriptors)
>>> n_2D = len(Calculator(descriptors, ignore_3D=True).descriptors)
>>> print("2D: {:5}\n3D: {:5}\n------------\ntotal: {:5}".format(n_2D, n_all - n_2D, n_all))
2D: 1613
3D: 213
------------
total: 1826

Installation
------------

conda(recommended)
~~~~~~~~~~~~~~~~~~
#. install conda

- `miniconda `__
- `anaconda `__

#. install mordred

.. code:: console

$ conda install -c rdkit -c mordred-descriptor mordred

pip
~~~

#. install `rdkit `__ python package
#. install mordred

.. code:: console

$ pip install 'mordred[full]' # install with extra requires
# or
$ pip install mordred

Testing the installation
------------------------

$ python -m mordred.tests

examples
--------

as command
~~~~~~~~~~

calculate all descriptors

.. code:: console

$ python -m mordred example.smi
name,ECIndex,WPath,WPol,Zagreb1, (snip)
benzene,36,27,3,24.0, (snip)
chrolobenzene,45,42,5,30.0, (snip)

save to file (display progress bar)

.. code:: console

$ python -m mordred example.smi -o example.csv
50%|███████████████████████████████████████▌ | 1/2 [00:00<00:00, 7.66it/s]

stream read (low memory, no number of molecules information)

.. code:: console

$ python -m mordred example.smi -s -o example.csv
0it [00:00, ?it/s]

only ABCIndex

.. code:: console

$ python -m mordred example.smi -d ABCIndex
name,ABC,ABCGG
benzene,4.242640687119286,3.9999999999999996
chlorobenzene,5.059137268047012,4.785854275382693

ABCIndex and AcidBase

.. code:: console

$ python -m mordred example.smi -d ABCIndex -d AcidBase
name,ABC,ABCGG,nAcid,nBase
benzene,4.242640687119286,3.9999999999999996,0,0
chlorobenzene,5.059137268047012,4.785854275382693,0,0

multiple input

.. code:: console

$ python -m mordred example.smi example2.smi -d ABCIndex
name,ABC,ABCGG
benzene,4.242640687119286,3.9999999999999996
chlorobenzene,5.059137268047012,4.785854275382693
pentane,2.8284271247461903,3.1462643699419726

show help

.. code:: console

$ python -m mordred --help
usage: python -m mordred [-h] [--version] [-t {auto,sdf,mol,smi}] [-o OUTPUT]
[-p PROCESSES] [-q] [-s] [-d DESC] [-3] [-v]
INPUT [INPUT ...]

positional arguments:
INPUT

optional arguments:
-h, --help show this help message and exit
--version input molecular file
-t {auto,sdf,mol,smi}, --type {auto,sdf,mol,smi}
input filetype (default: auto)
-o OUTPUT, --output OUTPUT
output file path (default: stdout)
-p PROCESSES, --processes PROCESSES
number of processes (default: number of logical
processors)
-q, --quiet hide progress bar
-s, --stream stream read
-d DESC, --descriptor DESC
descriptors to calculate (default: all)
-3, --3D use 3D descriptors (require sdf or mol file)
-v, --verbosity verbosity

descriptors: ABCIndex AcidBase AdjacencyMatrix Aromatic AtomCount
Autocorrelation BalabanJ BaryszMatrix BCUT BertzCT BondCount CarbonTypes Chi
Constitutional CPSA DetourMatrix DistanceMatrix EccentricConnectivityIndex
EState ExtendedTopochemicalAtom FragmentComplexity Framework GeometricalIndex
GravitationalIndex HydrogenBond InformationContent KappaShapeIndex Lipinski
McGowanVolume MoeType MolecularDistanceEdge MolecularId MomentOfInertia MoRSE
PathCount Polarizability RingCount RotatableBond SLogP TopologicalCharge
TopologicalIndex TopoPSA VdwVolumeABC VertexAdjacencyInformation WalkCount
Weight WienerIndex ZagrebIndex

as library
^^^^^^^^^^

.. code:: python

>>> from rdkit import Chem
>>> from mordred import Calculator, descriptors

# create descriptor calculator with all descriptors
>>> calc = Calculator(descriptors, ignore_3D=True)

>>> len(calc.descriptors)
1613

>>> len(Calculator(descriptors, ignore_3D=True, version="1.0.0"))
1612

# calculate single molecule
>>> mol = Chem.MolFromSmiles('c1ccccc1')
>>> calc(mol)[:3]
[4.242640687119286, 3.9999999999999996, 0]

# calculate multiple molecule
>>> mols = [Chem.MolFromSmiles(smi) for smi in ['c1ccccc1Cl', 'c1ccccc1O', 'c1ccccc1N']]

# as pandas
>>> df = calc.pandas(mols)
>>> df['SLogP']
0 2.3400
1 1.3922
2 1.2688
Name: SLogP, dtype: float64

see `examples `_

Citation
--------
Moriwaki H, Tian Y-S, Kawashita N, Takagi T (2018) Mordred: a molecular descriptor calculator. Journal of Cheminformatics 10:4 . doi: `10.1186/s13321-018-0258-y `__

Documentation
-------------

- `master `__
- `develop `__

- `v1.1.0 `__
- `v1.0.0 `__