Ejemplo n.º 1
0
        void dataGridView_CurrentCellDirtyStateChanged(object sender, EventArgs e)
        {
            var cell = dataGridView.CurrentCell;
            var row  = cell.OwningRow;

            dataGridView.EndEdit();
            dataGridView.NotifyCurrentCellDirty(false);

            if (cell.ColumnIndex != qonverterSettingsColumn.Index)
            {
                return;
            }

            if ((string)cell.EditedFormattedValue == "Edit..." || (string)cell.Value == "Edit...")
            {
                qonverterSettingsManagerNeeded();

                qonverterSettingsByName = QonverterSettings.LoadQonverterSettings();
                qonverterSettingsColumn.Items.Clear();
                qonverterSettingsByName.Keys.ToList().ForEach(o => qonverterSettingsColumn.Items.Add(o));
                qonverterSettingsColumn.Items.Add("Edit...");

                cell.Value = uneditedValue;
                dataGridView.RefreshEdit();
            }
        }
Ejemplo n.º 2
0
        void dataGridView_CurrentCellDirtyStateChanged(object sender, EventArgs e)
        {
            var cell = dataGridView.CurrentCell;
            var row  = cell.OwningRow;

            dataGridView.EndEdit();
            dataGridView.NotifyCurrentCellDirty(false);

            if ((string)cell.EditedFormattedValue == "Edit..." || (string)cell.Value == "Edit...")
            {
                // open the qonverter settings manager
                qonverterSettingsManagerNeeded();

                // refresh qonverter settings from settings
                qonverterSettingsByName = QonverterSettings.LoadQonverterSettings();

                // refresh combobox items
                qonverterSettingsColumn.Items.Clear();
                qonverterSettingsByName.Keys.ToList().ForEach(o => qonverterSettingsColumn.Items.Add(o));
                qonverterSettingsColumn.Items.Add("Edit...");

                cell.Value = uneditedQonverterSettingsValue;
                dataGridView.RefreshEdit();
            }

            qonverterSettingsByAnalysis[row.Tag as Analysis]             = qonverterSettingsByName[(string)row.Cells[2].Value];
            qonverterSettingsByAnalysis[row.Tag as Analysis].DecoyPrefix = (string)row.Cells[1].Value;
        }
Ejemplo n.º 3
0
        protected override void OnFormClosing(FormClosingEventArgs e)
        {
            // immediate cancel
            if (DialogResult == DialogResult.Cancel)
            {
                base.OnFormClosing(e);
                return;
            }

            var buttons = MessageBoxButtons.YesNo;

            if (e.CloseReason == CloseReason.UserClosing)
            {
                buttons = MessageBoxButtons.YesNoCancel;
            }

            // save current item if changes have been made necessary
            if (lastSelectedItem != null && qonverterSettingsControl.IsDirty)
            {
                var result = MessageBox.Show("Do you want to save your changes to '" + lastSelectedItem.Text + "'?",
                                             "Save changes?",
                                             buttons,
                                             MessageBoxIcon.Question,
                                             MessageBoxDefaultButton.Button1);
                if (result == DialogResult.Cancel)
                {
                    e.Cancel = true;
                }
                else if (result == DialogResult.Yes)
                {
                    lastSelectedItem.Tag = qonverterSettingsControl.EditedQonverterSettings;
                }
            }

            // save all items
            var qonverterSettingsByName = new Dictionary <string, QonverterSettings>();

            foreach (ListViewItem item in listView.Items)
            {
                qonverterSettingsByName[item.Text] = item.Tag as QonverterSettings;
            }

            QonverterSettings.SaveQonverterSettings(qonverterSettingsByName);

            base.OnFormClosing(e);
        }
Ejemplo n.º 4
0
        public QonverterSettingsManagerForm()
        {
            InitializeComponent();

            // load qonverter settings into listView
            IDictionary <string, QonverterSettings> qonverterSettingsByName = QonverterSettings.LoadQonverterSettings();

            foreach (var kvp in qonverterSettingsByName)
            {
                listView.Items.Add(new ListViewItem(kvp.Key)
                {
                    Tag = kvp.Value
                });
            }

            nameColumn.AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);

            listView.Items[0].Selected = true;
        }
