- How a simple Sequence Class can be created and used in programming language like Java, Perl and Python ?
 - How sequence objects can be easily extended to include more functionalities ?
 - How you can use already available sequence objects in BioJava, BioPerl and BioPython instead of creating your own classes.
 
Perl
A. Using Data structure and procedural programming approach :
Let's call the program 'seq_hash.pl'
#!/usr/bin/env perl
use strict;
use warnings;
# Anonymous Hash reference in Perl used for storing the Sequence content
my $sequence_hash = {
  "name"       => "cytochrome",
  "type"       => "DNA",
  "seq_string" => "ADSFASDFASDF"
};
# A function/subroutine to get the sequence hash reference contents as FASTA string
sub seq_hash_to_fasta {
   my ($seq_hash) = @_;
   my $fasta_out  = ">$seq_hash->{'name'}\n$seq_hash->{'seq_string'}\n";
   return $fasta_out;
}
my $fasta_string = &seq_hash_to_fasta($sequence_hash);
print "FASTA string of Sequence:\n";
print $fasta_string;
Running the program from command-prompt
Prompt$$ perl seq_hash.pl FASTA string of Sequence: >cytochrome ADSFASDFASF
B. Using Object-Oriented Concept - Perl Module:
use strict;
use warnings;
package SimpleSequence;
# Function: Constructor for the class and return the SimpleSequence Object
# Usage   : $seq = new SimpleSequence('seq Name')
# Returns : A SimpleSequence object. A quick synopsis:
#           $seq_object->name() - name of the sequence
#           $seq_object->sequence() - sequence as a string
#
sub new {
        my ($class,$name) = @_;
        my $data = {
                "name"     => "$name",
                "sequence" => "",
        };
        bless $data, $class;
        return $data;
}
# Get or Set Sequence name
# Usage   : $seq_obj->name('gi:145443344') - sets the name of sequence
#         : $name= $seq_obj->name() - gets the name of sequence
sub name {
        my ($self, $arg) = @_;
        if (defined $arg) {
                $self->{"name"} = $arg;
        }else {
                return $self->{"name"};
        }
}
# Get or Set sequence string
# Usage   : $seq_obj->sequence('ATAGAFAF') - sets the sequence
#         : $seq_str = $seq_obj->sequence() - gets the sequence as string
sub sequence {
        my ($self, $arg) = @_;
        if (defined $arg) {
                $self->{"sequence"} = $arg;
        }else {
                return $self->{"sequence"};
        }
}
# Get FASTA string
# Usage   : $fasta_str = $seq_obj->to_fasta()
sub to_fasta {
     my ($self, $arg) = @_;
     my $name = $self->{"name"};
     my $seq_str = $self->{"sequence"};
     my $fasta_out  = ">$name\n$seq_str\n";
     return $fasta_out;
}