示例#1
0
文件: cvtk.py 项目: mmosmond/cvtk
    def bootstrap_cov(self, B, alpha=0.05, keep_seqids=None, progress_bar=False,
                      average_replicates=True, return_straps=False, ci_method='pivot',
                      **kwargs):
        """
        Bootstrap whole covaraince matrix.
        Params:
           - B: number of bootstraps
           - alpha: α level
           - keep_seqids: which seqids to include in bootstrap; if None, all are used.
           - return_straps: whether to return the actual bootstrap vectors.
           - ci_method: 'pivot' or 'percentile'
           - **kwargs: passed to calc_cov() and calc_cov_by_tile()

        """
        # our statistic:
        cov = self.calc_cov(keep_seqids=keep_seqids, **kwargs)
        if average_replicates:
            cov = np.nanmean(stack_temporal_covariances(cov, self.R, self.T), axis=2)
        covs, het_denoms = self.calc_cov_by_tile(return_ratio_parts=True,
                                                 keep_seqids=keep_seqids, **kwargs)
        covs, het_denoms = np.stack(covs), np.stack(het_denoms)
        return block_bootstrap_ratio_averages(covs, het_denoms,
                                              block_indices=self.tile_indices,
                                              block_seqids=self.tile_df['seqid'].values,
                                              estimator=cov_estimator,
                                              statistic=cov,
                                              B=B, alpha=alpha,
                                              progress_bar=progress_bar,
                                              keep_seqids=keep_seqids, return_straps=return_straps,
                                              ci_method=ci_method,
                                              # kwargs passed directly to cov_estimator
                                              average_replicates=average_replicates,
                                              R=self.R, T=self.T)
示例#2
0
def cov_estimator(cov, het_denom, R, T, average_replicates=False, warn=False):
    warn_type = 'ignore' if not warn else 'warn'
    with np.errstate(divide=warn_type, invalid=warn_type):
        cov = cov / het_denom
    if not average_replicates:
        return cov
    else:
        return np.mean(stack_temporal_covariances(cov, R, T), axis=2)
示例#3
0
文件: cvtk.py 项目: mmosmond/cvtk
 def calc_G(self, average_replicates=False, abs=False,
            product_only=False,
            use_masked=False):
     covs = self.calc_cov(standardize=False,
                          product_only=product_only,
                          use_masked=use_masked)
     # calculate the total variances for different ts
     vars = []
     for t in np.arange(1, self.T+1):
         vars.append(np.stack(self.calc_var(t=t, standardize=False)))
     total_vars = np.stack(vars, axis=0)
     temp_covs = stack_temporal_covariances(covs, self.R, self.T)
     G = G_estimator(temp_covs, total_vars,
                     average_replicates=average_replicates, abs=abs)
     return G
示例#4
0
def convergence_corr(covs, R, T):
    replicate_covs = stack_replicate_covariances(covs, R, T, upper_only=False)
    temporal_covs = stack_temporal_covariances(covs, R, T)
    num, denom = (convergence_corr_numerator(replicate_covs[np.newaxis, ...]),
                  convergence_corr_denominator(temporal_covs[np.newaxis, ...]))
    return num / denom