To get the parameters over all frame for the given range of base pair/steps

        parameters
        ----------
        parameter : str
            Input parameter name.
            Parameter from following list are accepted:

                * ``shear``
                * ``stretch``
                * ``stagger``
                * ``buckle``
                * ``propeller``
                * ``opening``
                * ``shift``
                * ``slide``
                * ``rise``
                * ``tilt``
                * ``roll``
                * ``twist``
                * ``x-disp``
                * ``y-disp``
                * ``h-Rise``
                * ``inclination``
                * ``tip``
                * ``h-Twist``
                * ``helical X-axis``
                * ``helical Y-axis``
                * ``helical z-axis``
                * ``helical X-axis smooth``
                * ``helical Y-axis smooth``
                * ``helical z-axis smooth``
                * ``curvature``
                * ``tangent``
                * ``radius S-1``
                * ``radius S-2``
                * ``major Groove``
                * ``major Groove Refined``
                * ``minor Groove``
                * ``minor Groove Refined``
                * ``alpha S1``
                * ``beta S1``
                * ``gamma S1``
                * ``delta S1``
                * ``epsilon S1``
                * ``zeta S1``
                * ``chi S1``
                * ``alpha S2``
                * ``beta S2``
                * ``gamma S2``
                * ``delta S2``
                * ``epsilon S2``
                * ``zeta S2``
                * ``chi S2``

        bp : 1D list
            List of 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

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

        masked : bool
            ``Default=False``: To skip specific frames/snapshots. dnaMD.DNA.mask array should
            be set to use this functionality. This array contains boolean (either ``True`` or ``False``)
            value for each frame to mask the frames. Presently, mask array is automatically generated
            during :meth:`DNA.generate_smooth_axis` method to skip those frames where 3D fitting
            curve was not successful within the given critera.


        Returns
        -------
        parameters : 2D list
            ``parameters[bp][nframe] (2D list)``: where bp is number of base pairs/steps and nframe is total number of frames in the trajectory.

def get_parameters(self, parameter, bp, bp_range=True, masked=False):
        """To get the parameters over all frame for the given range of base pair/steps

        parameters
        ----------
        parameter : str
            Input parameter name.
            Parameter from following list are accepted:

                * ``shear``
                * ``stretch``
                * ``stagger``
                * ``buckle``
                * ``propeller``
                * ``opening``
                * ``shift``
                * ``slide``
                * ``rise``
                * ``tilt``
                * ``roll``
                * ``twist``
                * ``x-disp``
                * ``y-disp``
                * ``h-Rise``
                * ``inclination``
                * ``tip``
                * ``h-Twist``
                * ``helical X-axis``
                * ``helical Y-axis``
                * ``helical z-axis``
                * ``helical X-axis smooth``
                * ``helical Y-axis smooth``
                * ``helical z-axis smooth``
                * ``curvature``
                * ``tangent``
                * ``radius S-1``
                * ``radius S-2``
                * ``major Groove``
                * ``major Groove Refined``
                * ``minor Groove``
                * ``minor Groove Refined``
                * ``alpha S1``
                * ``beta S1``
                * ``gamma S1``
                * ``delta S1``
                * ``epsilon S1``
                * ``zeta S1``
                * ``chi S1``
                * ``alpha S2``
                * ``beta S2``
                * ``gamma S2``
                * ``delta S2``
                * ``epsilon S2``
                * ``zeta S2``
                * ``chi S2``

        bp : 1D list
            List of 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

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

        masked : bool
            ``Default=False``: To skip specific frames/snapshots. dnaMD.DNA.mask array should
            be set to use this functionality. This array contains boolean (either ``True`` or ``False``)
            value for each frame to mask the frames. Presently, mask array is automatically generated
            during :meth:`DNA.generate_smooth_axis` method to skip those frames where 3D fitting
            curve was not successful within the given critera.


        Returns
        -------
        parameters : 2D list
            ``parameters[bp][nframe] (2D list)``: where bp is number of base pairs/steps and nframe is total number of frames in the trajectory.

        """

        bpIndex, dum = get_idx_of_bp_parameters(bp, [], bp_range, startBP=self.startBP)
        append = False
        empty = False
        key = 'dummy'
        idx = 0
        data = []
        midx = []

        # Masking values according to mask array
        if masked and self.mask is None:
            print(" WARNING: mask is not set. Mask is set during helical axis smoothing. \n")
            masked = False

        for i in range(len(self.time)):
            if masked:
                if self.mask[i] == False:
                    midx.append(i)
            else:
                midx.append(i)

        param_type = getParameterType(parameter)
        if param_type is None:
            raise ValueError('ERROR: Incorrect parameter keyword: \"{0}\" .\n' .format(parameter))

        outData, bp_nums = [], []
        for i in range(len(bpIndex)):
            num = str( bpIndex[i]+self.startBP )
            if parameter in self.data[param_type][num]:
                tData = self.data[param_type][num][parameter][:]
                outData.append(tData[midx])
                bp_nums.append(num)
            else:
                raise ValueError('ERROR: The parameter \"{0}\" for base pair/step \"{1}\" is not set/loaded.\n' .format(parameter, num))

        return outData, bpIndex