Ejemplo n.º 1
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;
        }
Ejemplo n.º 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;
        }