示例#1
0
        /// <summary>
        ///     Create an object using the contents of the corresponding MzIdentML object
        /// </summary>
        /// <param name="sil"></param>
        /// <param name="idata"></param>
        public SpectrumIdentificationListObj(SpectrumIdentificationListType sil, IdentDataObj idata)
            : base(sil, idata)
        {
            Id   = sil.id;
            Name = sil.name;
            _numSequencesSearched         = sil.numSequencesSearched;
            NumSequencesSearchedSpecified = sil.numSequencesSearchedSpecified;

            _fragmentationTables           = null;
            _spectrumIdentificationResults = null;

            if ((sil.FragmentationTable != null) && (sil.FragmentationTable.Count > 0))
            {
                FragmentationTables = new IdentDataList <MeasureObj>();
                foreach (var f in sil.FragmentationTable)
                {
                    FragmentationTables.Add(new MeasureObj(f, IdentData));
                }
            }
            if ((sil.SpectrumIdentificationResult != null) && (sil.SpectrumIdentificationResult.Count > 0))
            {
                SpectrumIdentificationResults = new IdentDataList <SpectrumIdentificationResultObj>();
                foreach (var sir in sil.SpectrumIdentificationResult)
                {
                    SpectrumIdentificationResults.Add(new SpectrumIdentificationResultObj(sir, IdentData));
                }
            }
        }
示例#2
0
        /// <summary>
        /// Create an object using the contents of the corresponding MzIdentML object
        /// </summary>
        /// <param name="sd"></param>
        /// <param name="idata"></param>
        public SearchDatabaseInfo(SearchDatabaseType sd, IdentDataObj idata)
            : base(sd, idata)
        {
            Id                            = sd.id;
            Name                          = sd.name;
            Version                       = sd.version;
            _releaseDate                  = sd.releaseDate;
            ReleaseDateSpecified          = sd.releaseDateSpecified;
            _numDatabaseSequences         = sd.numDatabaseSequences;
            NumDatabaseSequencesSpecified = sd.numDatabaseSequencesSpecified;
            _numResidues                  = sd.numResidues;
            NumResiduesSpecified          = sd.numResiduesSpecified;
            ExternalFormatDocumentation   = sd.ExternalFormatDocumentation;
            Location                      = sd.location;

            _databaseName = null;
            _fileFormat   = null;

            if (sd.DatabaseName != null)
            {
                _databaseName = new ParamObj(sd.DatabaseName, IdentData);
            }
            if (sd.FileFormat != null)
            {
                _fileFormat = new FileFormatInfo(sd.FileFormat, IdentData);
            }
        }
示例#3
0
        /// <summary>
        ///     Create an object using the contents of the corresponding MzIdentML object
        /// </summary>
        /// <param name="si"></param>
        /// <param name="idata"></param>
        public SpectrumIdentificationObj(SpectrumIdentificationType si, IdentDataObj idata)
            : base(si, idata)
        {
            SpectrumIdentificationProtocolRef = si.spectrumIdentificationProtocol_ref;
            SpectrumIdentificationListRef     = si.spectrumIdentificationList_ref;

            _inputSpectra    = null;
            _searchDatabases = null;

            if ((si.InputSpectra != null) && (si.InputSpectra.Count > 0))
            {
                InputSpectra = new IdentDataList <InputSpectraRefObj>();
                foreach (var ispec in si.InputSpectra)
                {
                    InputSpectra.Add(new InputSpectraRefObj(ispec, IdentData));
                }
            }
            if ((si.SearchDatabaseRef != null) && (si.SearchDatabaseRef.Count > 0))
            {
                SearchDatabases = new IdentDataList <SearchDatabaseRefObj>();
                foreach (var sd in si.SearchDatabaseRef)
                {
                    SearchDatabases.Add(new SearchDatabaseRefObj(sd, IdentData));
                }
            }
        }
