public QonverterSettingsByAnalysisControl(IDictionary <Analysis, QonverterSettings> qonverterSettingsByAnalysis, QonverterSettingsManagerNeeded qonverterSettingsManagerNeeded) { InitializeComponent(); if (qonverterSettingsManagerNeeded == null) { throw new NullReferenceException(); } this.qonverterSettingsByAnalysis = qonverterSettingsByAnalysis; this.qonverterSettingsManagerNeeded = qonverterSettingsManagerNeeded; qonverterSettingsByName = QonverterSettings.LoadQonverterSettings(); qonverterSettingsByName.Keys.ToList().ForEach(o => qonverterSettingsColumn.Items.Add(o)); qonverterSettingsColumn.Items.Add("Edit..."); foreach (var kvp in qonverterSettingsByAnalysis) { Analysis a = kvp.Key; var row = new DataGridViewRow(); row.CreateCells(dataGridView); IEnumerable <AnalysisParameter> diffParameters = new SortedSet <AnalysisParameter>(); foreach (var a2 in qonverterSettingsByAnalysis.Keys) { if (a.Software.Name != a2.Software.Name) { continue; } diffParameters = diffParameters.Union(a.Parameters.Except(a2.Parameters)); } string key = a.Id + ": " + a.Name; foreach (var p in diffParameters) { key += String.Format("; {0}={1}", p.Name, p.Value); } string defaultDecoyPrefix = a.Parameters.Where(o => o.Name.Contains("DecoyPrefix")).Select(o => o.Value).FirstOrDefault() ?? Properties.Settings.Default.DefaultDecoyPrefix; row.Tag = a; row.Cells[0].Value = key; row.Cells[1].Value = a.QonverterSettings != null ? a.QonverterSettings.DecoyPrefix : defaultDecoyPrefix; var comboBox = row.Cells[2] as DataGridViewComboBoxCell; var firstSoftwarePreset = qonverterSettingsByName.Keys.FirstOrDefault(o => o.ToLowerInvariant().Contains(kvp.Key.Software.Name.ToLowerInvariant()) || kvp.Key.Software.Name.ToLowerInvariant().Contains(o.ToLowerInvariant())); if (kvp.Value == null) { comboBox.Value = firstSoftwarePreset ?? qonverterSettingsByName.Keys.FirstOrDefault(); } else { // load default if nothing found string settingsMatch = firstSoftwarePreset ?? qonverterSettingsByName.Keys.FirstOrDefault(); // see if database recognizes settings foreach (var item in qonverterSettingsByName) { if (item.Value.ChargeStateHandling == kvp.Value.ChargeStateHandling && item.Value.Kernel == kvp.Value.Kernel && item.Value.MassErrorHandling == kvp.Value.MassErrorHandling && item.Value.MissedCleavagesHandling == kvp.Value.MissedCleavagesHandling && item.Value.QonverterMethod == kvp.Value.QonverterMethod && item.Value.RerankMatches == kvp.Value.RerankMatches && item.Value.TerminalSpecificityHandling == kvp.Value.TerminalSpecificityHandling && item.Value.ScoreInfoByName.SequenceEqual(kvp.Value.ScoreInfoByName)) { settingsMatch = item.Key; break; } } // initialize combo box value if (!String.IsNullOrEmpty(settingsMatch)) { comboBox.Value = settingsMatch; } } dataGridView.Rows.Add(row); } foreach (DataGridViewRow row in dataGridView.Rows) { qonverterSettingsByAnalysis[row.Tag as Analysis] = qonverterSettingsByName[(string)row.Cells[2].Value]; qonverterSettingsByAnalysis[row.Tag as Analysis].Analysis = row.Tag as Analysis; qonverterSettingsByAnalysis[row.Tag as Analysis].DecoyPrefix = (string)row.Cells[1].Value; } dataGridView.CellBeginEdit += new DataGridViewCellCancelEventHandler(dataGridView_CellBeginEdit); dataGridView.CurrentCellDirtyStateChanged += new EventHandler(dataGridView_CurrentCellDirtyStateChanged); }
public ImportSettingsControl (IEnumerable<Parser.Analysis> distinctAnalyses, QonverterSettingsManagerNeeded qonverterSettingsManagerNeeded) { InitializeComponent(); databaseColumn.OpenFileDialog = new OpenFileDialog { CheckFileExists = true, Filter = "FASTA files|*.fasta|All files|*.*" }; if (qonverterSettingsManagerNeeded == null) throw new NullReferenceException(); this.qonverterSettingsManagerNeeded = qonverterSettingsManagerNeeded; qonverterSettingsByName = QonverterSettings.LoadQonverterSettings(); qonverterSettingsByName.Keys.ToList().ForEach(o => qonverterSettingsColumn.Items.Add(o)); qonverterSettingsColumn.Items.Add("Edit..."); rows = new List<ImportSettingsRow>(); foreach (var a in distinctAnalyses) { var row = new ImportSettingsRow {Analysis = a, OriginalAnalysisName = a.name}; // try to find valid protein database location if (!File.Exists(a.importSettings.proteinDatabaseFilepath)) { var databaseName = Path.GetFileName(a.importSettings.proteinDatabaseFilepath); if (databaseName != null) { foreach (var item in a.filepaths) { var possibleLocation = Path.Combine(Path.GetDirectoryName(item) ?? string.Empty, databaseName); if (File.Exists(possibleLocation)) { a.importSettings.proteinDatabaseFilepath = possibleLocation; break; } try { a.importSettings.proteinDatabaseFilepath = Util.FindDatabaseInSearchPath(databaseName, Path.GetDirectoryName(item) ?? "."); break; } catch (ArgumentException) { // ignore exception, but if protein database still isn't found, reduce it to the filename if (Path.IsPathRooted(a.importSettings.proteinDatabaseFilepath)) a.importSettings.proteinDatabaseFilepath = databaseName; } } } } row.DecoyPrefix = Properties.Settings.Default.DefaultDecoyPrefix; row.ImportSettings.maxResultRank = Properties.Settings.Default.DefaultMaxRank; row.ImportSettings.maxQValue = Properties.Settings.Default.DefaultMaxImportFDR; row.ImportSettings.ignoreUnmappedPeptides = Properties.Settings.Default.DefaultIgnoreUnmappedPeptides; // select a default qonverter settings preset var firstSoftwarePreset = qonverterSettingsByName.Keys.FirstOrDefault(o => o.ToLower().Contains(a.softwareName.ToLower())); row.QonverterSettingsPreset = firstSoftwarePreset ?? qonverterSettingsByName.Keys.FirstOrDefault() ?? String.Empty; row.ImportSettings.qonverterSettings = qonverterSettingsByName[row.QonverterSettingsPreset].ToQonverterSettings(); if (a.parameters.ContainsKey("Config: DecoyPrefix")) row.DecoyPrefix = a.parameters["Config: DecoyPrefix"]; else if (a.parameters.ContainsKey("DecoyPrefix")) row.DecoyPrefix = a.parameters["DecoyPrefix"]; row.ImportSettings.qonverterSettings.DecoyPrefix = row.DecoyPrefix; //row.ImportSettings.logQonversionDetails = true; rows.Add(row); } dataGridView.CellBeginEdit += dataGridView_CellBeginEdit; dataGridView.CellEndEdit += dataGridView_CellEndEdit; dataGridView.CurrentCellDirtyStateChanged += dataGridView_CurrentCellDirtyStateChanged; dataGridView.CellValueNeeded += dataGridView_CellValueNeeded; dataGridView.CellValuePushed += dataGridView_CellValuePushed; dataGridView.CellPainting += dataGridView_CellPainting; dataGridView.CellFormatting += dataGridView_CellFormatting; dataGridView.RootRowCount = rows.Count; }
public ImportSettingsControl(IEnumerable <Parser.Analysis> distinctAnalyses, QonverterSettingsManagerNeeded qonverterSettingsManagerNeeded) { InitializeComponent(); databaseColumn.OpenFileDialog = new OpenFileDialog { CheckFileExists = true, Filter = "FASTA files|*.fasta|All files|*.*" }; if (qonverterSettingsManagerNeeded == null) { throw new NullReferenceException(); } this.qonverterSettingsManagerNeeded = qonverterSettingsManagerNeeded; qonverterSettingsByName = QonverterSettings.LoadQonverterSettings(); qonverterSettingsByName.Keys.ToList().ForEach(o => qonverterSettingsColumn.Items.Add(o)); qonverterSettingsColumn.Items.Add("Edit..."); rows = new List <ImportSettingsRow>(); foreach (var a in distinctAnalyses) { var row = new ImportSettingsRow { Analysis = a, OriginalAnalysisName = a.name }; // try to find valid protein database location if (!File.Exists(a.importSettings.proteinDatabaseFilepath)) { var databaseName = Path.GetFileName(a.importSettings.proteinDatabaseFilepath); if (databaseName != null) { foreach (var item in a.filepaths) { var possibleLocation = Path.Combine(Path.GetDirectoryName(item) ?? string.Empty, databaseName); if (File.Exists(possibleLocation)) { a.importSettings.proteinDatabaseFilepath = possibleLocation; break; } try { a.importSettings.proteinDatabaseFilepath = Util.FindDatabaseInSearchPath(databaseName, Path.GetDirectoryName(item) ?? "."); break; } catch (ArgumentException) { // ignore exception, but if protein database still isn't found, reduce it to the filename if (Path.IsPathRooted(a.importSettings.proteinDatabaseFilepath)) { a.importSettings.proteinDatabaseFilepath = databaseName; } } } } } row.DecoyPrefix = Properties.Settings.Default.DefaultDecoyPrefix; row.ImportSettings.maxResultRank = Properties.Settings.Default.DefaultMaxRank; row.ImportSettings.maxQValue = Properties.Settings.Default.DefaultMaxImportFDR; row.ImportSettings.ignoreUnmappedPeptides = Properties.Settings.Default.DefaultIgnoreUnmappedPeptides; // select a default qonverter settings preset var firstSoftwarePreset = qonverterSettingsByName.Keys.FirstOrDefault(o => o.ToLowerInvariant().Contains(a.softwareName.ToLowerInvariant()) || a.softwareName.ToLowerInvariant().Contains(o.ToLowerInvariant())); row.QonverterSettingsPreset = firstSoftwarePreset ?? qonverterSettingsByName.Keys.FirstOrDefault() ?? String.Empty; row.ImportSettings.qonverterSettings = qonverterSettingsByName[row.QonverterSettingsPreset].ToQonverterSettings(); if (a.parameters.ContainsKey("Config: DecoyPrefix")) { row.DecoyPrefix = a.parameters["Config: DecoyPrefix"]; } else if (a.parameters.ContainsKey("DecoyPrefix")) { row.DecoyPrefix = a.parameters["DecoyPrefix"]; } row.ImportSettings.qonverterSettings.DecoyPrefix = row.DecoyPrefix; //row.ImportSettings.logQonversionDetails = true; rows.Add(row); } dataGridView.CellBeginEdit += dataGridView_CellBeginEdit; dataGridView.CellEndEdit += dataGridView_CellEndEdit; dataGridView.CurrentCellDirtyStateChanged += dataGridView_CurrentCellDirtyStateChanged; dataGridView.CellValueNeeded += dataGridView_CellValueNeeded; dataGridView.CellValuePushed += dataGridView_CellValuePushed; dataGridView.CellPainting += dataGridView_CellPainting; dataGridView.CellFormatting += dataGridView_CellFormatting; dataGridView.RootRowCount = rows.Count; }
public QonverterSettingsByAnalysisControl (IDictionary<Analysis, QonverterSettings> qonverterSettingsByAnalysis, QonverterSettingsManagerNeeded qonverterSettingsManagerNeeded) { InitializeComponent(); if (qonverterSettingsManagerNeeded == null) throw new NullReferenceException(); this.qonverterSettingsByAnalysis = qonverterSettingsByAnalysis; this.qonverterSettingsManagerNeeded = qonverterSettingsManagerNeeded; qonverterSettingsByName = QonverterSettings.LoadQonverterSettings(); qonverterSettingsByName.Keys.ToList().ForEach(o => qonverterSettingsColumn.Items.Add(o)); qonverterSettingsColumn.Items.Add("Edit..."); foreach (var kvp in qonverterSettingsByAnalysis) { Analysis a = kvp.Key; var row = new DataGridViewRow(); row.CreateCells(dataGridView); IEnumerable<AnalysisParameter> diffParameters = new SortedSet<AnalysisParameter>(); foreach (var a2 in qonverterSettingsByAnalysis.Keys) { if (a.Software.Name != a2.Software.Name) continue; diffParameters = diffParameters.Union(a.Parameters.Except(a2.Parameters)); } string key = a.Id + ": " + a.Name; foreach (var p in diffParameters) key += String.Format("; {0}={1}", p.Name, p.Value); string defaultDecoyPrefix = a.Parameters.Where(o => o.Name.Contains("DecoyPrefix")).Select(o => o.Value).FirstOrDefault() ?? Properties.Settings.Default.DefaultDecoyPrefix; row.Tag = a; row.Cells[0].Value = key; row.Cells[1].Value = a.QonverterSettings != null ? a.QonverterSettings.DecoyPrefix : defaultDecoyPrefix; var comboBox = row.Cells[2] as DataGridViewComboBoxCell; var firstSoftwarePreset = qonverterSettingsByName.Keys.FirstOrDefault( o => o.ToLower().Contains(kvp.Key.Software.Name.ToLower())); if (kvp.Value == null) { comboBox.Value = firstSoftwarePreset ?? qonverterSettingsByName.Keys.FirstOrDefault(); } else { // load default if nothing found string settingsMatch = firstSoftwarePreset ?? qonverterSettingsByName.Keys.FirstOrDefault(); // see if database recognizes settings foreach (var item in qonverterSettingsByName) { if (item.Value.ChargeStateHandling == kvp.Value.ChargeStateHandling && item.Value.Kernel == kvp.Value.Kernel && item.Value.MassErrorHandling == kvp.Value.MassErrorHandling && item.Value.MissedCleavagesHandling == kvp.Value.MissedCleavagesHandling && item.Value.QonverterMethod == kvp.Value.QonverterMethod && item.Value.RerankMatches == kvp.Value.RerankMatches && item.Value.TerminalSpecificityHandling == kvp.Value.TerminalSpecificityHandling && item.Value.ScoreInfoByName.SequenceEqual(kvp.Value.ScoreInfoByName)) { settingsMatch = item.Key; break; } } // initialize combo box value if (!String.IsNullOrEmpty(settingsMatch)) comboBox.Value = settingsMatch; } dataGridView.Rows.Add(row); } foreach (DataGridViewRow row in dataGridView.Rows) { qonverterSettingsByAnalysis[row.Tag as Analysis] = qonverterSettingsByName[(string) row.Cells[2].Value]; qonverterSettingsByAnalysis[row.Tag as Analysis].Analysis = row.Tag as Analysis; qonverterSettingsByAnalysis[row.Tag as Analysis].DecoyPrefix = (string) row.Cells[1].Value; } dataGridView.CellBeginEdit += new DataGridViewCellCancelEventHandler(dataGridView_CellBeginEdit); dataGridView.CurrentCellDirtyStateChanged += new EventHandler(dataGridView_CurrentCellDirtyStateChanged); }