docs: def subSample(self,Irow=None,Icol_geno=None,Icol_pheno=None):
          """sample a particular set of individuals (Irow) or phenotypes (Icol_pheno) or genotypes (Icol_geno)
          
          Args:
              Irow:           indices for a set of individuals
              Icol_pheno:     indices for a set of phenotypes
              Icol_geno:      indices for a set of SNPs
          
          Returns:
              QTLdata opject holding the specified subset of the data
          """
          C = copy.copy(self)
          if Irow is not None:
              C.genoM = C.genoM[Irow]
              C.phenoM = C.phenoM[Irow]
              C.sample_ID = C.sample_ID[Irow]
          if Icol_geno is not None:
              C.genoM = C.genoM[:,Icol_geno]
              C.genoPos = C.genoPos[Icol_geno]
              C.genoChrom = C.genoChrom[Icol_geno]
              C.genoPos_cum = C.genoPos_cum[Icol_geno]
          if Icol_pheno is not None:
              C.phenoM = C.phenoM[:,Icol_pheno]
              C.phenotype_ID = C.phenotype_ID[Icol_pheno]
              if C.eqtl:
                  C.geneID   = C.geneID[Icol_pheno]
                  C.gene_pos = C.gene_pos[Icol_pheno,:]
                  C.geneIDs  = list(set(C.geneID))
              if C.E != None:
                  C.E  = C.E[Icol_pheno]
                  C.Es = list(set(C.E))
  
          C.N = C.genoM.shape[0]
          C.S = C.genoM.shape[1]
          C.P = C.phenoM.shape[1]
          return C