I have population SNP data in VCF format, and I found that some SNPs have a great similarity across samples(> 99%). For example:

CHROM_POS   s0  s1  s2  s3  s4  s5  s6  s7  s8  s9
chr1_1  A   G   G   A   G   G   A   A   G   A
chr1_2  A   G   G   A   G   G   A   A   G   T
chr1_3  C   C   C   A   C   A   C   C   C   C

The similarity between chr1_1 and chr1_2 is 0.9, because they have a different SNP in sample s9.

Is there a good way to remove these similar SNPs before I put the data into another pipeline?

Added: These SNPs will be used for GWAS analysis.

  • $\begingroup$ Do you mean that some SNPs have a MAF of <1%? $\endgroup$ Sep 5, 2017 at 8:11
  • $\begingroup$ @Emily_Ensembl MAF is about allele frequency. But I want to remove similar SNP sequence across sampls . $\endgroup$
    – l0o0
    Sep 5, 2017 at 8:16
  • $\begingroup$ The question is about if removing common SNPs a good thing. $\endgroup$
    – SmallChess
    Sep 5, 2017 at 8:28
  • $\begingroup$ @SmallChess, I think similar snps may will provide duplicate information and cost more resource to compute. Maybe similar snp in long distance should be kept? $\endgroup$
    – l0o0
    Sep 5, 2017 at 8:34
  • 2
    $\begingroup$ It wasn't clear from your original question what you meant. Now you've edited it I can see that you're looking at haplotypic blocks with SNPs in LD. No, don't remove them. There may be causal SNPs within these blocks – you won't able to tell which SNP is causal but you can identify that the block is important. $\endgroup$ Sep 5, 2017 at 8:56

1 Answer 1


What you are attempting to do is known as LD-pruning.
As @Emily_Ensembl said, it is not customary to do this for standard association tests: it is possible that one of the SNPs you remove is causal, or a better proxy for the causal locus, and would give (slightly) better association signal than the other. Even for SNPs in perfect LD, pruning is unwise because it would complicate interpretation: if SNP chr1_2 had some obvious function, but you removed it and are left only with its proxy chr1_1 (which could be far away), you will have a hard time connecting the dots. Typical GWAS tests are handled pretty quickly on modern computers, and are linear in SNPs, so there is no computational reason to prune either.

On the other hand, many fancier procedures would require LD-pruned data, because they either
a) are very computationally expensive, or
b) assume independent SNPs.

I suggest reading PLINK's LD pruning documentation, as it pretty much covers the standard ways to do this.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.