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(); } }
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; }
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); }
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; }
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; } }
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); } }
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); } } } }
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 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(); }
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 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(); * }*/ }
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; }
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(); }*/ }
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; } }