SeqStoreConverter MusMusculus
Included librariesPackage variablesGeneral documentationMethods
Toolbar
WebCvsRaw content
Package variables
No package variables defined.
Included modules
SeqStoreConverter::BasicConverter
Inherit
SeqStoreConverter::BasicConverter
Synopsis
No synopsis!
Description
No description!
Methods
clone_to_seq_region
No description
Code
create_assembly
No description
Code
create_coord_systems
No description
Code
create_seq_regions
No description
Code
Methods description
None available.
Methods code
clone_to_seq_regiondescriptionprevnextTop
sub clone_to_seq_region {
  my $self = shift;
  my $target_cs_name = shift;

  my $target = $self->target();
  my $source = $self->source();
  my $dbh    = $self->dbh();

  # target coord_system will have a different ID
$target_cs_name ||= "clone"; my $cs_id = $self->get_coord_system_id($target_cs_name); $self->debug("MusMusculus Specific:Transforming clones " . "into $target_cs_name seq_regions"); #
# We don't want to make clones out of the WGS contigs, only out of
# the actual BACs with proper embl accessions
#
my $select_sth = $dbh->prepare ("SELECT cl.clone_id, CONCAT(cl.embl_acc, '.', cl.embl_version), MAX(ctg.embl_offset+ctg.length-1) FROM $source.clone cl, $source.contig ctg WHERE cl.clone_id = ctg.clone_id AND cl.embl_acc not like 'C%' GROUP BY ctg.clone_id"); $select_sth->execute(); my ($clone_id, $embl_acc, $length); $select_sth->bind_columns(\$clone_id,\$ embl_acc,\$ length); my $insert_sth = $dbh->prepare ("INSERT INTO $target.seq_region (name, coord_system_id, length) " . "VALUES(?,?,?)"); my $tmp_insert_sth = $dbh->prepare ("INSERT INTO $target.tmp_cln_map (old_id, new_id) VALUES (?, ?)"); while ($select_sth->fetch()) { $insert_sth->execute("$embl_acc", $cs_id, $length); #store mapping of old -> new ids in temp table
$tmp_insert_sth->execute($clone_id, $insert_sth->{'mysql_insertid'}); } $select_sth->finish(); $insert_sth->finish(); $tmp_insert_sth->finish(); return; } 1;
}
create_assemblydescriptionprevnextTop
sub create_assembly {
  my $self = shift;

  $self->debug("MusMusculus Specific: loading assembly data");

  $self->assembly_contig_chromosome();
  $self->assembly_contig_clone();
  $self->assembly_contig_supercontig();
}

#
# Override contig_to_seq_region and clone_to_seq_region to provide
# mouse specific behaviour
#
# 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("MusMusculus Specific: Transforming contigs into " .
# "$target_cs_name seq_regions");
# my $cs_id = $self->get_coord_system_id($target_cs_name);
# #There are two types of contigs in mouse:
# #
# # Contigs which form BAC clones
# #
# my $sth = $dbh->prepare
# ("INSERT INTO $target.seq_region " .
# "SELECT contig_id, name, $cs_id, length " .
# "FROM $source.contig " .
# "WHERE name not like 'C%'");
# $sth->execute();
# $sth->finish();
# #
# # Contigs which were created from whole genome shotgun
# #
# $sth = $dbh->prepare
# ("INSERT INTO $target.seq_region " .
# "SELECT ctg.contig_id, cln.name, $cs_id, length " .
# "FROM $source.contig ctg, $source.clone cln " .
# "WHERE ctg.clone_id = cln.clone_id " .
# "AND ctg.name like 'C%'");
# $sth->execute();
# $sth->finish();
# return;
#
}
create_coord_systemsdescriptionprevnextTop
sub create_coord_systems {
  my $self = shift;

  $self->debug("MusMusculus Specific: loading assembly data");

  my $target = $self->target();
  my $dbh    = $self->dbh();

  my $ass_def = $self->get_default_assembly();

  my @coords = 
    (["chromosome" , $ass_def, "default_version"          ,1    ],
     ["supercontig", undef   , "default_version"          ,2     ],
     ['clone'      , undef   , 'default_version'          ,3     ],
     ["contig"     , undef   , "default_version,sequence_level",4]);

  my @assembly_mappings =  ("chromosome:$ass_def|contig",
                            "supercontig|contig",
                            "clone|contig",
                            "chromosome:$ass_def|contig|clone",
                            "chromosome:$ass_def|contig|supercontig",
                            "supercontig|contig|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;
}
create_seq_regionsdescriptionprevnextTop
sub create_seq_regions {
  my $self = shift;

  $self->debug("MusMusculus Specific: creating contig, " .
               "clone, chromosome and supercontig seq_regions");

  $self->contig_to_seq_region();
  $self->clone_to_seq_region();
  $self->chromosome_to_seq_region();
  $self->supercontig_to_seq_region();
}
General documentation
No general documentation available.