Dear OpenBabel developers,

while playing with obenergy I found a few more misassignments of MMFF94
atom types and/or MMFF94 charges. Included is a test.sdf file which
triggers the misassignments, so you may test yourself the results before
and after the cure.

The attached patch fixes all problems with no collateral issues: I have
verified that the whole 761-molecule MMFF94 validation set is correctly
typed and charged.
I hope you will consider including it in the forthcoming 2.3 release.

Thanks for your time,
best regards
Paolo

-- 
================================================================
Paolo Tosco, Ph.D.                 Phone: +39 011 6707680
Dipartimento di Scienza            Fax:   +39 011 6707687
e Tecnologia del Farmaco           Mob:   +39 348 5537206
Via Pietro Giuria, 9               E-mail: [email protected]
I-10125 Torino
Italy                              http://www.open3dqsar.org
================================================================



##### ATTACHMENTS #####


##### START ob_test_suite_05-Oct-2010.sdf #####

CUDPAS

CUDPAS
  17 17  0  0  0  0  0  0  0  0999 V2000
    -8.6500   -7.0282   14.6685 N   0  0  0  0  0  0  0  0  0  0  0  0
    -8.4295   -6.1672   15.6857 C   0  0  0  0  0  0  0  0  0  0  0  0
    -8.4616   -4.7920   15.5489 C   0  0  0  0  0  0  0  0  0  0  0  0
    -8.7204   -4.2531   14.2851 C   0  0  0  0  0  0  0  0  0  0  0  0
    -8.9198   -5.1097   13.2036 C   0  0  0  0  0  0  0  0  0  0  0  0
    -8.8790   -6.4748   13.4528 C   0  0  0  0  0  0  0  0  0  0  0  0
    -9.1333   -4.7224   11.9116 O   0  0  0  0  0  0  0  0  0  0  0  0
    -8.8081   -2.7918   14.1699 C   0  0  0  0  0  0  0  0  0  0  0  0
    -8.0140   -1.8188   14.5078 N   0  0  0  0  0  0  0  0  0  0  0  0
    -6.8082   -2.1949   15.0372 O   0  5  0  0  0  0  0  0  0  0  0  0
   -10.0274   -2.2522   13.5585 N   0  3  0  0  0  0  0  0  0  0  0  0
   -11.0231   -2.1167   14.2902 O   0  0  0  0  0  0  0  0  0  0  0  0
   -10.0028   -2.0935   12.3224 O   0  5  0  0  0  0  0  0  0  0  0  0
    -8.2205   -6.6240   16.6483 H   0  0  0  0  0  0  0  0  0  0  0  0
    -8.2759   -4.1425   16.3998 H   0  0  0  0  0  0  0  0  0  0  0  0
    -9.0291   -7.1852   12.6451 H   0  0  0  0  0  0  0  0  0  0  0  0
    -8.9776   -3.7617   11.8043 H   0  0  0  0  0  0  0  0  0  0  0  0
   1  2  1  0  0  0  0
   1  6  2  0  0  0  0
   2  3  2  0  0  0  0
   2 14  1  0  0  0  0
   3  4  1  0  0  0  0
   3 15  1  0  0  0  0
   4  5  2  0  0  0  0
   4  8  1  0  0  0  0
   5  6  1  0  0  0  0
   5  7  1  0  0  0  0
   6 16  1  0  0  0  0
   7 17  1  0  0  0  0
   8  9  2  0  0  0  0
   8 11  1  0  0  0  0
   9 10  1  0  0  0  0
  11 12  2  0  0  0  0
  11 13  1  0  0  0  0
M  CHG  1  10  -1
M  CHG  1  11   1
M  CHG  1  13  -1
M  END
$$$$
FADVUB

