/// <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 static void AddDmsDataset(string datasetName) { if (!File.Exists(datasetName)) { // Lookup in DMS via Mage var dmsFolder = DmsDatasetFinder.FindLocationOfDataset(datasetName.Replace(".raw", "")); var dmsDirectoryInfo = new DirectoryInfo(dmsFolder); var fullPathToDmsFile = Path.Combine(dmsDirectoryInfo.FullName, datasetName); // Copy Locally File.Copy(fullPathToDmsFile, datasetName); } }
public void AddDmsDataset(string datasetName) { var rawFileName = datasetName + ".raw"; if (!File.Exists(rawFileName)) { // 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 File.Copy(fullPathToDmsFile, rawFileName); } AddDataset(rawFileName); }
public string GetRawFilePath(string directory, string datasetName) { var rawFileName = datasetName + ".raw"; var rawFilePath = Path.Combine(directory, rawFileName); Console.WriteLine(DateTime.Now + ": Processing " + datasetName); if (File.Exists(rawFilePath)) { Console.WriteLine(DateTime.Now + ": Dataset already exists"); } else { try { 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"); } catch (Exception) { rawFilePath = string.Empty; Console.WriteLine("Cannot get {0} from DMS", datasetName); } } return(rawFilePath); }
public void TestCreateScoringOutput() { const string positiveTargetsFileLocation = @"../../../testFiles/Global_LipidMaps_POS_v3.txt"; var positiveTargetsFileInfo = new FileInfo(positiveTargetsFileLocation); var lipidReader = new LipidMapsDbReader <Lipid>(); var lipidList = lipidReader.ReadFile(positiveTargetsFileInfo); if (File.Exists("fragmentOutput.csv")) { File.Delete("fragmentOutput.csv"); } TextWriter textWriter = new StreamWriter("fragmentOutput.csv"); var datasetNames = new List <string> { //datasetNames.Add("Dey_lipids_Top_1_1_pos_Gimli_RZ-12-07-05"); //datasetNames.Add("Dey_lipids_Top_1_2_pos_Gimli_RZ-12-07-05"); //datasetNames.Add("Dey_lipids_Top_1_3_pos_Gimli_RZ-12-07-05"); //datasetNames.Add("Dey_lipids_Bottom_1_1_pos_Gimli_RZ-12-07-05"); //datasetNames.Add("Dey_lipids_Bottom_1_2_pos_Gimli_RZ-12-07-05"); //datasetNames.Add("Dey_lipids_Bottom_1_3_pos_Gimli_RZ-12-07-05"); //datasetNames.Add("Dey_lipids_Top_2_1_pos_dil_Gimli_RZ-12-07-05"); //datasetNames.Add("Dey_lipids_Top_2_2_pos_Gimli_RZ-12-07-05"); //datasetNames.Add("Dey_lipids_Top_2_3_pos_Gimli_RZ-12-07-05"); //datasetNames.Add("Dey_lipids_Bottom_2_1_pos_dil_Gimli_RZ-12-07-05"); //datasetNames.Add("Dey_lipids_Bottom_2_2_pos_Gimli_RZ-12-07-05"); //datasetNames.Add("Dey_lipids_Bottom_2_3_pos_Gimli_RZ-12-07-05"); "XGA121_lipid_Calu3_1", "XGA121_lipid_Calu3_2", "XGA121_lipid_Calu3_3", "XGA121_lipid_Skin_1", "XGA121_lipid_Skin_2", "XGA121_lipid_Skin_3", "XGA121_lipid_plasma_1", "XGA121_lipid_plasma_2", "XGA121_lipid_plasma_3", "Vero_01_CM_0d_4_Lipid_POS_Gimli_15Jan14_13-07-01", "Vero_01_CM_0d_2_Lipid_POS_Gimli_15Jan14_13-07-01", "Vero_01_CM_0d_3_Lipid_POS_Gimli_15Jan14_13-07-01", "Vero_01_CM_0d_1_Lipid_POS_Gimli_15Jan14_13-07-01", "Vero_01_MTBE_0d_4_Lipid_POS_Gimli_15Jan14_13-07-04", "Vero_01_MTBE_0d_3_Lipid_POS_Gimli_15Jan14_13-07-01", "Vero_01_MTBE_0d_2_Lipid_POS_Gimli_15Jan14_13-07-01", "Vero_01_MTBE_0d_1_Lipid_POS_Gimli_15Jan14_13-07-01", "LCA_Atta_B_gar2_b_Reruns_31May13_Gimli_12-07-01", "LCA_Atta_T_gar1_a1_Reruns_31May13_Gimli_12-07-01", "LCA_Atta_M_gar3_a_Reruns_31May13_Gimli_12-07-01", "Da_12_1_POS_3K_Gimli_9Oct13_13-07-01", "Da_24_1_POS_3K_Gimli_9Oct13_13-07-01", //datasetNames.Add("Lipid_QC_1_14Jan_POS_Gimli_14Jan14_13-07-01"); //datasetNames.Add("Lipid_QC_1_14Jan_POS_Gimli_17JAN_13-07-01"); "Daphnia_gut_TLE_POS_Gimli_21Jan14_13-07-01", "OMICS_HH_CDT_Lip_108_01_POS_Gimli_24Jan14_13-07-01", "OMICS_HH_CDT_Lip_108_02_POS_Gimli_24Jan14_13-07-01", "OMICS_HH_CDT_Lip_108_03_POS_Gimli_24Jan14_13-07-01", "Oscar_28days_TLE__POS_04Feb14_13-07-01", "Oscar_21days_TLE__POS_04Feb14_13-07-01", "Oscar_21days_dark_TLE__POS_04Feb14_13-07-01", "Oscar_14day_TLE__POS_04Feb14_13-07-01" }; for (var datasetIndex = 0; datasetIndex < datasetNames.Count; datasetIndex++) { var datasetName = datasetNames[datasetIndex]; var rawFileName = datasetName + ".raw"; Console.WriteLine(DateTime.Now + ": Processing " + datasetName); if (File.Exists(rawFileName)) { 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, rawFileName); Console.WriteLine(DateTime.Now + ": Copy complete"); } // Setup workflow var globalWorkflow = new GlobalWorkflow(rawFileName); // Run workflow var lipidGroupSearchResults = globalWorkflow.RunGlobalWorkflow(lipidList, 30, 500); var filteredLipidGroupSearchResults = new List <LipidGroupSearchResult>(); // Group results of same scan together var resultsGroupedByScan = lipidGroupSearchResults.GroupBy(x => x.SpectrumSearchResult.HcdSpectrum.ScanNum); // Grab the result(s) with the best score foreach (var group in resultsGroupedByScan) { var groupOrdered = group.OrderByDescending(x => x.SpectrumSearchResult.Score).ToList(); for (var i = 0; i < 1 && i < groupOrdered.Count; i++) { var resultToAdd = groupOrdered[i]; if (resultToAdd.LipidTarget.LipidClass == LipidClass.PC && resultToAdd.LipidTarget.AcylChainList.Count(x => x.NumCarbons > 0) == 2 && resultToAdd.LipidTarget.AcylChainList.Count(x => x.AcylChainType == AcylChainType.Standard) == 2) { filteredLipidGroupSearchResults.Add(resultToAdd); } } } // Output results if (datasetIndex == 0) { LipidGroupSearchResultWriter.AddHeaderForScoring(filteredLipidGroupSearchResults[0], textWriter); } LipidGroupSearchResultWriter.WriteToCsvForScoring(filteredLipidGroupSearchResults, textWriter, datasetName); // Assure that the source data file is closed globalWorkflow.LcMsRun.Close(); } textWriter.Close(); }