コード例 #1
0
 public void CompareAveragingWithMSstats()
 {
     var srmDocument = LoadRatPlasmaDocument();
     var documentContainer = new MemoryDocumentContainer();
     documentContainer.SetDocument(documentContainer.Document, srmDocument);
     GroupComparisonModel model = new GroupComparisonModel(documentContainer, null);
     model.GroupComparisonDef = GroupComparisonDef.EMPTY.ChangeControlAnnotation("Condition")
         .ChangeControlValue("Healthy")
         .ChangeIdentityAnnotation("BioReplicate")
         .ChangeSummarizationMethod(SummarizationMethod.AVERAGING)
         .ChangePerProtein(false);
     var expectedValues = MsStatsTestUtil.ReadExpectedResults(typeof (MSstatsAveragingTest),
         "RatPlasmaTestingResult.csv");
     var groupComparer = new GroupComparer(model.GroupComparisonDef, srmDocument, new QrFactorizationCache());
     foreach (var protein in srmDocument.PeptideGroups)
     {
         foreach (var peptide in protein.Peptides)
         {
             var result = groupComparer.CalculateFoldChange(new GroupComparisonSelector(protein, peptide, IsotopeLabelType.light, null, new GroupIdentifier("Diseased")), null);
             var expectedResult = expectedValues[peptide.Peptide.Sequence];
             Assert.AreEqual(expectedResult.EstimatedValue, result.LinearFitResult.EstimatedValue,
                 (expectedResult.StandardError + result.LinearFitResult.StandardError) * 2, peptide.Peptide.Sequence);
         }
     }
 }
コード例 #2
0
 public CheckReportCompatibility(SrmDocument document)
 {
     IDocumentContainer documentContainer = new MemoryDocumentContainer();
     Assert.IsTrue(documentContainer.SetDocument(document, null));
     _database = new Database(document.Settings);
     _database.AddSrmDocument(document);
     _dataSchema = new SkylineDataSchema(documentContainer, DataSchemaLocalizer.INVARIANT);
 }
コード例 #3
0
        private string GetReportRows(SrmDocument document, ViewSpec viewSpec, IProgressMonitor progressMonitor)
        {
            var container = new MemoryDocumentContainer();

            container.SetDocument(document, container.Document);
            var             dataSchema  = new SkylineDataSchema(container, DataSchemaLocalizer.INVARIANT);
            var             viewContext = new DocumentGridViewContext(dataSchema);
            IProgressStatus status      = new ProgressStatus(string.Format(Resources.ReportSpec_ReportToCsvString_Exporting__0__report,
                                                                           viewSpec.Name));
            var writer = new StringWriter();

            if (viewContext.Export(CancellationToken.None, progressMonitor, ref status, viewContext.GetViewInfo(null, viewSpec), writer,
                                   viewContext.GetCsvWriter()))
            {
                return(writer.ToString());
            }
            return(null);
        }
コード例 #4
0
ファイル: ToolService.cs プロジェクト: lgatto/proteowizard
 private string GetReportRows(SrmDocument document, ViewSpec viewSpec, IProgressMonitor progressMonitor)
 {
     var container = new MemoryDocumentContainer();
     container.SetDocument(document, container.Document);
     var dataSchema = new SkylineDataSchema(container, DataSchemaLocalizer.INVARIANT);
     var viewContext = new DocumentGridViewContext(dataSchema);
     var status = new ProgressStatus(string.Format(Resources.ReportSpec_ReportToCsvString_Exporting__0__report,
         viewSpec.Name));
     var writer = new StringWriter();
     if (viewContext.Export(progressMonitor, ref status, viewContext.GetViewInfo(null, viewSpec), writer,
         new DsvWriter(CultureInfo.InvariantCulture, TextUtil.SEPARATOR_CSV)))
     {
         return writer.ToString();
     }
     return null;
 }
