def __init__(self, handle, record2title=None): """Create a LMAT output writer Arguments: - handle - Handle to an output file, e.g. as returned by open(filename, 'w') - record2title - Optional function to return the text to be used for the title line of each record. By default a combination of the record.id and record.description is used. If the record.description starts with the record.id, then just the record.description is used. You can either use:: handle = open(filename, 'w') writer = LmatOutWriter(handle) writer.write_file(myRecords) handle.close() Or, follow the sequential file writer system, for example:: handle = open(filename, 'w') writer = LmatOutWriter(handle) writer.write_header() # does nothing for LMAT output files ... Multiple writer.write_record() and/or writer.write_records() calls ... writer.write_footer() # does nothing for LMAT out files handle.close() """ SequentialSequenceWriter.__init__(self, handle) self.record2title = record2title
def write_footer(self): """Close the root node and finish the XML document.""" SequentialSequenceWriter.write_footer(self) self.xml_generator.endElement("seqXML") self.xml_generator.endDocument()
def write_header(self): """Write root node with document metadata.""" SequentialSequenceWriter.write_header(self) attrs = { "xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance", "xsi:noNamespaceSchemaLocation": "http://www.seqxml.org/0.4/seqxml.xsd", "seqXMLversion": "0.4" } if self.source is not None: attrs["source"] = self.source if self.source_version is not None: attrs["sourceVersion"] = self.source_version if self.species is not None: if not isinstance(self.species, basestring): raise TypeError("species should be of type string") attrs["speciesName"] = self.species if self.ncbiTaxId is not None: if not isinstance(self.ncbiTaxId, (basestring, int)): raise TypeError("ncbiTaxID should be of type string or int") attrs["ncbiTaxID"] = self.ncbiTaxId self.xml_generator.startElement("seqXML", AttributesImpl(attrs))
def __init__(self, handle, source=None, source_version=None, species=None, ncbiTaxId=None): """Create Object and start the xml generator.""" SequentialSequenceWriter.__init__(self, handle) self.xml_generator = XMLGenerator(handle, "utf-8") self.xml_generator.startDocument() self.source = source self.source_version = source_version self.species = species self.ncbiTaxId = ncbiTaxId
def __init__(self, handle, wrap=60, record2title=None, code=None): """Create a PIR writer. Arguments: - handle - Handle to an output file, e.g. as returned by open(filename, "w") - wrap - Optional line length used to wrap sequence lines. Defaults to wrapping the sequence at 60 characters Use zero (or None) for no wrapping, giving a single long line for the sequence. - record2title - Optional function to return the text to be used for the title line of each record. By default a combination of the record.id, record.name and record.description is used. - code - Optional sequence code must be one of P1, F1, D1, DL, DC, RL, RC, N3 and XX. By default None is used, which means auto detection based on record alphabet. You can either use:: handle = open(filename, "w") writer = PirWriter(handle) writer.write_file(myRecords) handle.close() Or, follow the sequential file writer system, for example:: handle = open(filename, "w") writer = PirWriter(handle) writer.write_header() # does nothing for PIR files ... Multiple writer.write_record() and/or writer.write_records() calls ... writer.write_footer() # does nothing for PIR files handle.close() """ SequentialSequenceWriter.__init__(self, handle) self.wrap = None if wrap: if wrap < 1: raise ValueError( "wrap should be None, 0, or a positive integer") self.wrap = wrap self.record2title = record2title self.code = code
def __init__(self, handle, wrap=60, record2title=None, code=None): """Create a PIR writer. Arguments: - handle - Handle to an output file, e.g. as returned by open(filename, "w") - wrap - Optional line length used to wrap sequence lines. Defaults to wrapping the sequence at 60 characters Use zero (or None) for no wrapping, giving a single long line for the sequence. - record2title - Optional function to return the text to be used for the title line of each record. By default a combination of the record.id, record.name and record.description is used. - code - Optional sequence code must be one of P1, F1, D1, DL, DC, RL, RC, N3 and XX. By default None is used, which means auto detection based on record alphabet. You can either use:: handle = open(filename, "w") writer = PirWriter(handle) writer.write_file(myRecords) handle.close() Or, follow the sequential file writer system, for example:: handle = open(filename, "w") writer = PirWriter(handle) writer.write_header() # does nothing for PIR files ... Multiple writer.write_record() and/or writer.write_records() calls ... writer.write_footer() # does nothing for PIR files handle.close() """ SequentialSequenceWriter.__init__(self, handle) self.wrap = None if wrap: if wrap < 1: raise ValueError self.wrap = wrap self.record2title = record2title self.code = code
def __init__(self, handle, wrap=60, record2title=None): """Create a Fasta writer. Arguements: - handle - Handle to an output file, e.g. as returned by open(filename, "w") - wrap - Optional line length used to wrap sequence lines. Defaults to wrapping the sequence at 60 characters Use zero (or None) for no wrapping, giving a single long line for the sequence. - record2title - Optional function to return the text to be used for the title line of each record. By default a combination of the record.id and record.description is used. If the record.description starts with the record.id, then just the record.description is used. You can either use:: handle = open(filename, "w") writer = FastaWriter(handle) writer.write_file(myRecords) handle.close() Or, follow the sequential file writer system, for example:: handle = open(filename, "w") writer = FastaWriter(handle) writer.write_header() # does nothing for Fasta files ... Multiple writer.write_record() and/or writer.write_records() calls ... writer.write_footer() # does nothing for Fasta files handle.close() """ SequentialSequenceWriter.__init__(self, handle) self.wrap = None if wrap: if wrap < 1: raise ValueError self.wrap = wrap self.record2title = record2title
def __init__(self, handle, wrap=60, record2title=None): """Create a Fasta writer. Arguments: - handle - Handle to an output file, e.g. as returned by open(filename, "w") - wrap - Optional line length used to wrap sequence lines. Defaults to wrapping the sequence at 60 characters Use zero (or None) for no wrapping, giving a single long line for the sequence. - record2title - Optional function to return the text to be used for the title line of each record. By default a combination of the record.id and record.description is used. If the record.description starts with the record.id, then just the record.description is used. You can either use:: handle = open(filename, "w") writer = FastaWriter(handle) writer.write_file(myRecords) handle.close() Or, follow the sequential file writer system, for example:: handle = open(filename, "w") writer = FastaWriter(handle) writer.write_header() # does nothing for Fasta files ... Multiple writer.write_record() and/or writer.write_records() calls ... writer.write_footer() # does nothing for Fasta files handle.close() """ SequentialSequenceWriter.__init__(self, handle) self.wrap = None if wrap: if wrap < 1: raise ValueError self.wrap = wrap self.record2title = record2title
def write_header(self): """Write root node with document metadata.""" SequentialSequenceWriter.write_header(self) attrs = {"xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance", "xsi:noNamespaceSchemaLocation": "http://www.seqxml.org/0.4/seqxml.xsd", "seqXMLversion": "0.4"} if self.source is not None: attrs["source"] = self.source if self.source_version is not None: attrs["sourceVersion"] = self.source_version if self.species is not None: if not isinstance(self.species, basestring): raise TypeError("species should be of type string") attrs["speciesName"] = self.species if self.ncbiTaxId is not None: if not isinstance(self.ncbiTaxId, (basestring, int)): raise TypeError("ncbiTaxID should be of type string or int") attrs["ncbiTaxID"] = self.ncbiTaxId self.xml_generator.startElement("seqXML", AttributesImpl(attrs))
def __init__(self, handle): SequentialSequenceWriter.__init__(self, handle)
def __init__(self, handle): """Initialize the class.""" SequentialSequenceWriter.__init__(self, handle)