From 5cd7ec3bd2cf8d76042f080bf69035db2e7ea3ec Mon Sep 17 00:00:00 2001
From: Monika Komorowska <mk8@sanger.ac.uk>
Date: Wed, 11 Apr 2012 17:08:56 +0000
Subject: [PATCH] store density features in batch

---
 misc-scripts/density_feature/variation_density.pl | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/misc-scripts/density_feature/variation_density.pl b/misc-scripts/density_feature/variation_density.pl
index 846db569ad..d7dc86b60c 100644
--- a/misc-scripts/density_feature/variation_density.pl
+++ b/misc-scripts/density_feature/variation_density.pl
@@ -115,6 +115,8 @@ while ( my $slice = shift @sorted_slices){
 
   $block_size = $slice->length() / $bin_count;
 
+  my @density_features;
+
   print STDOUT "Calculating SNP densities for ". $slice->seq_region_name() . " with block size $block_size\n";
 
   $current_end = 0;
@@ -138,18 +140,20 @@ while ( my $slice = shift @sorted_slices){
     $sth->execute($slice->get_seq_region_id(), $current_end, $current_start);
     my $count = ($sth->fetchrow_array())[0];
 
-    my $df = Bio::EnsEMBL::DensityFeature->new(-seq_region    => $slice,
+    push @density_features, Bio::EnsEMBL::DensityFeature->new(-seq_region    => $slice,
 					       -start         => $current_start,
         				       -end           => $current_end,
         				       -density_type  => $dt,
         				       -density_value => $count);
-    $density_feature_adaptor->store($df);
-    if ($df->dbID()) {	
-	$total_count ++;
+    if ($count > 0) {
+       #density features with value = 0 are not stored
+       $total_count++;
     }
    
   }
 
+  $density_feature_adaptor->store(@density_features);
+
   last if ( $slice_count++ > $max_slices );
 
 }
-- 
GitLab