FADVUB
  23 22  0  0  1  0  0  0  0  0999 V2000
     3.6430    9.3364   15.9668 S   0  0  3  0  0  0  0  0  0  0  0  0
     2.5018   10.2318   15.9341 O   0  0  0  0  0  0  0  0  0  0  0  0
     3.6326    7.9472   15.2961 N   0  0  0  0  0  0  0  0  0  0  0  0
     5.0525   10.2191   15.3273 C   0  0  0  0  0  0  0  0  0  0  0  0
     4.0636    9.0822   17.6871 C   0  0  0  0  0  0  0  0  0  0  0  0
     3.8229   10.3355   18.5335 C   0  0  0  0  0  0  0  0  0  0  0  0
     4.7014   10.3639   19.7737 C   0  0  0  0  0  0  0  0  0  0  0  0
     4.1033   11.3322   20.7816 N   0  0  0  0  0  0  0  0  0  0  0  0
     6.1611   10.8340   19.4749 C   0  0  0  0  0  0  0  0  0  0  0  0
     6.6676   10.4904   18.3864 O   0  0  0  0  0  0  0  0  0  0  0  0
     6.5565   11.5892   20.4214 O   0  0  0  0  0  0  0  0  0  0  0  0
     2.8042    7.4109   15.5588 H   0  0  0  0  0  0  0  0  0  0  0  0
     5.9489    9.6113   15.4640 H   0  0  0  0  0  0  0  0  0  0  0  0
     5.1488   11.1682   15.8569 H   0  0  0  0  0  0  0  0  0  0  0  0
     4.8824   10.4096   14.2653 H   0  0  0  0  0  0  0  0  0  0  0  0
     5.0946    8.7211   17.7138 H   0  0  0  0  0  0  0  0  0  0  0  0
     3.4242    8.2717   18.0553 H   0  0  0  0  0  0  0  0  0  0  0  0
     4.0058   11.2431   17.9454 H   0  0  0  0  0  0  0  0  0  0  0  0
     2.7619   10.3616   18.8134 H   0  0  0  0  0  0  0  0  0  0  0  0
     4.7345    9.3951   20.2831 H   0  0  0  0  0  0  0  0  0  0  0  0
     4.9808   11.7054   21.2274 H   0  0  0  0  0  0  0  0  0  0  0  0
     3.5150   10.9125   21.4995 H   0  0  0  0  0  0  0  0  0  0  0  0
     3.6864   12.1537   20.3367 H   0  0  0  0  0  0  0  0  0  0  0  0
   1  2  2  0  0  0  0
   1  3  2  0  0  0  0
   1  4  1  0  0  0  0
   1  5  1  0  0  0  0
   3 12  1  0  0  0  0
   4 13  1  0  0  0  0
   4 14  1  0  0  0  0
   4 15  1  0  0  0  0
   5  6  1  0  0  0  0
   5 16  1  0  0  0  0
   5 17  1  0  0  0  0
   6  7  1  0  0  0  0
   6 18  1  0  0  0  0
   6 19  1  0  0  0  0
   7  8  1  0  0  0  0
   7  9  1  0  0  0  0
   7 20  1  0  0  0  0
   8 21  1  0  0  0  0
   8 22  1  0  0  0  0
   8 23  1  0  0  0  0
   9 10  2  0  0  0  0
   9 11  1  0  0  0  0
M  CHG  1   8   1
M  CHG  1  11  -1
M  END
$$$$
FIYBIY

