Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
            }
        }