示例#4
0
        /// <summary>
        ///     Create an object using the contents of the corresponding MzIdentML object
        /// </summary>
        /// <param name="sc"></param>
        /// <param name="idata"></param>
        public SequenceCollectionObj(SequenceCollectionType sc, IdentDataObj idata)
            : base(idata)
        {
            _dBSequences      = null;
            _peptides         = null;
            _peptideEvidences = null;

            idata.SequenceCollection = this;

            if ((sc.DBSequence != null) && (sc.DBSequence.Count > 0))
            {
                DBSequences = new IdentDataList <DbSequenceObj>();
                foreach (var dbs in sc.DBSequence)
                {
                    DBSequences.Add(new DbSequenceObj(dbs, IdentData));
                }
            }
            if ((sc.Peptide != null) && (sc.Peptide.Count > 0))
            {
                Peptides = new IdentDataList <PeptideObj>();
                foreach (var p in sc.Peptide)
                {
                    Peptides.Add(new PeptideObj(p, IdentData));
                }
            }
            if ((sc.PeptideEvidence != null) && (sc.PeptideEvidence.Count > 0))
            {
                PeptideEvidences = new IdentDataList <PeptideEvidenceObj>();
                foreach (var pe in sc.PeptideEvidence)
                {
                    PeptideEvidences.Add(new PeptideEvidenceObj(pe, IdentData));
                }
            }
        }
        /// <summary>
        /// Create an object using the contents of the corresponding MzIdentML object
        /// </summary>
        /// <param name="sii"></param>
        /// <param name="idata"></param>
        public SpectrumIdentificationItemObj(SpectrumIdentificationItemType sii, IdentDataObj idata)
            : base(sii, idata)
        {
            Id          = sii.id;
            Name        = sii.name;
            ChargeState = sii.chargeState;
            ExperimentalMassToCharge        = sii.experimentalMassToCharge;
            _calculatedMassToCharge         = sii.calculatedMassToCharge;
            CalculatedMassToChargeSpecified = sii.calculatedMassToChargeSpecified;
            _calculatedPI         = sii.calculatedPI;
            CalculatedPISpecified = sii.calculatedPISpecified;
            PeptideRef            = sii.peptide_ref;
            Rank          = sii.rank;
            PassThreshold = sii.passThreshold;
            MassTableRef  = sii.massTable_ref;
            SampleRef     = sii.sample_ref;

            PeptideEvidences = new IdentDataList <PeptideEvidenceRefObj>(1);
            Fragmentations   = new IdentDataList <IonTypeObj>(1);

            if (sii.PeptideEvidenceRef?.Count > 0)
            {
                PeptideEvidences.AddRange(sii.PeptideEvidenceRef, pe => new PeptideEvidenceRefObj(pe, IdentData));
            }
            if (sii.Fragmentation?.Count > 0)
            {
                Fragmentations.AddRange(sii.Fragmentation, f => new IonTypeObj(f, IdentData));
            }
        }
示例#6
0
        /// <summary>
        ///     Create an object using the contents of the corresponding MzIdentML object
        /// </summary>
        /// <param name="s"></param>
        /// <param name="idata"></param>
        public SampleObj(SampleType s, IdentDataObj idata)
            : base(s, idata)
        {
            Id   = s.id;
            Name = s.name;

            _contactRoles = null;
            _subSamples   = null;

            if ((s.ContactRole != null) && (s.ContactRole.Count > 0))
            {
                ContactRoles = new IdentDataList <ContactRoleObj>();
                foreach (var cr in s.ContactRole)
                {
                    ContactRoles.Add(new ContactRoleObj(cr, IdentData));
                }
            }
            if ((s.SubSample != null) && (s.SubSample.Count > 0))
            {
                SubSamples = new IdentDataList <SubSampleObj>();
                foreach (var ss in s.SubSample)
                {
                    SubSamples.Add(new SubSampleObj(ss, IdentData));
                }
            }
        }
        /// <summary>
        /// Create an object using the contents of the corresponding MzIdentML object
        /// </summary>
        /// <param name="it"></param>
        /// <param name="idata"></param>
        public IonTypeObj(IonTypeType it, IdentDataObj idata)
            : base(idata)
        {
            Charge = it.charge;

            FragmentArrays = new IdentDataList <FragmentArrayObj>(1);
            CVParams       = new IdentDataList <CVParamObj>(1);
            UserParams     = new IdentDataList <UserParamObj>(1);
            Index          = new List <string>();

            if (it.FragmentArray?.Count > 0)
            {
                FragmentArrays.AddRange(it.FragmentArray, f => new FragmentArrayObj(f, IdentData));
            }

            if (it.cvParam?.Count > 0)
            {
                CVParams.AddRange(it.cvParam.Select(cvp => new CVParamObj(cvp, idata)));
            }

            if (it.userParam?.Count > 0)
            {
                UserParams.AddRange(it.userParam.Select(up => new UserParamObj(up, idata)));
            }
        }
