The isoenum Docker Tutorial¶
The isoenum docker container¶
This section contains the examples provided above but with the use of a docker
container with isoenum Python package and all its dependencies instead of using
isoenum Python package directly.
After you docker pull or docker build the isoenum container, you can verify
that it is available.
# docker images
You should see output similar to the following:
REPOSITORY TAG IMAGE ID CREATED SIZE
isoenum latest 0e4c431aa519 1 day ago 862MB
Command-line interface¶
The isoenum package provides an easy-to-use command-line interface
that allows the specification of isotopes for the creation of
isotopically-resolved InChI.
- To access the
isoenumcommand-line interface from docker container:
# docker run isoenum --help
Output:
Isotopic enumerator (isoenum) command-line interface
Usage:
isoenum -h | --help
isoenum --version
isoenum name (<path-to-ctfile-file-or-inchi-file-or-inchi-string>)
[--specific=<isotope:element:position>...]
[--all=<isotope:element>...]
[--enumerate=<isotope:element:min:max>...]
[--complete | --partial]
[--ignore-iso]
[--format=<format>]
[--output=<path>]
[--verbose]
isoenum ionize (<path-to-ctfile-file-or-inchi-file-or-inchi-string>)
(--state=<element:position:charge>)
[--format=<format>]
[--output=<path>]
isoenum nmr (<path-to-ctfile-file-or-inchi-file-or-inchi-string>)
[--type=<experiment-type>]
[--jcoupling=<name>...]
[--decoupled=<element>...]
[--format=<format>]
[--output=<path>]
[--subset]
[--verbose]
Options:
-h, --help Show this screen.
--verbose Print more information.
-v, --version Show version.
-a, --all=<isotope:element> Specify element and isotope, e.g. -a 13:C or --all=13:C
-s, --specific=<isotope:element:position> Specify element, isotope and specific position,
e.g. -s 13:C:1 or --specific=13:C:1.
-e, --enumerate=<isotope:element:min:max> Enumerate all isotopically-resolved CTfile or InChI,
e.g. -e 13:C:2:4 or --enumerate=13:C:2:4
-c, --complete Use complete labeling schema, i.e. every atom must specify
"ISO" property, partial labeling schema will be used otherwise
for specified labeling information only.
-p, --partial Use partial labeling schema, i.e. generate labeling schema
from the provided labeling information.
-i, --ignore-iso Ignore existing "ISO" specification in the CTfile or InChI.
-f, --format=<format> Format of output: inchi, mol, sdf, csv, json [default: inchi].
-o, --output=<path> Path to output file.
-t, --type=<experiment-type> Type of NMR experiment [default: 1D1H].
-j, --jcoupling=<type> Allowed J couplings.
-d, --decoupled=<element> Turn off J coupling for a given element.
-z, --state=<element:position:charge> Create ionized form of InChI from neutral molecule,
e.g. N:6:+1, O:8:-1.
--subset Create atom subsets for each resonance.
Docker usage examples¶
Input files¶
We will use the same input files as above to generate isotopically-resolved
InChI. Repeated here for convenience.
Molfileexample:
pentane-2_2-diol
OpenBabel02101812223D
19 18 0 0 0 0 0 0 0 0999 V2000
0.8986 -0.0477 0.0323 C 0 0 0 0 0 0 0 0 0 0 0 0
5.0960 0.7629 2.7277 C 0 0 0 0 0 0 0 0 0 0 0 0
2.4213 -0.0579 -0.0025 C 0 0 0 0 0 0 0 0 0 0 0 0
3.0115 0.3840 1.3416 C 0 0 0 0 0 0 0 0 0 0 0 0
4.5473 0.3524 1.3660 C 0 0 0 0 0 0 0 0 0 0 0 0
4.9506 -0.9689 1.0442 O 0 0 0 0 0 0 0 0 0 0 0 0
5.0892 1.2477 0.4081 O 0 0 0 0 0 0 0 0 0 0 0 0
0.4966 -0.3656 -0.9348 H 0 0 0 0 0 0 0 0 0 0 0 0
0.5151 0.9566 0.2461 H 0 0 0 0 0 0 0 0 0 0 0 0
0.5209 -0.7306 0.7986 H 0 0 0 0 0 0 0 0 0 0 0 0
4.7913 0.0636 3.5124 H 0 0 0 0 0 0 0 0 0 0 0 0
4.7734 1.7738 2.9979 H 0 0 0 0 0 0 0 0 0 0 0 0
6.1923 0.7728 2.7063 H 0 0 0 0 0 0 0 0 0 0 0 0
2.7620 0.6098 -0.8011 H 0 0 0 0 0 0 0 0 0 0 0 0
2.7573 -1.0707 -0.2471 H 0 0 0 0 0 0 0 0 0 0 0 0
2.6291 -0.2841 2.1226 H 0 0 0 0 0 0 0 0 0 0 0 0
2.6589 1.3989 1.5754 H 0 0 0 0 0 0 0 0 0 0 0 0
5.5197 -1.2976 1.7554 H 0 0 0 0 0 0 0 0 0 0 0 0
4.6303 2.0937 0.5065 H 0 0 0 0 0 0 0 0 0 0 0 0
1 3 1 0 0 0 0
1 8 1 0 0 0 0
1 9 1 0 0 0 0
1 10 1 0 0 0 0
2 5 1 0 0 0 0
2 11 1 0 0 0 0
2 12 1 0 0 0 0
2 13 1 0 0 0 0
3 4 1 0 0 0 0
3 14 1 0 0 0 0
3 15 1 0 0 0 0
4 5 1 0 0 0 0
4 16 1 0 0 0 0
4 17 1 0 0 0 0
5 6 1 0 0 0 0
5 7 1 0 0 0 0
6 18 1 0 0 0 0
7 19 1 0 0 0 0
M ISO 1 1 12
M END
- Text file containing
InChIstring:
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3
SDfile(i.e.Molfileplus data) example:
pentane-2_2-diol
OpenBabel02101812223D
19 18 0 0 0 0 0 0 0 0999 V2000
0.8986 -0.0477 0.0323 C 0 0 0 0 0 0 0 0 0 0 0 0
5.0960 0.7629 2.7277 C 0 0 0 0 0 0 0 0 0 0 0 0
2.4213 -0.0579 -0.0025 C 0 0 0 0 0 0 0 0 0 0 0 0
3.0115 0.3840 1.3416 C 0 0 0 0 0 0 0 0 0 0 0 0
4.5473 0.3524 1.3660 C 0 0 0 0 0 0 0 0 0 0 0 0
4.9506 -0.9689 1.0442 O 0 0 0 0 0 0 0 0 0 0 0 0
5.0892 1.2477 0.4081 O 0 0 0 0 0 0 0 0 0 0 0 0
0.4966 -0.3656 -0.9348 H 0 0 0 0 0 0 0 0 0 0 0 0
0.5151 0.9566 0.2461 H 0 0 0 0 0 0 0 0 0 0 0 0
0.5209 -0.7306 0.7986 H 0 0 0 0 0 0 0 0 0 0 0 0
4.7913 0.0636 3.5124 H 0 0 0 0 0 0 0 0 0 0 0 0
4.7734 1.7738 2.9979 H 0 0 0 0 0 0 0 0 0 0 0 0
6.1923 0.7728 2.7063 H 0 0 0 0 0 0 0 0 0 0 0 0
2.7620 0.6098 -0.8011 H 0 0 0 0 0 0 0 0 0 0 0 0
2.7573 -1.0707 -0.2471 H 0 0 0 0 0 0 0 0 0 0 0 0
2.6291 -0.2841 2.1226 H 0 0 0 0 0 0 0 0 0 0 0 0
2.6589 1.3989 1.5754 H 0 0 0 0 0 0 0 0 0 0 0 0
5.5197 -1.2976 1.7554 H 0 0 0 0 0 0 0 0 0 0 0 0
4.6303 2.0937 0.5065 H 0 0 0 0 0 0 0 0 0 0 0 0
1 3 1 0 0 0 0
1 8 1 0 0 0 0
1 9 1 0 0 0 0
1 10 1 0 0 0 0
2 5 1 0 0 0 0
2 11 1 0 0 0 0
2 12 1 0 0 0 0
2 13 1 0 0 0 0
3 4 1 0 0 0 0
3 14 1 0 0 0 0
3 15 1 0 0 0 0
4 5 1 0 0 0 0
4 16 1 0 0 0 0
4 17 1 0 0 0 0
5 6 1 0 0 0 0
5 7 1 0 0 0 0
6 18 1 0 0 0 0
7 19 1 0 0 0 0
M ISO 1 1 12
M END
> <InChI>
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0
$$$$
Input file/string specification¶
As shown above, the isoenum command-line interface asks the user
to provide one required parameter <path-to-ctfile-file-or-inchi-file-or-inchi-string>,
which is the file or string with information required to create isotopically-resolved InChI.
In order to provide the input file path to the isoenum docker container,
you will need to mount it as a volume for the docker container so the container can see it.
Warning
You need to provide the absolute path to the input file, otherwise the docker container will not be able to see it.
For example, -v /absolute/path/to/input.txt:/input.txt, where path on the
left side of : is the absolute path on the host machine and the path on the
right side of : is the path within the docker container.
To illustrate, let’s invoke the isoenum docker container and provide input files:
- Path to
CTfile(i.e.MolfileorSDfile).
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol isoenum name /pentane-2_2-diol.mol
- Path to the file containing an
InChI.
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol isoenum name /pentane-2_2-diol.mol
InChIstring.
# docker run isoenum name 'InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3'
or
# docker run isoenum name '1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3'
The isoenum name command¶
The name command of the isoenum command-line interface provides
facilities to add isotopic layer information to molecule in order to
create isotopically-resolved InChI.
Isotopic layer specification: specific atoms option¶
The -s or --specific option allows the user to specify the isotopic information
for an atom at a specific position within a molecule (e.g. carbon at position “2”
will have absolute mass “13”).
- To designate the isotope of a specific atom within a given
Molfile, use the-sor--specificoption. For example, specify the second carbon atom as carbon “13”:
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol isoenum name /pentane-2_2-diol.mol -s 13:C:2
or
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol isoenum name /pentane-2_2-diol.mol --specific=13:C:2
Output:
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1
- To designate the isotope for several atoms, repeat the
-sor--specificoption:
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol isoenum name /pentane-2_2-diol.mol -s 13:C:1 -s 13:C:2
or
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol isoenum name /pentane-2_2-diol.mol --specific=13:C:1 --specific=13:C:2
Output:
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1
Note
Since the original file already contained the ISO specification for the first carbon atom,
it did not change the designation of that atom (i.e. i1+0 was retained).
- To ignore existing
ISOspecifications, provide the-ior--ignore-isooption:
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol isoenum name /pentane-2_2-diol.mol -s 13:C:1 -s 13:C:2 -i
or
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol isoenum name /pentane-2_2-diol.mol --specific=13:C:1 --specific=13:C:2 --ignore-iso
Output:
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+1,2+1
Isotopic layer specification: all atoms of a specific type option¶
The -a or --all option allows the user to specify the isotopic information
for all atoms of a specific type (e.g. all carbons within a molecule will have
absolute mass “13” etc.)
- To add isotope designations to all atoms of a specific element,
use the
-aor--alloption:
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol isoenum name /pentane-2_2-diol.mol -a 13:C
or
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol isoenum name /pentane-2_2-diol.mol --all=13:C
Output:
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,3+1,4+1,5+1
- To add isotope designations to different types of atoms,
repeat the
-aor--alloption for each desired element:
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol isoenum name /pentane-2_2-diol.mol -a 13:C -a 18:O
or
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol isoenum name /pentane-2_2-diol.mol --all=13:C --all=18:O
Output:
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,3+1,4+1,5+1,6+2,7+2
- To ignore existing
ISOspecifications, combine with the-ior--ignore-isooption:
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol isoenum name /pentane-2_2-diol.mol -a 13:C -a 18:O -i
or
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol isoenum name /pentane-2_2-diol.mol --all=13:C --all=18:O --ignore-iso
Output:
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+1,2+1,3+1,4+1,5+1,6+2,7+2
- Also the
-aor--alloption can be combined with the-sor--specificoption which has higher priority:
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol isoenum name /pentane-2_2-diol.mol -a 13:C -s 12:C:3 -i
or
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol isoenum name /pentane-2_2-diol.mol --all=13:C --specific=12:C:3 --ignore-iso
Output:
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+1,2+1,3+0,4+1,5+1
Isotopic layer specification: enumerate atoms of specific type option¶
The -e or --enumerate option allows the user to create a set of InChI
for a molecule with a different number of isotopes (e.g. create all InChI
where the number of carbon atoms with absolute mass “13” ranges from 0 to 5).
- To enumerate atoms of a specific element type, use the
-eor--enumerateoption:
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol isoenum name /pentane-2_2-diol.mol -e 13:C
or
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol isoenum name /pentane-2_2-diol.mol --enumerate=13:C
Output:
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,3+1,4+1,5+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,3+1,4+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,3+1,5+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,3+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,4+1,5+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,4+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,5+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,3+1,4+1,5+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,3+1,4+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,3+1,5+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,3+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,4+1,5+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,4+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,5+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0
- A minimum and maximum number can be set to limit
InChIgeneration to desired minimum and maximum number of atoms of the specified element. For example, generate all possibleInChIwhere the number of carbon “13” atoms is in the range from 3 to 4:
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol isoenum name /pentane-2_2-diol.mol -e 13:C:3:4
or
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol isoenum name /pentane-2_2-diol.mol --enumerate=13:C:3:4
Output:
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,3+1,4+1,5+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,3+1,4+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,3+1,5+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,4+1,5+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,3+1,4+1,5+1
- To ignore existing
ISOspecifications, combine it with the-iorignore-isooption:
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol isoenum name /pentane-2_2-diol.mol -e 13:C:3:4 -i
or
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol isoenum name /pentane-2_2-diol.mol --enumerate=13:C:3:4 --ignore-iso
Output:
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+1,2+1,3+1,4+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+1,2+1,3+1,5+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+1,2+1,3+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+1,2+1,4+1,5+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+1,2+1,4+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+1,2+1,5+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+1,3+1,4+1,5+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+1,3+1,4+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+1,3+1,5+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+1,4+1,5+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i2+1,3+1,4+1,5+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i2+1,3+1,4+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i2+1,3+1,5+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i2+1,4+1,5+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i3+1,4+1,5+1
- To enumerate multiple atom types, repeat the
-eor--enumerateoption for the desired element:
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol isoenum name /pentane-2_2-diol.mol -e 13:C:3:4 -e 18:O:1:2
or
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol isoenum name /pentane-2_2-diol.mol --enumerate=13:C:3:4 --enumerate=18:O:1:2
Output:
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,3+1,4+1,5+1,6+2,7+2
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,3+1,4+1,5+1,6+2/t5-/m0/s1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,3+1,4+1,5+1,6+2/t5-/m1/s1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,3+1,4+1,6+2,7+2
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,3+1,4+1,6+2/t5-/m0/s1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,3+1,4+1,6+2/t5-/m1/s1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,3+1,5+1,6+2,7+2
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,3+1,5+1,6+2/t5-/m0/s1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,3+1,5+1,6+2/t5-/m1/s1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,4+1,5+1,6+2,7+2
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,4+1,5+1,6+2/t5-/m0/s1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,4+1,5+1,6+2/t5-/m1/s1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,3+1,4+1,5+1,6+2,7+2
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,3+1,4+1,5+1,6+2/t5-/m0/s1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,3+1,4+1,5+1,6+2/t5-/m1/s1
- The
-e(--enumerate) option can be combined with the-a(--all) and-s(--specific) options except the-e(--enumerate) option cannot specify the same element as the-a(--all) option.
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol isoenum name /pentane-2_2-diol.mol -e 13:C:2:4 -a 18:O -s 12:C:3
or
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol isoenum name /pentane-2_2-diol.mol --enumerate=13:C:2:4 --all=18:O --specific=12:C:3
Output:
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,3+0,4+1,5+1,6+2,7+2
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,3+0,4+1,6+2,7+2
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,3+0,5+1,6+2,7+2
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,3+0,4+1,5+1,6+2,7+2
- It is also possible to combine the
-eor--enumerateoption for the same element but different isotopes (also note that we are not specifying minimum number in this example, it will be set to 0 by default). For example, we want to generateInChIwith up to 2 carbon “12” and up to 2 carbon “13”:
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol isoenum name /pentane-2_2-diol.mol -e 13:C:2 -e 12:C:2
or
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol isoenum name /pentane-2_2-diol.mol --enumerate=13:C:2 --enumerate=12:C:2
Output:
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,5+0
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,5+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,4+0
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,4+0,5+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,4+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,4+1,5+0
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,4+1,5+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,3+0
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,3+0,5+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,3+0,4+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,3+0,4+1,5+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,3+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,3+1,5+0
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,3+1,5+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,3+1,4+0
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,3+1,4+0,5+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,3+1,4+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,3+1,4+1,5+0
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+0
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+0,5+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+0,4+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+0,4+1,5+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+0,3+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+0,3+1,5+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+0,3+1,4+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,5+0
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,5+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,4+0
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,4+0,5+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,4+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,4+1,5+0
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,3+0
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,3+0,5+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,3+0,4+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,3+1
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,3+1,5+0
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,3+1,4+0
The isoenum ionize command¶
The ionize command of isoenum command-line interface provides
facilities to add charge information to a given molecule.
For example, the following InChI represents amino acid L-Valine:
InChI=1S/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1
with the following chemical structure:
- To create
InChIthat represents the zwitterion form:
# docker run isoenum ionize 'InChI=1S/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1' -z N:6:+1 -z O:8:-1 -f inchi
or
# docker run isoenum ionize 'InChI=1S/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1' --state=N:6:+1 --state=O:8:-1 --format=inchi
Output:
InChI=1/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/f/h6H
The generated InChI corresponds to the following structure:
For a second example, the following InChI represents neutral Adenosine monophosphate (AMP):
InChI=1S/C10H14N5O7P/c11-8-5-9(13-2-12-8)15(3-14-5)10-7(17)6(16)4(22-10)1-21-23(18,19)20/h2-4,6-7,10,16-17H,1H2,(H2,11,12,13)(H2,18,19,20)/t4-,6-,7-,10-/m1/s1
with the following chemical structure:
- To create the biochemically-relevant ionized
InChI:
# docker run isoenum ionize 'InChI=1S/C10H14N5O7P/c11-8-5-9(13-2-12-8)15(3-14-5)10-7(17)6(16)4(22-10)1-21-23(18,19)20/h2-4,6-7,10,16-17H,1H2,(H2,11,12,13)(H2,18,19,20)/t4-,6-,7-,10-/m1/s1' -z O:18:-1 -z O:19:-1 -f inchi
or
# docker run isoenum ionize 'InChI=1S/C10H14N5O7P/c11-8-5-9(13-2-12-8)15(3-14-5)10-7(17)6(16)4(22-10)1-21-23(18,19)20/h2-4,6-7,10,16-17H,1H2,(H2,11,12,13)(H2,18,19,20)/t4-,6-,7-,10-/m1/s1' --state=O:18:-1 --state=O:19:-1 --format=inchi
Output:
InChI=1/C10H14N5O7P/c11-8-5-9(13-2-12-8)15(3-14-5)10-7(17)6(16)4(22-10)1-21-23(18,19)20/h2-4,6-7,10,16-17H,1H2,(H2,11,12,13)(H2,18,19,20)/p-2/t4-,6-,7-,10-/m1/s1/fC10H12N5O7P/h11H2/q-2
The generated InChI corresponds to the following structure:
The isoenum nmr command¶
The nmr command of the isoenum command-line interface provides
facilities to create isotopically-resolved InChI based on theoretical
NMR coupling patterns (e.g. J1CH, J3HH, etc.).
For example, the following InChI represents amino acid L-Valine:
InChI=1S/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1
with the following chemical structure:
- To create the theoretically possible set of
InChIfor “1D1H” NMR experiment:
# docker run isoenum nmr 'InChI=1S/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1' --type=1D1H --format=csv
or
# docker run isoenum nmr 'InChI=1S/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1' -t 1D1H -f csv
Output:
[1H9,1H10,1H11]HResonance InChI=1S/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i1H3/t3-,4-
[1H9,1H10,1H11]HResonance + [1H9,1H10,1H11:13C1]J1CH InChI=1S/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i1+1H3/t3-,4-
[1H9,1H10,1H11]HResonance + [1H9,1H10,1H11:1H15]J3HH InChI=1S/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i1H3,3H/t3-,4-
[1H9,1H10,1H11]HResonance + [1H9,1H10,1H11:13C1]J1CH + [1H9,1H10,1H11:1H15]J3HH InChI=1S/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i1+1H3,3H/t3-,4-
[1H12,1H13,1H14]HResonance InChI=1S/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i1H3/t3-,4+/m1
[1H12,1H13,1H14]HResonance + [1H12,1H13,1H14:13C2]J1CH InChI=1S/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i1+1H3/t3-,4+/m1
[1H12,1H13,1H14]HResonance + [1H12,1H13,1H14:1H15]J3HH InChI=1S/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i1H3,3H/t3-,4+/m1
[1H12,1H13,1H14]HResonance + [1H12,1H13,1H14:13C2]J1CH + [1H12,1H13,1H14:1H15]J3HH InChI=1S/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i1+1H3,3H/t3-,4+/m1
[1H15]HResonance InChI=1S/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i3H
[1H15]HResonance + [1H15:13C3]J1CH InChI=1S/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i3+1H
[1H15]HResonance + [1H15:1H9,1H10,1H11]J3HH InChI=1S/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i1H3,3H/t3-,4-
[1H15]HResonance + [1H15:1H12,1H13,1H14]J3HH InChI=1S/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i1H3,3H/t3-,4+/m1
[1H15]HResonance + [1H15:1H16]J3HH InChI=1S/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i3H,4H
[1H15]HResonance + [1H15:1H9,1H10,1H11]J3HH + [1H15:1H12,1H13,1H14]J3HH InChI=1S/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i1H3,2H3,3H
[1H15]HResonance + [1H15:1H9,1H10,1H11]J3HH + [1H15:1H16]J3HH InChI=1S/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i1H3,3H,4H/t3-,4-
[1H15]HResonance + [1H15:1H12,1H13,1H14]J3HH + [1H15:1H16]J3HH InChI=1S/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i1H3,3H,4H/t3-,4+/m1
[1H15]HResonance + [1H15:1H9,1H10,1H11]J3HH + [1H15:1H12,1H13,1H14]J3HH + [1H15:1H16]J3HH InChI=1S/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i1H3,2H3,3H,4H
[1H15]HResonance + [1H15:13C3]J1CH + [1H15:1H9,1H10,1H11]J3HH InChI=1S/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i1H3,3+1H/t3-,4-
[1H15]HResonance + [1H15:13C3]J1CH + [1H15:1H12,1H13,1H14]J3HH InChI=1S/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i1H3,3+1H/t3-,4+/m1
[1H15]HResonance + [1H15:13C3]J1CH + [1H15:1H16]J3HH InChI=1S/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i3+1H,4H
[1H15]HResonance + [1H15:13C3]J1CH + [1H15:1H9,1H10,1H11]J3HH + [1H15:1H12,1H13,1H14]J3HH InChI=1S/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i1H3,2H3,3+1H
[1H15]HResonance + [1H15:13C3]J1CH + [1H15:1H9,1H10,1H11]J3HH + [1H15:1H16]J3HH InChI=1S/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i1H3,3+1H,4H/t3-,4-
[1H15]HResonance + [1H15:13C3]J1CH + [1H15:1H12,1H13,1H14]J3HH + [1H15:1H16]J3HH InChI=1S/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i1H3,3+1H,4H/t3-,4+/m1
[1H15]HResonance + [1H15:13C3]J1CH + [1H15:1H9,1H10,1H11]J3HH + [1H15:1H12,1H13,1H14]J3HH + [1H15:1H16]J3HH InChI=1S/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i1H3,2H3,3+1H,4H
[1H16]HResonance InChI=1S/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i4H
[1H16]HResonance + [1H16:13C4]J1CH InChI=1S/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i4+1H
[1H16]HResonance + [1H16:1H15]J3HH InChI=1S/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i3H,4H
[1H16]HResonance + [1H16:13C4]J1CH + [1H16:1H15]J3HH InChI=1S/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i3H,4+1H
Note
Notice that the csv output includes a J-coupling description of the transient peak
and the representative InChI.
Workflow to generate InChI for data deposition from NMR experiments¶
- Obtain standard
InChIwith correct bonded structure and stereochemistry. - Convert to fully representative
InChIwith proper ionization states if necessary (theionizecommand). - Enumerate partial isotopomer
InChI(thenmrcommand). - Select appropriate partial isotopomer
InChI.
For example, the following InChI represents amino acid L-Valine:
InChI=1S/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1
with the following chemical structure:
We want to generate partial isotopomer InChI for the zwitterionic form of l-valine.
To change the ionization state within molecule, we need to use the ionize command
on a standard InChI:
# docker run isoenum ionize 'InChI=1S/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1' -z N:6:+1 -z O:8:-1 -f inchi
or
# docker run isoenum ionize 'InChI=1S/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1' --state=N:6:+1 --state=O:8:-1 --format=inchi
Output:
InChI=1/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/f/h6H
The generated InChI corresponds to the following structure:
Next, we want to enumerate all possible isotopomers for “1D1H” NMR experiment:
# docker run isoenum nmr 'InChI=1/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/f/h6H' --type=1D1H --format=csv
or
# docker run isoenum nmr 'InChI=1/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/f/h6H' -t 1D1H -f csv
Output:
[1H9,1H10,1H11]HResonance InChI=1/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i1H3/t3-,4-/f/h6H/i/tM
[1H9,1H10,1H11]HResonance + [1H9,1H10,1H11:13C1]J1CH InChI=1/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i1+1H3/t3-,4-/f/h6H/i/tM
[1H9,1H10,1H11]HResonance + [1H9,1H10,1H11:1H15]J3HH InChI=1/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i1H3,3H/t3-,4-/f/h6H/i/tM
[1H9,1H10,1H11]HResonance + [1H9,1H10,1H11:13C1]J1CH + [1H9,1H10,1H11:1H15]J3HH InChI=1/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i1+1H3,3H/t3-,4-/f/h6H/i/tM
[1H12,1H13,1H14]HResonance InChI=1/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i1H3/t3-,4+/m1/f/h6H/i/tM/m1
[1H12,1H13,1H14]HResonance + [1H12,1H13,1H14:13C2]J1CH InChI=1/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i1+1H3/t3-,4+/m1/f/h6H/i/tM/m1
[1H12,1H13,1H14]HResonance + [1H12,1H13,1H14:1H15]J3HH InChI=1/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i1H3,3H/t3-,4+/m1/f/h6H/i/tM/m1
[1H12,1H13,1H14]HResonance + [1H12,1H13,1H14:13C2]J1CH + [1H12,1H13,1H14:1H15]J3HH InChI=1/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i1+1H3,3H/t3-,4+/m1/f/h6H/i/tM/m1
[1H15]HResonance InChI=1/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i3H/f/h6H
[1H15]HResonance + [1H15:13C3]J1CH InChI=1/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i3+1H/f/h6H
[1H15]HResonance + [1H15:1H9,1H10,1H11]J3HH InChI=1/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i1H3,3H/t3-,4-/f/h6H/i/tM
[1H15]HResonance + [1H15:1H12,1H13,1H14]J3HH InChI=1/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i1H3,3H/t3-,4+/m1/f/h6H/i/tM/m1
[1H15]HResonance + [1H15:1H16]J3HH InChI=1/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i3H,4H/f/h6H
[1H15]HResonance + [1H15:1H9,1H10,1H11]J3HH + [1H15:1H12,1H13,1H14]J3HH InChI=1/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i1H3,2H3,3H/f/h6H
[1H15]HResonance + [1H15:1H9,1H10,1H11]J3HH + [1H15:1H16]J3HH InChI=1/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i1H3,3H,4H/t3-,4-/f/h6H/i/tM
[1H15]HResonance + [1H15:1H12,1H13,1H14]J3HH + [1H15:1H16]J3HH InChI=1/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i1H3,3H,4H/t3-,4+/m1/f/h6H/i/tM/m1
[1H15]HResonance + [1H15:1H9,1H10,1H11]J3HH + [1H15:1H12,1H13,1H14]J3HH + [1H15:1H16]J3HH InChI=1/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i1H3,2H3,3H,4H/f/h6H
[1H15]HResonance + [1H15:13C3]J1CH + [1H15:1H9,1H10,1H11]J3HH InChI=1/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i1H3,3+1H/t3-,4-/f/h6H/i/tM
[1H15]HResonance + [1H15:13C3]J1CH + [1H15:1H12,1H13,1H14]J3HH InChI=1/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i1H3,3+1H/t3-,4+/m1/f/h6H/i/tM/m1
[1H15]HResonance + [1H15:13C3]J1CH + [1H15:1H16]J3HH InChI=1/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i3+1H,4H/f/h6H
[1H15]HResonance + [1H15:13C3]J1CH + [1H15:1H9,1H10,1H11]J3HH + [1H15:1H12,1H13,1H14]J3HH InChI=1/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i1H3,2H3,3+1H/f/h6H
[1H15]HResonance + [1H15:13C3]J1CH + [1H15:1H9,1H10,1H11]J3HH + [1H15:1H16]J3HH InChI=1/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i1H3,3+1H,4H/t3-,4-/f/h6H/i/tM
[1H15]HResonance + [1H15:13C3]J1CH + [1H15:1H12,1H13,1H14]J3HH + [1H15:1H16]J3HH InChI=1/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i1H3,3+1H,4H/t3-,4+/m1/f/h6H/i/tM/m1
[1H15]HResonance + [1H15:13C3]J1CH + [1H15:1H9,1H10,1H11]J3HH + [1H15:1H12,1H13,1H14]J3HH + [1H15:1H16]J3HH InChI=1/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i1H3,2H3,3+1H,4H/f/h6H
[1H16]HResonance InChI=1/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i4H/f/h6H
[1H16]HResonance + [1H16:13C4]J1CH InChI=1/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i4+1H/f/h6H
[1H16]HResonance + [1H16:1H15]J3HH InChI=1/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i3H,4H/f/h6H
[1H16]HResonance + [1H16:13C4]J1CH + [1H16:1H15]J3HH InChI=1/C5H11NO2/c1-3(2)4(6)5(7)8/h3-4H,6H2,1-2H3,(H,7,8)/t4-/m0/s1/i3H,4+1H/f/h6H
Finally, select appropriate InChI from the generated possibilities and associate
them with the appropriate transient peak (chemical shift).
Output format¶
There are several output formats available:
inchi: producesInChIstring.sdf: producesSDfilewith one or moreMolfileandInChIassociated with it.mol: the same assdf.json: produces JSON representation ofSDfile.csv: produces tab-separated csv file with the information fromSDfiledata block.
To specify the
inchioutput format (which is set to default and does not require format specification), use the-for--formatoption followed byinchi:
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol isoenum name /pentane-2_2-diol.mol -s 13:C:2 -f inchi
or
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol isoenum name /pentane-2_2-diol.mol --specific=13:C:2 --format=inchi
Output:
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1
- To specify the
molorsdfoutput format, use the-for--formatoption followed bymolorsdf:
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol isoenum name /pentane-2_2-diol.mol -s 13:C:2 -f sdf
or
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol isoenum name /pentane-2_2-diol.mol --specific=13:C:2 --format=sdf
Output:
pentane-2_2-diol
OpenBabel04241818183D
19 18 0 0 0 0 0 0 0 0999 V2000
0.8564 0.0224 -0.0199 C 0 0 0 0 0 0 0 0 0 0 0 0
5.0590 -2.7653 -0.2642 C 0 0 0 0 0 0 0 0 0 0 0 0
2.3767 0.0633 -0.0253 C 0 0 0 0 0 0 0 0 0 0 0 0
2.9725 -1.3472 -0.1203 C 0 0 0 0 0 0 0 0 0 0 0 0
4.5036 -1.3472 -0.1439 C 0 0 0 0 0 0 0 0 0 0 0 0
4.9424 -0.5621 -1.2388 O 0 0 0 0 0 0 0 0 0 0 0 0
5.0329 -0.7920 1.0484 O 0 0 0 0 0 0 0 0 0 0 0 0
0.4514 1.0368 0.0457 H 0 0 0 0 0 0 0 0 0 0 0 0
0.4813 -0.5495 0.8345 H 0 0 0 0 0 0 0 0 0 0 0 0
0.4733 -0.4367 -0.9365 H 0 0 0 0 0 0 0 0 0 0 0 0
4.7458 -3.2426 -1.1982 H 0 0 0 0 0 0 0 0 0 0 0 0
4.7417 -3.3903 0.5788 H 0 0 0 0 0 0 0 0 0 0 0 0
6.1556 -2.7490 -0.2585 H 0 0 0 0 0 0 0 0 0 0 0 0
2.7259 0.5602 0.8869 H 0 0 0 0 0 0 0 0 0 0 0 0
2.7092 0.6719 -0.8743 H 0 0 0 0 0 0 0 0 0 0 0 0
2.5969 -1.8221 -1.0358 H 0 0 0 0 0 0 0 0 0 0 0 0
2.6148 -1.9367 0.7329 H 0 0 0 0 0 0 0 0 0 0 0 0
5.0489 -1.1442 -2.0068 H 0 0 0 0 0 0 0 0 0 0 0 0
4.6612 -1.2841 1.7969 H 0 0 0 0 0 0 0 0 0 0 0 0
1 3 1 0 0 0 0
1 8 1 0 0 0 0
1 9 1 0 0 0 0
1 10 1 0 0 0 0
2 5 1 0 0 0 0
2 11 1 0 0 0 0
2 12 1 0 0 0 0
2 13 1 0 0 0 0
3 4 1 0 0 0 0
3 14 1 0 0 0 0
3 15 1 0 0 0 0
4 5 1 0 0 0 0
4 16 1 0 0 0 0
4 17 1 0 0 0 0
5 6 1 0 0 0 0
5 7 1 0 0 0 0
6 18 1 0 0 0 0
7 19 1 0 0 0 0
M ISO 2 1 12 2 13
M END
> <InChI>
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1
$$$$
- To specify the
jsonoutput format, use the-for--formatoption followed byjson:
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol isoenum name /pentane-2_2-diol.mol -s 13:C:2 -f json
or
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol isoenum name /pentane-2_2-diol.mol --specific=13:C:2 --format=json
Output:
{
"1": {
"molfile": {
"HeaderBlock": {
"molecule_name": "",
"software": "OpenBabel02101812223D",
"comment": ""
},
"Ctab": {
"CtabCountsLine": {
"number_of_atoms": "19",
"number_of_bonds": "18",
"number_of_atom_lists": "0",
"not_used1": "0",
"chiral_flag": "0",
"number_of_stext_entries": "0",
"not_used2": "0",
"not_used3": "0",
"not_used4": "0",
"not_used5": "0",
"number_of_properties": "999",
"version": "V2000"
},
"CtabAtomBlock": [
{
"x": "0.8986",
"y": "-0.0477",
"z": "0.0323",
"atom_symbol": "C",
"mass_difference": "0",
"charge": "0",
"atom_stereo_parity": "0",
"hydrogen_count": "0",
"stereo_care_box": "0",
"valence": "0",
"h0designator": "0",
"not_used1": "0",
"not_used2": "0",
"atom_atom_mapping_number": "0",
"inversion_retention_flag": "0",
"exact_change_flag": "0"
},
...
],
"CtabBondBlock": [
{
"first_atom_number": "1",
"second_atom_number": "3",
"bond_type": "1",
"bond_stereo": "0",
"not_used1": "0",
"bond_topology": "0",
"reacting_center_status": "0"
},
...
],
"CtabPropertiesBlock": {
"ISO": [
{
"atom_number": "1",
"absolute_mass": "12"
},
{
"atom_number": "2",
"absolute_mass": "13"
}
]
}
}
},
"data": {
"InChI": [
"InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1"
]
}
}
}
- To specify the
csvoutput format, use the-for--formatoption followed bycsv:
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol isoenum name /pentane-2_2-diol.mol -s 13:C:2 -f csv
or
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol isoenum name /pentane-2_2-diol.mol --specific=13:C:2 --format=csv
Output:
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1
Output file¶
In the case of using the isoenum docker container, both the input file and the output file
must be mounted as volumes for the docker container to see them.
Warning
You need to provide the absolute path to the input and output files, otherwise the docker container will not be able to see them.
For example, -v /absolute/path/to/input.txt:/input.txt, where path on the
left side of : is the absolute path on the host machine and the path on the
right side of : is the path within the docker container.
In the same way, you will need to create an empty text file and mount it as a volume,
so the docker container can write to it, -v /absolute/path/to/output.txt:/output.txt,
where the path on the left side of : is the absolute path on the host machine and the path
on the right side of : is the path within the docker container.
- To save the generated output into a file, use the
-oor--outputoption followed by filename. For example, save the generated output ininchiformat:
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol \
-v /absolute/path/to/outfile.inchi:/outfile.inchi \
isoenum name /pentane-2_2-diol.mol -a 13:C -f inchi -o /outfile.inchi
or
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol \
-v /absolute/path/to/outfile.inchi:/outfile.inchi \
isoenum name /pentane-2_2-diol.mol --all=13:C --format=inchi --output=/outfile.inchi
The generated file will contain the following output:
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,3+1,4+1,5+1
- To save the generated output in
molorsdfformat:
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol \
-v /absolute/path/to/outfile.sdf:/outfile.sdf \
isoenum name /pentane-2_2-diol.mol -a 13:C -f sdf -o /outfile.sdf
or
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol \
-v /absolute/path/to/outfile.sdf:/outfile.sdf \
isoenum name /pentane-2_2-diol.mol --all=13:C --format=sdf --output=/outfile.sdf
The generated file will contain the following output:
pentane-2_2-diol
OpenBabel04251811053D
19 18 0 0 0 0 0 0 0 0999 V2000
0.9237 -0.0881 0.1091 C 0 0 0 0 0 0 0 0 0 0 0 0
5.1259 -2.4797 1.5667 C 0 0 0 0 0 0 0 0 0 0 0 0
2.4438 -0.0580 0.0798 C 0 0 0 0 0 0 0 0 0 0 0 0
3.0394 -1.2473 0.8454 C 0 0 0 0 0 0 0 0 0 0 0 0
4.5756 -1.2658 0.8182 C 0 0 0 0 0 0 0 0 0 0 0 0
4.9993 -1.2893 -0.5316 O 0 0 0 0 0 0 0 0 0 0 0 0
5.1095 -0.1114 1.4395 O 0 0 0 0 0 0 0 0 0 0 0 0
0.5176 0.7650 -0.4432 H 0 0 0 0 0 0 0 0 0 0 0 0
0.5500 -0.0378 1.1365 H 0 0 0 0 0 0 0 0 0 0 0 0
0.5406 -1.0041 -0.3524 H 0 0 0 0 0 0 0 0 0 0 0 0
4.8066 -3.4184 1.1046 H 0 0 0 0 0 0 0 0 0 0 0 0
4.8189 -2.4761 2.6168 H 0 0 0 0 0 0 0 0 0 0 0 0
6.2250 -2.4670 1.5528 H 0 0 0 0 0 0 0 0 0 0 0 0
2.7928 0.8838 0.5163 H 0 0 0 0 0 0 0 0 0 0 0 0
2.7749 -0.0753 -0.9642 H 0 0 0 0 0 0 0 0 0 0 0 0
2.6598 -2.1729 0.3950 H 0 0 0 0 0 0 0 0 0 0 0 0
2.6864 -1.2108 1.8833 H 0 0 0 0 0 0 0 0 0 0 0 0
5.1891 -2.2082 -0.7786 H 0 0 0 0 0 0 0 0 0 0 0 0
4.7262 -0.0485 2.3265 H 0 0 0 0 0 0 0 0 0 0 0 0
1 3 1 0 0 0 0
1 8 1 0 0 0 0
1 9 1 0 0 0 0
1 10 1 0 0 0 0
2 5 1 0 0 0 0
2 11 1 0 0 0 0
2 12 1 0 0 0 0
2 13 1 0 0 0 0
3 4 1 0 0 0 0
3 14 1 0 0 0 0
3 15 1 0 0 0 0
4 5 1 0 0 0 0
4 16 1 0 0 0 0
4 17 1 0 0 0 0
5 6 1 0 0 0 0
5 7 1 0 0 0 0
6 18 1 0 0 0 0
7 19 1 0 0 0 0
M ISO 5 1 12 2 13 3 13 4 13 5 13
M END
> <InChI>
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,3+1,4+1,5+1
$$$$
- To save the generated output in
jsonformat:
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol \
-v /absolute/path/to/outfile.sdf:/outfile.json \
isoenum name /pentane-2_2-diol.mol -a 13:C -f json -o outfile.json
or
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol \
-v /absolute/path/to/outfile.sdf:/outfile.json \
isoenum name /pentane-2_2-diol.mol --all=13:C --format=json --output=outfile.json
The generated file will contain the following output:
{
"1": {
"molfile": {
"HeaderBlock": {
"molecule_name": "",
"software": "OpenBabel02101812223D",
"comment": ""
},
"Ctab": {
"CtabCountsLine": {
"number_of_atoms": "19",
"number_of_bonds": "18",
"number_of_atom_lists": "0",
"not_used1": "0",
"chiral_flag": "0",
"number_of_stext_entries": "0",
"not_used2": "0",
"not_used3": "0",
"not_used4": "0",
"not_used5": "0",
"number_of_properties": "999",
"version": "V2000"
},
"CtabAtomBlock": [
{
"x": "0.8986",
"y": "-0.0477",
"z": "0.0323",
"atom_symbol": "C",
"mass_difference": "0",
"charge": "0",
"atom_stereo_parity": "0",
"hydrogen_count": "0",
"stereo_care_box": "0",
"valence": "0",
"h0designator": "0",
"not_used1": "0",
"not_used2": "0",
"atom_atom_mapping_number": "0",
"inversion_retention_flag": "0",
"exact_change_flag": "0"
},
...
],
"CtabBondBlock": [
{
"first_atom_number": "1",
"second_atom_number": "3",
"bond_type": "1",
"bond_stereo": "0",
"not_used1": "0",
"bond_topology": "0",
"reacting_center_status": "0"
},
...
],
"CtabPropertiesBlock": {
"ISO": [
{
"atom_number": "1",
"absolute_mass": "12"
},
{
"atom_number": "2",
"absolute_mass": "13"
}
]
}
}
},
"data": {
"InChI": [
"InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,3+1,4+1,5+1"
]
}
}
}
- To save the generated output in
csvformat:
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol \
-v /absolute/path/to/outfile.sdf:/outfile.csv \
isoenum name /pentane-2_2-diol.mol -a 13:C -f csv -o outfile.csv
or
# docker run -v /absolute/path/to/pentane-2_2-diol.mol:/pentane-2_2-diol.mol \
-v /absolute/path/to/outfile.sdf:/outfile.csv \
isoenum name /pentane-2_2-diol.mol --all=13:C --format=csv --output=outfile.csv
The generated file will contain the following output:
InChI=1S/C5H12O2/c1-3-4-5(2,6)7/h6-7H,3-4H2,1-2H3/i1+0,2+1,3+1,4+1,5+1