CalcMatch

From Genome Analysis Wiki
Revision as of 22:51, 22 June 2010 by Ylwtx (talk | contribs)
Jump to navigationJump to search

CalcMatch is a C/C++ software developed by Yun Li that compares two sets of pedigree files. It was initially written to compare imputed genotypes with their true/experimental counterpart but can be used to compare the concordance between any two sets of pedigree files. The input data are in standard Merlin/QTDT format (http://www.sph.umich.edu/csg/abecasis/Merlin/tour/input_files.html).

--impped --impdat specify one input pedigree set.

--trueped --truedat specify the other input pedigree set.

--match generates a matrix taking values 0,1,2 indicating # of matched alleles. The dimension of the matrix is # of overlapping individuals times # of overlapping markers of the two input pedigree sets.

--bySNP is turned on by default to generate SNP specific measures. The output .bySNP will contain the following 6 fields for each SNP:

   (1) SNP : SNP name
   (2) gErr : genotypic discordance rate
   (3) aErr : allelic discordance rate
   (4) matchedG : number of genotypes matched
   (5) matchedA: number of alleles matched
   (6) maskedG: total number of genotypes evaluated/masked (<=n of course) (I should change the naming to comparedG or evaluatedG)


--byGeno can be added on top of --bySNP. It will generates the following fields after the 6 fields above:

   (7) hetAerr : allelic discordance rate among heterozygotes
   (8) AL1: allele 1 (an arbitrary allele)
   (9) AL2: allele 2
   (10) freq1: frequency of AL1
   (11) MAF
   (12) #true 1/1: # individuals with experimental genotype AL1/AL1
   (13) mm1/2: # of true AL1/AL1 being imputed as AL1/AL2
   (14) mm2/2: # of true AL1/AL1 being imputed as AL2/AL2
   (15) #true 1/2
   (16) mm1/1
   (17) mm2/2
   (18) #true 2/2
   (19) mm1/1
   (20) mm1/2



--accuracyByGeno is an option I added most recently to represent the above (7-20) information in a different way. Similar to --byGeno, it is used on top of --bySNP. It can be used together with --byGeno. It will generate the following fields, after (7-20) is --byGeno is turned on or after the 6th field otherwise.

   (A) almajor: major allele
   (B) alminor: minor allele
   (C) freq1: major allele frequency
   (D) accuracy11: allelic concordance rate for homozygotes major allele
   (E) accuracy12: allelic concordance rate for heterozygotes
   (F) accuracy22: allelic concordance rate for homozygotes minor allele


--byPerson generates a separate output file .byPerson and contains the following information for each person:

   (1) famid
   (2) subjID
   (3) gErr
   (4) aErr
   (5) matchedG
   (6) matchedA
   (7) maskedG


This --bySNP option is useful if there is potential sample swap or inter-individual difference, e.g., sequencing depth, number of markers genotyped.


CalcMatch compares all genotypes overlapping the two input sets. However, when --maskflag is turned on AND --maskped and --maskdat are specified (I know ...) it compares only the following subset of the overlapping genotypes: genotypes either not found (i.e., individual or marker not included) or missing (included but with value 0/0, N/N, ./. etc) in --maskped / --maskdat. These options are useful when some individuals were masked for some SNPs while others masked for a different set of SNPs.