LSD History

Last modified: December, 15th 2021.


The PROP command with the minus sign as final argument may erroneously generate the 331 error message. This has been corrected.


Correction of m_edit.bat and easier access to external software for Windows users.
The maximum number of atoms in a molecule in now 100.

Source LSD-3.4.11.tar.gz


Correction of minor harmless defaults in the C source code of LSD.

Multi-structure files that were incorrectly named MOL files are now named SDF files.

Correction of the header lines of the MOL blocks in the SDF files produced by m_edit and outlsd.
Thanks to Wolfgang Robien for pointing out this problem.

IRIX operating system is not supported anymore.

Source LSD-3.4.10.tar.gz


Correction of a bug present since version 3.3.10 when the +/- option of the PROP command was used.

Source LSD-3.4.9.tar.gz


Correction of a bug present in version 3.4.7.
The message "Mass of X is unknown" was always printed, even when no X atom was declared in the input file. As a consequence, the molecular mass was not calculated.

Source LSD-3.4.8.tar.gz


Atoms X, Y, Z and VALE command were suppressed in version 3.4.1 with the implementation of charged atoms and multiple valency atoms.
VALE command has been reintroduced to define valency and mass of atoms X only (X cannot be charged).

Source LSD-3.4.7.tar.gz


N2+ and B- electrically charged atoms are available.

Source LSD-3.4.6.tar.gz


2J COSY correlations were not silently discarded anymore since version 3.4.1.
This bug is now corrected for CH2 groups. 2J COSY correlations that involve CH or CH3 groups are not allowed.

Source LSD-3.4.5.tar.gz


Real number are no longer optional.

Chemical shifts of atoms and hydrogens may by provided with SHIX and SHIH commands respectively.

It is now possible to create lists of atoms by element type (ELEM command).

Anti-bredt rule may be disabled (BRUL command).

Source LSD-3.4.4.tar.gz


Test for anti-Bredt structure has been modified to be compatible with triple bonds and multiple valence atoms (N5, S4, S6 and P5).

Bug in double and triple bonds placement has been corrected.

Source LSD-3.4.3.tar.gz


Corrects a bug present in version 3.4.1. Isomorphism detection by the IUPAC InChI library did not support molecules including N5, S4, S6 and P5 atoms.
InChI creation failure now causes LSD interruption and Error message printing.

New CHAR, CPOS and CNEG commands have been added to help the definition of lists of charged atoms.

The MULT command accepts B atoms.

Source LSD-3.4.2.tar.gz


Corrects a bug present in version 3.4.0. An error may occur for particular combinations of HMBC correlations with optional arguments.

LSD deals with ambiguous COSY correlation.
Like the HMBC command, the COSY command accepts optional arguments with similar functionalities (see version 3.4.0).

sp hybridized atoms, charged atoms and multiple valence atoms (N5, S4, S6 and P5) are now supported.

The SKEL command is not mandatory anymore to associate a substructure fragment number and the corresponding skeleton name. The FEXP command argument may directly contain a skeleton name.

Outlsd options 2 (for ARGOS), 3 (for an unpublished software) and 4 (for outdated Macromodel versions) have been disabled.

A converter named mol2ab translates MDL .mol files into LSD substructure description files.

Source LSD-3.4.1.tar.gz


The HMBC command may have one or two optional parameters. When a single optional parameter is present, its value is the only possible path length between the coupled atoms. When two optional parameters are present, they define a range of possible coupling path lengths.

Source LSD-3.4.0.tar.gz


The PROP command has been modified. Compatibility has been maintained with the existing data files. An optional fourth argument whose value is + or - has been introduced. PROP 1 2 L3 + means that atom 1 has 2 or more neighbors in list L3. PROP 4 0 L5 - means that atom 4 has 0 or less neighbor in list L5, which is the only explicit way to write that atom 4 has no neighbor in list L5.

By default, non bonded non correlating carbon atoms are now not considered as equivalent. A CCLA 1 command must be present in order to obtain the previous default behavior of the CCLA command.

Source LSD-3.3.10.tar.gz


Until now, if an atom has more than one property list, these lists had to be pairwise disjoint. This restiction has been removed. When an atom gets a new bond, all its property lists are now separately considered.

Source LSD-3.3.9.tar.gz


Bug correction. A bug is present in versions 3.3.6 and 3.3.7 that may lead to a run-time error for particular combinations of ambiguous correlations.

Source LSD-3.3.8.tar.gz


New COUF and STOF commands change the default names of the solution counter file (solncounter) and of the lsd stop file (stoplsd). Simultaneously solving several problems with lsd is now possible within the same directory, without name conflict for these files.

