public void Parse_Nominal() { var regulatoryRegion = ImportRegulatoryFeature.Parse(_regulatoryFeatureNode, ChromosomeUtilities.Chr1); Assert.NotNull(regulatoryRegion); Assert.Equal(ChromosomeUtilities.Chr1.Index, regulatoryRegion.Chromosome.Index); Assert.Equal(50555633, regulatoryRegion.Start); Assert.Equal(50555915, regulatoryRegion.End); Assert.Equal("ENSR00000394520", regulatoryRegion.Id.WithoutVersion); Assert.Equal(RegulatoryRegionType.TF_binding_site, regulatoryRegion.Type); }
private static void ParseRegulatoryRegions(IChromosome chromosome, IImportNode featureGroupNode, ICollection <IRegulatoryRegion> regulatoryRegions) { if (!(featureGroupNode is ListObjectKeyValueNode regulatoryFeatureNodes)) { return; } foreach (var node in regulatoryFeatureNodes.Values) { if (!(node is ObjectValueNode regulatoryFeatureNode)) { throw new InvalidOperationException("Expected a regulatory region object value node, but the current node is not an object value."); } if (regulatoryFeatureNode.Type != "Bio::EnsEMBL::Funcgen::RegulatoryFeature") { throw new InvalidOperationException($"Expected a regulatory region node, but the current data type is: [{regulatoryFeatureNode.Type}]"); } var regulatoryRegion = ImportRegulatoryFeature.Parse(regulatoryFeatureNode, chromosome); regulatoryRegions.Add(regulatoryRegion); } }