示例#8
0
        /// <summary>
        ///     Create an object using the contents of the corresponding MzIdentML object
        /// </summary>
        /// <param name="i"></param>
        /// <param name="idata"></param>
        public InputsObj(InputsType i, IdentDataObj idata)
            : base(idata)
        {
            _sourceFiles     = null;
            _searchDatabases = null;
            _spectraDataList = null;

            if ((i.SourceFile != null) && (i.SourceFile.Count > 0))
            {
                SourceFiles = new IdentDataList <SourceFileInfo>();
                foreach (var sf in i.SourceFile)
                {
                    SourceFiles.Add(new SourceFileInfo(sf, IdentData));
                }
            }
            if ((i.SearchDatabase != null) && (i.SearchDatabase.Count > 0))
            {
                SearchDatabases = new IdentDataList <SearchDatabaseInfo>();
                foreach (var sd in i.SearchDatabase)
                {
                    SearchDatabases.Add(new SearchDatabaseInfo(sd, IdentData));
                }
            }
            if ((i.SpectraData != null) && (i.SpectraData.Count > 0))
            {
                SpectraDataList = new IdentDataList <SpectraDataObj>();
                foreach (var sd in i.SpectraData)
                {
                    SpectraDataList.Add(new SpectraDataObj(sd, IdentData));
                }
            }
        }
        /// <summary>
        /// Create an object using the contents of the corresponding MzIdentML object
        /// </summary>
        /// <param name="sc"></param>
        /// <param name="idata"></param>
        public SequenceCollectionObj(SequenceCollectionType sc, IdentDataObj idata)
            : base(idata)
        {
            DBSequences      = new IdentDataList <DbSequenceObj>(1);
            Peptides         = new IdentDataList <PeptideObj>(1);
            PeptideEvidences = new IdentDataList <PeptideEvidenceObj>(1);

            idata.SequenceCollection = this;

            if (sc.DBSequence?.Count > 0)
            {
                DBSequences.AddIdMap();
                DBSequences.AddRange(sc.DBSequence, dbs => new DbSequenceObj(dbs, IdentData));
            }
            if (sc.Peptide?.Count > 0)
            {
                Peptides.AddIdMap();
                Peptides.AddRange(sc.Peptide, p => new PeptideObj(p, IdentData));
            }
            if (sc.PeptideEvidence?.Count > 0)
            {
                PeptideEvidences.AddIdMap();
                PeptideEvidences.AddRange(sc.PeptideEvidence, pe => new PeptideEvidenceObj(pe, IdentData));
            }
        }
示例#10
0
        /// <summary>
        ///     Create an object using the contents of the corresponding MzIdentML object
        /// </summary>
        /// <param name="mt"></param>
        /// <param name="idata"></param>
        public MassTableObj(MassTableType mt, IdentDataObj idata)
            : base(mt, idata)
        {
            Id   = mt.id;
            Name = mt.name;

            _residues          = null;
            _ambiguousResidues = null;
            MsLevels           = null;

            if ((mt.Residue != null) && (mt.Residue.Count > 0))
            {
                Residues = new IdentDataList <ResidueObj>();
                foreach (var r in mt.Residue)
                {
                    Residues.Add(new ResidueObj(r, IdentData));
                }
            }
            if ((mt.AmbiguousResidue != null) && (mt.AmbiguousResidue.Count > 0))
            {
                AmbiguousResidues = new IdentDataList <AmbiguousResidueObj>();
                foreach (var ar in mt.AmbiguousResidue)
                {
                    AmbiguousResidues.Add(new AmbiguousResidueObj(ar, IdentData));
                }
            }
            if (mt.msLevel != null)
            {
                MsLevels = new List <string>(mt.msLevel);
            }
        }
示例#11
0
 /// <summary>
 ///     Create an object using the contents of the corresponding MzIdentML object
 /// </summary>
 /// <param name="pa"></param>
 /// <param name="idata"></param>
 protected ProtocolApplicationObj(ProtocolApplicationType pa, IdentDataObj idata)
     : base(idata)
 {
     Id                    = pa.id;
     Name                  = pa.name;
     _activityDate         = pa.activityDate;
     ActivityDateSpecified = pa.activityDateSpecified;
 }