コード例 #5
0
 public void TestMapping()
 {
     var settings = SrmSettingsList.GetDefault();
     var document = new SrmDocument(settings);
     var documentContainer = new MemoryDocumentContainer();
     documentContainer.SetDocument(document, null);
     using (var database = new Database(settings))
     {
         var dataSchema = new SkylineDataSchema(documentContainer, DataSchemaLocalizer.INVARIANT);
         var sessionFactory = database.SessionFactory;
         foreach (var classMetaData in sessionFactory.GetAllClassMetadata().Values)
         {
             var tableType = classMetaData.GetMappedClass(EntityMode.Poco);
             foreach (var propertyName in classMetaData.PropertyNames)
             {
                 if (propertyName == "Protein" && tableType == typeof (DbProteinResult))
                 {
                     continue;
                 }
                 var queryDef = new QueryDef
                     {
                         Select = new[] {new ReportColumn(tableType, propertyName),}
                     };
                 var reportSpec = new ReportSpec("test", queryDef);
                 var newTableType = ReportSpecConverter.GetNewTableType(reportSpec);
                 Assert.IsNotNull(newTableType, "No table for type {0}", tableType);
                 var converter = new ReportSpecConverter(dataSchema);
                 var viewInfo = converter.Convert(reportSpec);
                 Assert.IsNotNull(viewInfo, "Unable to convert property {0} in table {1}", propertyName, tableType);
                 Assert.AreEqual(1, viewInfo.DisplayColumns.Count, "No conversion for property {0} in table {1}", propertyName, tableType);
                 Assert.IsNotNull(viewInfo.DisplayColumns[0].ColumnDescriptor, "Column not found for property {0} in table {1}", propertyName, tableType);
                 var report = Report.Load(reportSpec);
                 var resultSet = report.Execute(database);
                 var bindingListSource = new BindingListSource();
                 bindingListSource.SetViewContext(new SkylineViewContext(viewInfo.ParentColumn, Array.CreateInstance(viewInfo.ParentColumn.PropertyType, 0)), viewInfo);
                 var properties = bindingListSource.GetItemProperties(null);
                 var oldCaptions = resultSet.ColumnInfos.Select(columnInfo => columnInfo.Caption).ToArray();
                 var newCaptions = properties.Cast<PropertyDescriptor>().Select(pd=>pd.DisplayName).ToArray();
                 if (oldCaptions.Length != newCaptions.Length)
                 {
                     Console.Out.WriteLine(oldCaptions);
                 }
                 CollectionAssert.AreEqual(oldCaptions, newCaptions, "Caption mismatch on {0} in {1}", propertyName, tableType);
                 for (int i = 0; i < resultSet.ColumnInfos.Count; i++)
                 {
                     var columnInfo = resultSet.ColumnInfos[i];
                     var formatAttribute = (FormatAttribute)properties[i].Attributes[typeof(FormatAttribute)];
                     string message = string.Format("Format problem on column converted from {0} in {1}",
                         columnInfo.ReportColumn.Column, columnInfo.ReportColumn.Table);
                     if (null == columnInfo.Format)
                     {
                         Assert.IsTrue(null == formatAttribute || null == formatAttribute.Format, message);
                     }
                     else
                     {
                         Assert.IsNotNull(formatAttribute, message);
                         Assert.AreEqual(columnInfo.Format, formatAttribute.Format, message);
                     }
                     if (columnInfo.IsNumeric)
                     {
                         Assert.IsNotNull(formatAttribute, message);
                         Assert.AreEqual(TextUtil.EXCEL_NA, formatAttribute.NullValue, message);
                     }
                     else
                     {
                         Assert.IsTrue(null == formatAttribute || null == formatAttribute.NullValue, message);
                     }
                 }
             }
         }
     }
 }
