Ejemplo n.º 1
0
 public void FormalCharges()
 {
     Assert.AreEqual("[-2]", Smarts.GenerateAtom(GetExpr(ExprType.FormalCharge, -2)));
     Assert.AreEqual("[-]", Smarts.GenerateAtom(GetExpr(ExprType.FormalCharge, -1)));
     Assert.AreEqual("[+0]", Smarts.GenerateAtom(GetExpr(ExprType.FormalCharge, 0)));
     Assert.AreEqual("[+]", Smarts.GenerateAtom(GetExpr(ExprType.FormalCharge, 1)));
     Assert.AreEqual("[+2]", Smarts.GenerateAtom(GetExpr(ExprType.FormalCharge, 2)));
 }
Ejemplo n.º 2
0
        public void UsrRecrNot()
        {
            var expr = new Expr(ExprType.Element, 9)
                       .Or(new Expr(ExprType.Element, 17))
                       .Or(new Expr(ExprType.Element, 35))
                       .Negate();

            Assert.AreEqual("[!$([F,Cl,Br])]", Smarts.GenerateAtom(expr));
        }
Ejemplo n.º 3
0
 public void AtomicNumHighWeightElements()
 {
     Assert.AreEqual("[#110]", Smarts.GenerateAtom(GetExpr(ExprType.Element, AtomicNumbers.Darmstadtium)));
     Assert.AreEqual("[#117]", Smarts.GenerateAtom(GetExpr(ExprType.Element, AtomicNumbers.Tennessine)));
     Assert.AreEqual("[#113]", Smarts.GenerateAtom(GetExpr(ExprType.Element, AtomicNumbers.Nihonium)));
     Assert.AreEqual("[#110]", Smarts.GenerateAtom(GetExpr(ExprType.AliphaticElement, AtomicNumbers.Darmstadtium)));
     Assert.AreEqual("[#117]", Smarts.GenerateAtom(GetExpr(ExprType.AliphaticElement, AtomicNumbers.Tennessine)));
     Assert.AreEqual("[#113]", Smarts.GenerateAtom(GetExpr(ExprType.AliphaticElement, AtomicNumbers.Nihonium)));
 }
Ejemplo n.º 4
0
        public void UsrRecrOr()
        {
            var expr = GetOr(
                GetAnd(
                    GetOr(
                        GetExpr(ExprType.Element, 6),
                        GetExpr(ExprType.Element, 7)),
                    GetExpr(ExprType.IsInRing)),
                GetExpr(ExprType.IsAromatic));

            Assert.AreEqual("[$([#6,#7])R,a]", Smarts.GenerateAtom(expr));
        }
Ejemplo n.º 5
0
        static void Main()
        {
            IAtomContainer mol = null;

            #region 1
            if (Smarts.Parse(mol, "[aD3]a-a([aD3])[aD3]"))
            {
                var smarts = Smarts.Generate(mol);
            }
            #endregion

            {
                #region GenerateAtom
                var expr = new Expr(ExprType.Degree, 4).And(
                    new Expr(ExprType.IsAromatic));
                var aExpr = Smarts.GenerateAtom(expr);
                // aExpr = "[D4a]"
                #endregion
            }

            {
                #region GenerateBond
                var expr  = new Expr(ExprType.True);
                var bExpr = Smarts.GenerateBond(expr);
                // // bExpr='~'
                #endregion
            }

            {
                #region Generate
                var qatom1 = new QueryAtom();
                var qatom2 = new QueryAtom();
                var qbond  = new QueryBond();
                qatom1.Expression = new Expr(ExprType.IsAromatic);
                qatom2.Expression = new Expr(ExprType.IsAromatic);
                qbond.Expression  = new Expr(ExprType.IsAliphatic);
                qbond.SetAtoms(new IAtom[] { qatom1, qatom2 });
                mol.Atoms.Add(qatom1);
                mol.Atoms.Add(qatom2);
                mol.Bonds.Add(qbond);
                var smartsStr = Smarts.Generate(mol);
                // smartsStr = 'a!:a'
                #endregion
            }
        }
Ejemplo n.º 6
0
 public void AtomicNum()
 {
     Assert.AreEqual("[#0]", Smarts.GenerateAtom(GetExpr(ExprType.Element, 0)));
     Assert.AreEqual("[#0]", Smarts.GenerateAtom(GetExpr(ExprType.AliphaticElement, 0)));
     Assert.AreEqual("[#0]", Smarts.GenerateAtom(GetExpr(ExprType.AromaticElement, 0)));
     Assert.AreEqual("[#1]", Smarts.GenerateAtom(GetExpr(ExprType.Element, 1)));
     Assert.AreEqual("[#1]", Smarts.GenerateAtom(GetExpr(ExprType.AliphaticElement, 1)));
     Assert.AreEqual("[#1]", Smarts.GenerateAtom(GetExpr(ExprType.AromaticElement, 1)));
     Assert.AreEqual("[He]", Smarts.GenerateAtom(GetExpr(ExprType.Element, 2)));
     Assert.AreEqual("[Li]", Smarts.GenerateAtom(GetExpr(ExprType.Element, 3)));
     Assert.AreEqual("[#6]", Smarts.GenerateAtom(GetExpr(ExprType.Element, 6)));
     Assert.AreEqual("[#7]", Smarts.GenerateAtom(GetExpr(ExprType.Element, 7)));
     Assert.AreEqual("[#8]", Smarts.GenerateAtom(GetExpr(ExprType.Element, 8)));
     Assert.AreEqual("F", Smarts.GenerateAtom(GetExpr(ExprType.Element, 9)));
     Assert.AreEqual("[Ne]", Smarts.GenerateAtom(GetExpr(ExprType.Element, 10)));
     Assert.AreEqual("[Na]", Smarts.GenerateAtom(GetExpr(ExprType.Element, 11)));
     Assert.AreEqual("[Mg]", Smarts.GenerateAtom(GetExpr(ExprType.Element, 12)));
     // Ds, Ts and Nh etc write as #<num>
     Assert.AreEqual("[#110]", Smarts.GenerateAtom(GetExpr(ExprType.Element, AtomicNumbers.Darmstadtium)));
     Assert.AreEqual("[#117]", Smarts.GenerateAtom(GetExpr(ExprType.Element, AtomicNumbers.Tennessine)));
     Assert.AreEqual("[#113]", Smarts.GenerateAtom(GetExpr(ExprType.Element, AtomicNumbers.Nihonium)));
 }
