public void TestLoadDatabase(string path, int expectedNumberOfTargets) { var reader = new SqLiteTargetDatabaseReader(); var database = reader.ReadDb(GetTestSuiteDataPath(path)); var numberOfTargets = database.ConsensusTargets.Count; Assert.AreEqual(expectedNumberOfTargets, numberOfTargets); }
/// <summary> /// Load an existing MTDB database into a TargetDatabase /// </summary> /// <param name="path">Path to MTDB file</param> /// <returns></returns> public static TargetDatabase LoadDB(string path) { if (File.Exists(path) && Path.GetExtension(path) == ".mtdb") { var mtdbReader = new SqLiteTargetDatabaseReader(); return(mtdbReader.ReadDb(path)); } return(new TargetDatabase()); }
public MassTagDatabase LoadDatabase() { var database = new MassTagDatabase(); //Implement the loading / reading of the MTDB Framework objects. var reader = new SqLiteTargetDatabaseReader(); var mtdbDatabase = reader.ReadDb(m_path); var massTags = new List<MassTagLight>(); // Mapping objects to create unique proteins and for the mass tag database to load only those proteins for // the given consensus targets/mass tags. var proteinMap = new Dictionary<int, Protein>(); var massTagProteinMap = new Dictionary<int, List<Protein>>(); if (mtdbDatabase == null) return database; foreach (var target in mtdbDatabase.ConsensusTargets) { // Copy the consensus data into a mass tag light. var tag = new MassTagLight { Id = target.Id, MassMonoisotopic = target.TheoreticalMonoIsotopicMass, NetAverage = target.AverageNet, NetPredicted = target.PredictedNet, PeptideSequence = target.Sequence, NetStandardDeviation = target.StdevNet }; // Here we create unique proteins for the mass tag copying information from the consensus target proteins. var proteinsForMassTag = new List<Protein>(); foreach (var targetProtein in target.Proteins) { if (!proteinMap.ContainsKey(targetProtein.Id)) { var newProtein = new Protein { Id = targetProtein.Id, Name = targetProtein.ProteinName, ResidueStartPosition = targetProtein.ResidueStart, ResidueEndPosition = targetProtein.ResidueEnd }; //TODO: Do something about the cleavage state and terminus state of a protein loaded from MTDBCreator database. //protein.CleavageState = ?? //protein.TerminusState = ?? proteinMap.Add(newProtein.Id, newProtein); } var protein = proteinMap[targetProtein.Id]; proteinsForMassTag.Add(protein); } massTagProteinMap.Add(tag.Id, proteinsForMassTag); massTags.Add(tag); } database.AddMassTagsAndProteins(massTags, massTagProteinMap); return database; }
/// <summary> /// Create a MTDB with the given files /// </summary> /// <param name="paths">Paths to the files to process</param> /// <param name="dbFileName">Name of MTDB to create</param> /// <returns></returns> public static TargetDatabase CreateDB(List <string> paths, string dbFileName) { var options = new Options(); var analysisProcessor = new AnalysisJobProcessor(options); var mtdbProcessor = new MtdbProcessor(options); var bWorker = new BackgroundWorker(); var writer = new SqLiteTargetDatabaseWriter(); var reader = new SqLiteTargetDatabaseReader(); var existingDatabase = new TargetDatabase(); IEnumerable <LcmsDataSet> priorDataSets = new List <LcmsDataSet>(); if (File.Exists(dbFileName)) { priorDataSets = reader.Read(dbFileName); existingDatabase = reader.ReadDb(dbFileName); } var priorDatasetList = priorDataSets.Select(x => x.Name).ToList(); var listJobs = new List <AnalysisJobItem>(); foreach (var path in paths) { if (File.Exists(path)) { var tool = DetermineTool(path); var jobName = path.Split('\\').Last(); if (tool == LcmsIdentificationTool.NOT_SUPPORTED) { Console.WriteLine(jobName + " is not a supported LCMS format for MTDBCreator;\nExcluding this file from MTDB creation\n"); } else if (priorDatasetList.Any(x => jobName.Contains(x))) { Console.WriteLine(jobName + " is part of prior analysis;\nExcluding from reading portion of MTDB creation\n"); } else { var individualJob = new AnalysisJobItem(path, tool); listJobs.Add(individualJob); } } else { Console.WriteLine(path + " does not exist;\nExcluding this file in MTDB creation\n"); } } if (listJobs.Count != 0) { var processedjobs = analysisProcessor.Process(listJobs, bWorker); var datasetList = processedjobs.Select(job => job.DataSet).ToList(); if (priorDataSets != null) { datasetList.AddRange(priorDataSets); } var database = mtdbProcessor.Process(datasetList, bWorker); writer.Write(database, options, dbFileName); return(database); } return(existingDatabase); }
public MassTagDatabase LoadDatabase() { var database = new MassTagDatabase(); //Implement the loading / reading of the MTDB Framework objects. var reader = new SqLiteTargetDatabaseReader(); var mtdbDatabase = reader.ReadDb(m_path); var massTags = new List <MassTagLight>(); // Mapping objects to create unique proteins and for the mass tag database to load only those proteins for // the given consensus targets/mass tags. var proteinMap = new Dictionary <int, Protein>(); var massTagProteinMap = new Dictionary <int, List <Protein> >(); if (mtdbDatabase == null) { return(database); } foreach (var target in mtdbDatabase.ConsensusTargets) { // Copy the consensus data into a mass tag light. var tag = new MassTagLight { Id = target.Id, MassMonoisotopic = target.TheoreticalMonoIsotopicMass, NetAverage = target.AverageNet, NetPredicted = target.PredictedNet, PeptideSequence = target.Sequence, NetStandardDeviation = target.StdevNet }; // Here we create unique proteins for the mass tag copying information from the consensus target proteins. var proteinsForMassTag = new List <Protein>(); foreach (var targetProtein in target.Proteins) { if (!proteinMap.ContainsKey(targetProtein.Id)) { var newProtein = new Protein { Id = targetProtein.Id, Name = targetProtein.ProteinName, ResidueStartPosition = targetProtein.ResidueStart, ResidueEndPosition = targetProtein.ResidueEnd }; //TODO: Do something about the cleavage state and terminus state of a protein loaded from MTDBCreator database. //protein.CleavageState = ?? //protein.TerminusState = ?? proteinMap.Add(newProtein.Id, newProtein); } var protein = proteinMap[targetProtein.Id]; proteinsForMassTag.Add(protein); } massTagProteinMap.Add(tag.Id, proteinsForMassTag); massTags.Add(tag); } database.AddMassTagsAndProteins(massTags, massTagProteinMap); return(database); }