TinkerTools / tinker

Tinker: Software Tools for Molecular Design
https://dasher.wustl.edu/tinker/
Other
130 stars 61 forks source link

scan on toluene or benzene sdf files from pubchem results in a memory leak #61

Closed danny305 closed 4 years ago

danny305 commented 4 years ago

When I try to run scan with either an xyz and key file generated with sdf2tinkerxyz for toluene or benzene (sdf files obtained from pubchem) I get the following error:

$ scan toluene.xyz -k toluene.key 0 10 20 0.00001 | tee toluene.tout

    ######################################################################
   ##########################################################################
  ###                                                                      ###
 ###            Tinker  ---  Software Tools for Molecular Design            ###
 ##                                                                          ##
 ##                          Version 8.7  June 2019                          ##
 ##                                                                          ##
 ##               Copyright (c)  Jay William Ponder  1990-2019               ##
 ###                           All Rights Reserved                          ###
  ###                                                                      ###
   ##########################################################################
     ######################################################################

 Additional Partial Charges for Specific Atoms :

        Atom                Charge

           1                0.1500
           2               -0.1500
           3               -0.1500
           4               -0.1435
           5                0.1500
           6               -0.1500
           7               -0.1500
           8                0.1435
           9                0.1500
          10               -0.1500
          11                0.1500
          12                0.0000
          13                0.0000
          14                0.0000
          15                0.1500

 Number of Torsions Used in Derivative Computation :     1

 Generating Seed Point for Potential Energy Surface Scan

    Potential Surface Map       Minimum      1               18.4174

 Normal Mode Local Search       Minimum      1

free(): invalid pointer

Program received signal SIGABRT: Process abort signal.

Backtrace for this error:
#0  0x82337D
#1  0x80E360
#2  0x7FAFD682EFCF
#3  0x7FAFD682EF47
#4  0x7FAFD68308B0
#5  0x7FAFD6879906
#6  0x7FAFD6880979
#7  0x7FAFD6887E8B
#8  0x40AF19
#9  0x4062BC
#10  0x4068A3
#11  0x406F57
#12  0x402D4C
#13  0x7FAFD6811B96
#14  0x404FEC
Aborted

I do not know how to begin addressing this issue since tinker is written in fortran.

I do not get this error when I run scan on other molecules such as m-xylene.sdf, L-cysteine.sdf, and D-Leucine.sdf (all sdf files obtained from pubchem).

danny305 commented 4 years ago

Here are the input files:

toluene.sdf

toluene
  -OEChem-07142000442D

 15 15  0     0  0  0  0  0  0999 V2000
    2.8660    0.5000    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
    2.0000    0.0000    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
    3.7320   -0.0000    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
    2.8660    1.5000    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
    2.0000   -1.0000    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
    3.7320   -1.0000    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
    2.8660   -1.5000    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
    1.4631    0.3100    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
    4.2690    0.3100    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
    3.4860    1.5000    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
    2.8660    2.1200    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
    2.2460    1.5000    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
    1.4631   -1.3100    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
    4.2690   -1.3100    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
    2.8660   -2.1200    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
  1  2  2  0  0  0  0
  1  3  1  0  0  0  0
  1  4  1  0  0  0  0
  2  5  1  0  0  0  0
  2  8  1  0  0  0  0
  3  6  2  0  0  0  0
  3  9  1  0  0  0  0
  4 10  1  0  0  0  0
  4 11  1  0  0  0  0
  4 12  1  0  0  0  0
  5  7  2  0  0  0  0
  5 13  1  0  0  0  0
  6  7  1  0  0  0  0
  6 14  1  0  0  0  0
  7 15  1  0  0  0  0
M  END
> <PUBCHEM_COMPOUND_CID>
1140

> <PUBCHEM_COMPOUND_CANONICALIZED>
1

> <PUBCHEM_CACTVS_COMPLEXITY>
42

> <PUBCHEM_CACTVS_HBOND_ACCEPTOR>
0

> <PUBCHEM_CACTVS_HBOND_DONOR>
0

> <PUBCHEM_CACTVS_ROTATABLE_BOND>
0

> <PUBCHEM_CACTVS_SUBSKEYS>
AAADccBgAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAABAAAAGAAAAAAADACAGAAyAIAAAACAAiBCAAACAAAgAAAIiAAAAIgIICKAERCAIAAggAAIiAcAgAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==

> <PUBCHEM_IUPAC_OPENEYE_NAME>
toluene

> <PUBCHEM_IUPAC_CAS_NAME>
toluene

