public void OnExportAllGlobalResults(string fileLocation) { IProgress <int> progress = new Progress <int>(ReportGlobalWorkflowProgress); LipidGroupSearchResultWriter.OutputResults(LipidGroupSearchResultList, fileLocation, Path.GetFileName(RawFilePath), progress); progress.Report(0); }
public void RunTraining(string rawDirectoryPath, string targetFilePath, string decoyFilePath, double hcdError = 30, double cidError = 500) { // Read target file var targetReader = new LipidMapsDbReader <Lipid>(); var targets = targetReader.ReadFile(new FileInfo(targetFilePath)); // Read decoy file var decoyReader = new LipidMapsDbReader <Lipid>(); var decoys = decoyReader.ReadFile(new FileInfo(decoyFilePath)); var files = Directory.GetFiles(rawDirectoryPath); foreach (var rawFilePath in files.Where(file => file.EndsWith(".raw"))) { // create output paths var rawFileName = Path.GetFileName(rawFilePath); var datasetPath = Path.GetDirectoryName(rawFilePath); var datasetName = Path.GetFileNameWithoutExtension(rawFilePath); var targetResultsPath = Path.Combine(datasetPath, string.Format("{0}_target.tsv", datasetName)); var decoyResultsPath = Path.Combine(datasetPath, string.Format("{0}_decoy.tsv", datasetName)); // Run liquid global workflow var globalWorkflow = new GlobalWorkflow(rawFilePath); var targetResults = globalWorkflow.RunGlobalWorkflow(targets, hcdError, cidError); var decoyResults = globalWorkflow.RunGlobalWorkflow(decoys, hcdError, cidError); // Output results LipidGroupSearchResultWriter.OutputResults(targetResults, targetResultsPath, rawFileName); LipidGroupSearchResultWriter.OutputResults(decoyResults, decoyResultsPath, rawFileName); // Assure that the source data file is closed globalWorkflow.LcMsRun.Close(); } }
public void OnExportGlobalResults(string fileLocation) { IProgress <int> progress = new Progress <int>(ReportGlobalWorkflowProgress); var resultsToExport = LipidGroupSearchResultList.Where(x => x.ShouldExport).ToList(); LipidGroupSearchResultWriter.OutputResults(resultsToExport, fileLocation, Path.GetFileName(RawFilePath), progress); progress.Report(0); }
/// <summary> /// Main functionality for running the LIQUID workflow and outputting the results /// </summary> /// <param name="targetsFilePath"></param> /// <param name="outputFileName"></param> /// <param name="datasetNamesList"></param> private void RunWorkflowAndOutput(string targetsFilePath, string outputFileName, List <string> datasetNamesList) { var targetsFileInfo = new FileInfo(targetsFilePath); var lipidReader = new LipidMapsDbReader <Lipid>(); var lipidList = lipidReader.ReadFile(targetsFileInfo); var headerWritten = false; foreach (var datasetName in datasetNamesList) { var rawFileName = datasetName + ".raw"; var rawFilePath = Path.Combine(@"D:\Data\Liquid\Original", rawFileName); Console.WriteLine(DateTime.Now + ": Processing " + datasetName); if (File.Exists(rawFilePath)) { Console.WriteLine(DateTime.Now + ": Dataset already exists"); } else { Console.WriteLine(DateTime.Now + ": Dataset does not exist locally, so we will go get it"); // Lookup in DMS via Mage var dmsFolder = DmsDatasetFinder.FindLocationOfDataset(datasetName); var dmsDirectoryInfo = new DirectoryInfo(dmsFolder); var fullPathToDmsFile = Path.Combine(dmsDirectoryInfo.FullName, rawFileName); // Copy Locally // TODO: Handle files that are on MyEMSL Console.WriteLine(DateTime.Now + ": Copying dataset from " + dmsDirectoryInfo.FullName); File.Copy(fullPathToDmsFile, rawFilePath); Console.WriteLine(DateTime.Now + ": Copy complete"); } // Setup workflow var globalWorkflow = new GlobalWorkflow(rawFilePath); // Run workflow var lipidGroupSearchResults = globalWorkflow.RunGlobalWorkflow(lipidList, 30, 500); if (!headerWritten) { LipidGroupSearchResultWriter.OutputResults(lipidGroupSearchResults, outputFileName, rawFileName, null, true, true); headerWritten = true; } else { LipidGroupSearchResultWriter.OutputResults(lipidGroupSearchResults, outputFileName, rawFileName, null, true, false); } // Assure that the source data file is closed globalWorkflow.LcMsRun.Close(); } }
public void RunTrainingOnFileList( string fileListPath, string posTargetFilePath, string posDecoyFilePath, string negTargetFilePath, string negDecoyFilePath, double hcdError = 30, double cidError = 500) { // Read positive target file var posTargetReader = new LipidMapsDbReader <Lipid>(); var posTargets = posTargetReader.ReadFile(new FileInfo(posTargetFilePath)); // Read positive decoy file var posDecoyReader = new LipidMapsDbReader <Lipid>(); var posDecoys = posDecoyReader.ReadFile(new FileInfo(posDecoyFilePath)); // Read positive target file var negTargetReader = new LipidMapsDbReader <Lipid>(); var negTargets = negTargetReader.ReadFile(new FileInfo(negTargetFilePath)); // Read positive decoy file var negDecoyReader = new LipidMapsDbReader <Lipid>(); var negDecoys = negDecoyReader.ReadFile(new FileInfo(negDecoyFilePath)); var outputDirectory = Path.GetDirectoryName(fileListPath); var errorFile = Path.Combine(outputDirectory, "failedDatasets.txt"); foreach (var datasetName in File.ReadLines(fileListPath)) { if (datasetName.StartsWith("//")) { continue; } try { // create output paths var rawFilePath = GetRawFilePath(outputDirectory, datasetName); var rawFileName = Path.GetFileName(rawFilePath); var targetResultsPath = Path.Combine(outputDirectory, string.Format("{0}_target.tsv", datasetName)); var decoyResultsPath = Path.Combine(outputDirectory, string.Format("{0}_decoy.tsv", datasetName)); IEnumerable <Lipid> targets; IEnumerable <Lipid> decoys; // Select targets and decoys var lowerCaseName = datasetName.ToLower(); if (lowerCaseName.Contains("pos")) { targets = posTargets; decoys = posDecoys; } else { targets = negTargets; decoys = negDecoys; } // Run liquid global workflow var globalWorkflow = new GlobalWorkflow(rawFilePath); var targetResults = GetBestResultPerSpectrum(globalWorkflow.RunGlobalWorkflow(targets, hcdError, cidError)); var decoyResults = GetBestResultPerSpectrum(globalWorkflow.RunGlobalWorkflow(decoys, hcdError, cidError)); // Output results LipidGroupSearchResultWriter.OutputResults(targetResults, targetResultsPath, rawFileName); LipidGroupSearchResultWriter.OutputResults(decoyResults, decoyResultsPath, rawFileName); // Assure that the source data file is closed globalWorkflow.LcMsRun.Close(); } catch (Exception) { Console.WriteLine("ERROR: Could not process dataset {0}.", datasetName); using (var streamWriter = new StreamWriter(errorFile, true)) { streamWriter.WriteLine(datasetName); } } } }