Ejemplo n.º 7
0
        public void Helium()
        {
            var expr = new Expr(ExprType.Element, 2);

            Assert.AreEqual("[He]", Smarts.GenerateAtom(expr));
        }
Ejemplo n.º 8
0
        public void Carbon()
        {
            var expr = new Expr(ExprType.Element, 6);

            Assert.AreEqual("[#6]", Smarts.GenerateAtom(expr));
        }
Ejemplo n.º 9
0
        public void UseExplAnd2()
        {
            var expr = new Expr(ExprType.Degree, 1).And(new Expr(ExprType.Isotope, 2));

            Assert.AreEqual("[D&2]", Smarts.GenerateAtom(expr));
        }
Ejemplo n.º 10
0
        public void UseExplAnd1()
        {
            var expr = new Expr(ExprType.AliphaticElement, 6).And(new Expr(ExprType.RingSmallest, 6));

            Assert.AreEqual("[C&r6]", Smarts.GenerateAtom(expr));
        }
Ejemplo n.º 11
0
 public void RingMembership()
 {
     Assert.AreEqual("[R]", Smarts.GenerateAtom(GetExpr(ExprType.IsInRing)));
     Assert.AreEqual("[!R]", Smarts.GenerateAtom(GetExpr(ExprType.IsInChain)));
 }
Ejemplo n.º 12
0
 public void RingCount()
 {
     Assert.AreEqual("[R2]", Smarts.GenerateAtom(GetExpr(ExprType.RingCount, 2)));
 }
Ejemplo n.º 13
0
        public void UseImplAnd()
        {
            var expr = new Expr(ExprType.AromaticElement, 7).And(new Expr(ExprType.Degree, 2).And(new Expr(ExprType.HasImplicitHydrogen)));

            Assert.AreEqual("[nD2h]", Smarts.GenerateAtom(expr));
        }
Ejemplo n.º 14
0
        public void UseLowPrecedenceAnd()
        {
            var expr = new Expr(ExprType.Element, 8).And(new Expr(ExprType.Degree, 2).Or(new Expr(ExprType.Degree, 1)));

            Assert.AreEqual("[#8;D2,D]", Smarts.GenerateAtom(expr));
        }
Ejemplo n.º 15
0
 public void Connectivity()
 {
     Assert.AreEqual("[X]", Smarts.GenerateAtom(GetExpr(ExprType.TotalDegree, 1)));
     Assert.AreEqual("[X2]", Smarts.GenerateAtom(GetExpr(ExprType.TotalDegree, 2)));
 }
Ejemplo n.º 16
0
 public void Degree()
 {
     Assert.AreEqual("[D]", Smarts.GenerateAtom(GetExpr(ExprType.Degree, 1)));
     Assert.AreEqual("[D2]", Smarts.GenerateAtom(GetExpr(ExprType.Degree, 2)));
 }
Ejemplo n.º 17
0
 public void Valence()
 {
     Assert.AreEqual("[v]", Smarts.GenerateAtom(GetExpr(ExprType.Valence, 1)));
     Assert.AreEqual("[v2]", Smarts.GenerateAtom(GetExpr(ExprType.Valence, 2)));
 }
Ejemplo n.º 18
0
 public void RingSmallest()
 {
     Assert.AreEqual("[r4]", Smarts.GenerateAtom(GetExpr(ExprType.RingSmallest, 4)));
 }
Ejemplo n.º 19
0
 public void Isotopes()
 {
     Assert.AreEqual("[13]", Smarts.GenerateAtom(GetExpr(ExprType.Isotope, 13)));
     Assert.AreEqual("[0]", Smarts.GenerateAtom(GetExpr(ExprType.HasUnspecifiedIsotope)));
     Assert.AreEqual("[!0]", Smarts.GenerateAtom(GetExpr(ExprType.HasIsotope)));
 }
Ejemplo n.º 20
0
 public void TotalHCount()
 {
     Assert.AreEqual("[H1]", Smarts.GenerateAtom(GetExpr(ExprType.TotalHCount, 1)));
     Assert.AreEqual("[H2]", Smarts.GenerateAtom(GetExpr(ExprType.TotalHCount, 2)));
 }
Ejemplo n.º 21
0
 public void AromaticElement()
 {
     Assert.AreEqual("c", Smarts.GenerateAtom(GetExpr(ExprType.AromaticElement, 6)));
     Assert.AreEqual("n", Smarts.GenerateAtom(GetExpr(ExprType.AromaticElement, 7)));
 }