FIYBIY
  26 27  0  0  1  0  0  0  0  0999 V2000
     0.8736    2.9588    0.7491 S   0  0  3  0  0  0  0  0  0  0  0  0
     1.0726    1.6584    0.1414 O   0  0  0  0  0  0  0  0  0  0  0  0
    -0.7561    4.8572   -1.7033 O   0  0  0  0  0  0  0  0  0  0  0  0
     1.1857    5.4699   -0.7407 O   0  0  0  0  0  0  0  0  0  0  0  0
    -0.2174    3.9606    0.3549 N   0  0  0  0  0  0  0  0  0  0  0  0
     0.7468    2.6933    2.5083 C   0  0  0  0  0  0  0  0  0  0  0  0
     1.3313    1.5509    3.0644 C   0  0  0  0  0  0  0  0  0  0  0  0
     1.2508    1.3370    4.4405 C   0  0  0  0  0  0  0  0  0  0  0  0
     0.5843    2.2556    5.2525 C   0  0  0  0  0  0  0  0  0  0  0  0
    -0.0103    3.3870    4.6917 C   0  0  0  0  0  0  0  0  0  0  0  0
     0.0657    3.6088    3.3163 C   0  0  0  0  0  0  0  0  0  0  0  0
     0.0130    4.7593   -0.7599 C   0  0  0  0  0  0  0  0  0  0  0  0
     2.0522    5.3191    0.4038 C   0  0  3  0  0  0  0  0  0  0  0  0
     2.4062    3.8531    0.5903 C   0  0  0  0  0  0  0  0  0  0  0  0
     3.3019    6.1488    0.1415 C   0  0  0  0  0  0  0  0  0  0  0  0
     1.8393    0.8207    2.4380 H   0  0  0  0  0  0  0  0  0  0  0  0
     1.6983    0.4486    4.8799 H   0  0  0  0  0  0  0  0  0  0  0  0
     0.5158    2.0821    6.3240 H   0  0  0  0  0  0  0  0  0  0  0  0
    -0.5441    4.0902    5.3268 H   0  0  0  0  0  0  0  0  0  0  0  0
    -0.4200    4.4839    2.8918 H   0  0  0  0  0  0  0  0  0  0  0  0
     1.5431    5.7311    1.2846 H   0  0  0  0  0  0  0  0  0  0  0  0
     3.0364    3.6755    1.4650 H   0  0  0  0  0  0  0  0  0  0  0  0
     2.9060    3.4534   -0.2991 H   0  0  0  0  0  0  0  0  0  0  0  0
     3.0353    7.1997   -0.0149 H   0  0  0  0  0  0  0  0  0  0  0  0
     4.0028    6.0874    0.9795 H   0  0  0  0  0  0  0  0  0  0  0  0
     3.8115    5.8159   -0.7695 H   0  0  0  0  0  0  0  0  0  0  0  0
   1  2  2  0  0  0  0
   1  5  2  0  0  0  0
   1  6  1  0  0  0  0
   1 14  1  0  0  0  0
   3 12  2  0  0  0  0
   4 12  1  0  0  0  0
   4 13  1  0  0  0  0
   5 12  1  0  0  0  0
   6  7  1  0  0  0  0
   6 11  2  0  0  0  0
   7  8  2  0  0  0  0
   7 16  1  0  0  0  0
   8  9  1  0  0  0  0
   8 17  1  0  0  0  0
   9 10  2  0  0  0  0
   9 18  1  0  0  0  0
  10 11  1  0  0  0  0
  10 19  1  0  0  0  0
  11 20  1  0  0  0  0
  13 14  1  0  0  0  0
  13 15  1  0  0  0  0
  13 21  1  0  0  0  0
  14 22  1  0  0  0  0
  14 23  1  0  0  0  0
  15 24  1  0  0  0  0
  15 25  1  0  0  0  0
  15 26  1  0  0  0  0
M  END
$$$$
FIZGOK

