Exemplo n.º 1
0
        public override void TestGetMonomerCount()
        {
            IBioPolymer oBioPolymer = (IBioPolymer)NewChemObject();

            Assert.AreEqual(0, oBioPolymer.GetMonomerMap().Count());

            IStrand oStrand1 = oBioPolymer.Builder.NewStrand();

            oStrand1.StrandName = "A";
            IStrand oStrand2 = oBioPolymer.Builder.NewStrand();

            oStrand2.StrandName = "B";
            IMonomer oMono1 = oBioPolymer.Builder.NewMonomer();

            oMono1.MonomerName = "TRP279";
            IMonomer oMono2 = oBioPolymer.Builder.NewMonomer();

            oMono2.MonomerName = "HOH";
            IAtom oAtom1 = oBioPolymer.Builder.NewAtom("C");
            IAtom oAtom2 = oBioPolymer.Builder.NewAtom("C");
            IAtom oAtom3 = oBioPolymer.Builder.NewAtom("C");

            oBioPolymer.Atoms.Add(oAtom1);
            oBioPolymer.AddAtom(oAtom2, oMono1, oStrand1);
            oBioPolymer.AddAtom(oAtom3, oMono2, oStrand2);
            Assert.IsNotNull(oBioPolymer.Atoms[0]);
            Assert.IsNotNull(oBioPolymer.Atoms[1]);
            Assert.IsNotNull(oBioPolymer.Atoms[2]);
            Assert.AreEqual(oAtom1, oBioPolymer.Atoms[0]);
            Assert.AreEqual(oAtom2, oBioPolymer.Atoms[1]);
            Assert.AreEqual(oAtom3, oBioPolymer.Atoms[2]);

            Assert.AreEqual(2, oBioPolymer.GetMonomerMap().Count());
        }
Exemplo n.º 2
0
        public void TestCreateProtein()
        {
            IBioPolymer protein = ProteinBuilderTool.CreateProtein("GAGA", CDK.Builder);

            Assert.IsNotNull(protein);
            Assert.AreEqual(4, protein.GetMonomerMap().Count());
            Assert.AreEqual(1, protein.GetStrandMap().Count());
            Assert.AreEqual(18 + 1, protein.Atoms.Count);
            // 1=terminal oxygen
            Assert.AreEqual(14 + 3 + 1, protein.Bonds.Count);
            // 3 = extra back bone bonds, 1=bond to terminal oxygen
        }
Exemplo n.º 3
0
 /// <summary>
 /// Builds a protein by connecting a new amino acid at the C-terminus of the
 /// given strand. The acidic oxygen of the added amino acid is removed so that
 /// additional amino acids can be added savely. But this also means that you
 /// might want to add an oxygen at the end of the protein building!
 /// </summary>
 /// <param name="protein">protein to which the strand belongs</param>
 /// <param name="aaToAdd">amino acid to add to the strand of the protein</param>
 /// <param name="strand">strand to which the protein is added</param>
 /// <param name="aaToAddTo"></param>
 public static IBioPolymer AddAminoAcidAtCTerminus(IBioPolymer protein, IAminoAcid aaToAdd, IStrand strand, IAminoAcid aaToAddTo)
 {
     // then add the amino acid
     AddAminoAcid(protein, aaToAdd, strand);
     // Now think about the protein back bone connection
     if (protein.GetMonomerMap().Any() && (aaToAddTo != null))
     {
         // make the connection between that aminoAcid's N-terminus and the
         // protein's C-terminus
         protein.Bonds.Add(aaToAdd.Builder.NewBond(aaToAddTo.CTerminus,
                                                   aaToAdd.NTerminus, BondOrder.Single));
     } // else : no current C-terminus, so nothing special to do
     return(protein);
 }