epam / Indigo

Universal cheminformatics toolkit, utilities and database search tools
http://lifescience.opensource.epam.com
Apache License 2.0
291 stars 100 forks source link

AAM timeout does not work correctly #2048

Open johnmay opened 3 days ago

johnmay commented 3 days ago

Summary AAM timeout seems to hang on moderate size smiles even with a small timeout.

Steps to Reproduce

  1. Indigo via Java (and likely C code), 1.14.0 - 1.20.0
String smi = "N[C@@H](CCC(=O)NCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCC(NCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCNC(=O)CCCCCCCCCCCCCCC)=O)C(=O)NCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCC(NCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCNC(=O)CCCCCCCCCCC/C=C\\CCCCCCCC)=O.O=C1CCC(=O)N1OC(=O)CCOCCOCCOCCOCCNC(=O)CCN1C(=O)C=CC1=O.C(N(CC)CC)C>C(Cl)Cl>N[C@@H](CCC(=O)NCCOCCOCCOCCOCCOCCOCCOCCOCCOCCOCCOCCOCCOCCOCCOCCOCCOCCOCCOCCOCCOCCOCCOCCOCCC(NCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCNC(=O)CCCCCCCCCCCCCCC)=O)C(=O)NCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCC(NCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCCOCCNC(=O)CCCCCCCCCCC/C=C\\CCCCCCCC)=O";
Indigo indigo = new Indigo();
indigo.setOption("aam-timeout", 5); // 5 ms
IndigoObject reaction = indigo.loadReaction(smi);
long t0 = System.nanoTime();
ReactionMapper.mapReaction(reaction);
long t1 = System.nanoTime();
System.err.println(TimeUnit.NANOSECONDS.toMillis(t1-t0));
System.err.println(reaction.smiles());

Expected behavior The atom map should fail fast

Actual behavior The automap hangs. In general most polyethylene glycols seem problematic

Environment details:

Attachments If applicable, add attachment files to reproduce the issue.

Additional context Add any other context about the problem here.