コード例 #1
0
        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);
        }
コード例 #2
0
        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;
        }
コード例 #3
0
        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;
        }
コード例 #4
0
        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);
        }