def subopt(self, strand, gap, temp=37.0, pseudo=False, material=None,
               dangles='some', sodium=1.0, magnesium=0.0):
        '''Compute the suboptimal structures within a defined energy gap of the
        MFE. Runs the \'subopt\' command.

        :param strand: Strand on which to run subopt. Strands must be either
                       coral.DNA or coral.RNA).
        :type strand: coral.DNA or coral.RNA
        :param gap: Energy gap within to restrict results, e.g. 0.1.
        :type gap: float
        :param temp: Temperature setting for the computation. Negative values
                     are not allowed.
        :type temp: float
        :param pseudo: Enable pseudoknots.
        :type pseudo: bool
        :param material: The material setting to use in the computation. If set
                         to None (the default), the material type is inferred
                         from the strands. Other settings available: 'dna' for
                         DNA parameters, 'rna' for RNA (1995) parameters, and
                         'rna1999' for the RNA 1999 parameters.
        :type material: str
        :param dangles: How to treat dangles in the computation. From the
                        user guide: For \'none\': Dangle energies are ignored.
                        For \'some\': \'A dangle energy is incorporated for
                        each unpaired base flanking a duplex\'. For 'all': all
                        dangle energy is considered.
        :type dangles: str
        :param sodium: Sodium concentration in solution (molar), only applies
                       to DNA.
        :type sodium: float
        :param magnesium: Magnesium concentration in solution (molar), only
                          applies to DNA>
        :type magnesium: float
        :returns: A list of dictionaries of the type returned by .mfe().
        :rtype: list

        '''
        # Set the material (will be used to set command material flag)
        material = self._set_material(strand, material)

        # Set up command flags
        cmd_args = self._prep_cmd_args(temp, dangles, material, pseudo, sodium,
                                       magnesium, multi=False)

        # Set up the input file and run the command. Note: no STDOUT
        lines = [str(strand), str(gap)]
        self._run('subopt', cmd_args, lines)

        # Read the output from file
        structures = self._process_mfe(self._read_tempfile('subopt.subopt'))

        return structures
Compute the suboptimal structures within a defined energy gap of the
        MFE. Runs the \'subopt\' command.

        :param strand: Strand on which to run subopt. Strands must be either
                       coral.DNA or coral.RNA).
        :type strand: coral.DNA or coral.RNA
        :param gap: Energy gap within to restrict results, e.g. 0.1.
        :type gap: float
        :param temp: Temperature setting for the computation. Negative values
                     are not allowed.
        :type temp: float
        :param pseudo: Enable pseudoknots.
        :type pseudo: bool
        :param material: The material setting to use in the computation. If set
                         to None (the default), the material type is inferred
                         from the strands. Other settings available: 'dna' for
                         DNA parameters, 'rna' for RNA (1995) parameters, and
                         'rna1999' for the RNA 1999 parameters.
        :type material: str
        :param dangles: How to treat dangles in the computation. From the
                        user guide: For \'none\': Dangle energies are ignored.
                        For \'some\': \'A dangle energy is incorporated for
                        each unpaired base flanking a duplex\'. For 'all': all
                        dangle energy is considered.
        :type dangles: str
        :param sodium: Sodium concentration in solution (molar), only applies
                       to DNA.
        :type sodium: float
        :param magnesium: Magnesium concentration in solution (molar), only
                          applies to DNA>
        :type magnesium: float
        :returns: A list of dictionaries of the type returned by .mfe().
        :rtype: list