コード例 #6
0
 public void TestPivotResultsThenIsotopeLabel()
 {
     var assembly = typeof (LiveReportPivotTest).Assembly;
     XmlSerializer documentSerializer = new XmlSerializer(typeof(SrmDocument));
     // ReSharper disable once AssignNullToNotNullAttribute
     var document = (SrmDocument)documentSerializer.Deserialize(
         assembly.GetManifestResourceStream(typeof(ReportSpecConverterTest), "silac_1_to_4.sky"));
     XmlSerializer reportSerializer = new XmlSerializer(typeof(ReportOrViewSpecList));
     // ReSharper disable once AssignNullToNotNullAttribute
     var views = (ReportOrViewSpecList) reportSerializer.Deserialize(
         assembly.GetManifestResourceStream(typeof(ReportSpecConverterTest), "LiveReportPivots.skyr"));
     var view = views.First(reportSpec => reportSpec.Name == "ResultSummaryPivotResultsThenLabelType").ViewSpec;
     var bindingListSource = new BindingListSource();
     var documentContainer = new MemoryDocumentContainer();
     Assert.IsTrue(documentContainer.SetDocument(document, null));
     var dataSchema = new SkylineDataSchema(documentContainer, DataSchemaLocalizer.INVARIANT);
     bindingListSource.SetViewContext(new DocumentGridViewContext(dataSchema), new ViewInfo(dataSchema, typeof(Precursor), view));
     var expectedColumnNames = new[] {
             "PeptideSequence",
             "Chromatograms Replicate",
             "Chromatograms PeptideRetentionTime",
             "light IsotopeLabelType",
             "light MeanTotalArea",
             "light Chromatograms TotalArea",
             "heavy IsotopeLabelType",
             "heavy MeanTotalArea",
             "heavy Chromatograms TotalArea",
         };
     var actualColumnNames =
         bindingListSource.GetItemProperties(null)
             .Cast<PropertyDescriptor>()
             .Select(pd => pd.DisplayName)
             .ToArray();
     CollectionAssert.AreEqual(expectedColumnNames, actualColumnNames);
 }
コード例 #7
0
        public void ConsoleReportExportTest()
        {
            var testFilesDir = new TestFilesDir(TestContext, ZIP_FILE);
            string docPath = testFilesDir.GetTestPath("BSA_Protea_label_free_20100323_meth3_multi.sky");
            string outPath = testFilesDir.GetTestPath("Exported_test_report.csv");

            // Import the first RAW file (or mzML for international)
            string rawPath = testFilesDir.GetTestPath("ah_20101011y_BSA_MS-MS_only_5-2" +
                ExtensionTestContext.ExtThermoRaw);
            const string replicate = "Single";

            //Before generating this report, check that it exists
            string reportName = Resources.ReportSpecList_GetDefaults_Peptide_Ratio_Results;
            Settings.Default.PersistedViews.ResetDefaults();
            Assert.IsNotNull(Settings.Default.PersistedViews.GetViewSpecList(PersistedViews.MainGroup.Id)
                .GetView(Resources.ReportSpecList_GetDefaults_Peptide_Ratio_Results));

            //First, programmatically generate the report
            SrmDocument doc = ResultsUtil.DeserializeDocument(docPath);

            //Attach replicate
            ProgressStatus status;
            doc = CommandLine.ImportResults(doc, docPath, replicate, MsDataFileUri.Parse(rawPath), null, null, out status);
            Assert.IsNull(status);

            string programmaticReport;
            MemoryDocumentContainer memoryDocumentContainer = new MemoryDocumentContainer();
            Assert.IsTrue(memoryDocumentContainer.SetDocument(doc, memoryDocumentContainer.Document));
            SkylineDataSchema skylineDataSchema = new SkylineDataSchema(memoryDocumentContainer, SkylineDataSchema.GetLocalizedSchemaLocalizer());
            DocumentGridViewContext viewContext = new DocumentGridViewContext(skylineDataSchema);
            ViewInfo viewInfo = viewContext.GetViewInfo(PersistedViews.MainGroup.Id.ViewName(reportName));
            StringWriter writer = new StringWriter();
            status = new ProgressStatus("Exporting report");
            viewContext.Export(null, ref status, viewInfo, writer,
                new DsvWriter(CultureInfo.CurrentCulture, TextUtil.GetCsvSeparator(LocalizationHelper.CurrentCulture)));
            programmaticReport = writer.ToString();

            RunCommand("--in=" + docPath,
                       "--import-file=" + rawPath,
                       "--import-replicate-name=" + replicate,
                       "--report-name=" + reportName,
                       "--report-format=CSV",
                       "--report-file=" + outPath);

            string reportLines = File.ReadAllText(outPath);
            AssertEx.NoDiff(reportLines, programmaticReport);
        }
