Logo Search packages:      
Sourcecode: python-biopython version File versions

FormatConvert.py

00001 """
Utility for conversion between different formats for representing alignments.

classes:
FormatConverter
"""

# biopython
from Bio.Fasta.FastaAlign import FastaAlignment
from Bio.Clustalw import ClustalAlignment


00013 class FormatConverter:
    """Convert between different alignment representation formats.

    The basic idea behind the converter is that it takes a given format,
    converts it into the base Alignment class, and then can return an object
    in any other supported format with the info from the basal alignment.

    Supported formats are:
    o Clustal format (*.aln)
    o Fasta format (*.fasta)
    """
00024     def __init__(self, to_convert):
        """Initialize a converter with a given object.

        Arguments:
        o to_convert - The class which we are going to be converting.
        """
        self.orig_format = to_convert

        self._base_alphabet, self._base_records = self._get_base_info()

00034     def _get_base_info(self):
        """Retrieve all of the basal (ie Generic.Alignment) info.

        The idea is that this info is present in all of the classes and
        this is the information that will be retained in a conversion.
        Format specific information will be lost.
        """
        return self.orig_format._alphabet, self.orig_format._records

00043     def to_fasta(self):
        """Convert the current info into a FastaAlignment object.
        """
        return_format = FastaAlignment(self._base_alphabet)
        return_format._records = self._base_records

        return return_format

00051     def to_clustal(self):
        """Convert the current info into a ClustalAlignment object.
        """
        return_format = ClustalAlignment(self._base_alphabet)
        return_format._records = self._base_records

        return return_format

Generated by  Doxygen 1.6.0   Back to index