public void GeneratePdbForPeptide() { var peptide = PeptideBuilder.PeptideFromString( "MQRSPLEKASVVSKLFFSWTRPILRKGYRQRLELSDIYQIPSVDSADNLSEKLEREWDRE" + "LASKKNPKLINALRRCFFWRFMFYGIFLYLGEVTKAVQPLLLGRIIASYDPDNKEERSIA" + "IYLGIGLCLLFIVRTLLLHPAIFGLHHIGMQMRIAMFSLIYKKTLKLSSRVLDKISIGQL" + "VSLLSNNLNKFDEGLALAHFVWIAPLQVALLMGLIWELLQASAFCGLGFLIVLALFQAGL" + "GRMMMKYRDQRAGKISERLVITSEMIENIQSVKAYCWEEAMEKMIENLRQTELKLTRKAA" + "YVRYFNSSAFFFSGFFVVFLSVLPYALIKGIILRKIFTTISFCIVLRMAVTRQFPWAVQT" + "WYDSLGAINKIQDFLQKQEYKTLEYNLTTTEVVMENVTAFWEEGFGELFEKAKQNNNNRK" + "TSNGDDSLFFSNFSLLGTPVLKDINFKIERGQLLAVAGSTGAGKTSLLMVIMGELEPSEG" + "KIKHSGRISFCSQFSWIMPGTIKENIIFGVSYDEYRYRSVIKACQLEEDISKFAEKDNIV" + "LGEGGITLSGGQRARISLARAVYKDADLYLLDSPFGYLDVLTEKEIFESCVCKLMANKTR" + "ILVTSKMEHLKKADKILILHEGSSYFYGTFSELQNLQPDFSSKLMGCDSFDQFSAERRNS" + "ILTETLHRFSLEGDAPVSWTETKKQSFKQTGEFGEKRKNSILNPINSIRKFSIVQKTPLQ" + "MNGIEEDSDEPLERRLSLVPDSEQGEAILPRISVISTGPTLQARRRQSVLNLMTHSVNQG" + "QNIHRKTTASTRKVSLAPQANLTELDIYSRRLSQETGLEISEEINEEDLKECFFDDMESI" + "PAVTTWNTYLRYITVHKSLIFVLIWCLVIFLAEVAASLVVLWLLGNTPLQDKGNSTHSRN" + "NSYAVIITSTSSYYVFYIYVGVADTLLAMGFFRGLPLVHTLITVSKILHHKMLHSVLQAP" + "MSTLNTLKAGGILNRFSKDIAILDDLLPLTIFDFIQLLLIVIGAIAVVAVLQPYIFVATV" + "PVIVAFIMLRAYFLQTSQQLKQLESEGRSPIFTHLVTSLKGLWTLRAFGRQPYFETLFHK" + "ALNLHTANWFLYLSTLRWFQMRIEMIFVIFFIAVTFISILTTGEGEGRVGIILTLAMNIM" + "STLQWAVNSSIDVDSLMRSVSRVFKFIDMPTEGKPTKSTKPYKNGQLSKVMIIENSHVKK" + "DDIWPSGGQMTVKDLTAKYTEGGNAILENISFSISPGQRVGLLGRTGSGKSTLLSAFLRL" + "LNTEGEIQIDGVSWDSITLQQWRKAFGVIPQKVFIFSGTFRKNLDPYEQWSDQEIWKVAD" + "EVGLRSVIEQFPGKLDFVLVDGGCVLSHGHKQLMCLARSVLSKAKILLLDEPSAHLDPVT" + "YQIIRRTLKQAFADCTVILCEHRIEAMLECQQFLVIEENKVRQYDSIQKLLNERSLFRQA" + "ISPSDRVKLFPHRNSSKCKSKPQIAALKEETEEEVQDTRL"); peptide.Molecule.PositionAtoms(peptide.MoleculeReference.FirstAtomId, peptide.MoleculeReference.LastAtomId); File.WriteAllText(@"G:\Projects\HumanGenome\cftr.pdb", PdbSerializer.Serialize("cftr", peptide)); }
private static Peptide ExtractChain( IList <string> modelLines, IList <string> annotationLines, char chainId, PdbReaderOptions options) { var aminoAcidSequence = ExtractSequence(modelLines, chainId); if (!aminoAcidSequence.Any()) { return(new Peptide(new MoleculeReference(new Molecule()), new List <AminoAcidReference>())); } var peptide = PeptideBuilder.PeptideFromSequence(aminoAcidSequence, new PeptideBuilderOptions { BuildMolecule = options.BuildMolecule }); peptide.ChainId = chainId; var annotations = ExtractAnnotations(annotationLines, chainId, peptide); peptide.Annotations.AddRange(annotations); if (options.BuildMolecule) { ReadAtomPositions(modelLines, chainId, peptide); } return(peptide); }
public void Psi90PlusMeasuredCorrectly() { var peptide = PeptideBuilder.PeptideFromString("GG"); var firstAminoAcid = peptide.AminoAcids.First(); var lastAminoAcid = peptide.AminoAcids.Last(); PdbAminoAcidAtomNamer.AssignNames(firstAminoAcid); PdbAminoAcidAtomNamer.AssignNames(lastAminoAcid); var N1 = firstAminoAcid.GetAtomFromName("N"); var Ca1 = firstAminoAcid.GetAtomFromName("CA"); var C1 = firstAminoAcid.GetAtomFromName("C"); var N2 = lastAminoAcid.GetAtomFromName("N"); var Ca2 = lastAminoAcid.GetAtomFromName("CA"); var C2 = lastAminoAcid.GetAtomFromName("C"); N1.Position = new UnitPoint3D(SIPrefix.Pico, Unit.Meter, 0, 0, 0); N1.IsPositionFixed = true; Ca1.Position = new UnitPoint3D(SIPrefix.Pico, Unit.Meter, 100, 0, 0); Ca1.IsPositionFixed = true; C1.Position = new UnitPoint3D(SIPrefix.Pico, Unit.Meter, 100, 100, 0); C1.IsPositionFixed = true; N2.Position = new UnitPoint3D(SIPrefix.Pico, Unit.Meter, 100, 100, 100); N2.IsPositionFixed = true; Ca2.Position = new UnitPoint3D(SIPrefix.Pico, Unit.Meter, 200, 100, 100); Ca2.IsPositionFixed = true; C2.Position = new UnitPoint3D(SIPrefix.Pico, Unit.Meter, 200, 200, 100); C2.IsPositionFixed = true; var measurements = AminoAcidAngleMeasurer.MeasureAngles(peptide); Assert.That(measurements.ContainsKey(firstAminoAcid)); Assert.That(measurements.ContainsKey(lastAminoAcid)); var firstAngles = measurements[firstAminoAcid]; var lastAngles = measurements[lastAminoAcid]; Assert.That(firstAngles.Omega, Is.Null); Assert.That(firstAngles.Phi, Is.Null); Assert.That(firstAngles.Psi, Is.Not.Null); Assert.That(firstAngles.Psi.In(Unit.Degree), Is.EqualTo(90)); Assert.That(lastAngles.Omega, Is.Not.Null); Assert.That(lastAngles.Omega.In(Unit.Degree), Is.EqualTo(90)); }
public void RunSimulation() { var molecule = PeptideBuilder.PeptideFromSequence(new[] { AminoAcidName.Proline, AminoAcidName.Tyrosine, AminoAcidName.Alanine, AminoAcidName.Glutamine, AminoAcidName.Glutamine, AminoAcidName.Lysine }).Molecule; var customForces = new List <CustomAtomForce>(); var settings = new MoleculeDynamicsSimulationSettings { SimulationTime = 10.To(SIPrefix.Nano, Unit.Second), TimeStep = 4.To(SIPrefix.Femto, Unit.Second) }; var simulator = new MoleculeDynamicsSimulator(molecule, customForces, settings); simulator.SimulationCompleted += Simulator_SimulationCompleted; simulationCompletedEvent.Reset(); simulator.StartSimulation(); simulationCompletedEvent.WaitOne(); }
public static Peptide ReadFile(string filename) { var aminoAcidSequence = File.ReadAllLines(filename).Aggregate((a, b) => a + b); return(PeptideBuilder.PeptideFromString(aminoAcidSequence)); }