Exemplo n.º 1
0
        /// <summary>
        ///     Create a modification with the specified values
        /// </summary>
        /// <param name="unimodCv">CV term for the modification, if available; otherwise, use CVID.MS_unknown_modification</param>
        /// <param name="modificationName">
        ///     Name of the modification, if a CV term for the modification is not available or unknown.
        ///     If this matches an Unimod modification name, the Unimod CV term will be used.
        /// </param>
        /// <param name="location">
        ///     location of the modification, using '0' for N-term and length+1 for C-term, and otherwise
        ///     1-based indexing
        /// </param>
        /// <param name="monoMassDelta">monoisotopic mass delta</param>
        /// <returns></returns>
        public ModificationObj(CV.CV.CVID unimodCv, string modificationName = "", int location = int.MinValue, double monoMassDelta = double.NaN) : this()
        {
            if (!monoMassDelta.Equals(double.NaN))
            {
                MonoisotopicMassDelta = monoMassDelta;
            }
            if (location != int.MinValue)
            {
                Location = location;
            }

            if ((unimodCv != CV.CV.CVID.CVID_Unknown) && (unimodCv != CV.CV.CVID.MS_unknown_modification))
            {
                CVParams.Add(new CVParamObj(unimodCv));
            }
            else if (!string.IsNullOrWhiteSpace(modificationName))
            {
                var result = SearchForUnimodMod(modificationName);
                if (result != CV.CV.CVID.MS_unknown_modification)
                {
                    CVParams.Add(new CVParamObj(result));
                }
                else
                {
                    CVParams.Add(new CVParamObj(CV.CV.CVID.MS_unknown_modification, modificationName));
                }
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Add information about the spectra input to the search
        /// </summary>
        /// <param name="location"></param>
        /// <param name="name"></param>
        /// <param name="spectrumIdFormat"></param>
        /// <param name="fileFormatCvid"></param>
        /// <returns></returns>
        public SpectraDataObj AddSpectraData(string location, string name, CV.CV.CVID spectrumIdFormat,
                                             CV.CV.CVID fileFormatCvid = CV.CV.CVID.CVID_Unknown)
        {
            var dataFile = new SpectraDataObj
            {
                Id               = "SD_" + specDataCounter++,
                Location         = location,
                Name             = name,
                SpectrumIDFormat = new SpectrumIDFormatObj()
                {
                    CVParam = new CVParamObj(spectrumIdFormat),
                },
            };

            if (fileFormatCvid != CV.CV.CVID.CVID_Unknown)
            {
                dataFile.FileFormat = new FileFormatInfo()
                {
                    CVParam = new CVParamObj(fileFormatCvid),
                };
            }
            if (identData.DataCollection.Inputs == null)
            {
                identData.DataCollection.Inputs = new InputsObj();
            }
            if (identData.DataCollection.Inputs.SpectraDataList == null)
            {
                identData.DataCollection.Inputs.SpectraDataList = new IdentDataList <SpectraDataObj>();
            }
            identData.DataCollection.Inputs.SpectraDataList.Add(dataFile);

            return(dataFile);
        }
Exemplo n.º 3
0
        /// <summary>
        ///     Constructor
        /// </summary>
        /// <param name="cvid"></param>
        /// <param name="value"></param>
        public CVParamObj(CV.CV.CVID cvid = CV.CV.CVID.CVID_Unknown, string value = null)
        {
            _cvRef = null;
            //this._name = null;
            //this._accession = null;
            _value = value;

            Cvid = cvid;
        }
Exemplo n.º 4
0
        /// <summary>
        /// Constructor
        /// </summary>
        protected ParamBaseObj()
        {
            //this._unitAccession = null;
            //this._unitName = null;
            _unitCvRef = null;
            _unitsSet  = false;

            _unitCvid = CV.CV.CVID.CVID_Unknown;
        }
Exemplo n.º 5
0
        /// <summary>
        /// Adds information about a search database to the IdentData
        /// </summary>
        /// <remarks>
        /// <para>
        /// Valid CVParams to add:
        /// </para>
        /// <para>
        ///    CVID.MS_MD5
        ///    CVID.MS_SHA_1
        /// </para>
        /// <para>
        ///    CVID.MS_database_source
        ///    CVID.MS_database_name
        ///    CVID.MS_database_local_file_path_OBSOLETE
        ///    CVID.MS_database_original_uri
        ///    CVID.MS_database_version_OBSOLETE
        ///    CVID.MS_database_release_date_OBSOLETE
        ///    CVID.MS_database_type
        ///    CVID.MS_database_filtering
        ///    CVID.MS_translation_frame
        ///    CVID.MS_translation_table
        ///    CVID.MS_number_of_peptide_seqs_compared_to_each_spectrum
        ///    CVID.MS_database_sequence_details
        ///    CVID.MS_database_file_formats
        ///    CVID.MS_translation_start_codon,
        ///    CVID.MS_translation_table_description
        ///    CVID.MS_decoy_DB_details
        ///    CVID.MS_number_of_decoy_sequences
        /// </para>
        /// <para>
        ///    CVID.MS_decoy_DB_type_reverse
        ///    CVID.MS_decoy_DB_type_randomized
        ///    CVID.MS_DB_composition_target_decoy
        ///    CVID.MS_decoy_DB_accession_regexp
        ///    CVID.MS_decoy_DB_derived_from_OBSOLETE
        /// </para>
        /// </remarks>
        /// <param name="location">Path to the database (absolute path)</param>
        /// <param name="numberOfSequences">Number of sequences in the database</param>
        /// <param name="databaseName">Name of the database (can be the filename)</param>
        /// <param name="publicDatabaseName">Name of the database, if it maps exactly to a CV term; otherwise use CVID_Unknown</param>
        /// <param name="fileFormatCvid">The format of the database, if it exists in the CV</param>
        /// <returns>An initialized and added database, can add CVParams that add details about the database. See remarks.</returns>
        public SearchDatabaseInfo AddSearchDatabase(
            string location,
            long numberOfSequences,
            string databaseName,
            CV.CV.CVID publicDatabaseName = CV.CV.CVID.CVID_Unknown,
            CV.CV.CVID fileFormatCvid     = CV.CV.CVID.CVID_Unknown)
        {
            var db = new SearchDatabaseInfo
            {
                Id                   = "SearchDB_" + dbCounter++,
                Location             = location,
                Name                 = databaseName,
                NumDatabaseSequences = numberOfSequences,
                DatabaseName         = new ParamObj(),
            };

            if (publicDatabaseName != CV.CV.CVID.CVID_Unknown)
            {
                db.DatabaseName.Item = new CVParamObj(publicDatabaseName);
            }
            else
            {
                db.DatabaseName.Item = new UserParamObj()
                {
                    Name = databaseName,
                };
            }

            if (fileFormatCvid != CV.CV.CVID.CVID_Unknown)
            {
                db.FileFormat = new FileFormatInfo
                {
                    CVParam = new CVParamObj(fileFormatCvid)
                };
            }

            if (identData.DataCollection.Inputs == null)
            {
                identData.DataCollection.Inputs = new InputsObj();
            }

            if (identData.DataCollection.Inputs.SearchDatabases == null)
            {
                identData.DataCollection.Inputs.SearchDatabases = new IdentDataList <SearchDatabaseInfo>();
            }

            identData.DataCollection.Inputs.SearchDatabases.Add(db);

            return(db);
        }
Exemplo n.º 6
0
        /// <summary>
        /// Add the settings used with the software "analysisSoftwareInfo"
        /// </summary>
        /// <param name="analysisSoftwareInfo">The object returned by <see cref="AddAnalysisSoftware"/></param>
        /// <param name="name">The name of the set of settings</param>
        /// <param name="searchType">The type of search performed:
        ///     CVID.MS_de_novo_search
        ///     CVID.MS_spectral_library_search
        ///     CVID.MS_spectral_library_search
        ///     CVID.MS_pmf_search
        ///     CVID.MS_tag_search
        ///     CVID.MS_ms_ms_search
        ///     CVID.MS_combined_pmf___ms_ms_search
        ///     CVID.MS_special_processing
        ///     CVID.MS_peptide_level_scoring
        ///     CVID.MS_modification_localization_scoring
        ///     CVID.MS_consensus_scoring
        ///     CVID.MS_sample_pre_fractionation
        ///     CVID.MS_cross_linking_search
        ///     CVID.MS_no_special_processing
        /// </param>
        /// <returns>An object that needs multiple items set - add CV/User params to AdditionalSearchParams, ModificationParams, Enzymes, FragmentTolerances, ParentTolerances, and Threshold</returns>
        public SpectrumIdentificationProtocolObj AddAnalysisSettings(AnalysisSoftwareObj analysisSoftwareInfo, string name, CV.CV.CVID searchType)
        {
            var settings = new SpectrumIdentificationProtocolObj
            {
                Id = "SearchProtocol_" + searchProtocolCounter++,
                AnalysisSoftware = analysisSoftwareInfo,
                Name             = name,
                SearchType       = new ParamObj(),
            };

            if (searchType != CV.CV.CVID.CVID_Unknown)
            {
                settings.SearchType.Item = new CVParamObj(searchType);
            }
            settings.AdditionalSearchParams = new ParamListObj()
            {
                Items = new IdentDataList <ParamBaseObj>()
            };
            settings.ModificationParams = new IdentDataList <SearchModificationObj>();
            settings.Enzymes            = new EnzymeListObj()
            {
                Enzymes = new IdentDataList <EnzymeObj>(),
            };

            settings.FragmentTolerances = new IdentDataList <CVParamObj>();
            settings.ParentTolerances   = new IdentDataList <CVParamObj>();
            settings.Threshold          = new ParamListObj()
            {
                Items = new IdentDataList <ParamBaseObj>(),
            };

            if (identData.AnalysisProtocolCollection.SpectrumIdentificationProtocols == null)
            {
                identData.AnalysisProtocolCollection.SpectrumIdentificationProtocols = new IdentDataList <SpectrumIdentificationProtocolObj>();
            }
            identData.AnalysisProtocolCollection.SpectrumIdentificationProtocols.Add(settings);

            return(settings);
        }
Exemplo n.º 7
0
        /// <summary>
        /// Adds information about the analysis software to the file
        /// </summary>
        /// <param name="id">Unique identifier for the entry</param>
        /// <param name="name">Name of the analysis software</param>
        /// <param name="version">Version of the analysis software</param>
        /// <param name="cvid">CVID (if it exists) for the analysis software</param>
        /// <param name="userParamSoftwareName">Long name of the Analysis software. Not used unless cvid is "CVID_Unknown"</param>
        /// <returns>The analysis software object to further modify, if needed.</returns>
        public AnalysisSoftwareObj AddAnalysisSoftware(string id, string name, string version, CV.CV.CVID cvid,
                                                       string userParamSoftwareName = "")
        {
            var software = new AnalysisSoftwareObj
            {
                Name         = name,
                Id           = id,
                Version      = version,
                SoftwareName = new ParamObj(),
            };

            if (cvid != CV.CV.CVID.CVID_Unknown)
            {
                software.SoftwareName.Item = new CVParamObj(cvid);
            }
            else
            {
                software.SoftwareName.Item = new UserParamObj()
                {
                    Name = userParamSoftwareName,
                };
            }

            identData.AnalysisSoftwareList.Add(software);

            return(software);
        }
Exemplo n.º 8
0
        /// <summary>
        /// Get the CVParam that matches the specified CV term, defaulting to the value provided if not found.
        /// </summary>
        /// <param name="paramList"></param>
        /// <param name="cvid"></param>
        /// <param name="valueIfNotFound"></param>
        /// <returns></returns>
        public static CVParamObj GetCvParam(this IdentDataList <ParamBaseObj> paramList, CV.CV.CVID cvid, string valueIfNotFound)
        {
            var defaultCvParam = new CVParamObj(CV.CV.CVID.CVID_Unknown, valueIfNotFound);

            if (paramList == null || paramList.Count == 0)
            {
                return(defaultCvParam);
            }

            foreach (var p in paramList)
            {
                var cvp = p as CVParamObj;
                if (cvp != null && cvp.Cvid == cvid)
                {
                    return(cvp);
                }
            }
            return(defaultCvParam);
        }