Source LSD-3.3.7.tar.gz


Correlations of an atom with two partially overlapping groups are now correctly handled.

Two-bond COSY correlations are now silently discarded.

The code of outlsd has been cleaned. New option (9) creates 3D .mol files with H atoms added.

Source LSD-3.3.6.tar.gz


outlsd and m_edit now produce .mol (MDL) file that can be read by Jmol.

lsd does not attempt anymore to analyze empty input files.

Source LSD-3.3.5.tar.gz


Compilation on 64-bit platforms issued warnings due to pointer/integer type mismatch. Fixed.

The postscript file that is produced by genpos can now be browsed in the backward direction by gsview.

Source LSD-3.3.4.tar.gz


Bug fixed: if a group had two HMBC correlations with two hydrogen atoms that were both directly bonded to the same atom, then the two correlations were considered as being valid, even though they carried the same information.

A file named solncounter is now created and updated by lsd, it contains the number of solutions lsd has found so far.

If a file named stoplsd is created when lsd is running, then lsd is stopped.

Source LSD-3.3.3.tar.gz


The new SKEL and PATH commands associate substructure indexes and their common names. The Data/pinene file provides an example of their use. They were implemented in order to easily select solutions from solution sets, according to the class compound they belong to. The supposed application field of these new commands is the natural product chemistry. A natural product skeleton library will be developed and included in LSD in a near future.

Source LSD-3.3.2.tar.gz


The new CCLA (Carbon equivalence CLAsses) command controls the production of isomorphic solutions that only differ in their 13C NMR assignment.

CCLA 0 is required in order to rank solutions by means of a 13C chemical shift prediction program.

Source LSD-3.3.1.tar.gz


The new DUPL 2 command eliminates isomorphic structures (same molecule, but different resonance assignments).

Isomophism is detected by means of the IUPAC InChI library.

The DUPL command uses the GNU AVL library to detect the duplicated solutions (DUPL 1) and the duplicated structures (DUPL 2).

The MULT command deals with (divalent) S , (trivalent) P, F, Cl, Br, I, and Si atoms.

The VALE command has still to be modified to become compatible with DUPL 2.

Source LSD-3.3.0.tar.gz


Fixes a bug that occurs when an ambiguous HMBC correlation can be interpreted as a correlation of an atom with itself.

Code cleaning (g++ dos not complain).

Source LSD-3.2.5.tar.gz


Pre-compiled versions for MacOS X (10.4, Tiger) are available.

Two new commands allow the user to stop a LSD run:

The new HSQC command is equivalent to the HMQC command.

Source LSD-3.2.4.tar.gz


The new CNTD 0/1 command allows/forbids multiple-piece solution structures.

Two inequivalent hydrogen atoms bound to the same atom may now have different numbers.

The FEXP command in now fully documented.

Outlsd with option 7 produced bad .mol file for uncomplete (PART 1) solutions. This problem is now fixed.

Error messages were made more useful.

Source LSD-3.2.3.tar.gz


File names longer than 40 characters were not supported. They may now have any length.

The new "8" option of Outlsd produces 3D mol files, but still with fancy chiral center configurations.

Source LSD-3.2.2.tar.gz


Compiling lsd on a 64 bits machine caused warning messages about the conversion of a pointer (8 bytes long) to an integer (4 bytes long). This problem is fixed.

A bug in Outlsd is now corrected.

The pre-3.2.0 way of filtering solutions by means of multiple substructures is no more available.

Source LSD-3.2.1.tar.gz


Multi-substructure search by means of new DEFF and FEXP commands. The EXIT command may now be omitted. DISP 1 is now the default.

Source LSD-3.2.0.tar.gz


When lsd is invoked with a file name as command-line argument, the .lsd extension is recognized so that the processing for abc.lsd produces solutions in abc.sol instead of abc.lsd.sol. Any filename that does not end with .lsd is processed as before. The DOS/Windows users can now associate the .lsd extension with their favorite text editor.

Source LSD-3.1.9.tar.gz


The chklsd program (written in awk) has been integrated in lsd. The DOS/Windows version of LSD is nearly there.

Source LSD-3.1.8.tar.gz


Bug fixes. When called with an argument, input and output files are now closed before the lsd program exits. Compiling under DJGPP (DOS C compiler) produces an executable file that does not prevent subsequent writing to input file by a text editor.

Template for exit() included from stdlib.h for lsd, outlsd and genpos.

Clean exit upon interruption by control-C.

