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 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; }