Esempio n. 1
0
 public Query(DBOptions dbOptions, Sample entry, ProductSpectrum spectrum, Precursor precursor, int spectraIndex = -1)
 {
     this.options       = dbOptions;
     this.sample        = entry;
     this.psms          = new PeptideSpectrumMatches();
     this.spectrum      = spectrum;
     this.precursor     = precursor;
     this.spectrumIndex = spectraIndex;
     if (spectrum != null && precursor != null)
     {
         this.TrapDistance = Math.Abs(spectrum.PrecursorMZ - precursor.Track.MZ);
     }
 }
 public static int AscendingRetentionTimeComparison(ProductSpectrum left, ProductSpectrum right)
 {
     return(left.RetentionTimeInMin.CompareTo(right.RetentionTimeInMin));
 }
        /*
         * public ProductSpectrum(ProductSpectrum spectrum)
         * {
         *  this.Filename = spectrum.Filename;
         *  this.ScanNumber = spectrum.ScanNumber;
         *  this.RetentionTimeInMin = spectrum.RetentionTimeInMin;
         *  this.FragmentationMethod = spectrum.FragmentationMethod;
         *  this.PrecursorMZ = spectrum.PrecursorMZ;
         *  this.PrecursorIntensity = spectrum.PrecursorIntensity;
         *  this.PrecursorCharge = spectrum.PrecursorCharge;
         *  this.PrecursorMass = spectrum.PrecursorMass;
         *  this.TotalIntensity = spectrum.TotalIntensity;
         *  this.Masses = spectrum.Masses;
         *  this.Intensities = spectrum.Intensities;
         * }*/

        public static int AscendingPrecursorMassComparison(ProductSpectrum left, ProductSpectrum right)
        {
            return(left.PrecursorMass.CompareTo(right.PrecursorMass));
        }
        public AnnotatedSpectrum(Sample sample, ProductSpectrum spectrum, Peptide peptide)
        {
            sequence = peptide.BaseSequence;
            peaks    = new double[spectrum.Peaks.Count][];
            for (int i = 0; i < peaks.Length; i++)
            {
                peaks[i]    = new double[2];
                peaks[i][0] = spectrum.Peaks[i].MZ;
                peaks[i][1] = spectrum.Peaks[i].Intensity;
            }
            scanNum     = spectrum.ScanNumber;
            charge      = spectrum.PrecursorCharge;
            precursorMz = spectrum.PrecursorMZ;
            fileName    = sample.sSDF;

            //Fixed modifications
            List <AnnotatedSpectrumModification> fixedMods = new List <AnnotatedSpectrumModification>();

            if (peptide.FixedModifications != null)
            {
                foreach (int position in peptide.FixedModifications.Keys)
                {
                    if (position == 1)
                    {
                        foreach (Modification mod in peptide.FixedModifications[position])
                        {
                            ntermMod += mod.MonoisotopicMassShift;
                        }
                    }
                    else
                    if (position == sequence.Length + 2)
                    {
                        foreach (Modification mod in peptide.FixedModifications[position])
                        {
                            ctermMod += mod.MonoisotopicMassShift;
                        }
                    }
                    else
                    {
                        foreach (Modification mod in peptide.FixedModifications[position])
                        {
                            fixedMods.Add(new AnnotatedSpectrumModification(mod.AminoAcid, mod.MonoisotopicMassShift, position - 1));
                        }
                    }
                }
            }
            staticMods = fixedMods.ToArray();

            //Variable modifications
            List <AnnotatedSpectrumModification> varMods = new List <AnnotatedSpectrumModification>();

            if (peptide.VariableModifications != null)
            {
                foreach (int position in peptide.VariableModifications.Keys)
                {
                    if (position == 1)
                    {
                        ntermMod += peptide.VariableModifications[position].MonoisotopicMassShift;
                    }
                    else
                    if (position == sequence.Length + 2)
                    {
                        ctermMod += peptide.VariableModifications[position].MonoisotopicMassShift;
                    }
                    else
                    {
                        varMods.Add(new AnnotatedSpectrumModification(peptide.VariableModifications[position].AminoAcid, peptide.VariableModifications[position].MonoisotopicMassShift, position - 1));
                    }
                }
            }
            variableMods = varMods.ToArray();

            /*
             * var sequence = "FDSFGDLSSASAIMGNPK";
             * var varMods = [];
             * // modification index = 14; modification mass = 16.0; modified residue = 'M'
             * varMods[0] = { index: 14, modMass: 16.0, aminoAcid: 'M' };
             * // mass to be added to the N-terminus
             * var ntermMod = 164.07;//*/
        }