Ejemplo n.º 5
0
        private void AddButton_Click(object sender, EventArgs e)
        {
            var textBox = new TextInputPrompt("Setting Name", false, string.Empty);

            if (textBox.ShowDialog() == DialogResult.OK)
            {
                var newSettings = new QonverterSettings()
                {
                    QonverterMethod = Qonverter.QonverterMethod.StaticWeighted,
                    RerankMatches   = false,
                    ScoreInfoByName = new Dictionary <string, Qonverter.Settings.ScoreInfo>()
                };
                listView.Items.Add(new ListViewItem(textBox.GetText())
                {
                    Tag = newSettings
                });
                listView.Items[listView.Items.Count - 1].Selected = true;
            }
        }
Ejemplo n.º 6
0
        private IDictionary <Analysis, QonverterSettings> qonverterSettingsHandler(IList <Analysis> distinctAnalyses, out bool cancel)
        {
            var result = new Dictionary <Analysis, QonverterSettings>();

            foreach (var analysis in distinctAnalyses)
            {
                result[analysis] = new QonverterSettings()
                {
                    DecoyPrefix     = "r-",
                    QonverterMethod = Qonverter.QonverterMethod.StaticWeighted,
                    RerankMatches   = false,
                    ScoreInfoByName = null
                }
            }
            ;
            cancel = false;
            return(result);
        }
    }
Ejemplo n.º 7
0
        public override void Upgrade()
        {
            base.Upgrade();

            var previousQonverterSettings = GetPreviousVersion("QonverterSettings") as StringCollection;

            if (previousQonverterSettings != null)
            {
                var userQonverterSettings       = new HashSet <string>(previousQonverterSettings.OfType <string>().ToList());
                var newDefaultQonverterSettings = new HashSet <string>(DefaultQonverterSettings.OfType <string>().ToList());

                var userQonverterSettingsByName       = userQonverterSettings.ToDictionary(o => o.Split(';').First());
                var newDefaultQonverterSettingsByName = newDefaultQonverterSettings.ToDictionary(o => o.Split(';').First());

                foreach (var nameSettingsPair in newDefaultQonverterSettingsByName)
                {
                    if (!userQonverterSettingsByName.ContainsKey(nameSettingsPair.Key))
                    {
                        QonverterSettings.Add(nameSettingsPair.Value);
                    }
                }
            }
        }
Ejemplo n.º 8
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);
        }
Ejemplo n.º 9
0
        public static void ClassInitialize (TestContext testContext)
        {
            testContext.SetTestOutputSubdirectory(testContext.FullyQualifiedTestClassName + "/" + testContext.TestName);
            Directory.CreateDirectory(testContext.TestOutputPath());
            string testModelFilepath = testContext.TestOutputPath("../testModel.idpDB");
            var sessionFactory = SessionFactoryFactory.CreateSessionFactory(testModelFilepath, new SessionFactoryConfig { CreateSchema = true });
            var session = sessionFactory.OpenSession();

            CreateTestProteins(session, testProteinSequences);
            CreateTestData(session, testPsmSummary);
            AddSubsetPeakData(session);

            var qonverterSettings1 = new QonverterSettings()
            {
                Analysis = session.UniqueResult<Analysis>(o => o.Software.Name == "Engine 1"),
                QonverterMethod = Qonverter.QonverterMethod.StaticWeighted,
                DecoyPrefix = "quiRKy",
                RerankMatches = true,
                ScoreInfoByName = new Dictionary<string, Qonverter.Settings.ScoreInfo>()
                {
                    {"score1", new Qonverter.Settings.ScoreInfo()
                                {
                                    Weight = 1,
                                    Order = Qonverter.Settings.Order.Ascending,
                                    NormalizationMethod = Qonverter.Settings.NormalizationMethod.Linear
                                }},
                    {"score2", new Qonverter.Settings.ScoreInfo()
                                {
                                    Weight = 42,
                                    Order = Qonverter.Settings.Order.Descending,
                                    NormalizationMethod = Qonverter.Settings.NormalizationMethod.Quantile
                                }}
                }
            };

            var qonverterSettings2 = new QonverterSettings()
            {
                Analysis = session.UniqueResult<Analysis>(o => o.Software.Name == "Engine 2"),
                QonverterMethod = Qonverter.QonverterMethod.SVM,
                DecoyPrefix = "___---",
                RerankMatches = false,
                ScoreInfoByName = new Dictionary<string, Qonverter.Settings.ScoreInfo>()
                {
                    {"foo", new Qonverter.Settings.ScoreInfo()
                            {
                                Weight = 7,
                                Order = Qonverter.Settings.Order.Ascending,
                                NormalizationMethod = Qonverter.Settings.NormalizationMethod.Off
                            }},
                    {"bar", new Qonverter.Settings.ScoreInfo()
                            {
                                Weight = 11,
                                Order = Qonverter.Settings.Order.Descending,
                                NormalizationMethod = Qonverter.Settings.NormalizationMethod.Off
                            }}
                }
            };

            session.Save(qonverterSettings1);
            session.Save(qonverterSettings2);
            session.Flush();
                
            session.Close();
            sessionFactory.Close();
        }
