private static ViewInfo CreateAuditLogViewInfo(SkylineDataSchema dataSchema, string name, params string[] columnNames) { var columnDescriptor = ColumnDescriptor.RootColumn(dataSchema, typeof(AuditLogRow)); var viewSpec = new ViewSpec().SetName(name).SetRowType(columnDescriptor.PropertyType); var columns = columnNames.Select(c => new ColumnSpec(PropertyPath.Parse(c))); viewSpec = viewSpec.SetSublistId(PropertyPath.Root.Property(@"Details").LookupAllItems()); viewSpec = viewSpec.SetColumns(columns); return(new ViewInfo(columnDescriptor, viewSpec).ChangeViewGroup(ViewGroup.BUILT_IN)); }
public void SetPivotReplicate(bool pivot) { if (pivot) { ViewSpec = ViewSpec.SetSublistId(PropertyPath.Root); } else { ViewSpec = ViewSpec.SetSublistId(SkylineViewContext.GetReplicateSublist(ViewInfo.ParentColumn.PropertyType)); } }
private void comboSublist_SelectedIndexChanged(object sender, EventArgs e) { if (_inChangeView) { return; } var sublistItem = comboSublist.SelectedItem as SublistItem; if (sublistItem != null) { ViewSpec = _viewSpec.SetSublistId(sublistItem.IdentifierPath); } }
// ReSharper disable NonLocalizedString public static ViewInfo GetDefaultViewInfo(ColumnDescriptor columnDescriptor) { ViewSpec viewSpec = GetDefaultViewSpec(columnDescriptor); bool addAnnotations = false; if (columnDescriptor.PropertyType == typeof(TransitionResult)) { viewSpec = viewSpec.SetColumns(new[] { new ColumnSpec().SetName("PrecursorResult.PeptideResult.ResultFile.Replicate"), new ColumnSpec().SetName("Note"), new ColumnSpec().SetName("RetentionTime"), new ColumnSpec().SetName("Fwhm"), new ColumnSpec().SetName("StartTime"), new ColumnSpec().SetName("EndTime"), new ColumnSpec().SetName("Area"), new ColumnSpec().SetName("Background"), new ColumnSpec().SetName("AreaRatio"), new ColumnSpec().SetName("Height"), new ColumnSpec().SetName("PeakRank"), }); addAnnotations = true; } else if (columnDescriptor.PropertyType == typeof(PrecursorResult)) { viewSpec = viewSpec.SetColumns(new[] { new ColumnSpec().SetName("PeptideResult.ResultFile.Replicate"), new ColumnSpec().SetName("Note"), new ColumnSpec().SetName("PrecursorPeakFoundRatio"), new ColumnSpec().SetName("BestRetentionTime"), new ColumnSpec().SetName("MaxFwhm"), new ColumnSpec().SetName("MinStartTime"), new ColumnSpec().SetName("MaxEndTime"), new ColumnSpec().SetName("TotalArea"), new ColumnSpec().SetName("TotalBackground"), new ColumnSpec().SetName("TotalAreaRatio"), new ColumnSpec().SetName("MaxHeight"), new ColumnSpec().SetName("LibraryDotProduct"), new ColumnSpec().SetName("IsotopeDotProduct"), }); addAnnotations = true; } else if (columnDescriptor.PropertyType == typeof(PeptideResult)) { viewSpec = viewSpec.SetColumns(new[] { new ColumnSpec().SetName("ResultFile.Replicate"), new ColumnSpec().SetName("PeptidePeakFoundRatio"), new ColumnSpec().SetName("PeptideRetentionTime"), new ColumnSpec().SetName("RatioToStandard"), }); var skylineDataSchema = (SkylineDataSchema)columnDescriptor.DataSchema; PropertyPath propertyPathReplicate = PropertyPath.Parse("ResultFile.Replicate"); viewSpec = viewSpec.SetColumns(viewSpec.Columns.Concat( skylineDataSchema.GetAnnotations(typeof(Replicate)) .Select(pd => new ColumnSpec(propertyPathReplicate.Property(pd.Name)))) ); } else { var columnsToRemove = new HashSet <PropertyPath>(); bool addRoot = false; bool docHasCustomIons = ((SkylineDataSchema)columnDescriptor.DataSchema).Document.CustomIonCount != 0; bool docHasOnlyCustomIons = docHasCustomIons && ((SkylineDataSchema)columnDescriptor.DataSchema).Document.PeptideCount == 0; if (columnDescriptor.PropertyType == typeof(Protein)) { columnsToRemove.Add(PropertyPath.Root.Property("Name")); if (docHasOnlyCustomIons) { // Peptide-oriented fields that make no sense in a small molecule context columnsToRemove.Add(PropertyPath.Root.Property("Accession")); columnsToRemove.Add(PropertyPath.Root.Property("PreferredName")); columnsToRemove.Add(PropertyPath.Root.Property("Gene")); columnsToRemove.Add(PropertyPath.Root.Property("Species")); columnsToRemove.Add(PropertyPath.Root.Property("Sequence")); } addRoot = true; } else if (columnDescriptor.PropertyType == typeof(Entities.Peptide)) { columnsToRemove.Add(PropertyPath.Root.Property("Sequence")); columnsToRemove.Add(PropertyPath.Root.Property("PreviousAa")); columnsToRemove.Add(PropertyPath.Root.Property("NextAa")); columnsToRemove.Add(PropertyPath.Root.Property("RetentionTimeCalculatorScore")); columnsToRemove.Add(PropertyPath.Root.Property("DocumentLocation")); columnsToRemove.Add(PropertyPath.Root.Property("ConcentrationMultiplier")); columnsToRemove.Add(PropertyPath.Root.Property("InternalStandardConcentration")); columnsToRemove.Add(PropertyPath.Root.Property("CalibrationCurve")); if (docHasOnlyCustomIons) { // Peptide-oriented fields that make no sense in a small molecule context columnsToRemove.Add(PropertyPath.Root.Property("ModifiedSequence")); columnsToRemove.Add(PropertyPath.Root.Property("BeginPos")); columnsToRemove.Add(PropertyPath.Root.Property("EndPos")); columnsToRemove.Add(PropertyPath.Root.Property("MissedCleavages")); } if (!docHasCustomIons) { columnsToRemove.Add(PropertyPath.Root.Property("IonName")); columnsToRemove.Add(PropertyPath.Root.Property("IonFormula")); columnsToRemove.Add(PropertyPath.Root.Property("ExplicitRetentionTime")); columnsToRemove.Add(PropertyPath.Root.Property("ExplicitRetentionTimeWindow")); } addRoot = true; } else if (columnDescriptor.PropertyType == typeof(Precursor)) { if (docHasOnlyCustomIons) { columnsToRemove.Add(PropertyPath.Root.Property("ModifiedSequence")); columnsToRemove.Add(PropertyPath.Root.Property("IsDecoy")); } if (!docHasCustomIons) { columnsToRemove.Add(PropertyPath.Root.Property("ExplicitCollisionEnergy")); columnsToRemove.Add(PropertyPath.Root.Property("IonName")); columnsToRemove.Add(PropertyPath.Root.Property("IonFormula")); } columnsToRemove.Add(PropertyPath.Root.Property("TransitionCount")); columnsToRemove.Add(PropertyPath.Root.Property("DeclusteringPotential")); columnsToRemove.Add(PropertyPath.Root.Property("LibraryScore1")); columnsToRemove.Add(PropertyPath.Root.Property("LibraryScore2")); columnsToRemove.Add(PropertyPath.Root.Property("LibraryScore3")); columnsToRemove.Add(PropertyPath.Root.Property("IsDecoy")); columnsToRemove.Add(PropertyPath.Root.Property("DecoyMzShift")); columnsToRemove.Add(PropertyPath.Root.Property("ExplicitDriftTimeMsec")); columnsToRemove.Add(PropertyPath.Root.Property("ExplicitDriftTimeHighEnergyOffsetMsec")); columnsToRemove.Add(PropertyPath.Root.Property("ExplicitCompensationVoltage")); columnsToRemove.Add(PropertyPath.Root.Property("ExplicitDeclusteringPotential")); columnsToRemove.Add(PropertyPath.Root.Property("ExplicitSLens")); columnsToRemove.Add(PropertyPath.Root.Property("ExplicitConeVoltage")); addRoot = true; } else if (columnDescriptor.PropertyType == typeof(Entities.Transition)) { columnsToRemove.Add(PropertyPath.Root.Property("FragmentIonType")); columnsToRemove.Add(PropertyPath.Root.Property("FragmentIonOrdinal")); columnsToRemove.Add(PropertyPath.Root.Property("CleavageAa")); columnsToRemove.Add(PropertyPath.Root.Property("LossNeutralMass")); columnsToRemove.Add(PropertyPath.Root.Property("IsDecoy")); columnsToRemove.Add(PropertyPath.Root.Property("ProductDecoyMzShift")); columnsToRemove.Add(PropertyPath.Root.Property("IsotopeDistIndex")); if (docHasOnlyCustomIons) { columnsToRemove.Add(PropertyPath.Root.Property("FragmentIon")); // Not interesting - only one product per precursor for small molecules columnsToRemove.Add(PropertyPath.Root.Property("Losses")); // Doesn't mean anything for non-peptides } if (!docHasCustomIons) { // Stuff that only applies to small molecules columnsToRemove.Add(PropertyPath.Root.Property("ProductIonFormula")); } addRoot = true; } else if (columnDescriptor.PropertyType == typeof(Replicate)) { columnsToRemove.Add(PropertyPath.Root.Property("Name")); addRoot = true; } viewSpec = viewSpec.SetSublistId(GetReplicateSublist(columnDescriptor.PropertyType)); if (addRoot) { viewSpec = viewSpec.SetColumns(new[] { new ColumnSpec(PropertyPath.Root) }.Concat(viewSpec.Columns)); } viewSpec = viewSpec.SetColumns(viewSpec.Columns .Where(columnSpec => !columnsToRemove.Contains(columnSpec.PropertyPath))); } if (addAnnotations) { var skylineDataSchema = (SkylineDataSchema)columnDescriptor.DataSchema; viewSpec = viewSpec.SetColumns(viewSpec.Columns.Concat( skylineDataSchema.GetAnnotations(columnDescriptor.PropertyType) .Select(pd => new ColumnSpec(PropertyPath.Root.Property(pd.Name))))); } return(new ViewInfo(columnDescriptor, viewSpec).ChangeViewGroup(ViewGroup.BUILT_IN)); }