private static PharmacophoreAtom NewPCoreAtom(IAtomContainer input, PharmacophoreQueryAtom qatom, string smarts, int[] mapping)
        {
            var coords = GetEffectiveCoordinates(input, mapping);
            var patom  = new PharmacophoreAtom(smarts, qatom.Symbol, coords);

            // n.b. mapping[] copy is mad by pcore atom
            patom.SetMatchingAtoms(mapping);
            return(patom);
        }
Beispiel #2
0
        public void TestMatchingAtoms()
        {
            PharmacophoreAtom patom = new PharmacophoreAtom("[CX2]N", "Amine", Vector3.Zero);

            patom.SetMatchingAtoms(new int[] { 1, 4, 5 });
            int[] indices = patom.GetMatchingAtoms();
            Assert.AreEqual(1, indices[0]);
            Assert.AreEqual(4, indices[1]);
            Assert.AreEqual(5, indices[2]);
        }
Beispiel #3
0
        public void TestEquals()
        {
            PharmacophoreAtom patom1 = new PharmacophoreAtom("[CX2]N", "Amine", Vector3.Zero);

            patom1.SetMatchingAtoms(new int[] { 1, 4, 5 });

            PharmacophoreAtom patom2 = new PharmacophoreAtom("[CX2]N", "Amine", Vector3.Zero);

            patom2.SetMatchingAtoms(new int[] { 1, 4, 5 });

            PharmacophoreAtom patom3 = new PharmacophoreAtom("[CX2]N", "Amine", new Vector3(0, 1, 0));

            patom3.SetMatchingAtoms(new int[] { 1, 4, 5 });

            PharmacophoreAtom patom4 = new PharmacophoreAtom("[CX2]N", "Amine", Vector3.Zero);

            patom4.SetMatchingAtoms(new int[] { 1, 4, 6 });

            Assert.AreEqual(patom2, patom1);
            Assert.AreNotSame(patom3, patom1);
            Assert.AreNotSame(patom4, patom1);
        }