Exemplo n.º 1
0
        public TurnoverCalculator(Workspace workspace, String sequence)
        {
            Sequence = sequence;
            _errOnSideOfLowerAbundance = workspace.GetErrOnSideOfLowerAbundance();
            _aminoAcidFormulas         = workspace.GetAminoAcidFormulasWithTracers();
            _tracerDefs    = new Dictionary <String, TracerDef>();
            _traceeSymbols = new HashSet <String>();
            foreach (var tracerDef in workspace.GetTracerDefs())
            {
                if (!_traceeSymbols.Contains(tracerDef.TraceeSymbol))
                {
                    if (tracerDef.GetMaximumTracerCount(sequence) == 0)
                    {
                        continue;
                    }
                    _traceeSymbols.Add(tracerDef.TraceeSymbol);
                }
                _tracerDefs.Add(tracerDef.Name, tracerDef);
            }
            _maxTracerCount = workspace.GetMaxTracerCount(sequence);
            _masses         = new ReadOnlyCollection <MzRange>(GetMasses());
            var tracerFormulae = new List <TracerFormula>();

            _tracerFormulaIndexes = new Dictionary <TracerFormula, int>();
            var enumerator = new TracerFormulaEnumerator(Sequence, _tracerDefs.Values);

            while (enumerator.MoveNext())
            {
                _tracerFormulaIndexes.Add(enumerator.Current, tracerFormulae.Count);
                tracerFormulae.Add(enumerator.Current);
            }
            _tracerFormulae = ImmutableList.ValueOf(tracerFormulae);
        }
Exemplo n.º 2
0
 public AminoAcidFormulas AddTracerToAminoAcidFormulas(AminoAcidFormulas aminoAcidFormulas)
 {
     if (AminoAcidSymbol.HasValue)
     {
         aminoAcidFormulas = aminoAcidFormulas.SetIsotopeAbundances(
             aminoAcidFormulas.IsotopeAbundances.SetAbundances(TraceeSymbol, TraceeMasses));
         aminoAcidFormulas = aminoAcidFormulas.SetFormula(AminoAcidSymbol.Value, TraceeSymbol);
     }
     aminoAcidFormulas = aminoAcidFormulas.SetIsotopeAbundances(
         aminoAcidFormulas.IsotopeAbundances.SetAbundances(Name, TracerMasses));
     return(aminoAcidFormulas);
 }
Exemplo n.º 3
0
        public AminoAcidFormulas GetAminoAcidFormulas()
        {
            if (_aminoAcidFormulas != null)
            {
                return(_aminoAcidFormulas);
            }
            var massShifts = new Dictionary <char, double>();

            foreach (var modification in Modifications)
            {
                massShifts[modification.Key[0]] = modification.Value;
            }
            return(_aminoAcidFormulas = AminoAcidFormulas.Default.SetMassShifts(massShifts));
        }
Exemplo n.º 4
0
 public MassDistribution GetMassDistribution(AminoAcidFormulas aminoAcidFormulas)
 {
     return(aminoAcidFormulas.GetMassDistribution(Sequence, Charge));
 }
Exemplo n.º 5
0
 public double GetMonoisotopicMass(AminoAcidFormulas aminoAcidFormulas)
 {
     return(AminoAcidFormulas.ProtonMass + aminoAcidFormulas.GetMonoisotopicMass(Sequence) / Charge);
 }