Ejemplo n.º 10
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.º 11
0
        public void TestMergerModel()
        {
            #region Example proteins

            string[] testProteinSequences = new string[]
            {
                "PEPTIDERPEPTIDEKPEPTIDE",
                "TIDERPEPTIDEKPEP",
                "RPEPKTIDERPEPKTIDE",
                "EDITPEPKEDITPEPR",
                "PEPREDITPEPKEDIT",
                "EPPIERPETPDETKTDPEPIIRDE"
            };

            #endregion

            #region Example PSMs

            List <SpectrumTuple> mergeSourcePsmSummary1 = new List <SpectrumTuple>()
            {
                //               Group Source Spectrum Analysis     Score  Q   List of Peptide@Charge/ScoreDivider
                new SpectrumTuple("/A/1", 1, 1, 1, 12, 0, "[C2H2O1]PEPTIDE@2/1 TIDERPEPTIDEK@4/2 EPPIER@1/3"),
                new SpectrumTuple("/A/1", 1, 2, 1, 23, 0, "PEPTIDER@2/1 PETPDETK@3/3 EDITPEPK@2/5"),
                new SpectrumTuple("/A/1", 1, 3, 1, 34, 0, "PEPTIDEK@2/1 TIDER@1/4 PETPDETK@2/8"),
                new SpectrumTuple("/A/1", 2, 1, 1, 43, 0, "PEPTIDE@2/1 E[H-2O-1]DIT[P1O4]PEPR@2/2 EPPIER@1/7"),
                new SpectrumTuple("/A/1", 2, 2, 1, 32, 0, "PEPTIDER@3/1 EDITPEPK@3/4 EDITPEPR@3/5"),
                new SpectrumTuple("/A/1", 2, 3, 1, 21, 0, "PEPT[P1O4]IDEK@3/1 TIDEK@1/7 PETPDETK@2/8"),
                new SpectrumTuple("/A/2", 3, 1, 1, 56, 0, "TIDEK@2/1 TIDE@1/2 P[P1O4]EPTIDE@3/3"),
                new SpectrumTuple("/A/2", 3, 2, 1, 45, 0, "TIDER@2/1 TIDERPEPTIDEK@4/3 PEPTIDEK@3/4"),
                new SpectrumTuple("/A/2", 3, 3, 1, 34, 0, "TIDE@1/1 PEPTIDEK@3/6 TIDEK@1/7"),
                new SpectrumTuple("/B/1", 4, 1, 1, 65, 0, "TIDERPEPTIDEK@4/1 PETPDETK@3/8 EDITPEPR@3/9"),
                new SpectrumTuple("/B/1", 4, 2, 1, 53, 0, "E[H-2O-1]DITPEPK@2/1 PEPTIDEK@3/2 PEPTIDE@2/3"),
                new SpectrumTuple("/B/1", 4, 3, 1, 42, 0, "EDIT@2/1 PEPTIDEK@3/3 EDITPEPR@2/4"),
                new SpectrumTuple("/B/2", 5, 1, 1, 20, 0, "EPPIER@2/1 TIDE@1/7 PEPTIDE@2/9"),
                new SpectrumTuple("/B/2", 5, 2, 1, 24, 0, "PETPDETK@2/1 PEPTIDEK@3/5 EDITPEPR@2/8"),
                new SpectrumTuple("/B/2", 5, 3, 1, 24, 0, "PETPDETK@3/1 EDIT@1/4 TIDER@2/6"),
            };

            List <SpectrumTuple> mergeSourcePsmSummary2 = new List <SpectrumTuple>()
            {
                new SpectrumTuple("/A/1", 1, 1, 2, 120, 0, "TIDERPEPTIDEK@4/1 PEPTIDE@2/2 EPPIER@1/3"),
                new SpectrumTuple("/A/1", 1, 2, 2, 230, 0, "PEPTIDER@2/1 PETPDETK@3/3 EDITPEPK@2/5"),
                new SpectrumTuple("/A/1", 1, 3, 2, 340, 0, "PEPTIDEK@2/1 TIDER@1/4 PETPDETK@2/8"),
                new SpectrumTuple("/A/1", 2, 1, 2, 430, 0, "PEPTIDE@2/1 EDITPEPR@2/2 EPPIER@1/7"),
                new SpectrumTuple("/A/1", 2, 2, 2, 320, 0, "PEPTIDER@3/1 EDITPEPK@3/4 EDITPEPR@3/5"),
                new SpectrumTuple("/A/1", 2, 3, 2, 210, 0, "PEPT[P1O4]IDEK@3/1 TIDEK@1/7 PETPDETK@2/8"),
                new SpectrumTuple("/A/2", 3, 1, 2, 560, 0, "TIDEK@2/1 TIDE@1/2 PEPTIDE@3/3"),
                new SpectrumTuple("/A/2", 3, 2, 2, 450, 0, "TIDER@2/1 TIDERPEPTIDEK@4/3 PEPTIDEK@3/4"),
                new SpectrumTuple("/A/2", 3, 3, 2, 340, 0, "TIDE@1/1 PEPTIDEK@3/6 TIDEK@1/7"),
                new SpectrumTuple("/B/1", 4, 1, 2, 650, 0, "TIDERPEPTIDEK@4/1 PET[P1O4]PDETK@3/8 EDITPEPR@3/9"),
                new SpectrumTuple("/B/1", 4, 2, 2, 530, 0, "EDITPEPK@2/1 PEPTIDEK@3/2 PEPTIDE@2/3"),
                new SpectrumTuple("/B/1", 4, 3, 2, 420, 0, "EDIT@2/1 PEPTIDEK@3/3 EDITPEPR@2/4"),
                new SpectrumTuple("/B/2", 5, 1, 2, 200, 0, "E[H-2O-1]PPIER@2/1 TIDE@1/7 PEPTIDE@2/9"),
                new SpectrumTuple("/B/2", 5, 2, 2, 240, 0, "PEPTIDEK@2/1 PETPDETK@2/4 EDITPEPR@2/8"),
                new SpectrumTuple("/B/2", 5, 3, 2, 240, 0, "PETPDETK@3/1 EDIT@1/4 TIDER@2/6"),
            };

            var qonverterSettings1 = new QonverterSettings()
            {
                QonverterMethod = Qonverter.QonverterMethod.StaticWeighted,
                DecoyPrefix     = "quiRKy",
                RerankMatches   = true,
                ScoreInfoByName = new Dictionary <string, Qonverter.Settings.ScoreInfo>()
                {
                    { "score1", new Qonverter.Settings.ScoreInfo()
                      {
                          Weight = 1,
                          Order  = Qonverter.Settings.Order.Ascending,
                          NormalizationMethod = Qonverter.Settings.NormalizationMethod.Linear
                      } },
                    { "score2", new Qonverter.Settings.ScoreInfo()
                      {
                          Weight = 42,
                          Order  = Qonverter.Settings.Order.Descending,
                          NormalizationMethod = Qonverter.Settings.NormalizationMethod.Quantile
                      } }
                }
            };

            var qonverterSettings2 = new QonverterSettings()
            {
                QonverterMethod = Qonverter.QonverterMethod.SVM,
                DecoyPrefix     = "___---",
                RerankMatches   = false,
                ScoreInfoByName = new Dictionary <string, Qonverter.Settings.ScoreInfo>()
                {
                    { "foo", new Qonverter.Settings.ScoreInfo()
                      {
                          Weight = 7,
                          Order  = Qonverter.Settings.Order.Ascending,
                          NormalizationMethod = Qonverter.Settings.NormalizationMethod.Off
                      } },
                    { "bar", new Qonverter.Settings.ScoreInfo()
                      {
                          Weight = 11,
                          Order  = Qonverter.Settings.Order.Descending,
                          NormalizationMethod = Qonverter.Settings.NormalizationMethod.Off
                      } }
                }
            };

            #endregion

            File.Delete("testMergeSource1.idpDB");
            using (var sessionFactory = SessionFactoryFactory.CreateSessionFactory("testMergeSource1.idpDB", new SessionFactoryConfig {
                CreateSchema = true
            }))
                using (var session = sessionFactory.OpenSession())
                {
                    TestModel.CreateTestProteins(session, testProteinSequences);
                    TestModel.CreateTestData(session, mergeSourcePsmSummary1);
                    TestModel.AddSubsetPeakData(session);

                    qonverterSettings1.Analysis = session.UniqueResult <Analysis>(o => o.Software.Name == "Engine 1");
                    session.Save(qonverterSettings1);
                    session.Flush();
                }

            File.Delete("testMergeSource2.idpDB");
            using (var sessionFactory = SessionFactoryFactory.CreateSessionFactory("testMergeSource2.idpDB", new SessionFactoryConfig {
                CreateSchema = true
            }))
                using (var session = sessionFactory.OpenSession())
                {
                    TestModel.CreateTestProteins(session, testProteinSequences);
                    TestModel.CreateTestData(session, mergeSourcePsmSummary2);
                    TestModel.AddSubsetPeakData(session);

                    // copy is required because session.Save() takes ownership of the instance
                    var qonverterSettings2Copy = new QonverterSettings()
                    {
                        Analysis        = session.UniqueResult <Analysis>(o => o.Software.Name == "Engine 2"),
                        QonverterMethod = qonverterSettings2.QonverterMethod,
                        DecoyPrefix     = qonverterSettings2.DecoyPrefix,
                        RerankMatches   = qonverterSettings2.RerankMatches,
                        ScoreInfoByName = qonverterSettings2.ScoreInfoByName
                    };
                    session.Save(qonverterSettings2Copy);
                    session.Flush();
                }

            // create a new merged idpDB from two idpDB files
            File.Delete("testMerger.idpDB");
            Merger.Merge("testMerger.idpDB", new string[] { "testMergeSource1.idpDB", "testMergeSource2.idpDB" });

            var testModel = new TestModel();

            // test that testMerger.idpDB passes the TestModel tests
            using (var sessionFactory = SessionFactoryFactory.CreateSessionFactory("testMerger.idpDB"))
                using (var session = testModel.session = sessionFactory.OpenSession())
                {
                    testModel.TestOverallCounts();
                    testModel.TestSanity();
                    testModel.TestProteins();
                    testModel.TestPeptides();
                    testModel.TestPeptideInstances();
                    testModel.TestSpectrumSourceGroups();
                    testModel.TestSpectrumSources(false);
                    testModel.TestSpectra(false);
                    testModel.TestAnalyses();
                    testModel.TestPeptideSpectrumMatches();
                    testModel.TestModifications();
                    testModel.TestQonverterSettings();
                }

            // create an in-memory representation of testMergeSource2
            var memoryFactory = SessionFactoryFactory.CreateSessionFactory(":memory:", new SessionFactoryConfig {
                CreateSchema = true
            });
            var memoryConnection = SessionFactoryFactory.CreateFile(":memory:");
            var memorySession    = memoryFactory.OpenSession(memoryConnection);
            {
                TestModel.CreateTestProteins(memorySession, testProteinSequences);
                TestModel.CreateTestData(memorySession, mergeSourcePsmSummary2);
                TestModel.AddSubsetPeakData(memorySession);

                qonverterSettings2.Analysis = memorySession.UniqueResult <Analysis>(o => o.Software.Name == "Engine 2");
                memorySession.Save(qonverterSettings2);
                memorySession.Flush();
            }

            // merge the in-memory connection into the testMergeSource1 file

            /*Merger.Merge("testMergeSource1.idpDB", memoryConnection as System.Data.SQLite.SQLiteConnection);
             *
             * // testMergeSource1.idpDB should pass just like testMerger.idpDB
             * using (var sessionFactory = SessionFactoryFactory.CreateSessionFactory("testMergeSource1.idpDB"))
             * using (var session = testModel.session = sessionFactory.OpenSession())
             * {
             *  testModel.TestOverallCounts();
             *  testModel.TestSanity();
             *  testModel.TestProteins();
             *  testModel.TestPeptides();
             *  testModel.TestPeptideInstances();
             *  testModel.TestSpectrumSourceGroups();
             *  testModel.TestSpectrumSources(false);
             *  testModel.TestSpectra(false);
             *  testModel.TestAnalyses();
             *  testModel.TestPeptideSpectrumMatches();
             *  testModel.TestModifications();
             *  testModel.TestQonverterSettings();
             * }*/
        }
