From e148443a31c5f04f8b4c04ef008fb3f240ba05ac Mon Sep 17 00:00:00 2001 From: Magali Ruffier <mr6@ebi.ac.uk> Date: Mon, 15 Dec 2014 17:24:29 +0000 Subject: [PATCH] ENSCORESW-1120: added is_high_coverage flag for genome container --- modules/Bio/EnsEMBL/DBSQL/GenomeContainer.pm | 33 ++++++++++++++++++++ modules/t/genomeContainer.t | 14 +++++++-- 2 files changed, 45 insertions(+), 2 deletions(-) diff --git a/modules/Bio/EnsEMBL/DBSQL/GenomeContainer.pm b/modules/Bio/EnsEMBL/DBSQL/GenomeContainer.pm index 527527c4af..c49a1c82c8 100644 --- a/modules/Bio/EnsEMBL/DBSQL/GenomeContainer.pm +++ b/modules/Bio/EnsEMBL/DBSQL/GenomeContainer.pm @@ -1189,6 +1189,39 @@ sub has_karyotype { return 1; } + +=head2 is_high_coverage + + Arg : None + Example : $is_high_coverage = $genome->is_high_coverage(); + Description: Boolean indicating whether an assembly is high coverage + or not + Returntype : integer + Exceptions : none + Caller : general + Status : Stable + +=cut + +sub is_high_coverage { + my $self = shift; + + my $coverage_depth = $self->_meta_container->single_value_by_key('assembly.coverage_depth'); + + return 0 if !$coverage_depth; + $coverage_depth = lc($coverage_depth); + + if ($coverage_depth eq 'high') { + return 1; + } elsif (($coverage_depth eq 'low') or ($coverage_depth eq 'medium')) { + return 0; + } elsif ($coverage_depth =~ /^([0-9]+)x$/) { + return $1<6 ? 0 : 1; + } + + return 0; +} + =head2 is_polyploid Arg : None diff --git a/modules/t/genomeContainer.t b/modules/t/genomeContainer.t index 37c979dc31..d91b0a3c25 100644 --- a/modules/t/genomeContainer.t +++ b/modules/t/genomeContainer.t @@ -15,6 +15,7 @@ use strict; use warnings; +use Test::Warnings; use Bio::EnsEMBL::DBSQL::GenomeContainer; use Bio::EnsEMBL::Test::TestUtils; use Bio::EnsEMBL::Registry; @@ -154,15 +155,24 @@ my $alt_transcript_count = $sql_helper->execute_single_result(-SQL => $alt_trans is($alt_transcript_count, $genome->get_alt_transcript_count(), "Number of alt transcripts is correct"); -# +# # Test karyotype flag # -is(1, $genome->has_karyotype, "Human has some chromosomes"); my $empty_db = $multi->get_DBAdaptor("empty"); my $empty_genome = $empty_db->get_adaptor('GenomeContainer'); + +is(1, $genome->has_karyotype, "Human has some chromosomes"); is(0, $empty_genome->has_karyotype, "Empty db does not have chromosomes"); + +# +# Test high coverage flag +# + +is(1, $genome->is_high_coverage, "Human genebuild is high coverage"); +is(0, $empty_genome->is_high_coverage, "Empty db is not high coverage"); + # # Test polyploid genome support # -- GitLab