diff --git a/misc-scripts/density_feature/gene_density_calc.pl b/misc-scripts/density_feature/gene_density_calc.pl
index 622b216b49422a2466efe2a93c530349c6173d4e..4556e5acf0fca60b1d84ace668250b7b681b99e9 100644
--- a/misc-scripts/density_feature/gene_density_calc.pl
+++ b/misc-scripts/density_feature/gene_density_calc.pl
@@ -101,6 +101,10 @@ print "Deleting old knownGeneDensity and geneDensity features\n";
 $sth = $db->dbc->prepare("DELETE df, dt, a, ad FROM density_feature df, density_type dt, analysis a, analysis_description ad WHERE ad.analysis_id = a.analysis_id AND a.analysis_id=dt.analysis_id AND dt.density_type_id=df.density_type_id AND a.logic_name IN ('knownGeneDensity', 'geneDensity')");
 $sth->execute();
 
+$sth = $db->dbc->prepare("DELETE df, dt, a FROM density_feature df, density_type dt, analysis a WHERE a.analysis_id=dt.analysis_id AND dt.density_type_id=df.density_type_id AND a.logic_name IN ('knownGeneDensity', 'geneDensity')");
+$sth->execute();
+
+
 # $sth = $db->dbc()->prepare(
 #   qq(
 #   DELETE ad
@@ -139,9 +143,14 @@ $analysis = new Bio::EnsEMBL::Analysis (-program     => "gene_density_calc.pl",
 					-database    => "ensembl",
 					-gff_source  => "gene_density_calc.pl",
 					-gff_feature => "density",
-					-logic_name  => "geneDensity");
+					-logic_name  => "geneDensity",
+          -description => 'Gene density features in a database '
+            . 'as calculated by gene_density_calc.pl',
+          -display_label => 'Genes (density)',
+          -displayable   => 1 );
 
 $aa->store( $analysis );
+$aa->update($analysis);
 
 #
 # Now the actual feature calculation loop
@@ -176,24 +185,24 @@ foreach my $known (1, 0) {
 
     $block_size = $slice->length() / $bin_count;
 
-    my @density_features=();
+    my @density_features;#sf7
 
     print "Gene densities for ".$slice->seq_region_name().
       " with block size $block_size\n";
     $current_end = 0;
     $current = 0;
 
-    while($current_end < $slice->end()) {
+    while($current_end < $slice->length) {
       $current += $block_size;
       $current_start = $current_end+1;
       $current_end = int( $current + 1 );
 
       if( $current_end < $current_start ) { 
-	$current_end = $current_start;
+	      $current_end = $current_start;
       }
 
-      if( $current_end > $slice->end() ) {
-	$current_end = $slice->end();
+      if( $current_end > $slice->end ) {
+	      $current_end = $slice->end;
       }
 
 
@@ -206,9 +215,9 @@ foreach my $known (1, 0) {
       #
 
       foreach my $gene (@{$sub_slice->get_all_Genes()}){
-	if($gene->biotype() !~ /pseudogene/i and $gene->start >=1 ) {
-	  $count++ if(!$known || $gene->is_known());
-	}
+	      if($gene->biotype() !~ /pseudogene/i and $gene->start >=1 ) {
+	        $count++ if(!$known || $gene->is_known());
+	      }
       }
 
       push @density_features, Bio::EnsEMBL::DensityFeature->new
diff --git a/misc-scripts/density_feature/percent_gc_calc.pl b/misc-scripts/density_feature/percent_gc_calc.pl
index 41a1a5a3242d08b6a0043c40892582e974b996de..1f15a79701a37aa69d2f06f9489f246aa472ec9a 100644
--- a/misc-scripts/density_feature/percent_gc_calc.pl
+++ b/misc-scripts/density_feature/percent_gc_calc.pl
@@ -132,7 +132,7 @@ foreach my $slice (@sorted_slices){
   $current_end = 0;
   $current = 0;
 
-  while ($current_end < $slice->end()) {
+  while ($current_end < $slice->length) {
 
     $current += $block_size;
     $current_start = $current_end+1;
diff --git a/misc-scripts/density_feature/variation_density.pl b/misc-scripts/density_feature/variation_density.pl
index ef0f5eee436ec76c1cedd468f72e4a6fbca6c730..e174e5be8c5374b08eb61e89bbbdfe94a210dc32 100644
--- a/misc-scripts/density_feature/variation_density.pl
+++ b/misc-scripts/density_feature/variation_density.pl
@@ -120,7 +120,7 @@ foreach my $slice (@sorted_slices){
   $current_end = 0;
   $current = 0;
 
-  while($current_end < $slice->end()) {
+  while($current_end < $slice->length) {
 
     $current += $block_size;
     $current_start = $current_end+1;