protected CodonBase(IGeneticCode geneticCode, ICodonIdentifier codonIdentifier, CodonType codonType, IEnumerable<INucleotide> nucleotides) { this.CodonIdentifier = codonIdentifier; this.CodonType = codonType; this.Nucleotides = nucleotides as List<INucleotide> ?? nucleotides.ToList(); if (this.Nucleotides.Count() != geneticCode.CodonLength) throw new GeneticCodeException("All Codons must be of the specified CodonLength in the Genetic Code."); }
/// <summary> /// /// </summary> /// <param name="geneticCode">The IGeneticCode to which all IOrganisms in this IUniverse adhere.</param> public Universe(IGeneticCode geneticCode) : base(geneticCode) { }
/// <summary> /// Converts this ICodon to a IConvertedCodon as specified by the given ICodonConverterIdentifier. /// </summary> /// <param name="geneticCode"></param> /// <param name="codonConverterIdentifier"></param> /// <returns>The converted IConvertedCodon.</returns> public IConvertedCodon Convert(IGeneticCode geneticCode, ICodonConverterIdentifier codonConverterIdentifier) { return geneticCode.ConvertCodon(codon: this, codonConverterIdentifier: codonConverterIdentifier); }
protected CodonBase(IGeneticCode geneticCode, ICodonIdentifier codonIdentifier, CodonType codonType, IEnumerable<INucleotideIdentifier> nucleotides) : this(geneticCode: geneticCode, codonIdentifier: codonIdentifier, codonType: codonType, nucleotides: nucleotides.Select(i => geneticCode.Nucleotides[i])) { }