} else { if ($ostype == 1) { $molhfp = filterthroughcmd($safemol, "{$CHECKMOL} -H - "); } if ($ostype == 2) { $molhfp = filterthroughcmd2($safemol, "{$CHECKMOL} -H - "); } } $hfparr = explode(";", $molhfp); $molhfp = $hfparr[0]; $qstr = ""; $qstr .= mk_fpqstr("dfp", $moldfp); if (strlen($qstr) > 0) { $qstr .= " AND"; } $qstr .= mk_fpqstr("hfp", $molhfp); if ($use_cmmmsrv == "y") { $bs = 50; // block size (number of structures per query SDF) } else { $bs = 10; // smaller block size (<128K) if we use shell calls } $maxbmem = 0; // for diagnostic purposes only $sqlbsmult = 10; // relates $bs to SQL block size (for LIMIT clause) $sqlbs = $bs * $sqlbsmult; $mmcmd = "{$MATCHMOL} {$options} -"; $total_cand = 0; $offsetcount = 0;
$hfparr = explode(";", $molhfp); $molhfp = $hfparr[0]; $molhfpsum = add_molfp($molhfpsum, $molhfp); } // end for ($i = 0; $i < $npmol; $i++) ... //echo "added moldfp: $moldfpsum\n"; //echo "added molhfp: $molhfpsum\n"; // insert combined reaction fingerprints for product(s) $qstr = "{$moldfpsum},{$molhfpsum}"; $pqstr = ""; // products $pqstr .= mk_fpqstr("dfp", $moldfpsum); if (strlen($pqstr) > 0) { $pqstr .= " AND "; } $pqstr .= mk_fpqstr("hfp", $molhfpsum); //echo "<br>moldfpsum: $moldfpsum<br>pqstr: $pqstr <br>"; } $outer_qstr = ""; $inner_qstr = ""; //echo "<br>rqstr: $rqstr<br>pqstr: $pqstr<br>"; if (strlen($rqstr) > 0 && strlen($pqstr) > 0) { $outer_qstr = "(role LIKE 'P') AND {$pqstr}"; $inner_qstr = "(role LIKE 'R') AND {$rqstr}"; } elseif (strlen($rqstr) > 0 && strlen($pqstr) == 0) { $outer_qstr = "(role LIKE 'R') AND {$rqstr}"; $inner_qstr = ""; } elseif (strlen($rqstr) == 0 && strlen($pqstr) > 0) { $outer_qstr = "(role LIKE 'P') AND {$pqstr}"; $inner_qstr = ""; } elseif (strlen($rqstr) == 0 && strlen($pqstr) == 0) {