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); }
public void BackgroundWorker_DoWork(object sender, DoWorkEventArgs e) { //mAbortRequested = false; var targetDatabaseReader = new SqLiteTargetDatabaseReader(); //Database = targetDatabaseReader.Read(DatabaseFileName); }
/// <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()); }
private void ReadDatabase() { var dlg = new OpenFileDialog { Filter = "Mass Tag Database (*.mtdb)|*.mtdb|AllFile (*.*)|*.*", Title = "Load MTDB from file", InitialDirectory = RestoreDirectory, RestoreDirectory = true }; if (dlg.ShowDialog() == true) { var reader = new SqLiteTargetDatabaseReader(); //AnalysisJobViewModel.Database = reader.Read(dlg.FileName); } }
private void ProcessAnalysisJob(object param) { // Insert database save location here var saveDatabaseDialog = new SaveFileDialog(); if (Options.DatabaseType != DatabaseType.NotSaved) { if (RestoreDirectory == null) { RestoreDirectory = "C:\\"; } saveDatabaseDialog.InitialDirectory = RestoreDirectory; saveDatabaseDialog.RestoreDirectory = true; if (Options.DatabaseType == DatabaseType.SQLite) { saveDatabaseDialog.Filter = "Mass Tag Database (*.mtdb)|*.mtdb|All Files (*.*)|*.*"; saveDatabaseDialog.Title = "Save to MTDB"; } else { saveDatabaseDialog.Filter = "Access Database (*.mdb)|*.mdb|All Files (*.*)|*.*"; saveDatabaseDialog.Title = "Save to Access Database"; } saveDatabaseDialog.ShowDialog(); if (saveDatabaseDialog.FileName != "") { RestoreDirectory = Path.GetDirectoryName(saveDatabaseDialog.FileName); SavedDatabasePath = saveDatabaseDialog.FileName; } } DateTime start = DateTime.Now; var result = ProcessAnalysisTargets(); OnAnalysisJobProcessed(new MtdbResultChangedEventArgs(result)); DateTime end = DateTime.Now; Console.WriteLine("Analysis processed after " + (end - start)); if (File.Exists(SavedDatabasePath)) { ITargetDatabaseReader reader; IEnumerable <LcmsDataSet> databaseDatasets = null; var loaded = false; MessageBoxResult errorResult = MessageBoxResult.OK; if (SavedDatabasePath.EndsWith("mtdb")) { reader = new SqLiteTargetDatabaseReader(); } else { reader = new AccessTargetDatabaseReader(); } try { databaseDatasets = reader.Read(SavedDatabasePath); loaded = true; } catch (Exception) { errorResult = MessageBox.Show(string.Format("{0} does not contain valid data to be imported into MTDBCreator", SavedDatabasePath), "Error loading file", MessageBoxButton.OKCancel, MessageBoxImage.Exclamation); } if (loaded) { foreach (var dataset in databaseDatasets) { var exists = false; var priorAnalysis = new AnalysisJobItem(dataset.Name, dataset.Tool); priorAnalysis.DataSet = dataset; foreach (var item in AnalysisJobItems) { if (item.Title == priorAnalysis.Title) { item.DataSet = dataset; exists = true; } } if (!exists) { AnalysisJobItems.Add(priorAnalysis); } } } else if (errorResult == MessageBoxResult.Cancel) { // User cancelled processing var squelch = 1; squelch++; return; } } if (result != null && param == null) { DateTime procStart = DateTime.Now; result = ProcessAnalysisDatabase(); if (result == null && BackgroundWorkProcessHelper.MostRecentResult != null) { // This condition will be true if MultithreadingEnabled = false result = BackgroundWorkProcessHelper.MostRecentResult; if (Database == null && result is TargetDatabase) { Database = (TargetDatabase)result; } } OnAnalysisJobProcessed(new MtdbResultChangedEventArgs(result)); end = DateTime.Now; Console.WriteLine("Alignment processed after " + (end - start) + " total"); Console.WriteLine("Alignment took " + (end - procStart)); if (result != null && saveDatabaseDialog.FileName != "") { DateTime saveStart = DateTime.Now; SaveAnalysisDatabase(saveDatabaseDialog.FileName); IsDatabaseSaved = true; end = DateTime.Now; Console.WriteLine("Database Save took " + (end - saveStart)); } } }
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); }