def extractGlobalParameters(self, dna, bp, frames=None, paxis='Z', masked=False):
        """Extract the parameters for calculations


        .. currentmodule:: dnaMD

        Parameters
        ----------
        dna : :class:`dnaMD.DNA`
            Input :class:`dnaMD.DNA` instance.

        bp : list
            List of two base-steps forming the DNA segment.
            For example: with ``bp=[5, 50]``, 5-50 base-step segment will be considered.

        frames : list
            List of two trajectory frames between which parameters will be extracted. It can be used to select portions
            of the trajectory. For example, with ``frames=[100, 1000]``, 100th to 1000th frame of the trajectory will be
            considered.

        paxis : str
            Axis parallel to global helical-axis(``'X'``, or ``'Y'`` or ``'Z'``). Only require when bending motions are
            included in the calculation.

        masked : bool
            ``Default=False``. To skip specific frames/snapshots.
            ``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:`dnaMD.DNA.generate_smooth_axis` to
            skip those frames where 3D fitting curve was not successful within
            the given criteria.


        Returns
        -------
        time : numpy.ndarray
            1D numpy array of shape (nframes) containing time
        array : numpy.ndarray
            2D numpy array of shape (parameters count, nframes) containing extracted parameters.
        """

        frames = self._validateFrames(frames)
        if frames[1] == -1:
            frames[1] = None

        if (len(bp) != 2):
            raise ValueError("bp should be a list containing first and last bp of a segment. See, documentation!!!")

        if bp[0] > bp[1]:
            raise ValueError("bp should be a list containing first and last bp of a segment. See, documentation!!!")

        time, clen = dna.time_vs_parameter('h-rise', bp=bp, merge=True, merge_method='sum', masked=masked)
        clen = np.asarray(clen) * 0.1  # conversion to nm

        time, htwist = dna.time_vs_parameter('h-twist', bp=bp, merge=True, merge_method='sum', masked=masked)
        htwist = np.deg2rad(htwist)  # Conversion to radian

        angleOne, angleTwo = None, None
        if self.esType=='BST':
            angleOne, angleTwo = dna.calculate_2D_angles_bw_tangents(paxis, bp, masked=masked)

            # Rarely there are nan during angle calculation, remove those nan
            nanInOne = np.isnan(angleOne[frames[0]:frames[1]])
            nanInTwo = np.isnan(angleTwo[frames[0]:frames[1]])
            notNan = ~(nanInOne + nanInTwo)
            notNanIdx = np.nonzero(notNan)

            array = np.array([angleOne[frames[0]:frames[1]][notNanIdx], angleTwo[frames[0]:frames[1]][notNanIdx],
                              clen[frames[0]:frames[1]][notNanIdx], htwist[frames[0]:frames[1]][notNanIdx]])
            time = (time[frames[0]:frames[1]])[notNanIdx]

        else:
            array = np.array([clen[frames[0]:frames[1]], htwist[frames[0]:frames[1]]])
            time = time[frames[0]:frames[1]]

        return time, array
def extractGlobalParameters ( self , dna , bp , frames = None , paxis = 'Z' , masked = False ) : frames = self . _validateFrames ( frames ) if frames [ 1 ] == - 1 : frames [ 1 ] = None if ( len ( bp ) != 2 ) : raise ValueError ( "bp should be a list containing first and last bp of a segment. See, documentation!!!" ) if bp [ 0 ] > bp [ 1 ] : raise ValueError ( "bp should be a list containing first and last bp of a segment. See, documentation!!!" ) time , clen = dna . time_vs_parameter ( 'h-rise' , bp = bp , merge = True , merge_method = 'sum' , masked = masked ) clen = np . asarray ( clen ) * 0.1 time , htwist = dna . time_vs_parameter ( 'h-twist' , bp = bp , merge = True , merge_method = 'sum' , masked = masked ) htwist = np . deg2rad ( htwist ) angleOne , angleTwo = None , None if self . esType == 'BST' : angleOne , angleTwo = dna . calculate_2D_angles_bw_tangents ( paxis , bp , masked = masked ) nanInOne = np . isnan ( angleOne [ frames [ 0 ] : frames [ 1 ] ] ) nanInTwo = np . isnan ( angleTwo [ frames [ 0 ] : frames [ 1 ] ] ) notNan = ~ ( nanInOne + nanInTwo ) notNanIdx = np . nonzero ( notNan ) array = np . array ( [ angleOne [ frames [ 0 ] : frames [ 1 ] ] [ notNanIdx ] , angleTwo [ frames [ 0 ] : frames [ 1 ] ] [ notNanIdx ] , clen [ frames [ 0 ] : frames [ 1 ] ] [ notNanIdx ] , htwist [ frames [ 0 ] : frames [ 1 ] ] [ notNanIdx ] ] ) time = ( time [ frames [ 0 ] : frames [ 1 ] ] ) [ notNanIdx ] else : array = np . array ( [ clen [ frames [ 0 ] : frames [ 1 ] ] , htwist [ frames [ 0 ] : frames [ 1 ] ] ] ) time = time [ frames [ 0 ] : frames [ 1 ] ] return time , array
Extract the parameters for calculations


        .. currentmodule:: dnaMD

        Parameters
        ----------
        dna : :class:`dnaMD.DNA`
            Input :class:`dnaMD.DNA` instance.

        bp : list
            List of two base-steps forming the DNA segment.
            For example: with ``bp=[5, 50]``, 5-50 base-step segment will be considered.

        frames : list
            List of two trajectory frames between which parameters will be extracted. It can be used to select portions
            of the trajectory. For example, with ``frames=[100, 1000]``, 100th to 1000th frame of the trajectory will be
            considered.

        paxis : str
            Axis parallel to global helical-axis(``'X'``, or ``'Y'`` or ``'Z'``). Only require when bending motions are
            included in the calculation.

        masked : bool
            ``Default=False``. To skip specific frames/snapshots.
            ``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:`dnaMD.DNA.generate_smooth_axis` to
            skip those frames where 3D fitting curve was not successful within
            the given criteria.


        Returns
        -------
        time : numpy.ndarray
            1D numpy array of shape (nframes) containing time
        array : numpy.ndarray
            2D numpy array of shape (parameters count, nframes) containing extracted parameters.