FIZGOK
  21 21  0  0  0  0  0  0  0  0999 V2000
     1.7957    1.3128    7.9486 S   0  0  0  0  0  0  0  0  0  0  0  0
     1.4860    0.8966    6.2778 C   0  0  0  0  0  0  0  0  0  0  0  0
     0.2127    1.1307    5.9565 C   0  0  0  0  0  0  0  0  0  0  0  0
    -0.5629    1.6810    7.0492 C   0  0  0  0  0  0  0  0  0  0  0  0
     0.1447    1.8482    8.1676 C   0  0  0  0  0  0  0  0  0  0  0  0
     2.7726    0.2964    5.3600 Cl  0  0  0  0  0  0  0  0  0  0  0  0
    -0.4489    0.8414    4.4044 Cl  0  0  0  0  0  0  0  0  0  0  0  0
    -2.2166    2.0955    6.8949 Cl  0  0  0  0  0  0  0  0  0  0  0  0
    -0.2919    2.4706    9.6776 Cl  0  0  0  0  0  0  0  0  0  0  0  0
     2.8683    2.4065    8.1591 N   0  0  0  0  0  0  0  0  0  0  0  0
     2.8022    3.6208    7.5007 C   0  0  0  0  0  0  0  0  0  0  0  0
     1.9115    3.9210    6.7174 O   0  0  0  0  0  0  0  0  0  0  0  0
     3.8375    4.4328    7.8267 O   0  0  0  0  0  0  0  0  0  0  0  0
     3.8245    5.7059    7.1764 C   0  0  0  0  0  0  0  0  0  0  0  0
     5.0365    6.4891    7.6422 C   0  0  0  0  0  0  0  0  0  0  0  0
     1.8915    0.0432    8.6558 O   0  0  0  0  0  0  0  0  0  0  0  0
     3.8696    5.5681    6.0902 H   0  0  0  0  0  0  0  0  0  0  0  0
     2.9103    6.2487    7.4418 H   0  0  0  0  0  0  0  0  0  0  0  0
     5.0696    7.4746    7.1694 H   0  0  0  0  0  0  0  0  0  0  0  0
     5.9591    5.9504    7.4022 H   0  0  0  0  0  0  0  0  0  0  0  0
     5.0171    6.6187    8.7294 H   0  0  0  0  0  0  0  0  0  0  0  0
   1  2  1  0  0  0  0
   1  5  1  0  0  0  0
   1 10  2  0  0  0  0
   1 16  2  0  0  0  0
   2  3  2  0  0  0  0
   2  6  1  0  0  0  0
   3  4  1  0  0  0  0
   3  7  1  0  0  0  0
   4  5  2  0  0  0  0
   4  8  1  0  0  0  0
   5  9  1  0  0  0  0
  10 11  1  0  0  0  0
  11 12  2  0  0  0  0
  11 13  1  0  0  0  0
  13 14  1  0  0  0  0
  14 15  1  0  0  0  0
  14 17  1  0  0  0  0
  14 18  1  0  0  0  0
  15 19  1  0  0  0  0
  15 20  1  0  0  0  0
  15 21  1  0  0  0  0
M  END
$$$$
SEMDIX

