Raw content of SeqStoreConverter::FuguRubripes
use strict;
use warnings;
use SeqStoreConverter::BasicConverter;
package SeqStoreConverter::FuguRubripes;
use vars qw(@ISA);
@ISA = qw(SeqStoreConverter::BasicConverter);
sub create_coord_systems {
my $self = shift;
$self->debug("FuguRubripes Specific: creating scaffold coord system");
#
# Load the coord system table.
# Fugu has only one coord system : scaffold
#
my $default_assembly = $self->get_default_assembly();
my $target = $self->target();
my $sth = $self->dbh()->prepare
("INSERT INTO $target.coord_system (name, version, attrib, rank)" .
"VALUES (?,?,?,?)");
$sth->execute('scaffold', $default_assembly,
'default_version,sequence_level', 1);
$sth->finish();
}
sub create_seq_regions {
my $self = shift;
$self->debug("FuguRubripes Specific: creating scaffolds");
$self->contig_to_seq_region('scaffold');
}
sub create_assembly {
my $self = shift;
$self->debug("FuguRubripes Specific: no assembly data needed");
#fugu has no assembly table
}
sub transfer_genes {
my $self = shift;
my $target = $self->target();
my $source = $self->source();
my $dbh = $self->dbh();
#
# This is simple in fugu since all genes are actually in contig (now
# renamed scaffold) coords. We don't need joins to the assembly table
# and we don't have to worry about stickies
#
$self->debug("FuguRubripes Specific: Building gene table " .
"(no chromosomal conversion)");
#
# Transfer the gene table
#
$dbh->do
("INSERT INTO $target.gene " .
"SELECT g.gene_id, g.type, g.analysis_id, e.contig_id, " .
" MIN(e.contig_start), MAX(e.contig_end), e.contig_strand, " .
" g.display_xref_id " .
"FROM $source.transcript t, $source.exon_transcript et, " .
" $source.exon e, $source.gene g " .
"WHERE t.transcript_id = et.transcript_id " .
"AND et.exon_id = e.exon_id " .
"AND g.gene_id = t.gene_id " .
"GROUP BY g.gene_id");
$self->debug("FuguRubripes Specific: Building transcript table " .
"(no chromosomal conversion)");
#
# Transfer transcript table
#
$dbh->do
("INSERT INTO $target.transcript " .
"SELECT t.transcript_id, t.gene_id, e.contig_id, " .
" MIN(e.contig_start), MAX(e.contig_end), e.contig_strand, " .
" t.display_xref_id " .
"FROM $source.transcript t, $source.exon_transcript et, " .
" $source.exon e " .
"WHERE t.transcript_id = et.transcript_id " .
"AND et.exon_id = e.exon_id " .
"GROUP BY t.transcript_id");
$self->debug("FuguRubripes Specific: Building exon table " .
"(no chromosomal conversion)");
#
# Transfer exon table
#
$self->debug("FuguRubripes Specific: Building transcript table " .
"(no chromosomal conversion)");
$dbh->do
("INSERT INTO $target.exon " .
"SELECT e.exon_id, e.contig_id, " .
" e.contig_start, e.contig_end, e.contig_strand, " .
" e.phase, e.end_phase " .
"FROM $source.exon e");
#
# Transfer translation table
#
$self->debug("Building translation table");
$dbh->do
("INSERT INTO $target.translation " .
"SELECT tl.translation_id, ts.transcript_id, tl.seq_start, " .
" tl.start_exon_id, tl.seq_end, tl.end_exon_id " .
"FROM $source.transcript ts, $source.translation tl " .
"WHERE ts.translation_id = tl.translation_id");
return;
}
1;