plinkUtils | R Documentation |
plinkWrite
creates ped and map format files (used by PLINK) from a GenotypeData
object.
plinkCheck
checks whether a set of ped and map files has
identical data to a GenotypeData
object.
plinkWrite(genoData, pedFile="testPlink", family.col="family",
individual.col="scanID", father.col="father", mother.col="mother",
phenotype.col=NULL,
rs.col="rsID", mapdist.col=NULL, scan.exclude=NULL,
scan.chromosome.filter=NULL, blockSize=100, verbose=TRUE)
plinkCheck(genoData, pedFile, logFile="plinkCheck.txt", family.col="family",
individual.col="scanID", father.col="father", mother.col="mother",
phenotype.col=NULL,
rs.col="rsID", map.alt=NULL, check.parents=TRUE, check.sex=TRUE,
scan.exclude=NULL, scan.chromosome.filter=NULL, verbose=TRUE)
genoData |
A |
pedFile |
prefix for PLINK files (pedFile.ped, pedFile.map) |
logFile |
Name of the output file to log the results of |
family.col |
name of the column in the scan annotation that contains family ID of the sample |
individual.col |
name of the column in the scan annotation that contains individual ID of the sample |
father.col |
name of the column in the scan annotation that contains father ID of the sample |
mother.col |
name of the column in the scan annotation that contains mother ID of the sample |
phenotype.col |
name of the column in the scan annotation that contains phenotype variable (e.g. case control statue) of the sample |
rs.col |
name of the column in the SNP annotation that contains rs ID (or some other ID) for the SNP |
mapdist.col |
name of the column in the SNP annotation that contains genetic distance in Morgans for the SNP |
map.alt |
data frame with alternate SNP mapping for genoData to
PLINK. If not |
check.parents |
logical for whether to check the father and mother columns |
check.sex |
logical for whether to check the sex column |
scan.exclude |
vector of scanIDs to exclude from PLINK file |
scan.chromosome.filter |
a logical matrix that can be used to
zero out (set to missing) some chromosomes, some scans, or some specific scan-chromosome
pairs. Entries should be |
blockSize |
Number of samples to read from |
verbose |
logical for whether to show progress information. |
If "alleleA" and "alleleB" columns are not found in the SNP annotation
of genoData
, genotypes are
written as "A A", "A B", "B B" (or "0 0" for missing data).
If phenotype.col=NULL
, plinkWrite
will use "-9"
for writing phenotype data and plinkCheck
will omit checking this
column.
If mapdist.col=NULL
, plinkWrite
will use "0"
for writing this column in the map file and plinkCheck
will omit checking this
column.
plinkCheck
first reads the map file and checks for SNP
mismatches (chromosome, rsID, and/or position). Any mismatches are
written to logFile
.
plinkCheck
then reads the ped file line by line, recording all
mismatches in logFile
.
SNPs and sample order is not required to be the same as in genoData
.
In the case of genotype mismatches, for each sample the log file output gives the
position of the first mismatched SNP in the PLINK file, as well as the
genotypes of the first six mismatched SNPs (which may not be consecutive).
These utilities convert between chromosome coding in
GenotypeData
, which by default is 24=XY, 25=Y, and PLINK
chromosome coding, which is 24=Y, 25=XY.
Larger blockSize will improve speed but will require more RAM.
plinkCheck
returns TRUE
if the PLINK files contain
identical data to genoData
, and FALSE
if a mismatch is encountered.
Stephanie Gogarten, Tushar Bhangale
Please see http://pngu.mgh.harvard.edu/~purcell/plink/data.shtml#ped for more information on the ped and map files.
snpgdsBED2GDS
library(GWASdata)
ncfile <- system.file("extdata", "illumina_geno.nc", package="GWASdata")
data(illuminaSnpADF, illuminaScanADF)
genoData <- GenotypeData(NcdfGenotypeReader(ncfile),
scanAnnot=illuminaScanADF, snpAnnot=illuminaSnpADF)
pedfile <- tempfile()
plinkWrite(genoData, pedfile)
logfile <- tempfile()
plinkCheck(genoData, pedfile, logfile)
# exclude samples
plinkWrite(genoData, pedfile, scan.exclude=c(281, 283),
blockSize=10)
plinkCheck(genoData, pedfile, logfile)
readLines(logfile)
#samples not found in Ped:
#281
#283
close(genoData)
unlink(c(logfile, paste(pedfile, "*", sep=".")))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.