/// <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)); } } }
/// <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); }
/// <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; }
/// <summary> /// Constructor /// </summary> protected ParamBaseObj() { //this._unitAccession = null; //this._unitName = null; _unitCvRef = null; _unitsSet = false; _unitCvid = CV.CV.CVID.CVID_Unknown; }
/// <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); }
/// <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); }
/// <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); }
/// <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); }