package mic.rules; import java.util.logging.Level; import org.openscience.cdk.interfaces.IAtomContainer; import org.openscience.cdk.interfaces.IMolecularFormula; import org.openscience.cdk.tools.manipulator.MolecularFormulaManipulator; import toxTree.exceptions.DecisionMethodException; import toxTree.tree.rules.StructureAlertCDK; import ambit2.core.data.MoleculeTools; import ambit2.smarts.query.SMARTSException; /** * Aromatic N-acyl amine. * *
 * [a;!$(a(a[A;!#1])(a[A;!#1]));!$(aa[CX3](=O)[OX2H1]);!$(aa[SX4](=[OX1])(=[OX1])([O]));!$(aaa[SX4](=[OX1])(=[OX1])([O]));!$(aaaa[SX4](=[OX1])(=[OX1])([O]));!$(aaaaa[SX4](=[OX1])(=[OX1])([O]));!$(aaaaaa[SX4](=[OX1])(=[OX1])([O]))]!@[$([NX3;v3]([#1,CH3])C(=O)([#1,CH3]))]
 * 
* * @author Nina Jeliazkova * */ public class SA28ter extends StructureAlertCDK { /** * */ private static final long serialVersionUID = 6392891031735444965L; public static String SA28ter_title = "Aromatic N-acyl amine"; public static String[][] amines = { { SA28ter_title, "[NX3;v3]([#1,CH3])C(=O)([#1,CH3])" } }; public SA28ter() { super(); try { setContainsAllSubstructures(true); StringBuffer b = new StringBuffer(); b.append("[a"); for (int i = 0; i < SA28.exclusion_rules.length; i++) { b.append(";!$("); b.append(SA28.exclusion_rules[i][1]); b.append(")"); } b.append("]!@["); for (int i = 0; i < amines.length; i++) { if (i > 0) b.append(','); b.append("$("); b.append(amines[i][1]); b.append(")"); } b.append("]"); addSubstructure(SA28ter_title, b.toString()); setID("SA28ter"); setTitle(SA28ter_title); StringBuffer e = new StringBuffer(); e.append(""); e.append(SA28ter_title); e.append("
"); e.append("However:"); e.append(""); e.append(""); setExplanation(e.toString()); examples[0] = "CCOC=1C=C(C)C(NC(C)=O)=C(C)C=1(N)"; examples[1] = "CCOC=1C=CC(=CC=1(N))NC(C)=O"; editable = false; } catch (SMARTSException x) { logger.log(Level.SEVERE,x.getMessage(),x); } } protected boolean isAPossibleHit(IAtomContainer mol, IAtomContainer processedObject) throws DecisionMethodException { IMolecularFormula formula = MolecularFormulaManipulator.getMolecularFormula(mol); return MolecularFormulaManipulator.containsElement(formula,MoleculeTools.newElement(formula.getBuilder(),"N")); } }