Need help with mordred?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

149 Stars 47 Forks BSD 3-Clause "New" or "Revised" License 597 Commits 40 Opened issues


a molecular descriptor calculator

Services available


Need anything else?

Contributors list


molecular descriptor calculator.

.. image:: :target:

.. image:: :target:

.. image:: :target: :alt: Code Climate

.. image:: :target:

.. image:: :target:

.. image:: :target:

.. image:: :target:

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


conda(recommended) ~~~~~~~~~~~~~~~~~~

. install conda

   -  `miniconda `__
   -  `anaconda `__

. install mordred

   .. code:: console

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

pip ~~~

. install
__ 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


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

ABCIndex and AcidBase

.. code:: console

$ python -m mordred example.smi -d ABCIndex -d AcidBase

multiple input

.. code:: console

$ python -m mordred example.smi example2.smi -d ABCIndex

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




Moriwaki H, Tian Y-S, Kawashita N, Takagi T (2018) Mordred: a molecular descriptor calculator. Journal of Cheminformatics 10:4 . doi:



  • master 
  • develop 
  • v1.1.0 
  • v1.0.0 

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.