diff --git a/misc-scripts/density_feature/gene_density_calc.pl b/misc-scripts/density_feature/gene_density_calc.pl index 212b1b454d4ad13488d9360111a6fe8389341983..a4577d6a366a6c3a2a1e8f6668e58b341c02869c 100644 --- a/misc-scripts/density_feature/gene_density_calc.pl +++ b/misc-scripts/density_feature/gene_density_calc.pl @@ -118,21 +118,78 @@ foreach my $dbname (@dbnames) { $sth = $db->dbc->prepare("DELETE df, dt 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(); - - my $dfa = $db->get_DensityFeatureAdaptor(); my $dta = $db->get_DensityTypeAdaptor(); my $aa = $db->get_AnalysisAdaptor(); my $slice_adaptor = $db->get_SliceAdaptor(); my $support = 'Bio::EnsEMBL::Utils::ConversionSupport'; - my $analysis = $aa->fetch_by_logic_name('knowngenedensity'); - $analysis->created($support->date()); - $aa->update($analysis); + my $analysis1 = $aa->fetch_by_logic_name('knowngenedensity'); + my $analysis2 = $aa->fetch_by_logic_name('genedensity'); + + # Master database location: + my ( $mhost, $mport ) = ( 'ens-staging1', '3306' ); + my ( $muser, $mpass ) = ( 'ensro', undef ); + my $mdbname = 'ensembl_production'; + my $prod_dsn; + my $prod_dbh; + + if ( !defined($analysis1) || !defined($analysis2) ) { + + #get analyses descriptions from the master database + + $prod_dsn = sprintf( 'DBI:mysql:host=%s;port=%d;database=%s', + $mhost, $mport, $mdbname ); + $prod_dbh = DBI->connect( $prod_dsn, $muser, $mpass, + { 'PrintError' => 1, 'RaiseError' => 1 } ); + } + + if ( !defined($analysis1) ) { + + my ($display_label,$description) = $prod_dbh->selectrow_array("select distinct display_label, description from analysis_description where is_current = 1 and logic_name = 'knowngenedensity'"); + + $analysis1 = new Bio::EnsEMBL::Analysis( + -program => "gene_density_calc.pl", + -database => "ensembl", + -gff_source => "gene_density_calc.pl", + -gff_feature => "density", + -logic_name => "knowngenedensity", + -description => $description, + -display_label => $display_label, + -displayable => 1 ); + + $aa->store($analysis1); + + } else { + $analysis1->created($support->date()); + $aa->update($analysis1); + } - $analysis = $aa->fetch_by_logic_name('genedensity'); - $analysis->created($support->date()); - $aa->update($analysis); + + if ( !defined($analysis2) ) { + + my ($display_label,$description) = $prod_dbh->selectrow_array("select distinct display_label, description from analysis_description where is_current = 1 and logic_name = 'genedensity'"); + + $analysis2 = new Bio::EnsEMBL::Analysis( + -program => "gene_density_calc.pl", + -database => "ensembl", + -gff_source => "gene_density_calc.pl", + -gff_feature => "density", + -logic_name => "genedensity", + -description => $description, + -display_label => $display_label, + -displayable => 1 ); + + $aa->store($analysis2); + + } else { + $analysis2->created($support->date()); + $aa->update($analysis2); + } + + if ( defined($prod_dbh) ) { + $prod_dbh->disconnect; + } # # Now the actual feature calculation loop @@ -143,6 +200,7 @@ foreach my $dbname (@dbnames) { # # Create new analysis object for density calculation. # + my $analysis; if($known) { $analysis = $aa->fetch_by_logic_name('knowngenedensity'); diff --git a/misc-scripts/density_feature/percent_gc_calc.pl b/misc-scripts/density_feature/percent_gc_calc.pl index 8fe69e32afb3351c83d728a5f05b2569dd545a7c..40e96d77bc72468214251a7ec024e524b8ac62f9 100644 --- a/misc-scripts/density_feature/percent_gc_calc.pl +++ b/misc-scripts/density_feature/percent_gc_calc.pl @@ -79,14 +79,43 @@ my @sorted_slices = } @{ $slice_adaptor->fetch_all('toplevel') } ); -# -# Update creation date of analysis. -# -my $support = 'Bio::EnsEMBL::Utils::ConversionSupport'; my $analysis = $aa->fetch_by_logic_name('percentgc'); -$analysis->created($support->date()); -$aa->update($analysis); +if ( !defined($analysis) ) { + + # Master database location: + my ( $mhost, $mport ) = ( 'ens-staging1', '3306' ); + my ( $muser, $mpass ) = ( 'ensro', undef ); + my $mdbname = 'ensembl_production'; + + my $prod_dsn = sprintf( 'DBI:mysql:host=%s;port=%d;database=%s', + $mhost, $mport, $mdbname ); + my $prod_dbh = DBI->connect( $prod_dsn, $muser, $mpass, + { 'PrintError' => 1, 'RaiseError' => 1 } ); + + my ($display_label,$description) = $prod_dbh->selectrow_array("select distinct display_label, description from analysis_description where is_current = 1 and logic_name = 'percentgc'"); + + $prod_dbh->disconnect; + + $analysis = new Bio::EnsEMBL::Analysis( + -program => "percent_gc_calc.pl", + -database => "ensembl", + -gff_source => "percent_gc_calc.pl", + -gff_feature => "density", + -logic_name => "percentgc", + -description => $description, + -display_label => $display_label, + -displayable => 1 ); + + $aa->store($analysis); + +} else { + + my $support = 'Bio::EnsEMBL::Utils::ConversionSupport'; + $analysis->created($support->date()); + $aa->update($analysis); + +} # # Create new density type. diff --git a/misc-scripts/density_feature/repeat_coverage_calc.pl b/misc-scripts/density_feature/repeat_coverage_calc.pl index c160972c07a6236e805a60af88e730426db6c6f8..30ae76605fe56d8239e3941ecee857e55fa0f115 100644 --- a/misc-scripts/density_feature/repeat_coverage_calc.pl +++ b/misc-scripts/density_feature/repeat_coverage_calc.pl @@ -77,13 +77,43 @@ my $dta = $db->get_DensityTypeAdaptor(); my $aa = $db->get_AnalysisAdaptor(); -# -# Update creation date of analysis. -# -my $support = 'Bio::EnsEMBL::Utils::ConversionSupport'; my $analysis = $aa->fetch_by_logic_name('percentagerepeat'); -$analysis->created($support->date()); -$aa->update($analysis); + + +if ( !defined($analysis) ) { + + # Master database location: + my ( $mhost, $mport ) = ( 'ens-staging1', '3306' ); + my ( $muser, $mpass ) = ( 'ensro', undef ); + my $mdbname = 'ensembl_production'; + + my $prod_dsn = sprintf( 'DBI:mysql:host=%s;port=%d;database=%s', + $mhost, $mport, $mdbname ); + my $prod_dbh = DBI->connect( $prod_dsn, $muser, $mpass, + { 'PrintError' => 1, 'RaiseError' => 1 } ); + + my ($display_label,$description) = $prod_dbh->selectrow_array("select distinct display_label, description from analysis_description where is_current = 1 and logic_name = 'percentagerepeat'"); + + $prod_dbh->disconnect; + + $analysis = new Bio::EnsEMBL::Analysis( + -program => "repeat_coverage_calc.pl", + -database => "ensembl", + -gff_source => "repeat_coverage_calc.pl", + -gff_feature => "density", + -logic_name => "percentagerepeat", + -description => $description, + -display_label => $display_label, + -displayable => 1 ); + + $aa->store($analysis); +} else { + + my $support = 'Bio::EnsEMBL::Utils::ConversionSupport'; + $analysis->created($support->date()); + $aa->update($analysis); + +} my $slices = $slice_adaptor->fetch_all( "toplevel" ); my @sorted_slices = sort { $b->seq_region_length() <=> $a->seq_region_length() } @$slices; diff --git a/misc-scripts/density_feature/variation_density.pl b/misc-scripts/density_feature/variation_density.pl index 051d99d3500a5a2769f2b5fc687e6fdba5d44cd0..e937a24106a1a9625234fd58c71bbba9dea8664c 100644 --- a/misc-scripts/density_feature/variation_density.pl +++ b/misc-scripts/density_feature/variation_density.pl @@ -53,9 +53,41 @@ my @sorted_slices = sort( { my $analysis = $analysis_adaptor->fetch_by_logic_name('snpdensity'); -my $support = 'Bio::EnsEMBL::Utils::ConversionSupport'; -$analysis->created($support->date()); -$analysis_adaptor->update($analysis); + +if ( !defined($analysis) ) { + + # Master database location: + my ( $mhost, $mport ) = ( 'ens-staging1', '3306' ); + my ( $muser, $mpass ) = ( 'ensro', undef ); + my $mdbname = 'ensembl_production'; + + my $prod_dsn = sprintf( 'DBI:mysql:host=%s;port=%d;database=%s', + $mhost, $mport, $mdbname ); + my $prod_dbh = DBI->connect( $prod_dsn, $muser, $mpass, + { 'PrintError' => 1, 'RaiseError' => 1 } ); + + my ($display_label,$description) = $prod_dbh->selectrow_array("select distinct display_label, description from analysis_description where is_current = 1 and logic_name = 'snpdensity'"); + + $prod_dbh->disconnect; + + $analysis = new Bio::EnsEMBL::Analysis( + -program => "variation_density.pl", + -database => "ensembl", + -gff_source => "variation_density.pl", + -gff_feature => "density", + -logic_name => "snpdensity", + -description => $description, + -display_label => $display_label, + -displayable => 1 ); + + $analysis_adaptor->store($analysis); +} else { + + my $support = 'Bio::EnsEMBL::Utils::ConversionSupport'; + $analysis->created($support->date()); + $analysis_adaptor->update($analysis); + +} # Create and store new density type