code: def _initGP(self):
          
          if self._inference=='GP2KronSum': 
              signalPos = sp.where(sp.arange(self.n_randEffs)!=self.noisPos)[0][0]
              gp = GP2KronSum(Y=self.Y, F=self.sample_designs, A=self.trait_designs,
                              Cg=self.trait_covars[signalPos], Cn=self.trait_covars[self.noisPos],
                              R=self.sample_covars[signalPos])
          else:
              mean = MeanKronSum(self.Y, self.sample_designs, self.trait_designs) 
              Iok = vec(~sp.isnan(mean.Y))[:,0] 
              if Iok.all():   Iok = None
              covar = SumCov(*[KronCov(self.trait_covars[i], self.sample_covars[i], Iok=Iok) for i in range(self.n_randEffs)])
              gp = GP(covar = covar, mean = mean) 
          self.gp = gp
docs: Internal method for initialization of the GP inference objetct