To read and set local helical radius of both strand

        Parameters
        ----------
        filename : str
            Input file, which is generated from do_x3dna. e.g. HelixRad_g.dat

        bp : 1D list or array
            base-pairs to analyze
            Example: ::

                bp = [6]                                # bp_range = False
                bp = [4,15]                             # bp_range = True
                bp = range(4,15)                        # bp_range = False
                bp = np.arange(4,15)                    # bp_range = False
                bp = [2,5,6,7,9,12,18]                  # bp_range = False

        atomname : str
            Atom name to consider for the DNA helix (accepted keywords:
            ``P``, ``O4*``, ``O4'``, ``C1*`` and ``C1``)

        full : bool
            To calculate full helical radius. Overrides atomname option and
            uses atom ``P``, and 1 A is added to the radius calculated by 3DNA
            package

        bp_range : bool
            ``Default=True``: As shown above, if ``True``, bp is taken as a
            range otherwise list or numpy array.

def set_helical_radius(self, filename, bp, atomname='P', full=False, bp_range=True):
        """To read and set local helical radius of both strand

        Parameters
        ----------
        filename : str
            Input file, which is generated from do_x3dna. e.g. HelixRad_g.dat

        bp : 1D list or array
            base-pairs to analyze
            Example: ::

                bp = [6]                                # bp_range = False
                bp = [4,15]                             # bp_range = True
                bp = range(4,15)                        # bp_range = False
                bp = np.arange(4,15)                    # bp_range = False
                bp = [2,5,6,7,9,12,18]                  # bp_range = False

        atomname : str
            Atom name to consider for the DNA helix (accepted keywords:
            ``P``, ``O4*``, ``O4'``, ``C1*`` and ``C1``)

        full : bool
            To calculate full helical radius. Overrides atomname option and
            uses atom ``P``, and 1 A is added to the radius calculated by 3DNA
            package

        bp_range : bool
            ``Default=True``: As shown above, if ``True``, bp is taken as a
            range otherwise list or numpy array.

        """
        if not (isinstance(bp, list) or isinstance(bp, np.ndarray)):
            raise AssertionError(
                "type %s is not list or np.ndarray" % type(bp))

        if not ((atomname == 'P') or (atomname == 'O4*') or (atomname == 'C1*') or (atomname == 'O4\'') or (atomname == 'C1\'')):
            print (
                '\n This atomname {0} is not implemented... Exiting\n' .format(atomname))

        # Check if requested parameters found within input file
        gotParametersInputFile = checkParametersInputFile(filename)
        if gotParametersInputFile is None:
            raise IOError(' Something wrong in input file {0}.\n Cannot read parameters.\n File should be an output from do_x3dna.'.format(filename))
        for p in helicalRadiusParameters:
            if p not in gotParametersInputFile:
                raise ValueError(' Helical radius not found in input file. \n This file contains following parameters: \n {0}'.format(gotParametersInputFile))

        parameter = []
        if (atomname == 'P') or (full):
            parameter = [1, 4]

        if (atomname == 'O4*' or atomname == 'O4\'') and (not full):
            parameter = [2, 5]

        if (atomname == 'C1*' or atomname == 'C1\'') and (not full):
            parameter = [3, 6]


        data, time = read_param_file(filename, [1, 2, 3, 4, 5, 6], bp, bp_range, startBP=self.startBP)
        self._set_time(time)

        bp_idx, param_idx = get_idx_of_bp_parameters(bp, parameter, bp_range, startBP=self.startBP)

        if full:
            data = np.add(data, 1.0)

        for i in range(len(data)):
            bp_num = str( bp_idx[i]+self.startBP )
            if (atomname == 'P') or (full):
                self._set_data(data[i][0], 'bps', bp_num, 'radius s-1', scaleoffset=1)
                self._set_data(data[i][3], 'bps', bp_num, 'radius s-2', scaleoffset=1)

            if (atomname == 'O4*' or atomname == 'O4\''):
                self._set_data(data[i][1], 'bps', bp_num, 'radius s-1', scaleoffset=1)
                self._set_data(data[i][4], 'bps', bp_num, 'radius s-2', scaleoffset=1)

            if (atomname == 'C1*' or atomname == 'C1\''):
                self._set_data(data[i][2], 'bps', bp_num, 'radius s-1', scaleoffset=1)
                self._set_data(data[i][5], 'bps', bp_num, 'radius s-2', scaleoffset=1)