def __init__(self, seq_list, temp=50, nupack_home=None, rna1999=False): ''' :param seq_list: Input sequence(s). :type seq_list: coral.DNA, coral.RNA, or list of either. :param rna1999: Use RNA 1999 settings. :type rna1999: bool :param temp: Temperature in C. :type temp: float :param nupack_home: NUPACK home dir. The script attempts to find the NUPACKHOME environment variable if this isn't set. :type nupack_home: str :returns: Nupack instance. :raises: ValueError if NUPACKHOME environment variable is not defined and nupack_home is undefined. ValueError if sequences are not all the same type (e.g. don't mix RNA and DNA). Exception if using rna1999 with a Tm other than 37C. ''' # Set up nupack environment variable if nupack_home is None: if 'NUPACKHOME' in environ: nupack_home = environ['NUPACKHOME'] else: msg1 = 'Must have NUPACKHOME environment variable set or ' msg2 = 'set nupack_home argument.' raise ValueError(msg1 + msg2) self._nupack_home = nupack_home # If input isn't list, make it one if not isinstance(seq_list, list): self._seq_list = [seq_list] else: self._seq_list = seq_list # Figure out material based on input and ensure it's consistent self._material = sequence_type(self._seq_list[0]) if not all([sequence_type(seq) == self._material for seq in self._seq_list]): raise ValueError('Sequence inputs were of mixed types.') # Convert seq object(s) to string(s) self._seq_list = [str(seq) for seq in self._seq_list] # Shared temperature input self._temp = temp # Handle rna1999 setting if self._material == 'rna' and rna1999: self._material = 'rna1999' if self._temp != 37: raise Exception('To use rna1999 settings, temp must be 37.') # Create temp dir self._tempdir = mkdtemp() # Track whether complexes has been run to avoid redundant computation self._complexes_run = False self._complexes_file = None
def __init__(self, seq_list, temp=50, nupack_home=None, rna1999=False): ''' :param seq_list: Input sequence(s). :type seq_list: coral.DNA, coral.RNA, or list of either. :param rna1999: Use RNA 1999 settings. :type rna1999: bool :param temp: Temperature in C. :type temp: float :param nupack_home: NUPACK home dir. The script attempts to find the NUPACKHOME environment variable if this isn't set. :type nupack_home: str :returns: Nupack instance. :raises: ValueError if NUPACKHOME environment variable is not defined and nupack_home is undefined. ValueError if sequences are not all the same type (e.g. don't mix RNA and DNA). Exception if using rna1999 with a Tm other than 37C. ''' # Set up nupack environment variable if nupack_home is None: if 'NUPACKHOME' in environ: nupack_home = environ['NUPACKHOME'] else: msg1 = 'Must have NUPACKHOME environment variable set or ' msg2 = 'set nupack_home argument.' raise ValueError(msg1 + msg2) self._nupack_home = nupack_home # If input isn't list, make it one if type(seq_list) != list: self._seq_list = [seq_list] else: self._seq_list = seq_list # Figure out material based on input and ensure it's consistent self._material = sequence_type(self._seq_list[0]) if not all( [sequence_type(seq) == self._material for seq in self._seq_list]): raise ValueError('Sequence inputs were of mixed types.') # Convert seq object(s) to string(s) self._seq_list = [str(seq) for seq in self._seq_list] # Shared temperature input self._temp = temp # Handle rna1999 setting if self._material == 'rna' and rna1999: self._material = 'rna1999' if self._temp != 37: raise Exception('To use rna1999 settings, temp must be 37.') # Create temp dir self._tempdir = mkdtemp() # Track whether complexes has been run to avoid redundant computation self._complexes_run = False self._complexes_file = None
def __init__(self, seq_list, dotbrackets=None, constraint_structures=None): ''' :param seq: DNA or RNA sequences to evaluate. :type seq: list of coral.DNA, coral.RNA, or str :param dotbrackets: Dot bracket formatted structures of given seuqneces :type dotbrackets: list of str :returns: coral.analysis.Vienna instance. ''' # If input isn't list, make it one if not isinstance(seq_list, list): self._seq_list = [seq_list] else: self._seq_list = seq_list # Figure out material based on input and ensure it's consistent self._material = sequence_type(self._seq_list[0]) if not all([sequence_type(seq) == self._material for seq in self._seq_list]): raise ValueError('Sequence inputs were of mixed types.') # Convert seq object(s) to string(s) self._seq_list = [str(seq) for seq in self._seq_list] self._tempdir = '' if dotbrackets is None: self.dotbrackets = [] else: self.dotbrackets = dotbrackets if constraint_structures is None: self.constraint_structures = [] else: self.constraint_structures = constraint_structures