## org.biojava.bio.proteomics
Class MassCalc

    java.lang.Object
      org.biojava.bio.proteomics.MassCalc

    public class MassCalc

extends Object

`MassCalc` calculates the mass of peptides which for our purposes are `SymbolList`s which contain `Symbol`sfrom the protein `Alphabet`. It uses the mono-isotopic and average-isotopic masses identical to those specified at www.micromass.co.uk Note: This class does not handle selenocysteine and pyrrolysine.

Author:
  M. Jones sdfsd, Keith James (minor changes), Mark Schreiber, George Waldon - getMolecularWeight

Field Summary
`static double` `Cavg` Constant value of Carbon average mass
`static double` `Cmono` Constant value of Carbon monoisotopic mass
`static double` `Havg` Constant value of Hydrogen average mass
`static double` `Hmono` Constant value of Hydrogen monoisotopic mass
`static double` `Navg` Constant value of Nitrogen average mass
`static double` `Nmono` Constant value of Nitrogen monoisotopic mass
`static double` `Oavg` Constant value of Oxygen average mass
`static double` `Omono` Constant value of Oxygen monoisotopic mass

Constructor Summary
`MassCalc(String isotopicType, boolean MH_PLUS)` Creates a new `MassCalc`.

Method Summary
`void` `addVariableModification(char residue, double[] masses)` Add Variable modifications.
`void` `addVariableModification(Symbol residue, double[] masses)` Add Variable modifications.
`double` `getMass(SymbolList proteinSeq)` Get the Mass of this peptide.
`static double` `getMass(SymbolList proteinSeq, String isotopicType, boolean MH_PLUS)` `getMass` calculates the mass of this peptide.
`static double` `getMolecularWeight(SymbolList proteinSeq)` Calculate the molecular weight of a protein, making estimates whenever it is possible like averaging mass values for ambiguity symbols or counting zero when gaps are encountered.
`double` `getTermMass()` `getTermMass` returns the terminal mass being used by the instance methods.
`double[]` `getVariableMasses(SymbolList peptide)` Get all masses including the variable mass.
`boolean` `removeVariableModifications(char residue)` Remove all variable modifications assocaited with this residue.
`boolean` `removeVariableModifications(Symbol residue)` Remove all variable modifications assocaited with this residue.
`void` `setSymbolModification(char symbolToken, double mass)` Use this to set a post translational modification for the `Symbol` represented by this character.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### Cmono

    public static final double Cmono

  Constant value of Carbon monoisotopic mass

  See Also:
    Constant Field Values

### Hmono

    public static final double Hmono

  Constant value of Hydrogen monoisotopic mass

  See Also:
    Constant Field Values

### Nmono

    public static final double Nmono

  Constant value of Nitrogen monoisotopic mass

  See Also:
    Constant Field Values

### Omono

    public static final double Omono

  Constant value of Oxygen monoisotopic mass

  See Also:
    Constant Field Values

### Cavg

    public static final double Cavg

  Constant value of Carbon average mass

  See Also:
    Constant Field Values

### Havg

    public static final double Havg

  Constant value of Hydrogen average mass

  See Also:
    Constant Field Values

### Navg

    public static final double Navg

  Constant value of Nitrogen average mass

  See Also:
    Constant Field Values

### Oavg

    public static final double Oavg

  Constant value of Oxygen average mass

  See Also:
    Constant Field Values

Constructor Detail

### MassCalc

    public MassCalc(String isotopicType,
                    boolean MH_PLUS)

  Creates a new `MassCalc`.

  Parameters:
    `isotopicType` - a `String`. The type of isotopes to calculate. Either mono isotopic or average isotopic. Acceptable values are `SymbolPropertyTable.AVG_MASS` or `SymbolPropertyTable.MONO_MASS`.
    `MH_PLUS` - a `boolean`.

Method Detail

### setSymbolModification

    public void setSymbolModification(char symbolToken,
                                      double mass)
                               throws IllegalSymbolException

  Use this to set a post translational modification for the `Symbol` represented by this character. It will only affect the current `MassCalc` instance and will not affect the static method.

  Parameters:
    `symbolToken` - a `char` representing a `Symbol`.
    `mass` - a `double` to be the new mass of the residue.
  Throws:
    `IllegalSymbolException` - if the `Symbol` is not recognised.

