def fitNullTraitByTrait(self,
                            verbose=True,
                            cache=False,
                            out_dir='./cache',
                            fname=None,
                            rewrite=False):
        """
        Fit null model trait by trait
        """
        read_from_file = False
        if cache:
            assert fname is not None, 'MultiTraitSetTest:: specify fname'
            if not os.path.exists(out_dir): os.makedirs(out_dir)
            out_file = os.path.join(out_dir, fname)
            read_from_file = os.path.exists(out_file) and not rewrite

        RV = {}
        if read_from_file:
            f = h5py.File(out_file, 'r')
            for p in range(self.P):
                trait_id = self.traitID[p]
                g = f[trait_id]
                RV[trait_id] = {}
                for key in g.keys():
                    RV[trait_id][key] = g[key][:]
            f.close()
            self.nullST = RV
        else:
            """ create mtssST and fit null column by column returns all info """
            if self.mtssST is None:
                y = SP.zeros((self.N, 1))
                self.mtssST = MultiTraitSetTest(y,
                                                XX=self.XX,
                                                S_XX=self.S_XX,
                                                U_XX=self.U_XX,
                                                F=self.F)
            RV = {}
            for p in range(self.P):
                trait_id = self.traitID[p]
                y = self.Y[:, p:p + 1]
                self.mtssST._setY(y)
                RV[trait_id] = self.mtssST.fitNull()
            self.nullST = RV
            if cache:
                f = h5py.File(out_file, 'w')
                smartDumpDictHdf5(RV, f)
                f.close()
        return RV
Exemple #2
0
    def fitNullTraitByTrait(self,verbose=True,cache=False,out_dir='./cache',fname=None,rewrite=False):
        """
        Fit null model trait by trait
        """
        read_from_file = False
        if cache:
            assert fname is not None, 'MultiTraitSetTest:: specify fname'
            if not os.path.exists(out_dir): os.makedirs(out_dir)
            out_file = os.path.join(out_dir,fname)
            read_from_file = os.path.exists(out_file) and not rewrite

        RV = {}
        if read_from_file:
            f = h5py.File(out_file,'r')
            for p in range(self.P):
                trait_id = self.traitID[p]
                g = f[trait_id]
                RV[trait_id] = {}
                for key in g.keys():
                    RV[trait_id][key] = g[key][:]
            f.close()
            self.nullST=RV
        else:
            """ create mtssST and fit null column by column returns all info """
            if self.mtssST is None:
                y = SP.zeros((self.N,1)) 
                self.mtssST = MultiTraitSetTest(y,XX=self.XX,S_XX=self.S_XX,U_XX=self.U_XX,F=self.F)
            RV = {}
            for p in range(self.P):
                trait_id = self.traitID[p]
                y = self.Y[:,p:p+1]
                self.mtssST._setY(y)
                RV[trait_id] = self.mtssST.fitNull()
            self.nullST = RV
            if cache:
                f = h5py.File(out_file,'w')
                smartDumpDictHdf5(RV,f)
                f.close()
        return RV
Exemple #3
0
    ipdb.set_trace()

    print '.. calculate p-values'
    print '(for accurate estimate of pvalues either the number of windows or the number of permutations should be increased)'

    c2m = C2M.Chi2mixture(tol=4e-3)

    # obtain p-values for mtSet
    c2m.estimate_chi2mixture(RV['permutation_llr_mtSet'])
    RV['pv_mtSet'] = c2m.sf(RV['llr_mtSet'])
    RV['permutation_pv_mtSet'] = c2m.sf(RV['permutation_llr_mtSet'])

    # obtain p-values for stSet
    RV['pv_stSet'] = SP.zeros_like(RV['llr_stSet'])
    RV['permutation_pv_stSet'] = SP.zeros_like(RV['permutation_llr_stSet'])
    for p in range(phenotype.shape[1]):
        c2m.estimate_chi2mixture(RV['permutation_llr_stSet'][:,p])
        RV['pv_stSet'][:,p] = c2m.sf(RV['llr_stSet'][:,p])
        RV['permutation_pv_stSet'][:,p] = c2m.sf(RV['permutation_llr_stSet'][:,p])

    # obtain p-values for mtSetPC
    c2m.estimate_chi2mixture(RV['permutation_llr_mtSetPC'])
    RV['pv_mtSetPC'] = c2m.sf(RV['llr_mtSetPC'])
    RV['permutation_pv_mtSetPC'] = c2m.sf(RV['permutation_llr_mtSetPC'])

    print '.. export results in %s'%files['out_file']
    fout = h5py.File(files['out_file'],'w')
    smartDumpDictHdf5(RV,fout)
    fout.close()