Body: <p>I'm struggling these last days on a case/control phenotype prediction problem based on genotype (individual x SNPs with more than 10k individuals and approx 18k SNPs encoded as 0,1,2).</p>
  
  <p>Thanks to PCA analysis (with SNPRelate package), I observed that there are sub-populations in my training set. I suspect that there is a bias in my classifier due these sub-population. </p>
  
  <p>My current methodology to improve my classifier accuracy is the following:</p>
  
  <ol>
  <li>build one model for each population,</li>
  <li>during prediction phase based on test dataset -> assign each individual to one of the population identified previously. Apply the
  model built for this population.</li>
  </ol>
  
  <p>My difficulties:</p>
  
  <ul>
  <li>which packages and methods in R would you advise me to assign a
  cluster to each of my individual ? Could I use PC eigenvectors to
  achieve such clustering ?</li>
  <li>which packages and methods in R could allow me to associate training genotype to cluster prior to apply the specific model ?</li>
  </ul>
  
  <p>Thank in advance for your help.</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2018-07-30T08:32:21.190Z
Comments.Text: Welcome to the site. You talk about your method, but we don't have any introduction about it. Are you testing with cross validation? Do you have some samples reserved for the final method? What is your goal? It seems to be to classify case and controls, but then you start adding sub-populations. If you want to classify regardless of the sub-population you will need to find shared features between populations, or first find the populations and then classify them between case and controls.
Comments.UserDisplayName: llrs
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2018-07-31T07:14:19.103Z
Comments.Text: could you clarify what methods have you tried? At the moment I find a bit unclear what to answer
Comments.UserDisplayName: llrs
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2018-07-31T09:30:22.927Z
Comments.Text: Hi, when the model is built (final step of my pipeline), yes, I'm using cross-validation. My goal is to predict a case/control phenotype. I'm thinking to build models for each of the sub-populations. Which methods do you recommend to find populations in R ?
Comments.UserDisplayName: aure_bobo
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2018-07-31T10:31:59.063Z
Comments.Text: What you consider a good method? Could you list the method you found/tried to avoid suggesting the same methods? How big is your dataset ? (some tools/methods perform better in bigger datasets than other methods)
Comments.UserDisplayName: llrs
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2018-07-31T11:31:00.823Z
Comments.Text: Dataset size is 30k individuals by 20k SNPs. For the time being, I didn't yet find a method allowing me to identify sub-population, then to be able to predict sub-population on training sets. Any proposal will be welcome :)
Comments.UserDisplayName: aure_bobo
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2018-08-14T13:16:27.040Z
Comments.Text: @aure_bobo It's good to [edit] your questions with clarifications, so people don't have to dig in the comments to understand.
Comments.UserDisplayName: Kamil S Jaron
Tags: <r><snp><software-recommendation><clustering><data-preprocessing>
Title: case/control phenotype prediction - population stratification with R
ThreadText: # case/control phenotype prediction - population stratification with R
  
  (Asked by: username_0 on 2018-07-29)
  
  I'm struggling these last days on a case/control phenotype prediction problem based on genotype (individual x SNPs with more than 10k individuals and approx 18k SNPs encoded as 0,1,2).
  
  Thanks to PCA analysis (with SNPRelate package), I observed that there are sub-populations in my training set. I suspect that there is a bias in my classifier due these sub-population.
  
  My current methodology to improve my classifier accuracy is the following:
  
  1. build one model for each population,
  2. during prediction phase based on test dataset -> assign each individual to one of the population identified previously. Apply the
     model built for this population.
  
  My difficulties:
  
  * which packages and methods in R would you advise me to assign a
    cluster to each of my individual ? Could I use PC eigenvectors to
    achieve such clustering ?
  * which packages and methods in R could allow me to associate training genotype to cluster prior to apply the specific model ?
  
  Thank in advance for your help.
  
  **Tags:** r, snp, software-recommendation, clustering, data-preprocessing
  
  > **Comments:**
  > **username_1**: Welcome to the site. You talk about your method, but we don't have any introduction about it. Are you testing with cross validation? Do you have some samples reserved for the final method? What is your goal? It seems to be to classify case and controls, but then you start adding sub-populations. If you want to classify regardless of the sub-population you will need to find shared features between populations, or first find the populations and then classify them between case and controls.  
  > **username_1**: could you clarify what methods have you tried? At the moment I find a bit unclear what to answer  
  > **username_0**: Hi, when the model is built (final step of my pipeline), yes, I'm using cross-validation. My goal is to predict a case/control phenotype. I'm thinking to build models for each of the sub-populations. Which methods do you recommend to find populations in R ?  
  > **username_1**: What you consider a good method? Could you list the method you found/tried to avoid suggesting the same methods? How big is your dataset ? (some tools/methods perform better in bigger datasets than other methods)  
  > **username_0**: Dataset size is 30k individuals by 20k SNPs. For the time being, I didn't yet find a method allowing me to identify sub-population, then to be able to predict sub-population on training sets. Any proposal will be welcome :)  
  > **username_2**: @username_0 It's good to [edit] your questions with clarifications, so people don't have to dig in the comments to understand.  
  
  ---
  
  ## 0 answers
  
  