code: def _getH2singleTrait(self, K, verbose=None):
          
          verbose = dlimix.getVerbose(verbose)
          # Fit single trait model
          varg  = sp.zeros(self.P)
          varn  = sp.zeros(self.P)
          fixed = sp.zeros((1,self.P))
  
          for p in range(self.P):
              y = self.Y[:,p:p+1]
              # check if some sull value
              I  = sp.isnan(y[:,0])
              if I.sum()>0:
                  y  = y[~I,:]
                  _K = K[~I,:][:,~I]
              else:
                  _K  = copy.copy(K)
              lmm = dlimix.CLMM()
              lmm.setK(_K)
              lmm.setSNPs(sp.ones((y.shape[0],1)))
              lmm.setPheno(y)
              lmm.setCovs(sp.zeros((y.shape[0],1)))
              lmm.setVarcompApprox0(-20, 20, 1000)
              lmm.process()
              delta = sp.exp(lmm.getLdelta0()[0,0])
              Vtot  = sp.exp(lmm.getLSigma()[0,0])
  
              varg[p] = Vtot
              varn[p] = delta*Vtot
              fixed[:,p] = lmm.getBetaSNP()
  
              if verbose: print(p)
  
          sth = {}
          sth['varg']  = varg
          sth['varn']  = varn
          sth['fixed'] = fixed
  
          return sth
docs: Internal function for parameter initialization
          estimate variance components and fixed effect using a linear mixed model with an intercept and 2 random effects (one is noise)
          Args:
              K:        covariance matrix of the non-noise random effect term