コード例 #8
0
 private SkylineDataSchema GetDataSchema()
 {
     var document = new SrmDocument(SrmSettingsList.GetDefault());
     var container = new MemoryDocumentContainer();
     Assert.IsTrue(container.SetDocument(document, container.Document));
     return new SkylineDataSchema(container, DataSchemaLocalizer.INVARIANT);
 }
コード例 #9
0
 public void TestGenerateResxFile()
 {
     var documentContainer = new MemoryDocumentContainer();
     Assert.IsTrue(documentContainer.SetDocument(new SrmDocument(SrmSettingsList.GetDefault()), documentContainer.Document));
     GenerateResXFile(new StringWriter() /* Console.Out */, new SkylineDataSchema(documentContainer, DataSchemaLocalizer.INVARIANT), STARTING_TYPES);
 }
コード例 #10
0
 public void TestCheckForUnusedColumnCaptions()
 {
     var documentContainer = new MemoryDocumentContainer();
     Assert.IsTrue(documentContainer.SetDocument(new SrmDocument(SrmSettingsList.GetDefault()), documentContainer.Document));
     SkylineDataSchema dataSchema = new SkylineDataSchema(documentContainer, DataSchemaLocalizer.INVARIANT);
     var columnCaptions = new HashSet<string>();
     foreach (
         var resourceManager in SkylineDataSchema.GetLocalizedSchemaLocalizer().ColumnCaptionResourceManagers)
     {
         var resourceSet = resourceManager.GetResourceSet(CultureInfo.InvariantCulture, true, true);
         var enumerator = resourceSet.GetEnumerator();
         while (enumerator.MoveNext())
         {
             string key = enumerator.Key as string;
             if (null != key)
             {
                 columnCaptions.Add(key);
             }
         }
     }
     foreach (var columnDescriptor in EnumerateAllColumnDescriptors(dataSchema, STARTING_TYPES)
         )
     {
         var invariantCaption = dataSchema.GetColumnCaption(columnDescriptor);
         columnCaptions.Remove(invariantCaption.InvariantCaption);
     }
     var unusedCaptions = columnCaptions.ToArray();
     Assert.AreEqual(0, unusedCaptions.Length, "Unused entries found in ColumnCaptions.resx: {0}", string.Join(",", unusedCaptions));
 }
コード例 #11
0
 public void TestAllColumnCaptionsAreLocalized()
 {
     var documentContainer = new MemoryDocumentContainer();
     Assert.IsTrue(documentContainer.SetDocument(new SrmDocument(SrmSettingsList.GetDefault()), documentContainer.Document));
     SkylineDataSchema skylineDataSchema = new SkylineDataSchema(documentContainer, SkylineDataSchema.GetLocalizedSchemaLocalizer());
     var missingCaptions = new HashSet<ColumnCaption>();
     foreach (var columnDescriptor in
             EnumerateAllColumnDescriptors(skylineDataSchema, STARTING_TYPES))
     {
         var invariantCaption = skylineDataSchema.GetColumnCaption(columnDescriptor);
         if (!skylineDataSchema.DataSchemaLocalizer.HasEntry(invariantCaption))
         {
             missingCaptions.Add(invariantCaption);
         }
     }
     if (missingCaptions.Count == 0)
     {
         return;
     }
     StringWriter message = new StringWriter();
     WriteResXFile(message, missingCaptions);
     Assert.Fail("Missing localized column captions {0}", message);
 }
コード例 #12
0
ファイル: DsvWriterTest.cs プロジェクト: lgatto/proteowizard
 private MemoryDocumentContainer CreateMemoryDocumentContainer(SrmDocument document)
 {
     MemoryDocumentContainer memoryDocumentContainer = new MemoryDocumentContainer();
     Assert.IsTrue(memoryDocumentContainer.SetDocument(document, memoryDocumentContainer.Document));
     return memoryDocumentContainer;
 }