SEMDIX
  28 27  0  0  1  0  0  0  0  0999 V2000
     0.8497    6.5570    9.1635 S   0  0  0  0  0  0  0  0  0  0  0  0
    -1.6670    6.2080    9.8154 F   0  0  0  0  0  0  0  0  0  0  0  0
     1.0246    5.0706    8.9656 O   0  0  0  0  0  0  0  0  0  0  0  0
     1.4995    7.4084    8.0980 O   0  5  0  0  0  0  0  0  0  0  0  0
    -1.5325    8.1908    8.5575 N   0  3  0  0  0  0  0  0  0  0  0  0
    -0.9631    6.7618    8.7906 C   0  0  3  0  0  0  0  0  0  0  0  0
    -1.0031    8.6752    7.1863 C   0  0  0  0  0  0  0  0  0  0  0  0
    -1.7131    9.9192    6.6599 C   0  0  0  0  0  0  0  0  0  0  0  0
    -1.0109    9.1509    9.6394 C   0  0  0  0  0  0  0  0  0  0  0  0
    -1.3361    8.7553   11.0734 C   0  0  0  0  0  0  0  0  0  0  0  0
    -3.0573    8.0969    8.6094 C   0  0  0  0  0  0  0  0  0  0  0  0
    -3.6695    7.1965    7.5435 C   0  0  0  0  0  0  0  0  0  0  0  0
    -1.1630    6.1753    7.8879 H   0  0  0  0  0  0  0  0  0  0  0  0
    -1.1044    7.8541    6.4691 H   0  0  0  0  0  0  0  0  0  0  0  0
     0.0516    8.9292    7.2918 H   0  0  0  0  0  0  0  0  0  0  0  0
    -1.6419   10.7610    7.3535 H   0  0  0  0  0  0  0  0  0  0  0  0
    -1.2423   10.2331    5.7217 H   0  0  0  0  0  0  0  0  0  0  0  0
    -2.7680    9.7391    6.4390 H   0  0  0  0  0  0  0  0  0  0  0  0
    -1.4694   10.1259    9.4419 H   0  0  0  0  0  0  0  0  0  0  0  0
     0.0694    9.2712    9.5121 H   0  0  0  0  0  0  0  0  0  0  0  0
    -0.8940    7.7993   11.3612 H   0  0  0  0  0  0  0  0  0  0  0  0
    -0.9279    9.5106   11.7543 H   0  0  0  0  0  0  0  0  0  0  0  0
    -2.4125    8.7147   11.2584 H   0  0  0  0  0  0  0  0  0  0  0  0
    -3.3475    7.7212    9.5954 H   0  0  0  0  0  0  0  0  0  0  0  0
    -3.4525    9.1149    8.5237 H   0  0  0  0  0  0  0  0  0  0  0  0
    -3.3939    6.1480    7.6876 H   0  0  0  0  0  0  0  0  0  0  0  0
    -3.3930    7.4904    6.5284 H   0  0  0  0  0  0  0  0  0  0  0  0
    -4.7617    7.2494    7.6099 H   0  0  0  0  0  0  0  0  0  0  0  0
   1  3  2  0  0  0  0
   1  4  1  0  0  0  0
   1  6  1  0  0  0  0
   2  6  1  0  0  0  0
   5  6  1  0  0  0  0
   5  7  1  0  0  0  0
   5  9  1  0  0  0  0
   5 11  1  0  0  0  0
   6 13  1  0  0  0  0
   7  8  1  0  0  0  0
   7 14  1  0  0  0  0
   7 15  1  0  0  0  0
   8 16  1  0  0  0  0
   8 17  1  0  0  0  0
   8 18  1  0  0  0  0
   9 10  1  0  0  0  0
   9 19  1  0  0  0  0
   9 20  1  0  0  0  0
  10 21  1  0  0  0  0
  10 22  1  0  0  0  0
  10 23  1  0  0  0  0
  11 12  1  0  0  0  0
  11 24  1  0  0  0  0
  11 25  1  0  0  0  0
  12 26  1  0  0  0  0
  12 27  1  0  0  0  0
  12 28  1  0  0  0  0
M  CHG  1   4  -1
M  CHG  1   5   1
M  END
$$$$
SURDOX02

SURDOX02
  10  9  0  0  0  0  0  0  0  0999 V2000
     4.9022    2.5288    1.4835 S   0  0  0  0  0  0  0  0  0  0  0  0
     6.5479    2.5279    2.1508 C   0  0  0  0  0  0  0  0  0  0  0  0
     7.1781    3.6960    2.3858 N   0  0  0  0  0  0  0  0  0  0  0  0
     4.3537    1.2552    1.9185 O   0  0  0  0  0  0  0  0  0  0  0  0
     7.9904    3.7319    2.9887 H   0  0  0  0  0  0  0  0  0  0  0  0
     6.6186    4.5496    2.3672 H   0  0  0  0  0  0  0  0  0  0  0  0
     4.3401    3.7831    1.9554 O   0  0  0  0  0  0  0  0  0  0  0  0
     7.1907    1.3603    2.3517 N   0  0  0  0  0  0  0  0  0  0  0  0
     8.0034    1.3156    2.9534 H   0  0  0  0  0  0  0  0  0  0  0  0
     6.6404    0.5016    2.3081 H   0  0  0  0  0  0  0  0  0  0  0  0
   1  2  2  0  0  0  0
   1  4  2  0  0  0  0
   1  7  2  0  0  0  0
   2  3  1  0  0  0  0
   2  8  1  0  0  0  0
   3  5  1  0  0  0  0
   3  6  1  0  0  0  0
   8  9  1  0  0  0  0
   8 10  1  0  0  0  0
M  END
$$$$
VALWOU