### addVariableModification

    public void addVariableModification(char residue,
                                        double[] masses)
                                 throws IllegalSymbolException

  Add Variable modifications. If multiple masses are set by this method more then one mass will be returned for a mass calculation. For example if a peptide contains two Mets and the user sets the native and oxidized mass for the Met then the masses returned will be of the peptide with 0, 1 and 2 modified Mets.

  Parameters:
    `residue` - The one char id for this residue
    `masses` -
  Throws:
    `IllegalSymbolException`
  See Also:
    `getVariableMasses(SymbolList peptide)`, `addVariableModification(Symbol residue,double[] masses)`

### addVariableModification

    public void addVariableModification(Symbol residue,
                                        double[] masses)
                                 throws IllegalSymbolException

  Add Variable modifications. If multiple masses are set by this method more then one mass will be returned for a mass calculation. For example if a peptide contains two Mets and the user sets the native and oxidized mass for the Met then the masses returned will be of the peptide with 0, 1 and 2 modified Mets.

  Throws:
    `IllegalSymbolException`

### removeVariableModifications

    public boolean removeVariableModifications(char residue)
                                        throws IllegalSymbolException

  Remove all variable modifications assocaited with this residue.

  Throws:
    `IllegalSymbolException`

### removeVariableModifications

    public boolean removeVariableModifications(Symbol residue)

  Remove all variable modifications assocaited with this residue.

### getMolecularWeight

    public static final double getMolecularWeight(SymbolList proteinSeq)
                                           throws IllegalSymbolException

  Calculate the molecular weight of a protein, making estimates whenever it is possible like averaging mass values for ambiguity symbols or counting zero when gaps are encountered. The method is tolerant for ambiguity symbols as long as they can be resolved to a series of atomic symbols whose mass is available in the ResidueProperties.xml configuration file or they are gaps. The method returns the same value as getMass(SymbolList proteinSeq, SymbolPropertyTable.AVG_MASS, false) when only atomic symbols are found in the polypeptide.

  Throws:
    `IllegalSymbolException`
  Since:
    1.5

### getMass

    public static final double getMass(SymbolList proteinSeq,
                                       String isotopicType,
                                       boolean MH_PLUS)
                                throws IllegalSymbolException

  `getMass` calculates the mass of this peptide. This only works for the values in the ResidueProperties.xml configuration file. It is probably slightly faster than the instance method, but it does not handle post-translational modifications.

  Parameters:
    `proteinSeq` - a `SymbolList` whose mass is to be calculated. This should use the protein alphabet.
    `isotopicType` - a `String` The type of isotopes to calculate. Either mono isotopic or average isotopic. Acceptable values are `SymbolPropertyTable.AVG_MASS` or `SymbolPropertyTable.MONO_MASS`.
    `MH_PLUS` - a `boolean` true if the value needed is the MH+ mass.
  Returns:
    a `double` mass of the peptide.
  Throws:
    `IllegalSymbolException` - if the `SymbolList` contains illegal `Symbol`s.

### getMass

    public double getMass(SymbolList proteinSeq)
                   throws IllegalSymbolException

  Get the Mass of this peptide. Use this if you want to set fixed modifications and have created an instance of MassCalc. The value is calculated using the value of MH_PLUS defined in the constructor. The static method may be faster.

  Parameters:
    `proteinSeq` - The sequence for mass calculation
  Returns:
    The mass of the sequence
  Throws:
    `IllegalSymbolException`

### getVariableMasses

    public double[] getVariableMasses(SymbolList peptide)
                               throws IllegalSymbolException

  Get all masses including the variable mass. Allgorythm 1 Get the first residue of the sequence create a list of all the standard and non-standard massses for this reidue for each residue mass goto 1 with the sequence of all residues after the current residue add the residue mass to each mass from 1 to the list

  Throws:
    `IllegalSymbolException`
  See Also:
    `addVariableModification(char, double[])`

### getTermMass

    public double getTermMass()

  `getTermMass` returns the terminal mass being used by the instance methods.

  Returns:
    a `double` mass.