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()); }
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 }
/// <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); }