Filters/bin/ can be run by the Windows version of Perl.

A binary distribution of LSD for DOS/Windows will soon be available.

Source LSD-3.1.7.tar.gz


New executables for Darwin replace those from version 3.1.0. Installation manual is updated: there is no more reference to a "LSD on CD" distribution.

Replaced all "catch [...]" by "catch {...}" in m_edit.tcl. Just wondering how it could work before.

Source LSD-3.1.6.tar.gz


A solution filter is now available. It retains only the solutions that contain (or not) molecular fragments defined as LSD sub-structures. The user fills a filter script file and uses it by means of the command. The new Filters directory contains generic substructures and the required Perl modules.

Source LSD-3.1.5.tar.gz


A new sub-atom type, A, is introduced. A A-type sub-atom can match an atom in the structure having any type.

Source LSD-3.1.4.tar.gz


m_edit has been slighlty improved. It was before impossible to deal with .coo files in which molecules have been removed.

Molecules have now a title in the upper right corner of the display. This is the number given by LSD to solutions. Titles are preseved only in .coo files (not .mol files).

The concept of molecule selection has been introduced. A new menu allows to select(black title)/unselect(red title) molecules and to eliminate those that are not selected.

Molecule drawings can be horizontally and vertically flipped (Arrange menu). A buffer (Buffer menu) was added, so that a modified molecule set can be retrieved.

Source LSD-3.1.3.tar.gz


When LSD is called with a file name as argument, the solution file now contains a header part. Its first line starts with a # followed by the input file name. The input file is then listed. The last line of the header contains a # only. Outlsd is modified to deal with this new format. Old-style .sol files are still correctly processed by outlsd.

The SUBS command may take -1 as parameter. In this case, the selected solutions are those that do not contain the substructural element.

Source LSD-3.1.2.tar.gz


The ELIM command, as introduced in v3.1.0, can lead to an uncomplete set of solutions. This bug is now corrected.

In 3.1.0, a correlation that does not give rise to a solution when analyzed as 2J and 3J is considered as a potent Very-Long-Range (VLR) correlation. A correlation that gives rise to a solution is not analyzed as a VLR Correlation, thus leading to a logical error, are proved hereafter. If a dataset contains a VLR correlation C, it can lead to a solution even if C is analyzed as being 2J or 3J. This solution is obviously wrong. With v3.1.0, C will never be analyzed as being a VLR correlation, thus preventing LSD to find the correct solution. Therefore, even if the 2J and 3J analysis of a correlation leads to a solution, it must also be analyzed as a potent VLR correlation. Thus, each correlation must be analyzed as a 2J, 3J and VLR one, independently of the number of solutions it gives rise to. This is what v3.1.1 achieves.

When a new bond is created between two atoms, useless correlations are eliminated. Everything happens as if such a correlation was analyzed as 2J and 3J immediately after bond formation. In principle, it should also be analyzed as a VLR correlation. Doing this also leads to remove it *and* to decrement to number of still allowed VLR correlations. So, either being 2J, 3J or VLR, the correlation must be removed. Presently, the number of still allowed VLR correlations is not decremented, allowing thus for more VLR correlations than required. This does not prevent the true solution to be found.

With v3.1.1, in VERB 2 mode, more information is given to the user.

Source LSD-3.1.1.tar.gz


A given number of unsuccessfull HMBC correlation can be discarded during resolution. An upper limit for the length of the coupling path of eliminated correlations may also be given in the new ELIM command.

Source LSD-3.1.0.tar.gz


Experimental distribution for Darwin becomes available.

Source LSD-3.0.2.tar.gz


Installation procedure for Cygwin, Irix and GNU/Linux. French and English documentation.


The concepts behind LSD have matured in the CNRS-University Joint Research Unit #6013 in Reims (France), taking advantage of a long practice of structure determination of natural products.

LSD is born as a set of Prolog rules around 1990. The first successful run was carried out on a Bull Micral computer with a 4.75 MHz clock. The Data/pdt problem required about 3 minutes computing time.

I switched to a MacIntosh IIci and LPA Mac Prolog, but with only moderate performance improvement in execution speed. At some stage, I switched back to a PC when more processor power became available around.

I finally decided to learn C and to recode LSD. I also switched to a SGI 4D-25 workstation. The speed was multiplied by a factor of about 300. The program was progressively enriched and debugged to reach the present state.

This process lead to version 2.3, for which a demo variant was available.

Version 3.0 is very similar to 2.3, but with improved documentation and installation procedure.

Copyright(C)2000 CNRS-UMR 7312-Jean-Marc Nuzillard