VALWOU
  31 32  0  0  0  0  0  0  0  0999 V2000
    -3.2041    0.1999    8.6171 S   0  0  0  0  0  0  0  0  0  0  0  0
    -3.0262    2.5287    6.7298 S   0  0  0  0  0  0  0  0  0  0  0  0
    -3.2872    3.2134    8.0550 O   0  0  0  0  0  0  0  0  0  0  0  0
    -1.5541    2.3398    6.4435 O   0  5  0  0  0  0  0  0  0  0  0  0
    -3.6498    0.7930    6.9989 C   0  0  0  0  0  0  0  0  0  0  0  0
    -5.0072    0.8218    6.8941 F   0  0  0  0  0  0  0  0  0  0  0  0
    -3.2190   -0.0349    6.0148 F   0  0  0  0  0  0  0  0  0  0  0  0
    -1.5176   -0.2065    8.2909 C   0  0  0  0  0  0  0  0  0  0  0  0
    -1.0555   -0.0076    7.0443 F   0  0  0  0  0  0  0  0  0  0  0  0
    -1.4197   -1.5634    8.4557 F   0  0  0  0  0  0  0  0  0  0  0  0
    -0.5217    0.3612    9.3001 N   0  3  0  0  0  0  0  0  0  0  0  0
    -0.8475   -0.1028   10.7071 C   0  0  0  0  0  0  0  0  0  0  0  0
     0.2631    0.3441   11.6625 C   0  0  0  0  0  0  0  0  0  0  0  0
    -0.4851    1.8901    9.2453 C   0  0  0  0  0  0  0  0  0  0  0  0
     0.5153    2.3997   10.2936 C   0  0  0  0  0  0  0  0  0  0  0  0
     0.8513   -0.1557    8.8803 C   0  0  0  0  0  0  0  0  0  0  0  0
     1.9200    0.4078    9.8214 C   0  0  0  0  0  0  0  0  0  0  0  0
     1.2739    1.2343   10.9352 C   0  0  0  0  0  0  0  0  0  0  0  0
    -0.9413   -1.1944   10.7077 H   0  0  0  0  0  0  0  0  0  0  0  0
    -1.7996    0.3412   11.0154 H   0  0  0  0  0  0  0  0  0  0  0  0
     0.7656   -0.5355   12.0831 H   0  0  0  0  0  0  0  0  0  0  0  0
    -0.1774    0.8803   12.5118 H   0  0  0  0  0  0  0  0  0  0  0  0
    -1.4770    2.2803    9.4712 H   0  0  0  0  0  0  0  0  0  0  0  0
    -0.1454    2.1848    8.2527 H   0  0  0  0  0  0  0  0  0  0  0  0
     1.2153    3.0993    9.8208 H   0  0  0  0  0  0  0  0  0  0  0  0
    -0.0165    2.9732   11.0629 H   0  0  0  0  0  0  0  0  0  0  0  0
     1.0505    0.1556    7.8484 H   0  0  0  0  0  0  0  0  0  0  0  0
     0.8360   -1.2507    8.9270 H   0  0  0  0  0  0  0  0  0  0  0  0
     2.5068   -0.4158   10.2459 H   0  0  0  0  0  0  0  0  0  0  0  0
     2.6256    1.0251    9.2518 H   0  0  0  0  0  0  0  0  0  0  0  0
     2.0330    1.6041   11.6322 H   0  0  0  0  0  0  0  0  0  0  0  0
   1  5  1  0  0  0  0
   1  8  1  0  0  0  0
   2  3  2  0  0  0  0
   2  4  1  0  0  0  0
   2  5  1  0  0  0  0
   5  6  1  0  0  0  0
   5  7  1  0  0  0  0
   8  9  1  0  0  0  0
   8 10  1  0  0  0  0
   8 11  1  0  0  0  0
  11 12  1  0  0  0  0
  11 14  1  0  0  0  0
  11 16  1  0  0  0  0
  12 13  1  0  0  0  0
  12 19  1  0  0  0  0
  12 20  1  0  0  0  0
  13 18  1  0  0  0  0
  13 21  1  0  0  0  0
  13 22  1  0  0  0  0
  14 15  1  0  0  0  0
  14 23  1  0  0  0  0
  14 24  1  0  0  0  0
  15 18  1  0  0  0  0
  15 25  1  0  0  0  0
  15 26  1  0  0  0  0
  16 17  1  0  0  0  0
  16 27  1  0  0  0  0
  16 28  1  0  0  0  0
  17 18  1  0  0  0  0
  17 29  1  0  0  0  0
  17 30  1  0  0  0  0
  18 31  1  0  0  0  0
