Raw content of SeqStoreConverter::CaenorhabditisElegans
use strict;
use warnings;
use SeqStoreConverter::BasicConverter;
package SeqStoreConverter::CaenorhabditisElegans;
use vars qw(@ISA);
@ISA = qw(SeqStoreConverter::BasicConverter);
sub create_coord_systems {
my $self = shift;
$self->debug("Caenorhabditis Specific: creating " .
"clone and chromosome coord systems");
my $target = $self->target();
my $dbh = $self->dbh();
my $ass_def = $self->get_default_assembly();
my @coords =
(["chromosome" , $ass_def, "default_version" , 1],
["clone", undef , "default_version,sequence_level", 2]);
my @assembly_mappings = ("chromosome:$ass_def|clone");
$self->debug("Building coord_system table");
my $sth = $dbh->prepare("INSERT INTO $target.coord_system " .
"(name, version, attrib, rank) VALUES (?,?,?,?)");
my %coord_system_ids;
foreach my $cs (@coords) {
$sth->execute(@$cs);
$coord_system_ids{$cs->[0]} = $sth->{'mysql_insertid'};
}
$sth->finish();
$self->debug("Adding assembly.mapping entries to meta table");
$sth = $dbh->prepare("INSERT INTO $target.meta(meta_key, meta_value) " .
"VALUES ('assembly.mapping', ?)");
foreach my $mapping (@assembly_mappings) {
$sth->execute($mapping);
}
$sth->finish();
return;
}
sub create_seq_regions {
my $self = shift;
$self->debug("CaenorhabditisElegans Specific: creating clone and " .
"chromosome seq_regions");
$self->contig_to_seq_region('clone');
$self->chromosome_to_seq_region();
}
sub create_assembly {
my $self = shift;
$self->debug("CaenorhabditisElegans Specific: loading assembly data");
$self->assembly_contig_chromosome();
}
#
# override the contig_to_seqregion method so that contigs are given clone
# names instead
#
sub contig_to_seq_region {
my $self = shift;
my $target_cs_name = shift;
my $target = $self->target();
my $source = $self->source();
my $dbh = $self->dbh();
$target_cs_name ||= 'contig';
$self->debug("CaenorhabditisElegans Specific: Transforming contigs " .
"into $target_cs_name seq_regions");
my $cs_id = $self->get_coord_system_id($target_cs_name);
my $sth = $dbh->prepare
("INSERT INTO $target.seq_region " .
"SELECT ctg.contig_id, CONCAT(cln.embl_acc, '.', cln.embl_version), " .
" $cs_id, ctg.length " .
"FROM $source.contig ctg, $source.clone cln " .
"WHERE ctg.clone_id = cln.clone_id");
$sth->execute();
$sth->finish();
return;
}
1;