Esempio n. 1
0
    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
Esempio n. 2
0
    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
Esempio n. 3
0
    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