M  CHG  1   4  -1
M  CHG  1  11   1
M  END
$$$$
VUWXUG

VUWXUG
  10  9  0  0  0  0  0  0  0  0999 V2000
    -1.1326    2.7484   -0.7778 O   0  5  0  0  0  0  0  0  0  0  0  0
    -0.1903    0.7437    0.1965 C   0  0  0  0  0  0  0  0  0  0  0  0
    -0.4738    1.5328   -0.9252 N   0  0  0  0  0  0  0  0  0  0  0  0
    -0.1968    1.0800    1.3793 O   0  0  0  0  0  0  0  0  0  0  0  0
    -0.5916    1.0431   -1.8066 H   0  0  0  0  0  0  0  0  0  0  0  0
     0.1903   -0.7437   -0.1965 C   0  0  0  0  0  0  0  0  0  0  0  0
     0.4738   -1.5328    0.9252 N   0  0  0  0  0  0  0  0  0  0  0  0
     0.1968   -1.0800   -1.3793 O   0  0  0  0  0  0  0  0  0  0  0  0
     1.1326   -2.7484    0.7778 O   0  5  0  0  0  0  0  0  0  0  0  0
     0.5916   -1.0431    1.8066 H   0  0  0  0  0  0  0  0  0  0  0  0
   1  3  1  0  0  0  0
   2  3  1  0  0  0  0
   2  4  2  0  0  0  0
   2  6  1  0  0  0  0
   3  5  1  0  0  0  0
   6  7  1  0  0  0  0
   6  8  2  0  0  0  0
   7  9  1  0  0  0  0
   7 10  1  0  0  0  0
M  CHG  1   1  -1
M  CHG  1   9  -1
M  END
$$$$

##### END ob_test_suite_05-Oct-2010.sdf #####


##### PATCH #####


*** forcefieldmmff94.cpp    2010-10-05 11:45:30.000000000 +0200
--- forcefieldmmff94.cpp    2010-10-05 11:45:41.000000000 +0200
***************
*** 2306,2313 ****
                 // Nitrate anion oxygen (O2N, O2NO, O3N)
               }
               if (bond->IsSingle()) {
                 // O--N
!               return 32; // Oxygen in N-oxides (ONX)
               } else {
                 // O==N
                 return 7; // Nitroso oxygen (O=N)
--- 2306,2317 ----
                 // Nitrate anion oxygen (O2N, O2NO, O3N)
               }
               if (bond->IsSingle()) {
+           if ((nbr->GetValence() == 2) || (nbr->BOSum() == 3))
+           // O(-)--N
+             return 35;
+           else
                 // O--N
!                 return 32; // Oxygen in N-oxides (ONX)
               } else {
                 // O==N
                 return 7; // Nitroso oxygen (O=N)
***************
*** 2329,2349 ****

                 // are all sulfur nbr atoms carbon?
                 bool isSulfoxide = true;
                 FOR_NBORS_OF_ATOM (nbr2, &*nbr) {
                   if (atom == &*nbr2)
                     continue;

!                 if (nbr->GetBond(&*nbr2)->IsDouble() && !nbr2->IsOxygen())
!                   return 7; // O=S on sulfur doubly bonded to, e.g., C 
(O=S=)

!                 if (nbr2->IsOxygen() && nbr2->GetValence() == 1)
                     isSulfoxide = false;
                 }

                 if (isSulfoxide)
                   return 7; // Doubly bonded sulfoxide oxygen (O=S)
                 else
!                 return 32; // (O2S, O3S, O4S)
               }
             }