示例#12
0
 /// <summary>
 ///     Create an object using the contents of the corresponding MzIdentML object
 /// </summary>
 /// <param name="cv"></param>
 /// <param name="idata"></param>
 public CVInfo(cvType cv, IdentDataObj idata)
     : base(idata)
 {
     FullName = cv.fullName;
     Version  = cv.version;
     URI      = cv.uri;
     Id       = cv.id;
 }
示例#13
0
        /// <summary>
        /// Create an object using the contents of the corresponding MzIdentML object
        /// </summary>
        /// <param name="cvpg"></param>
        /// <param name="idata"></param>
        public CVParamGroupObj(ICVParamGroup cvpg, IdentDataObj idata)
            : base(idata)
        {
            CVParams = new IdentDataList <CVParamObj>(1);

            if (cvpg.cvParam?.Count > 0)
            {
                CVParams.AddRange(cvpg.cvParam, cvp => new CVParamObj(cvp, IdentData));
            }
        }
示例#14
0
        /// <summary>
        ///     Create an object using the contents of the corresponding MzIdentML object
        /// </summary>
        /// <param name="p"></param>
        /// <param name="idata"></param>
        public PeptideObj(PeptideType p, IdentDataObj idata)
            : base(p, idata)
        {
            Id              = p.id;
            Name            = p.name;
            PeptideSequence = p.PeptideSequence;

            _modifications             = null;
            _substitutionModifications = null;
        }
        /// <summary>
        /// Create an object using the contents of the corresponding MzIdentML object
        /// </summary>
        /// <param name="pg"></param>
        /// <param name="idata"></param>
        public ParamGroupObj(IParamGroup pg, IdentDataObj idata)
            : base(pg, idata)
        {
            UserParams = new IdentDataList <UserParamObj>(1);

            if (pg.userParam?.Count > 0)
            {
                UserParams.AddRange(pg.userParam, up => new UserParamObj(up, IdentData));
            }
        }
示例#16
0
        /// <summary>
        ///     Create an object using the contents of the corresponding MzIdentML object
        /// </summary>
        /// <param name="sidf"></param>
        /// <param name="idata"></param>
        public SpectrumIDFormatObj(SpectrumIDFormatType sidf, IdentDataObj idata)
            : base(idata)
        {
            _cvParam = null;

            if (sidf.cvParam != null)
            {
                _cvParam = new CVParamObj(sidf.cvParam, IdentData);
            }
        }
示例#17
0
        /// <summary>
        ///     Create an object using the contents of the corresponding MzIdentML object
        /// </summary>
        /// <param name="ff"></param>
        /// <param name="idata"></param>
        public FileFormatInfo(FileFormatType ff, IdentDataObj idata)
            : base(idata)
        {
            _cvParam = null;

            if (ff.cvParam != null)
            {
                _cvParam = new CVParamObj(ff.cvParam, IdentData);
            }
        }
        /// <summary>
        /// Create an object using the contents of the corresponding MzIdentML object
        /// </summary>
        /// <param name="r"></param>
        /// <param name="idata"></param>
        public RoleObj(RoleType r, IdentDataObj idata)
            : base(idata)
        {
            _cvParam = null;

            if (r.cvParam != null)
            {
                _cvParam = new CVParamObj(r.cvParam, IdentData);
            }
        }
        /// <summary>
        /// Create an object using the contents of the corresponding MzIdentML object
        /// </summary>
        /// <param name="o"></param>
        /// <param name="idata"></param>
        public OrganizationObj(OrganizationType o, IdentDataObj idata)
            : base(o, idata)
        {
            _parent = null;

            if (o.Parent != null)
            {
                _parent = new ParentOrganizationObj(o.Parent, IdentData);
            }
        }
示例#20
0
        /// <summary>
        ///     Create an object using the contents of the corresponding MzIdentML object
        /// </summary>
        /// <param name="fa"></param>
        /// <param name="idata"></param>
        public FragmentArrayObj(FragmentArrayType fa, IdentDataObj idata)
            : base(idata)
        {
            MeasureRef = fa.measure_ref;

            Values = null;
            if (fa.values != null)
            {
                Values = new List <float>(fa.values);
            }
        }