> <PUBCHEM_IUPAC_NAME_MARKUP>
toluene

> <PUBCHEM_IUPAC_NAME>
toluene

> <PUBCHEM_IUPAC_SYSTEMATIC_NAME>
methylbenzene

> <PUBCHEM_IUPAC_TRADITIONAL_NAME>
toluene

> <PUBCHEM_IUPAC_INCHI>
InChI=1S/C7H8/c1-7-5-3-2-4-6-7/h2-6H,1H3

> <PUBCHEM_IUPAC_INCHIKEY>
YXFVVABEGXRONW-UHFFFAOYSA-N

> <PUBCHEM_XLOGP3>
2.7

> <PUBCHEM_EXACT_MASS>
92.0626

> <PUBCHEM_MOLECULAR_FORMULA>
C7H8

> <PUBCHEM_MOLECULAR_WEIGHT>
92.14

> <PUBCHEM_OPENEYE_CAN_SMILES>
CC1=CC=CC=C1

> <PUBCHEM_OPENEYE_ISO_SMILES>
CC1=CC=CC=C1

> <PUBCHEM_CACTVS_TPSA>
0

> <PUBCHEM_MONOISOTOPIC_WEIGHT>
92.0626

> <PUBCHEM_TOTAL_CHARGE>
0

> <PUBCHEM_HEAVY_ATOM_COUNT>
7

> <PUBCHEM_ATOM_DEF_STEREO_COUNT>
0

> <PUBCHEM_ATOM_UDEF_STEREO_COUNT>
0

> <PUBCHEM_BOND_DEF_STEREO_COUNT>
0

> <PUBCHEM_BOND_UDEF_STEREO_COUNT>
0

> <PUBCHEM_ISOTOPIC_ATOM_COUNT>
0

> <PUBCHEM_COMPONENT_COUNT>
1

> <PUBCHEM_CACTVS_TAUTO_COUNT>
-1

> <PUBCHEM_COORDINATE_TYPE>
1
5
255

> <PUBCHEM_BONDANNOTATIONS>
1  2  8
1  3  8
2  5  8
3  6  8
5  7  8
6  7  8

$$$$

toluene.xyz

    15  toluene
     1  H      1.463100    0.310000    0.000000    23     2
     2  C      2.000000    0.000000    0.000000   133     1     3     4
     3  C      2.000000   -1.000000    0.000000   133     2     5     6
     4  C      2.866000    0.500000    0.000000   133     2     7     8
     5  H      1.463100   -1.310000    0.000000    23     3
     6  C      2.866000   -1.500000    0.000000   133     3     9    10
     7  C      3.732000   -0.000000    0.000000   133     4    10    11
     8  C      2.866000    1.500000    0.000000     1     4    12    13    14
     9  H      2.866000   -2.120000    0.000000    23     6
    10  C      3.732000   -1.000000    0.000000   133     6     7    15
    11  H      4.269000    0.310000    0.000000    23     7
    12  H      3.486000    1.500000    0.000000    23     8
    13  H      2.866000    2.120000    0.000000    23     8
    14  H      2.246000    1.500000    0.000000    23     8
    15  H      4.269000   -1.310000    0.000000    23    10

toluene.key


# Force Field Selection
PARAMETERS        /NMars/TINKER/params/mmff.prm

# Random Number
RANDOMSEED        123456789

# Constriant And Restraint
ENFORCE-CHIRALITY 

charge -1 0.150000
charge -2 -0.150000
charge -3 -0.150000
charge -4 -0.143500
charge -5 0.150000
charge -6 -0.150000
charge -7 -0.150000
charge -8 0.143500
charge -9 0.150000
charge -10 -0.150000
charge -11 0.150000
charge -12 0.000000
charge -13 0.000000
charge -14 0.000000
charge -15 0.150000
jayponder commented 4 years ago

Thanks for posting this. SCAN is intended for torsional searches, so toluene and benzene are really kind of "corner cases" with 1 and 0 rotatable torsions, respectively. (The program doesn't try to rotate the C-C bonds in the aromatic rings, or in fact in any small rings in any molecule...).

I see what the problem is, and should be able to post a fix fairly soon.

jayponder commented 4 years ago

Thanks again for finding this issue. It has been fixed in the master Tinker repo. The only change is to one line in diagq.f and a few lines in scan.f. Let us know if you are still having trouble.

Again, the toluene and benzene molecule are not good test for SCAN. Take a look at the "dialanine" test case in the /test subdirectory of the master repo for a more appropriate example.