Ejemplo n.º 12
0
 private IDictionary<Analysis, QonverterSettings> qonverterSettingsHandler (IList<Analysis> distinctAnalyses, out bool cancel)
 {
     var result = new Dictionary<Analysis, QonverterSettings>();
     foreach (var analysis in distinctAnalyses)
         result[analysis] = new QonverterSettings()
         {
             DecoyPrefix = "r-",
             QonverterMethod = Qonverter.QonverterMethod.StaticWeighted,
             RerankMatches = false,
             ScoreInfoByName = null
         };
     cancel = false;
     return result;
 }
Ejemplo n.º 13
0
        public void TestMergerModel ()
        {

            #region Example proteins

            string[] testProteinSequences = new string[]
            {
                "PEPTIDERPEPTIDEKPEPTIDE",
                "TIDERPEPTIDEKPEP",
                "RPEPKTIDERPEPKTIDE",
                "EDITPEPKEDITPEPR",
                "PEPREDITPEPKEDIT",
                "EPPIERPETPDETKTDPEPIIRDE"
            };

            #endregion

            #region Example PSMs

            List<SpectrumTuple> mergeSourcePsmSummary1 = new List<SpectrumTuple>()
            {
                 //               Group Source Spectrum Analysis     Score  Q   List of Peptide@Charge/ScoreDivider
                 new SpectrumTuple("/A/1", 1, 1, 1, 12, 0, "[C2H2O1]PEPTIDE@2/1 TIDERPEPTIDEK@4/2 EPPIER@1/3"),
                 new SpectrumTuple("/A/1", 1, 2, 1, 23, 0, "PEPTIDER@2/1 PETPDETK@3/3 EDITPEPK@2/5"),
                 new SpectrumTuple("/A/1", 1, 3, 1, 34, 0, "PEPTIDEK@2/1 TIDER@1/4 PETPDETK@2/8"),
                 new SpectrumTuple("/A/1", 2, 1, 1, 43, 0, "PEPTIDE@2/1 E[H-2O-1]DIT[P1O4]PEPR@2/2 EPPIER@1/7"),
                 new SpectrumTuple("/A/1", 2, 2, 1, 32, 0, "PEPTIDER@3/1 EDITPEPK@3/4 EDITPEPR@3/5"),
                 new SpectrumTuple("/A/1", 2, 3, 1, 21, 0, "PEPT[P1O4]IDEK@3/1 TIDEK@1/7 PETPDETK@2/8"),
                 new SpectrumTuple("/A/2", 3, 1, 1, 56, 0, "TIDEK@2/1 TIDE@1/2 P[P1O4]EPTIDE@3/3"),
                 new SpectrumTuple("/A/2", 3, 2, 1, 45, 0, "TIDER@2/1 TIDERPEPTIDEK@4/3 PEPTIDEK@3/4"),
                 new SpectrumTuple("/A/2", 3, 3, 1, 34, 0, "TIDE@1/1 PEPTIDEK@3/6 TIDEK@1/7"),
                 new SpectrumTuple("/B/1", 4, 1, 1, 65, 0, "TIDERPEPTIDEK@4/1 PETPDETK@3/8 EDITPEPR@3/9"),
                 new SpectrumTuple("/B/1", 4, 2, 1, 53, 0, "E[H-2O-1]DITPEPK@2/1 PEPTIDEK@3/2 PEPTIDE@2/3"),
                 new SpectrumTuple("/B/1", 4, 3, 1, 42, 0, "EDIT@2/1 PEPTIDEK@3/3 EDITPEPR@2/4"),
                 new SpectrumTuple("/B/2", 5, 1, 1, 20, 0, "EPPIER@2/1 TIDE@1/7 PEPTIDE@2/9"),
                 new SpectrumTuple("/B/2", 5, 2, 1, 24, 0, "PETPDETK@2/1 PEPTIDEK@3/5 EDITPEPR@2/8"),
                 new SpectrumTuple("/B/2", 5, 3, 1, 24, 0, "PETPDETK@3/1 EDIT@1/4 TIDER@2/6"),
             };

             List<SpectrumTuple> mergeSourcePsmSummary2 = new List<SpectrumTuple>()
             {
                 new SpectrumTuple("/A/1", 1, 1, 2, 120, 0, "TIDERPEPTIDEK@4/1 PEPTIDE@2/2 EPPIER@1/3"),
                 new SpectrumTuple("/A/1", 1, 2, 2, 230, 0, "PEPTIDER@2/1 PETPDETK@3/3 EDITPEPK@2/5"),
                 new SpectrumTuple("/A/1", 1, 3, 2, 340, 0, "PEPTIDEK@2/1 TIDER@1/4 PETPDETK@2/8"),
                 new SpectrumTuple("/A/1", 2, 1, 2, 430, 0, "PEPTIDE@2/1 EDITPEPR@2/2 EPPIER@1/7"),
                 new SpectrumTuple("/A/1", 2, 2, 2, 320, 0, "PEPTIDER@3/1 EDITPEPK@3/4 EDITPEPR@3/5"),
                 new SpectrumTuple("/A/1", 2, 3, 2, 210, 0, "PEPT[P1O4]IDEK@3/1 TIDEK@1/7 PETPDETK@2/8"),
                 new SpectrumTuple("/A/2", 3, 1, 2, 560, 0, "TIDEK@2/1 TIDE@1/2 PEPTIDE@3/3"),
                 new SpectrumTuple("/A/2", 3, 2, 2, 450, 0, "TIDER@2/1 TIDERPEPTIDEK@4/3 PEPTIDEK@3/4"),
                 new SpectrumTuple("/A/2", 3, 3, 2, 340, 0, "TIDE@1/1 PEPTIDEK@3/6 TIDEK@1/7"),
                 new SpectrumTuple("/B/1", 4, 1, 2, 650, 0, "TIDERPEPTIDEK@4/1 PET[P1O4]PDETK@3/8 EDITPEPR@3/9"),
                 new SpectrumTuple("/B/1", 4, 2, 2, 530, 0, "EDITPEPK@2/1 PEPTIDEK@3/2 PEPTIDE@2/3"),
                 new SpectrumTuple("/B/1", 4, 3, 2, 420, 0, "EDIT@2/1 PEPTIDEK@3/3 EDITPEPR@2/4"),
                 new SpectrumTuple("/B/2", 5, 1, 2, 200, 0, "E[H-2O-1]PPIER@2/1 TIDE@1/7 PEPTIDE@2/9"),
                 new SpectrumTuple("/B/2", 5, 2, 2, 240, 0, "PEPTIDEK@2/1 PETPDETK@2/4 EDITPEPR@2/8"),
                 new SpectrumTuple("/B/2", 5, 3, 2, 240, 0, "PETPDETK@3/1 EDIT@1/4 TIDER@2/6"),
             };

             var qonverterSettings1 = new QonverterSettings()
             {
                 QonverterMethod = Qonverter.QonverterMethod.StaticWeighted,
                 DecoyPrefix = "quiRKy",
                 RerankMatches = true,
                 ScoreInfoByName = new Dictionary<string, Qonverter.Settings.ScoreInfo>()
                    {
                        {"score1", new Qonverter.Settings.ScoreInfo()
                                    {
                                        Weight = 1,
                                        Order = Qonverter.Settings.Order.Ascending,
                                        NormalizationMethod = Qonverter.Settings.NormalizationMethod.Linear
                                    }},
                        {"score2", new Qonverter.Settings.ScoreInfo()
                                    {
                                        Weight = 42,
                                        Order = Qonverter.Settings.Order.Descending,
                                        NormalizationMethod = Qonverter.Settings.NormalizationMethod.Quantile
                                    }}
                    }
             };

             var qonverterSettings2 = new QonverterSettings()
             {
                 QonverterMethod = Qonverter.QonverterMethod.SVM,
                 DecoyPrefix = "___---",
                 RerankMatches = false,
                 ScoreInfoByName = new Dictionary<string, Qonverter.Settings.ScoreInfo>()
                    {
                        {"foo", new Qonverter.Settings.ScoreInfo()
                                {
                                    Weight = 7,
                                    Order = Qonverter.Settings.Order.Ascending,
                                    NormalizationMethod = Qonverter.Settings.NormalizationMethod.Off
                                }},
                        {"bar", new Qonverter.Settings.ScoreInfo()
                                {
                                    Weight = 11,
                                    Order = Qonverter.Settings.Order.Descending,
                                    NormalizationMethod = Qonverter.Settings.NormalizationMethod.Off
                                }}
                    }
             };

            #endregion

            File.Delete("testMergeSource1.idpDB");
            using (var sessionFactory = SessionFactoryFactory.CreateSessionFactory("testMergeSource1.idpDB", new SessionFactoryConfig { CreateSchema = true }))
            using (var session = sessionFactory.OpenSession())
            {
                TestModel.CreateTestProteins(session, testProteinSequences);
                TestModel.CreateTestData(session, mergeSourcePsmSummary1);
                TestModel.AddSubsetPeakData(session);

                qonverterSettings1.Analysis = session.UniqueResult<Analysis>(o => o.Software.Name == "Engine 1");
                session.Save(qonverterSettings1);
                session.Flush();
            }

            File.Delete("testMergeSource2.idpDB");
            using (var sessionFactory = SessionFactoryFactory.CreateSessionFactory("testMergeSource2.idpDB", new SessionFactoryConfig { CreateSchema = true }))
            using (var session = sessionFactory.OpenSession())
            {
                TestModel.CreateTestProteins(session, testProteinSequences);
                TestModel.CreateTestData(session, mergeSourcePsmSummary2);
                TestModel.AddSubsetPeakData(session);

                // copy is required because session.Save() takes ownership of the instance
                var qonverterSettings2Copy = new QonverterSettings()
                {
                    Analysis = session.UniqueResult<Analysis>(o => o.Software.Name == "Engine 2"),
                    QonverterMethod = qonverterSettings2.QonverterMethod,
                    DecoyPrefix = qonverterSettings2.DecoyPrefix,
                    RerankMatches = qonverterSettings2.RerankMatches,
                    ScoreInfoByName = qonverterSettings2.ScoreInfoByName
                };
                session.Save(qonverterSettings2Copy);
                session.Flush();
            }

            // create a new merged idpDB from two idpDB files
            File.Delete("testMerger.idpDB");
            Merger.Merge("testMerger.idpDB", new string[] { "testMergeSource1.idpDB", "testMergeSource2.idpDB" });

            var testModel = new TestModel();

            // test that testMerger.idpDB passes the TestModel tests
            using (var sessionFactory = SessionFactoryFactory.CreateSessionFactory("testMerger.idpDB"))
            using (var session = testModel.session = sessionFactory.OpenSession())
            {
                testModel.TestOverallCounts();
                testModel.TestSanity();
                testModel.TestProteins();
                testModel.TestPeptides();
                testModel.TestPeptideInstances();
                testModel.TestSpectrumSourceGroups();
                testModel.TestSpectrumSources(false);
                testModel.TestSpectra(false);
                testModel.TestAnalyses();
                testModel.TestPeptideSpectrumMatches();
                testModel.TestModifications();
                testModel.TestQonverterSettings();
            }

            // create an in-memory representation of testMergeSource2
            var memoryFactory = SessionFactoryFactory.CreateSessionFactory(":memory:", new SessionFactoryConfig { CreateSchema = true });
            var memoryConnection = SessionFactoryFactory.CreateFile(":memory:");
            var memorySession = memoryFactory.OpenSession(memoryConnection);
            {
                TestModel.CreateTestProteins(memorySession, testProteinSequences);
                TestModel.CreateTestData(memorySession, mergeSourcePsmSummary2);
                TestModel.AddSubsetPeakData(memorySession);

                qonverterSettings2.Analysis = memorySession.UniqueResult<Analysis>(o => o.Software.Name == "Engine 2");
                memorySession.Save(qonverterSettings2);
                memorySession.Flush();
            }

            // merge the in-memory connection into the testMergeSource1 file
            /*Merger.Merge("testMergeSource1.idpDB", memoryConnection as System.Data.SQLite.SQLiteConnection);

            // testMergeSource1.idpDB should pass just like testMerger.idpDB
            using (var sessionFactory = SessionFactoryFactory.CreateSessionFactory("testMergeSource1.idpDB"))
            using (var session = testModel.session = sessionFactory.OpenSession())
            {
                testModel.TestOverallCounts();
                testModel.TestSanity();
                testModel.TestProteins();
                testModel.TestPeptides();
                testModel.TestPeptideInstances();
                testModel.TestSpectrumSourceGroups();
                testModel.TestSpectrumSources(false);
                testModel.TestSpectra(false);
                testModel.TestAnalyses();
                testModel.TestPeptideSpectrumMatches();
                testModel.TestModifications();
                testModel.TestQonverterSettings();
            }*/
        }
Ejemplo n.º 14
0
 public void Add (QonverterSettings qs)
 {
     insertRow(Table.QonverterSettings, new object[] {qs.Analysis.Id, qs.QonverterMethod, qs.DecoyPrefix, qs.RerankMatches, QonverterSettings.assembleScoreInfo(qs.ScoreInfoByName)});
 }
 private void AddButton_Click(object sender, EventArgs e)
 {
     var textBox = new TextInputPrompt("Setting Name", false, string.Empty);
     if (textBox.ShowDialog() == DialogResult.OK)
     {
         var newSettings = new QonverterSettings()
                               {
                                   QonverterMethod = Qonverter.QonverterMethod.StaticWeighted,
                                   RerankMatches = false,
                                   ScoreInfoByName = new Dictionary<string, Qonverter.Settings.ScoreInfo>()
                               };
         listView.Items.Add(new ListViewItem(textBox.GetText()) {Tag = newSettings});
         listView.Items[listView.Items.Count - 1].Selected = true;
     }
 }