示例#21
0
 /// <summary>
 /// Create an object using the contents of the corresponding MzIdentML object
 /// </summary>
 /// <param name="dbs"></param>
 /// <param name="idata"></param>
 public DbSequenceObj(DBSequenceType dbs, IdentDataObj idata)
     : base(dbs, idata)
 {
     Id                = dbs.id;
     Name              = dbs.name;
     Seq               = dbs.Seq;
     _length           = dbs.length;
     LengthSpecified   = dbs.lengthSpecified;
     SearchDatabaseRef = dbs.searchDatabase_ref;
     Accession         = dbs.accession;
 }
示例#22
0
        /*public ParamBase(AbstractParamType ap, IdentData idata)
         *  : base(idata)
         * {
         *  this._unitsSet = false;
         *  this.UnitCvRef = ap.unitCvRef;
         *  //this._unitAccession = ap.unitAccession;
         *  this.UnitAccession = ap.unitAccession;
         *  //this._unitName = ap.unitName;
         *
         *  //this._unitCvid = CV.CV.CVID.CVID_Unknown;
         * }*/

        /// <summary>
        /// Create an object using the contents of the corresponding MzIdentML object
        /// </summary>
        /// <param name="idata"></param>
        protected ParamBaseObj(IdentDataObj idata)
            : base(idata)
        {
            _unitsSet = false;
            //this.UnitCvRef = ap.unitCvRef;
            //this._unitAccession = ap.unitAccession;
            //this.UnitAccession = ap.unitAccession;
            //this._unitName = ap.unitName;

            //this._unitCvid = CV.CV.CVID.CVID_Unknown;
        }
示例#23
0
        /// <summary>
        /// Create an object using the contents of the corresponding MzIdentML object
        /// </summary>
        /// <param name="up"></param>
        /// <param name="idata"></param>
        public UserParamObj(UserParamType up, IdentDataObj idata)
            : base(idata)
        {
            _name  = up.name;
            _value = up.value;
            Type   = up.type;

            UnitCvRef = up.unitCvRef;
            //this._unitAccession = up.unitAccession;
            UnitAccession = up.unitAccession;
            //this._unitName = up.unitName;
        }
示例#24
0
 /// <summary>
 ///     Create an object using the contents of the corresponding MzIdentML object
 /// </summary>
 /// <param name="sm"></param>
 /// <param name="idata"></param>
 public SubstitutionModificationObj(SubstitutionModificationType sm, IdentDataObj idata)
     : base(idata)
 {
     OriginalResidue                = sm.originalResidue;
     ReplacementResidue             = sm.replacementResidue;
     _location                      = sm.location;
     LocationSpecified              = sm.locationSpecified;
     _avgMassDelta                  = sm.avgMassDelta;
     AvgMassDeltaSpecified          = sm.avgMassDeltaSpecified;
     _monoisotopicMassDelta         = sm.monoisotopicMassDelta;
     MonoisotopicMassDeltaSpecified = sm.monoisotopicMassDeltaSpecified;
 }
示例#25
0
        /// <summary>
        ///     Create an object using the contents of the corresponding MzIdentML object
        /// </summary>
        /// <param name="cr"></param>
        /// <param name="idata"></param>
        public ContactRoleObj(ContactRoleType cr, IdentDataObj idata)
            : base(idata)
        {
            ContactRef = cr.contact_ref;

            _role = null;

            if (cr.Role != null)
            {
                _role = new RoleObj(cr.Role, IdentData);
            }
        }
