NAME

Bio::DB::UpdateableSeqI - An interface for writing to a database of sequences.

SYNOPSIS

    # get a Bio::DB::UpdateableSeqI somehow
    eval {
	my ( @updatedseqs, @newseqs, @deadseqs);
	my $seq = $db->get_Seq_by_id('ROA1_HUMAN');
	$seq->desc('a new description');
	
	push @updatedseqs, $seq;

	$db->write_seq(\@updatedseqs, \@newseqs, \@deadseqs);
    };
    if( $@ ) {
	print STDERR "an error when trying to write seq : $@\n";
    }

DESCRIPTION

This module seeks to provide a simple method for pushing sequence changes back to a Sequence Database - which can be an SQL compliant database, a file based database, AceDB, etc.

AUTHOR

Jason Stajich <jason@chg.mc.duke.edu>

Reporting Bugs

Report bugs to the Bioperl bug tracking system to help us keep track the bugs and their resolution. Bug reports can be submitted via email or the web:

bioperl-bugs@bioperl.org                   
http://www.bioperl.org/bioperl-bugs/           

APPENDIX

The rest of the documentation details each of the object methods. Internal methods are usually preceded with a _

write_seq

Title   : write_seq
Usage   : write_seq(\@updatedseqs, \@addedseqs, \@deadseqs)
Function: updates sequences in first array,
          adds sequences in the second array,
          and removes sequences in the third array.
Example :
Returns :
Args    : arrays of sequence objects that must be obtained from
          Bio::DB::UpdateableSeqI.

_add_seq

Title   : _add_seq
Usage   : _add_seq($seq)
Function: Adds a new sequence
Example : 
Returns : will throw an exception if
          sequences accession number already exists
Args    : a new seq object - should have an accession number

_remove_seq

Title   : _remove_seq
Usage   : _remove_seq($seq)
Function: Removes an existing sequence
Example : 
Returns : will throw an exception if
          sequence does not exists for the primary_id
Args    : a seq object that was retrieved from Bio::DB::UpdateableSeqI

_update_seq

Title   : _update_seq
Usage   : _update_seq($seq)
Function: Updates a sequence
Example : 
Returns : will throw an exception if
          sequence is out of sync from expected val.
Args    : a seq object that was retrieved from Bio::DB::UpdateableSeqI

Methods inherieted from Bio::DB::RandomAccessI

get_Seq_by_id

Title   : get_Seq_by_id
Usage   : $seq = $db->get_Seq_by_id('ROA1_HUMAN')
Function: Gets a Bio::Seq object by its name
Returns : a Bio::Seq object
Args    : the id (as a string) of a sequence
Throws  : "id does not exist" exception

get_Seq_by_acc

Title   : get_Seq_by_acc
Usage   : $seq = $db->get_Seq_by_acc('X77802');
Function: Gets a Bio::Seq object by accession number
Returns : A Bio::Seq object
Args    : accession number (as a string)
Throws  : "acc does not exist" exception

Methods inheirited from Bio::DB::SeqI

get_PrimarySeq_stream

Title   : get_PrimarySeq_stream
Usage   : $stream = get_PrimarySeq_stream
Function: Makes a Bio::DB::SeqStreamI compliant object
          which provides a single method, next_primary_seq
Returns : Bio::DB::SeqStreamI
Args    : none

get_all_primary_ids

Title   : get_all_ids
Usage   : @ids = $seqdb->get_all_primary_ids()
Function: gives an array of all the primary_ids of the 
          sequence objects in the database. These
          maybe ids (display style) or accession numbers
          or something else completely different - they
          *are not* meaningful outside of this database
          implementation.
Example :
Returns : an array of strings
Args    : none

get_Seq_by_primary_id

Title   : get_Seq_by_primary_id
Usage   : $seq = $db->get_Seq_by_primary_id($primary_id_string);
Function: Gets a Bio::Seq object by the primary id. The primary
          id in these cases has to come from $db->get_all_primary_ids.
          There is no other way to get (or guess) the primary_ids
          in a database.

          The other possibility is to get Bio::PrimarySeqI objects
          via the get_PrimarySeq_stream and the primary_id field
          on these objects are specified as the ids to use here.
Returns : A Bio::Seq object
Args    : accession number (as a string)
Throws  : "acc does not exist" exception