/// <summary> /// Basic constructor for an amino acid. /// </summary> /// <param name="src">Codon used to generate this amino acid</param> /// <param name="i">Index of this AA in the protein sequence</param> /// <param name="name">Full name of the AA</param> /// <param name="abb">Abbreviated name</param> /// <param name="s">Shorthand symbol</param> public AminoAcid(AACodon src, String name, String abb, Char s) { this.source = src; this.symbol = s; this.fullName = name; this.abbrev = abb; }
/// <summary> /// Constructor for Ribosome instances. /// </summary> /// <param name="startCodon">The codon accepted as the start codon.</param> /// <param name="stopCodons">Set of codons accepted as the stop codon.</param> /// <param name="factory">Rules for generating AminoAcids from codons</param> /// <param name="codonLength">length of an invidual codon; should be consistent /// with start/stop codons</param> public Ribosome(AACodon startCodon, List <AACodon> stopCodons, IAAFactory factory, int codonLength) { this.startCodon = startCodon; this.stopCodons = stopCodons; this.factory = factory; this.codonLength = codonLength; }
//initializes the 'default' ribosome to be used in testing // might have to change based on actual syntax public void Init() { start = AACodon.AUG; stops = new List <AACodon> { AACodon.UGA, AACodon.UAA, AACodon.UAG }; seq = FrameshiftUtil.StringSeq("AUGCCCUAA"); r = new Ribosome(start, stops, new AAFactory(), 3); }
/// <summary> /// Given an amino acid codon, returns a sequence of /// nucleobases corresponding to that codon /// </summary> /// <param name="codon">Codon to break down</param> /// <returns>Array of appropriate bases</returns> public static Nucleobase[] BreakAACodon(AACodon codon) { return(FrameshiftUtil.StringSeq(codon.ToString())); //TODO }
/// <summary> /// Overload for scan, used when there's only a single possible codon to scan for. /// uses the default granularity of 1 /// </summary> private int Scan(Nucleobase[] seq, AACodon cod, int beginScan) { return(Scan(seq, new List <AACodon> { cod }, beginScan, 1)); }
public IAminoAcid BuildAA(AACodon codon) { switch (codon) { case AACodon.UUU: case AACodon.UUC: //phenylalanine return(new AminoAcid(codon, "Phenylalanine", "Phe", 'F')); case AACodon.UUA: case AACodon.UUG: case AACodon.CUU: case AACodon.CUC: case AACodon.CUA: case AACodon.CUG: //leucine return(new AminoAcid(codon, "Leucine", "Leu", 'L')); case AACodon.UCU: case AACodon.UCC: case AACodon.UCA: case AACodon.UCG: case AACodon.AGU: case AACodon.AGC: //serine return(new AminoAcid(codon, "Serine", "Ser", 'S')); case AACodon.UAU: case AACodon.UAC: //tyrosine; return(new AminoAcid(codon, "Tyrosine", "Tyr", 'T')); case AACodon.UGU: case AACodon.UGC: //cysteine return(new AminoAcid(codon, "Cysteine", "Cys", 'C')); case AACodon.UGG: //tryptophan; return(new AminoAcid(codon, "Tryptophan", "Trp", 'W')); case AACodon.CCU: case AACodon.CCC: case AACodon.CCA: case AACodon.CCG: //proline return(new AminoAcid(codon, "Proline", "Pro", 'P')); case AACodon.CAU: case AACodon.CAC: //histidine return(new AminoAcid(codon, "Histidine", "His", 'H')); case AACodon.CAA: case AACodon.CAG: //glutamine return(new AminoAcid(codon, "Glutamine", "Gln", 'Q')); case AACodon.CGU: case AACodon.CGC: case AACodon.CGA: case AACodon.CGG: case AACodon.AGA: case AACodon.AGG: //arginine return(new AminoAcid(codon, "Arginine", "Arg", 'R')); case AACodon.AUU: case AACodon.AUC: case AACodon.AUA: //isoleucine return(new AminoAcid(codon, "Isoleucine", "Ile", 'I')); case AACodon.AUG: //met / start return(new AminoAcid(codon, "Methionine", "Met", 'M')); case AACodon.ACU: case AACodon.ACC: case AACodon.ACA: case AACodon.ACG: //threonine return(new AminoAcid(codon, "Threonine", "Thr", 'T')); case AACodon.AAU: case AACodon.AAC: //asparagine return(new AminoAcid(codon, "Asparagine", "Asn", 'N')); case AACodon.AAA: case AACodon.AAG: //lycine return(new AminoAcid(codon, "Lycine", "Lys", 'K')); case AACodon.GUU: case AACodon.GUC: case AACodon.GUA: case AACodon.GUG: //valine return(new AminoAcid(codon, "Valine", "Val", 'V')); case AACodon.GCU: case AACodon.GCC: case AACodon.GCA: case AACodon.GCG: //alanine return(new AminoAcid(codon, "Alanine", "Ala", 'A')); case AACodon.GAU: case AACodon.GAC: //aspartic acid return(new AminoAcid(codon, "Apartic Acid", "Asp", 'D')); case AACodon.GAA: case AACodon.GAG: //glutamic acid return(new AminoAcid(codon, "Glutamic Acid", "Glu", 'E')); case AACodon.GGU: case AACodon.GGC: case AACodon.GGA: case AACodon.GGG: //glycine; return(new AminoAcid(codon, "Glycine", "Gly", 'G')); case AACodon.UAA: case AACodon.UAG: case AACodon.UGA: //stop return(new AminoAcid(codon, "STOP", "END", '_')); default: return(null); } }