示例#26
0
        public void MzIdentMLReadTest(string path, int expectedSpecLists, int expectedSpecResults, int expectedSpecItems, int expectedPeptides, int expectedSeqs)
        {
            var sourceFile = new FileInfo(Path.Combine(TestPath.ExtTestDataDirectory, path));

            if (!sourceFile.Exists)
            {
                Console.WriteLine("File not found: " + sourceFile.FullName);
                return;
            }

            var identData   = new IdentDataObj(MzIdentMlReaderWriter.Read(sourceFile.FullName));
            var specResults = 0;
            var specItems   = 0;

            foreach (var specList in identData.DataCollection.AnalysisData.SpectrumIdentificationList)
            {
                if (specList.SpectrumIdentificationResults == null)
                {
                    continue;
                }

                specResults += specList.SpectrumIdentificationResults.Count;
                foreach (var specResult in specList.SpectrumIdentificationResults)
                {
                    specItems += specResult.SpectrumIdentificationItems.Count;
                }
            }

            var observedPeptides = 0;

            if (identData.SequenceCollection.Peptides != null)
            {
                observedPeptides = identData.SequenceCollection.Peptides.Count;
            }

            var observeProteins = 0;

            if (identData.SequenceCollection.DBSequences != null)
            {
                observeProteins = identData.SequenceCollection.DBSequences.Count;
            }

            Console.WriteLine();
            Console.WriteLine("Spectrum Identification Results: {0,6:N0}", specResults);
            Console.WriteLine("Native IDs: {0,6:N0}", specItems);
            Console.WriteLine("Unique Peptides: {0,6:N0}", observedPeptides);
            Console.WriteLine("Unique Protein Sequences: {0,6:N0}", observeProteins);

            Assert.AreEqual(expectedSpecResults, specResults, "Spectrum Identification Results");
            Assert.AreEqual(expectedSpecItems, specItems, "Native IDs");
            Assert.AreEqual(expectedPeptides, observedPeptides, "Unique Peptides");
            Assert.AreEqual(expectedSeqs, observeProteins, "Unique Protein Sequences");
        }
示例#27
0
        /// <summary>
        /// Create an object using the contents of the corresponding MzIdentML object
        /// </summary>
        /// <param name="ph"></param>
        /// <param name="idata"></param>
        public PeptideHypothesisObj(PeptideHypothesisType ph, IdentDataObj idata)
            : base(idata)
        {
            PeptideEvidenceRef = ph.peptideEvidence_ref;

            SpectrumIdentificationItems = new IdentDataList <SpectrumIdentificationItemRefObj>(1);

            if (ph.SpectrumIdentificationItemRef?.Count > 0)
            {
                SpectrumIdentificationItems.AddRange(ph.SpectrumIdentificationItemRef, spectrumIdItemRef => new SpectrumIdentificationItemRefObj(spectrumIdItemRef, IdentData));
            }
        }
示例#28
0
        /// <summary>
        /// Create an object using the contents of the corresponding MzIdentML object
        /// </summary>
        /// <param name="pdl"></param>
        /// <param name="idata"></param>
        public ProteinDetectionListObj(ProteinDetectionListType pdl, IdentDataObj idata)
            : base(pdl, idata)
        {
            Id   = pdl.id;
            Name = pdl.name;

            ProteinAmbiguityGroups = new IdentDataList <ProteinAmbiguityGroupObj>(1);

            if (pdl.ProteinAmbiguityGroup?.Count > 0)
            {
                ProteinAmbiguityGroups.AddRange(pdl.ProteinAmbiguityGroup, pag => new ProteinAmbiguityGroupObj(pag, IdentData));
            }
        }
        /// <summary>
        /// Create an object using the contents of the corresponding MzIdentML object
        /// </summary>
        /// <param name="pd"></param>
        /// <param name="idata"></param>
        public ProteinDetectionObj(ProteinDetectionType pd, IdentDataObj idata)
            : base(pd, idata)
        {
            ProteinDetectionListRef     = pd.proteinDetectionList_ref;
            ProteinDetectionProtocolRef = pd.proteinDetectionProtocol_ref;

            InputSpectrumIdentifications = new IdentDataList <InputSpectrumIdentificationsObj>(1);

            if (pd.InputSpectrumIdentifications?.Count > 0)
            {
                InputSpectrumIdentifications.AddRange(pd.InputSpectrumIdentifications, isi => new InputSpectrumIdentificationsObj(isi, IdentData));
            }
        }
        /// <summary>
        /// Create an object using the contents of the corresponding MzIdentML object
        /// </summary>
        /// <param name="el"></param>
        /// <param name="idata"></param>
        public EnzymeListObj(EnzymesType el, IdentDataObj idata)
            : base(idata)
        {
            _independent         = el.independent;
            IndependentSpecified = el.independentSpecified;

            Enzymes = new IdentDataList <EnzymeObj>(1);

            if (el.Enzyme?.Count > 0)
            {
                Enzymes.AddRange(el.Enzyme, e => new EnzymeObj(e, IdentData));
            }
        }