--- 2333,2363 ----

                 // are all sulfur nbr atoms carbon?
                 bool isSulfoxide = true;
+               int oxygenBoundToSulfur = 0;
                 FOR_NBORS_OF_ATOM (nbr2, &*nbr) {
                   if (atom == &*nbr2)
                     continue;

!                 if (nbr2->IsOxygen())
!                   ++oxygenBoundToSulfur;
!               }
!               FOR_NBORS_OF_ATOM (nbr2, &*nbr) {
!                 if (atom == &*nbr2)
!                   continue;
!
!                 if (nbr->GetBond(&*nbr2)->IsDouble()
! && nbr2->IsCarbon() && oxygenBoundToSulfur == 1)
!                   isSulfoxide = false; // O=S on sulfur doubly bonded 
to, e.g., C (O=S=)

!                 if ((nbr2->IsOxygen() && nbr2->GetValence() == 1)
!           || (nbr2->IsNitrogen() && nbr2->GetValence() == 2))
                     isSulfoxide = false;
                 }

                 if (isSulfoxide)
                   return 7; // Doubly bonded sulfoxide oxygen (O=S)
                 else
!                 return 32; // (O2S, O2S=C, O3S, O4S)
               }
             }

***************
*** 2423,2429 ****
           FOR_NBORS_OF_ATOM (nbr, atom) {
             bond = _mol.GetBond(&*nbr, atom);
             if (bond->IsDouble()) {
!             doubleBondTo = nbr->GetAtomicNum();
             }

             if (nbr->GetValence() == 1) {
--- 2437,2444 ----
           FOR_NBORS_OF_ATOM (nbr, atom) {
             bond = _mol.GetBond(&*nbr, atom);
             if (bond->IsDouble()) {
!             if (nbr->GetAtomicNum() == 6)
!           doubleBondTo = 6;
             }

             if (nbr->GetValence() == 1) {
***************
*** 3655,3660 ****
--- 3670,3676 ----
         if (type == 32) {
           int o_count = 0;
           bool sulfonamide = false;
+         bool sulfone_s_c = false;
           int s_count = 0;

           FOR_NBORS_OF_ATOM(nbr, &*atom) {
***************
*** 3665,3670 ****
--- 3681,3688 ----
                 s_count++;
               if (nbr2->IsNitrogen() && !nbr2->IsAromatic())
                 sulfonamide = true;
+             if (nbr2->IsCarbon() && nbr->GetBond(&*nbr2)->IsDouble())
+               sulfone_s_c = true;
             }

             if (nbr->IsCarbon())
***************
*** 3674,3681 ****
               atom->SetPartialCharge(-1.0 / o_count);  // O3N

             if (nbr->IsSulfur() && !sulfonamide)
!             if (((o_count + s_count) == 2) && (nbr->GetValence() == 3) 
&& (nbr->BOSum() == 3))
!               atom->SetPartialCharge(-0.5); // O2S
               else if ((o_count + s_count) == 3)
                 atom->SetPartialCharge(-1.0 / 3.0); // O3S
               else if ((o_count + s_count) == 4)
--- 3692,3700 ----
               atom->SetPartialCharge(-1.0 / o_count);  // O3N

             if (nbr->IsSulfur() && !sulfonamide)
!             if (((o_count + s_count) == 2) && (nbr->GetValence() == 3)
! && (nbr->BOSum() >= 3) && !sulfone_s_c)
!               atom->SetPartialCharge(-0.5); // O2S (sulfinate)
               else if ((o_count + s_count) == 3)
                 atom->SetPartialCharge(-1.0 / 3.0); // O3S
               else if ((o_count + s_count) == 4)



------------------------------------------------------------------------------
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2 & L3.
Spend less time writing and  rewriting code and more time creating great
experiences on the web. Be a part of the beta today.
http://p.sf.net/sfu/beautyoftheweb
_______________________________________________
OpenBabel-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbabel-discuss

Reply via email to