Skip to content
Snippets Groups Projects
Commit 3189a7d9 authored by Andy Yates's avatar Andy Yates
Browse files

Adding a "print out what would have happened" script to the checkout; could be...

Adding a "print out what would have happened" script to the checkout; could be rolled into the main script in the future. Also extended the options for DNADB and CCDSDB. We also check if we had a DB which contained DNA as not doing so is a very very very bad thing.
parent 3a81b0ba
No related branches found
No related tags found
No related merge requests found
#!/usr/bin/env perl
use strict;
use warnings;
use Getopt::Long;
use Bio::EnsEMBL::Utils::Exception;
use Bio::EnsEMBL::Utils::TranscriptSelector;
use Bio::EnsEMBL::DBSQL::DBAdaptor;
my ($host, $port, $dbname, $user,$pass);
my ($dnahost, $dnaport, $dnadbname, $dnauser, $dnapass);
my ($ccds_host, $ccds_dbname, $ccds_user, $ccds_port, $ccds_pass);
my $transcript;
my $gene;
GetOptions( 'dbhost:s' => \$host,
'dbport:n' => \$port,
'dbname:s' => \$dbname,
'dbuser:s' => \$user,
'dbpass:s' => \$pass,
'dnahost:s' => \$dnahost,
'dnadbname:s' => \$dnadbname,
'dnauser:s' => \$dnauser,
'dnapass:s' => \$dnapass,
'dnaport:s' => \$dnaport,
'ccdshost:s' => \$ccds_host,
'ccdsdbname:s' => \$ccds_dbname,
'ccdsuser:s' => \$ccds_user,
'ccdsport:s' => \$ccds_port,
'ccdspass:s' => \$ccds_pass,
'transcript:s' => \$transcript,
'gene:s' => \$gene,
);
my $dba =
new Bio::EnsEMBL::DBSQL::DBAdaptor( -host => $host,
-user => $user,
-port => $port,
-dbname => $dbname,
-pass => $pass,
-species => 'default',
);
if($dnadbname) {
if(!$dnauser || !$dnahost) {
throw ("You must provide user, host and dbname details to connect to DNA DB!");
}
my $dna_db = new Bio::EnsEMBL::DBSQL::DBAdaptor( -host => $dnahost,
-user => $dnauser,
-port => $dnaport,
-dbname => $dnadbname,
-pass => $dnapass,
-species => 'dna_'.$dba->species()
);
$dba->dnadb($dna_db);
}
my $ccds_dba;
if ($ccds_dbname) {
if (!$ccds_user || !$ccds_host) {
throw ("You must provide user, host and dbname details to connect to CCDS DB!");
}
$ccds_dba =
new Bio::EnsEMBL::DBSQL::DBAdaptor( -host => $ccds_host,
-user => $ccds_user,
-port => $ccds_port,
-pass => $ccds_pass,
-dbname => $ccds_dbname,
-species => 'ccds_'.$dba->species() );
}
my $transcript_selector = Bio::EnsEMBL::Utils::TranscriptSelector->new($ccds_dba, 1);
my $gene_object;
if($gene) {
printf 'Using "%s" as our Gene stable ID'."\n", $gene;
$gene_object = $dba->get_GeneAdaptor()->fetch_by_stable_id($gene);
}
elsif($transcript) {
printf 'Using "%s" as a Transcript to find a Gene'."\n", $transcript;
my $t = $dba->get_TranscriptAdaptor()->fetch_by_stable_id($transcript);
$gene_object = $t->get_Gene();
printf 'Using "%s" as our Gene'."\n", $gene_object->stable_id();
}
$transcript_selector->select_canonical_transcript_for_Gene($gene_object);
sub usage {
print "
Example usage: perl emit_canonical_encodings.pl -dbhost host -dbuser user
-dbpass *** -dbname dbname -dbport 3306 -transcript ENST00019112
Example usage: perl emit_canonical_encodings.pl -dbhost host -dbuser user
-dbpass *** -dbname dbname -dbport 3306 -gene ENSG00019111
Script options:
-dbname Database name
-dbhost Database host
-dbport Database port
-dbuser Database user
-dbpass Database password
Optional DB connection arguments:
-dnadbname DNA Database name
-dnadbhost DNA Database host
-dnadbuser DNA Database user
-dnadbport DNA Database port
-dnadbpass DNA Database pass
-ccdsdbname CCDS database name
-ccdshost CCDS database host
-ccdsuser CCDS database user
-ccdspass CCDS database pass
-ccdsport CCDS database port
Search params:
-transcript The transcript stable ID to use to find the gene in question
-gene The gene stable ID to emit encoded transcripts for
A warning about not using CCDS is perfectly acceptible when not running on
Human, Mouse and Zebrafish.
";
}
\ No newline at end of file
#!/usr/bin/env perl
# Script that selects the best candidate for canonical transcripts on each
# gene.
# For usage instructions, run ./select_canonical_transcripts.pl -help
#!/usr/bin/env perl
use strict;
use warnings;
......@@ -15,8 +16,8 @@ use IO::File;
use Bio::EnsEMBL::DBSQL::DBAdaptor;
my ($host, $port, $dbname, $user,$pass);
my ($dnahost, $dnadbname, $dnauser);
my ($ccds_host, $ccds_dbname, $ccds_user, $ccds_port);
my ($dnahost, $dnaport, $dnadbname, $dnauser, $dnapass);
my ($ccds_host, $ccds_dbname, $ccds_user, $ccds_port, $ccds_pass);
my $log_path;
my $coord_system_name;
......@@ -35,10 +36,13 @@ GetOptions( 'dbhost:s' => \$host,
'dnahost:s' => \$dnahost,
'dnadbname:s' => \$dnadbname,
'dnauser:s' => \$dnauser,
'ccdshost:s' => \$ccds_host,
'ccdsdbname:s' => \$ccds_dbname,
'ccdsuser:s' => \$ccds_user,
'dnapass:s' => \$dnapass,
'dnaport:s' => \$dnaport,
'ccdshost:s' => \$ccds_host,
'ccdsdbname:s' => \$ccds_dbname,
'ccdsuser:s' => \$ccds_user,
'ccdsport:s' => \$ccds_port,
'ccdspass:s' => \$ccds_pass,
'coord_system_name:s' => \$coord_system_name,
'seq_region_name:s' => \$seq_region_name,
'logic_name:s' => \$logic_name,
......@@ -59,7 +63,29 @@ my $dba =
-port => $port,
-dbname => $dbname,
-pass => $pass,
-species => 'default',
);
if($dnadbname) {
if(!$dnauser || !$dnahost) {
throw ("You must provide user, host and dbname details to connect to DNA DB!");
}
my $dna_db = new Bio::EnsEMBL::DBSQL::DBAdaptor( -host => $dnahost,
-user => $dnauser,
-port => $dnaport,
-dbname => $dnadbname,
-pass => $dnapass,
-species => 'dna_'.$dba->species()
);
$dba->dnadb($dna_db);
}
else {
my $dna = check_if_DB_contains_DNA($dba);
if(!$dna) {
throw ("Your gene DB contains no DNA. You must provide a DNA_DB to connect to");
}
}
my $ccds_dba;
if ($ccds_dbname) {
......@@ -70,8 +96,9 @@ if ($ccds_dbname) {
new Bio::EnsEMBL::DBSQL::DBAdaptor( -host => $ccds_host,
-user => $ccds_user,
-port => $ccds_port,
-pass => $ccds_pass,
-dbname => $ccds_dbname,
-species => 'human' );
-species => 'ccds_'.$dba->species() );
}
my $log_fh;
......@@ -197,6 +224,10 @@ Optional DB connection arguments:
-dnadbhost DNA Database host
-dnadbuser DNA Database user
-dnadbport DNA Database port
-dnadbpass DNA Database pass
-ccdsdbname CCDS database name
......@@ -204,6 +235,8 @@ Optional DB connection arguments:
-ccdsuser CCDS database user
-ccdspass CCDS database pass
-ccdsport CCDS database port
Other optional arguments:
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment