Source code for analyses.helpers.sequence

"""Module containing sequence class.
"""
import os
import sys


# .............................................................................
[docs]class Sequence(object): """Barebones class for sequences. This is a barebones class for sequences. These can be aligned or not and can be any type of alphabet. Attributes: name (str): A name for this sequence. seq (str): A sequence string. qualstr (str): A string of sequence characters. qualarr (list): A list of offset code points. cont_values (list): A list of continuous values for a sequence. """ # ..................................... def __init__(self, name='', seq=''): """Constructor for Sequence. Args: name (str): A name for this sequence. seq (str): A sequence string. """ self.name = name self.seq = seq self.qualstr = "" self.qualarr = [] self.cont_values = [] # .....................................
[docs] def set_cont_values(self, values): """Set the continuous values for the sequence. Args: values (list): A list of values. """ self.cont_values = values
# .....................................
[docs] def set_qualstr(self, qual): """Set the qualstr attribute. Args: qual (str): A new string to use for qualstr. Note: * An offset of 33 is assumed. Todo: * Should this reset both or neither? """ self.qualstr = qual if len(self.qualarr) == 0: for j in self.qualstr: self.qualarr.append(ord(j)-33)
# .....................................
[docs] def set_qualarr(self, qual): """Set the qualarr attribute. Args: qual (:obj:`list` of :obj:`int`): A list of code point integers. Note: * An offset of 33 is assumed. Todo: * Should this reset both or neither? """ self.qualarr = qual if len(self.qualstr) == 0: for j in self.qualarr: self.qualstr += chr(j+33)
# .....................................
[docs] def get_fasta(self): """Get a fasta string. """ retstr = ">" retstr += self.name retstr += "\n" retstr += self.seq return retstr
# .....................................
[docs] def get_fastq(self): """Get a fastq string. """ retstr = "@" retstr += self.name retstr += "\n" retstr += self.seq retstr += "\n+\n" retstr += self.qualstr return retstr