コード例 #1
0
        private void InitializeExperDesign()
        {
            SpectraFileExperimentalDesign.Clear();

            foreach (var item in SpectraFiles.Where(p => p.Use).Select(p => p.FilePath))
            {
                SpectraFileExperimentalDesign.Add(new ExperimentalDesignForDataGrid(item));
            }

            if (SpectraFileExperimentalDesign.Any())
            {
                outputPath = Directory.GetParent(SpectraFileExperimentalDesign.First().FullFilePathWithExtension).FullName;
                outputPath = Path.Combine(outputPath, GlobalVariables.ExperimentalDesignFileName);
            }

            DgQuant.DataContext = SpectraFileExperimentalDesign;

            // read/set existing experimental design
            var filePaths      = SpectraFileExperimentalDesign.Select(p => p.FullFilePathWithExtension).ToList();
            var existingDesign = ExperimentalDesign.ReadExperimentalDesign(outputPath, filePaths, out var errors);

            foreach (SpectraFileInfo fileInfo in existingDesign)
            {
                ExperimentalDesignForDataGrid match = SpectraFileExperimentalDesign.FirstOrDefault(p => p.FullFilePathWithExtension == fileInfo.FullFilePathWithExtension);

                if (match != null)
                {
                    match.Condition = fileInfo.Condition;
                    match.Biorep    = (fileInfo.BiologicalReplicate + 1).ToString();
                    match.Techrep   = (fileInfo.TechnicalReplicate + 1).ToString();
                    match.Fraction  = (fileInfo.Fraction + 1).ToString();
                }
            }
        }
コード例 #2
0
        private void ReadExperDesignFromTsv(string filePath)
        {
            if (!File.Exists(filePath))
            {
                return;
            }

            var lines = File.ReadAllLines(filePath);
            Dictionary <string, int> typeToIndex = new Dictionary <string, int>();

            for (int l = 0; l < lines.Length; l++)
            {
                var split = lines[l].Split('\t');
                if (l == 0)
                {
                    foreach (var type in split)
                    {
                        typeToIndex.Add(type, Array.IndexOf(split, type));
                    }
                }
                else
                {
                    ExperimentalDesignForDataGrid file = spectraFilesQuantSets.Where(p => p.FileName == split[typeToIndex["FileName"]]).FirstOrDefault();

                    if (file == null)
                    {
                        continue;
                    }

                    file.Condition = split[typeToIndex["Condition"]];
                    file.Biorep    = split[typeToIndex["Biorep"]];
                    file.Fraction  = split[typeToIndex["Fraction"]];
                    file.Techrep   = split[typeToIndex["Techrep"]];
                }
            }
        }