예제 #1
0
 public Translation(Gene gene, Substance aa) {
   if (gene != null) {
     setGene(gene);
     setName("Translation_" + gene.getName());
     setSystem(gene.getGeneticSystem());
   }
   if (aa != null) {
     setAminoAcid(aa);
   }
   setToPrint(false);
 }
예제 #2
0
 public String toString() {
   return (getFullName()
       + "{"
       + NEWLINE
       + "\t Gene { "
       + gene.getLongName()
       + " } "
       + NEWLINE
       + "\t stoichiometry { "
       + getStoichiometry()
       + " } "
       + NEWLINE
       + "\t kinetics { "
       + getKinetics()
       + " } "
       + NEWLINE
       + "}");
 }
예제 #3
0
 /**
  * Setter for property gene.
  *
  * @param gene New value of property gene.
  */
 public void setGene(Gene gene) {
   this.gene = gene;
   gene.setTranslation(this);
 }
예제 #4
0
  public void setup() {
    clear();
    Protein protein = gene.getProtein();
    if (aminoAcid != null) addSubstance(aminoAcid, -1.0);
    addSubstance(gene.getRibosome(), 0.0);
    addSubstance(protein, 3.0 / (gene.getLength()));
    rateExpression =
        DMath.multiply(
            gene.getRibosome().getElongationRate(),
            DMath.min(
                DMath.multiply(
                    gene.getRibosome(),
                    DMath.divide(
                        DMath.multiply(gene.getKTranslation(), gene.getRna()),
                        gene.getRibosome().getTotalTranslationActivity())),
                //
                // the maximum # of ribosomes that can be allocated to a
                // gene
                // is the gene length divided by the ribosome spacing
                // requirement.
                //
                DMath.divide(
                    DMath.multiply(new Constant(gene.getLength() / 3.0), gene.getRna()),
                    gene.getRibosome().getSpacing())));
    //
    // hack: used to make sure that when aminoAcid is set, the rate should
    // be zero
    // when amino acids are all consumed.
    //
    // better implementation is by using the MichaelisMenten reaction
    // scheme, but
    // it needs an additional parameter.
    //

    if (aminoAcid != null)
      rateExpression =
          DMath.multiply(
              rateExpression, DMath.divide(aminoAcid, DMath.sum(aminoAcid, new Constant(1e4))));
  }