Bio::Mitomaster - Tool for mitochondrial DNA.


Do you have mitochondrial DNA data that you want to analyze? Is there an established reference sequence for the species to which your data is derived? If you answered yes to both of these questions then Bio::Mitomaster might be for you.

 use Bio::Mitomaster;

 my $mm = Bio::Mitomaster->new(species=>'human', reference=>'rCRS');
 my $seq = $mm->seq(file=>'my_file_name.fasta');
 my $variants = $seq->variants();  # seqs are automatically aligned and variants extracted

 # print a list of the variants in the sequence
 for (keys %{$variants}){
    print "$_  $variants->{$_}\n"

Read the Bio::Mitomaster::Manual (perldoc Bio::Mitomaster::Manual) for a guide to using this framework. Each package also contains its own documentation, but read the manual first.


Mitomaster objects have an encapsulated Bio::Mitomaster::SpeciesRef object that provides access to all the meta-data for the species. Methods provided by that class that are accessible through Mitomaster objects include: species, reference, codon_code, locus, protein, transcript, and translation.



new(species=>'human', reference=>'rCRS')

The constructor for new Mitomaster objects. This is a class method, so call it with Bio::Mitomaster->new(). All Mitomaster objects have a species and a reference, which if not specified default to 'human' and 'rCRS'.


Retreives a list of the current reference data. Call this as a class method:


and you will find out which species and references are available in the software for analysis.


seq(variants=>{1=>'A', 3=>'C'})

seq(file=>'my_file' start=>577 end=>16023)

The constructor for a new DNA Seq object. The list of variants can also be in a file. See Bio::Mitomaster::Manual for a description of the .poly file format and a list of supported seq file formats.

The start and end values will be set automatically if not declared, but it is generally a good idea to explicitly declare them. If the alignment program detects that a sequence read is shorter than was declared, an error is triggered. This might help prevent analyzing partial sequences that are believed to be full ones. On the other hand, the start and end boundaries can be used to read part of a full sequence. In fact, the software always reads the full sequence, but the start and end boundaries will be checked each time any part of the sequence is presented back to the user and trimmed accordingly. The ref_seq method will do likewise. Remember that start and end are read only attributes, so to look at a different region of a sequence you have to create a new one with different start and end values.


Marty Brandon, <marty.brandon at>


Please report any bugs or feature requests to bug-bio-mitomaster-mitoseq at, or through the web interface at I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.


You can find documentation for this module with the perldoc command.

    perldoc Bio::Mitomaster

You can also look for information at:



Copyright 2009 Marty Brandon, all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.