PLINK(1)
๐งฌ NAME ๐งฌ
okay so this is PLINK(1), sitting pretty in the User Commands section of the manual โ and bestie, it's PLINK - whole genome SNP analysis. that's the whole vibe. ๐
๐ DESCRIPTION ๐
PLINK v1.90b6.16 64-bit (19 Feb 2020) www.cog-genomics.org/plink/1.9/ (C) 2005-2020 Shaun Purcell, Christopher Chang GNU General Public License v3
periodt. now let's talk about how to read the flag definitions that follow, because they have a whole little grammar and once you get it you'll be unstoppable, fr fr:
- <angle brackets> denote a required parameter, where the text between the angle brackets describes its nature.
- ['square brackets + single-quotes'] denotes an optional modifier. Use the EXACT text in the quotes.
- [{bar|separated|braced|bracketed|values}] denotes a collection of mutually exclusive optional modifiers (again, the exact text must be used). When there are no outer square brackets, one of the choices must be selected.
- ['quoted_text='<description of value>] denotes an optional modifier that must begin with the quoted text, and be followed by a value with no whitespace in between.
'|'may also be used here to indicate mutually exclusive options. - [square brackets without quotes or braces] denote an optional parameter, where the text between the brackets describes its nature.
- An ellipsis (
...) indicates that you may enter multiple parameters of the specified type.
here's the shape of literally every run, bestie:
plink <input flag(s)...> [command flag(s)...] [other flag(s)...]
plink --help [flag name(s)...]
๐ธ defining your input fileset ๐ธ
Most PLINK runs need exactly one main input fileset. these flags are how you tell it what that fileset is and where it lives:
--bfile[prefix]โ Specify.bed+.bim+.famprefix (default'plink').--bed<filename>โ Specify full name of.bedfile.--bim<filename>โ Specify full name of.bimfile.--fam<filename>โ Specify full name of.famfile.--keep-autoconvโ With--file/--tfile/--lfile/--vcf/--bcf/--data/--23file, don't delete the autogenerated binary fileset at end of run. (keep the little guy around ๐ฅบ)--file[prefix]โ Specify.ped+.mapfilename prefix (default'plink').--ped<filename>โ Specify full name of.pedfile.--map<filename>โ Specify full name of.mapfile.--no-fidโ.fam/.pedfile does not contain column 1 (family ID).--no-parentsโ.fam/.pedfile does not contain columns 3-4 (parents).--no-sexโ.fam/.pedfile does not contain column 5 (sex).--no-phenoโ.fam/.pedfile does not contain column 6 (phenotype).--tfile[prefix]โ Specify.tped+.tfamfilename prefix (default'plink').--tped<fname>โ Specify full name of.tpedfile.--tfam<fname>โ Specify full name of.tfamfile.--lfile[prefix]โ Specify.lgen+.map+.fam(long-format fileset) prefix.--lgen<fname>โ Specify full name of.lgenfile.--reference<fn>โ Specify default allele file accompanying.lgeninput.--allele-countโ When used with--lfile/--lgen+--reference, specifies that the.lgenfile contains reference allele counts.--vcf<filename>โ Specify full name of.vcfor.vcf.gzfile.--bcf<filename>โ Specify full name of BCF2 file.--data[prefix]โ Specify Oxford.gen+.sampleprefix (default'plink').--gen<filename>โ Specify full name of.genor.gen.gzfile.--bgen<f>['snpid-chr']โ Specify full name of.bgenfile.--sample<fname>โ Specify full name of.samplefile.--23file<fname>[FID][IID][sex][pheno][pat. ID][mat. ID]โ Specify 23andMe input file.--grm-gz[prfx]โ Specify.grm.gz+.grm.id(GCTA rel. matrix) prefix.--grm-bin[prfx]โ Specify.grm.bin+.grm.N.bin+.grm.id(GCTA triangular binary relationship matrix) filename prefix.
๐ fake data, for the girlies who just want to vibe ๐
--dummy<sample ct><SNP ct>[missing geno freq][missing pheno freq][{acgt | 1234 | 12}]['scalar-pheno']
This generates a fake input dataset with the specified number of samples and SNPs. By default, the missing genotype and phenotype frequencies are zero, and genotypes are As and Bs (change the latter with 'acgt'/'1234'/'12'). The 'scalar-pheno' modifier causes a normally distributed scalar phenotype to be generated instead of a binary one. iconic behaviour tbh.
--simulate<simulation parameter file>[{tags | haps}][{acgt | 1234 | 12}]--simulate-qt<sim. parameter file>[{tags | haps}][{acgt | 1234 | 12}]
--simulate generates a fake input dataset with disease-associated SNPs, while --simulate-qt generates a dataset with quantitative trait loci.
๐ฆ where your output goes ๐ฆ
Output files have names of the form 'plink.<extension>' by default. you can change the 'plink' prefix with:
--out<prefix>โ Specify prefix for output files.
๐ the main character commands ๐
Most runs also require at least one of the following commands, bestie. pick your fighter:
--make-bed
Create a new binary fileset. Unlike the automatic text-to-binary converters (which only heed chromosome filters), this supports all of PLINK's filtering flags. she does it all ๐
--make-just-bim--make-just-fam
Variants of --make-bed which only write a new .bim or .fam file. Can be used with only .bim/.fam input. USE THESE CAUTIOUSLY. It is very easy to desynchronize your binary genotype data and your .bim/.fam indexes if you use these commands improperly. If you have any doubt, stick with --make-bed.
๐จ no cap, this is the scary one. if you're unsure even a tiny bit, just use --make-bed. protect your data bestie.
โจ --recode and its many, many little outfits โจ
--recode<output format>[{01 | 12}][{tab | tabx | spacex | bgz | gen-gz}]['include-alt']['omit-nonmale-y']
Create a new text fileset with all filters applied. The following output formats are supported:
'23': 23andMe 4-column format. This can only be used on a single sample's data (--keepmay be handy), and does not support multicharacter allele codes.'A': Sample-major additive (0/1/2) coding, suitable for loading from R. If you need uncounted alleles to be named in the header line, add the'include-alt'modifier.'AD': Sample-major additive (0/1/2) + dominant (het=1/hom=0) coding. Also supports'include-alt'.'A-transpose': Variant-major 0/1/2.'beagle': Unphased per-autosome.datand.mapfiles, readable by early BEAGLE versions.'beagle-nomap': Single.beagle.datfile.'bimbam': Regular BIMBAM format.'bimbam-1chr': BIMBAM format, with a two-column.pos.txtfile. Does not support multiple chromosomes.'fastphase': Per-chromosome fastPHASE files, with.chr-<chr #>.recode.phase.inpfilename extensions.'fastphase-1chr': Single.recode.phase.inpfile. Does not support multiple chromosomes.'HV': Per-chromosome Haploview files, with.chr-<chr #>{.ped,.info}filename extensions.'HV-1chr': Single Haploview.ped+.infofile pair. Does not support multiple chromosomes.'lgen': PLINK 1 long-format (.lgen+.fam+.map), loadable with--lfile.'lgen-ref':.lgen+.fam+.map+.ref, loadable with--lfile+--reference.'list': Single genotype-based list, up to 4 lines per variant. To omit nonmale genotypes on the Y chromosome, add the'omit-nonmale-y'modifier.'rlist':.rlist+.fam+.mapfileset, where the.rlistfile is a genotype-based list which omits the most common genotype for each variant. Also supports'omit-nonmale-y'.'oxford': Oxford-format.gen+.sample. With the'gen-gz'modifier, the.genfile is gzipped.'ped': PLINK 1 sample-major (.ped+.map), loadable with--file.'compound-genotypes': Same as'ped', except that the space between each pair of same-variant allele codes is removed.'structure': Structure-format.'transpose': PLINK 1 variant-major (.tped+.tfam), loadable with--tfile.'vcf','vcf-fid','vcf-iid': VCFv4.2.'vcf-fid'and'vcf-iid'cause family IDs or within-family IDs respectively to be used for the sample IDs in the last header row, while'vcf'merges both IDs and puts an underscore between them. If the'bgz'modifier is added, the VCF file is block-gzipped. The A2 allele is saved as the reference and normally flagged as not based on a real reference genome (INFO:PR). When it is important for reference alleles to be correct, you'll also want to include--a2-alleleand--real-ref-allelesin your command.
In addition:
- The
'12'modifier causes A1 (usually minor) alleles to be coded as'1'and A2 alleles to be coded as'2', while'01'maps A1 -> 0 and A2 -> 1. - The
'tab'modifier makes the output mostly tab-delimited instead of mostly space-delimited.'tabx'and'spacex'force all tabs and all spaces, respectively.
๐ more commands, because she never stops ๐
--flip-scan['verbose']โ (alias:--flipscan) LD-based scan for case/control strand inconsistency.--write-covarโ If a--covarfile is loaded,--make-bed/--make-just-famand--recodeautomatically generate an updated version (with all filters applied). However, if you do not wish to simultaneously generate a new genotype file, you can use--write-covarto just produce a pruned covariate file.--write-cluster['omit-unassigned']โ If clusters are specified with--within/--family, this generates a new cluster file (with all filters applied). The'omit-unassigned'modifier causes unclustered samples to be omitted from the file; otherwise their cluster is'NA'.--write-set--set-table
If sets have been defined, --write-set dumps 'END'-terminated set membership lists to <output prefix>.set, while --set-table writes a variant-by-set membership table to <output prefix>.set.table.
--merge<.ped filename><.map filename>--merge<text fileset prefix>--bmerge<.bed filename><.bim filename><.fam filename>--bmerge<binary fileset prefix>
Merge the given fileset with the initially loaded fileset, writing the result to <output prefix>.bed + .bim + .fam. (It is no longer necessary to simultaneously specify --make-bed.) ๐ซถ
--merge-list<filename>
Okay bestie, picking right back up where we left off ๐
Merge all the filesets named in the text file with the reference fileset, if one was specified. (But plot twist ๐ซข โ you can also use this without a reference; in that case, the newly created fileset gets treated as the reference by most other PLINK operations. Main character energy, honestly. ๐)
The text file gets read like this:
- A line with only one name โ that's assumed to be the prefix for a binary fileset.
- A line with exactly two names โ those are assumed to be the full filenames for a text fileset (
.pedfirst, then.map). - A line with exactly three names โ those are assumed to be the full filenames for a binary fileset (
.bed, then.bim, then.fam).
--write-snplistโ writes a.snplistfile listing the names of all variants that pass the filters and inclusion thresholds you've specified. โจ--list-23-indelsโ writes the subset with 23andMe-style indel calls (D/Iallele codes). ๐งฌ
--list-duplicate-vars ['require-same-ref'] ['ids-only'] ['suppress-first']โ writes a.dupvarfile describing all groups of variants with matching positions and allele codes. ๐- By default,
A1/A2allele assignments are ignored; passrequire-same-refto override that. - Normally the report contains position and allele codes. Wanna yeet those (and get a file you can feed straight into e.g.
--extract/--exclude)? Useids-only. โ ๏ธ Heads up though: this command will fail inids-onlymode if any of the reported IDs aren't unique. suppress-firstmakes the first variant ID in each group get omitted from the report.
- By default,
--freq [{counts | case-control}] ['gz']โ generates a basic allele frequency report (or a count report, if thecountsmodifier is present).
You can combo this with --within/--family to get a cluster-stratified allele frequency/count report instead, or use the case-control modifier to report case and control allele frequencies separately. ๐ซ
--freqx ['gz']โ generates a more detailed genotype count report, designed for use with--read-freq.
--missing ['gz']โ generates sample- and variant-based missing data reports. ๐ณ๏ธ
If clusters are defined, the variant-based report is cluster-stratified. gz makes the output files get gzipped. And ngl, unlike most other commands, this one doesn't treat het. haploids as missing. (Iconic behaviour. ๐)
--test-mishapโ checks for association between missing calls and flanking haplotypes. ๐
--hardy ['midp'] ['gz']โ generates a Hardy-Weinberg exact test p-value report. โ ๏ธ Important: this does NOT simultaneously filter on the p-value any more โ use--hwefor that.
With the midp modifier, the test applies the mid-p adjustment described in Graffelman J, Moreno V (2013) The mid p-value in exact tests for Hardy-Weinberg Equilibrium. ๐
--mendel ['summaries-only']โ generates a Mendel error report.
The summaries-only modifier causes the .mendel file (the one listing every single error) to be skipped. ๐ซ
--het ['small-sample'] ['gz']โ reports method-of-moments estimates of inbreeding coefficients.--ibcโ calculates all three values described in Yang J, Lee SH, Goddard ME and Visscher PM (2011) GCTA: A Tool for Genome-wide Complex Trait Analysis. (That paper also describes the relationship matrix computation we reimplement.) ๐- Both of these functions require decent MAF estimates. If there are very few samples in your immediate fileset,
--read-freqis practically mandatory, because imputed MAFs are wildly inaccurate in that case. ๐ญ - They also assume the marker set is in approximate linkage equilibrium.
- By default,
--hetomits then/(n-1)multiplier in Nei's expected homozygosity formula. Thesmall-samplemodifier causes it to be included, while forcing--hetto use MAFs imputed from founders in the immediate dataset.
- Both of these functions require decent MAF estimates. If there are very few samples in your immediate fileset,
--check-sex [female max F] [male min F]--check-sex ycount [female max F] [male min F] [female max Y obs] [male min Y obs]--check-sex y-only [female max Y obs] [male min Y obs]--impute-sex [female max F] [male min F]--impute-sex ycount [female max F] [male min F] [female max Y obs] [male min Y obs]--impute-sex y-only [female max Y obs] [male min Y obs]
--check-sex normally compares the sex assignments in your input dataset against the ones imputed from X chromosome inbreeding coefficients. ๐งฌ
- Make sure the X chromosome pseudo-autosomal region has been split off (with e.g.
--split-x) before using this. - You also need decent MAF estimates (so if there are very few samples in your immediate fileset, use
--read-freq), and your marker set should be in approximate linkage equilibrium. - By default, F estimates smaller than
0.2yield female calls, and values larger than0.8yield male calls. If you pass numeric parameter(s) to--check-sex, the first two control these thresholds.
There are now two modes which consider Y chromosome data. ๐
- In
ycountmode, gender is still imputed from the X chromosome, but female calls are downgraded to ambiguous whenever more than0nonmissing Y genotypes are present, and male calls are downgraded when fewer than0are present. (Note that these are counts, not rates.) These thresholds are controllable with--check-sex ycount's optional 3rd and 4th numeric parameters. - In
y-onlymode, gender is imputed from nonmissing Y genotype counts. The male minimum threshold defaults to1instead of zero in this case.
--impute-sex changes sex assignments to the imputed values, and is otherwise identical to --check-sex. It must be used with --make-bed/--recode/--write-covar. ๐
--fst ['case-control']โ (alias:--Fst) estimates Wright's Fst for each autosomal diploid variant, using the method introduced in Weir BS, Cockerham CC (1984) Estimating F-statistics for the analysis of population structure, given a set of subpopulations defined via--within. Raw and weighted global means are also reported. ๐ฅ- If you're interested in the global means, it's usually best to perform this calculation on a marker set in approximate linkage equilibrium.
- If you've only got two subpopulations, you can represent them with case/control status and use the
case-controlmodifier.
--indep <window size>['kb'] <step size (variant ct)> <VIF threshold>--indep-pairwise <window size>['kb'] <step size (variant ct)> <r^2 threshold>--indep-pairphase <window size>['kb'] <step size (variant ct)> <r^2 thresh>
These generate a list of markers in approximate linkage equilibrium. ๐ธ With the kb modifier, the window size is in kilobase instead of variant count units. (The space before kb is optional, i.e. --indep-pairwise 500 kb 5 0.5 and --indep-pairwise 500kb 5 0.5 have the same effect.) โ ๏ธ Note that you need to rerun PLINK using --extract or --exclude on the .prune.in/.prune.out file to actually apply the list to another computation.
--r [{square | square0 | triangle | inter-chr}] [{gz | bin | bin4}] ['spaces'] ['in-phase'] [{d | dprime | dprime-signed}] ['with-freqs'] ['yes-really']--r2 [{square | square0 | triangle | inter-chr}] [{gz | bin | bin4}] ['spaces'] ['in-phase'] [{d | dprime | dprime-signed}] ['with-freqs'] ['yes-really']
LD statistic reports, bestie. ๐
--r yields raw inter-variant correlations, while --r2 reports their squares. You can request results for all pairs in matrix format (if you specify bin or one of the shape modifiers), all pairs in table format (inter-chr), or a limited window in table format (the default).
- The
gzmodifier causes the output text file to be gzipped. bincauses the output matrix to be written in double-precision binary format, whilebin4specifies single-precision binary. The matrix is square if no shape is explicitly specified.- By default, text matrices are tab-delimited;
spacesswitches this. ๐ in-phaseadds a column with in-phase allele pairs to table-formatted reports. (This cannot be used with very long allele codes.)dprimeadds the absolute value of Lewontin's D-prime statistic to table-formatted reports, and forces both r/r^2 and D-prime to be based on the maximum likelihood solution to the cubic equation discussed in Gaunt T, Rodriguez S, Day I (2007) Cubic exact solutions for the estimation of pairwise haplotype frequencies.dprime-signedkeeps the sign, whiledskips division byD_{max}.with-freqsadds MAF columns to table-formatted reports. โจ- โ ๏ธ Since the resulting file can easily be huge, you're required to add the
yes-reallymodifier when requesting an unfiltered, non-distributed all pairs computation on more than400kvariants. Yes, it really is that serious. ๐ - These computations can be subdivided with
--parallel(even when thesquaremodifier is active). ๐
--ld <variant ID> <variant ID> ['hwe-midp']โ this displays haplotype frequencies, r^2, and D' for a single pair of variants. ๐ฏ When there are multiple biologically possible solutions to the haplotype frequency cubic equation, all of them are displayed (instead of just the maximum likelihood solution identified by--r/--r2), along with HWE exact test statistics.
--show-tags <filename>--show-tags all- If a file is specified, list all variants which tag at least one variant named in the file. (This will normally be a superset of the original list, since a variant is considered to tag itself here.) ๐ท๏ธ
- If
allmode is specified, then for each variant, each other variant which tags it is reported.
--blocks ['no-pheno-req'] ['no-small-max-span']
Okay so picking up right where we left off, no re-intro needed ๐ โ this one estimates haplotype blocks, using Haploview's take on the block definition that Gabriel S et al. (2002) suggested in The Structure of Haplotype Blocks in the Human Genome.
- Normally, samples with missing phenotypes are not considered by this computation; the
'no-pheno-req'modifier lifts this restriction. ๐ - Normally, size-2 blocks may not span more than 20kb, and size-3 blocks are limited to 30kb. The
'no-small-max-span'modifier removes these limits. (blowing straight past the limit, main character energy โจ)
The .blocks file is valid input for PLINK 1.07's --hap command. However โ and bestie I need you to hear me on this one โ the --hap... family of flags has not been reimplemented in PLINK 1.9, because the phasing accuracy is just not it compared to other software ๐ญ. For now, the recommendation is to use BEAGLE instead of PLINK for case/control haplotype association analysis. (You can use --recode beagle to export data to BEAGLE 3.3.) They apologize for the inconvenience, and plan to develop variants of the --hap... flags which handle pre-phased data effectively. ๐ซถ
--distance[{square | square0 | triangle}] [{gz | bin | bin4}] ['ibs'] ['1-ibs'] ['allele-ct'] ['flat-missing']โ writes a lower-triangular tab-delimited table of (weighted) genomic distances in allele count units to<output prefix>.dist, plus a list of the corresponding sample IDs to<output prefix>.dist.id. The first row of the.distfile contains a single<genome 1-genome 2>distance, the second row has the<genome 1-genome 3>and<genome 2-genome 3>distances in that order, etc. ๐- It is usually best to perform this calculation on a marker set in approximate linkage equilibrium.
- If the
'square'or'square0'modifier is present, a square matrix is written instead;'square0'fills the upper right triangle with zeroes. - If the
'gz'modifier is present, a compressed.dist.gzfile is written instead of a plain text file. - If the
'bin'modifier is present, a binary (square) matrix of double-precision floating point values, suitable for loading from R, is instead written to<output prefix>.dist.bin. ('bin4'specifies single-precision numbers instead.) This can be combined with'square0'if you still want the upper right zeroed out, or'triangle'if you don't want to pad the upper right at all. - If the
'ibs'modifier is present, an identity-by-state matrix is written to<output prefix>.mibs.'1-ibs'causes distances expressed as genomic proportions (i.e. 1 - IBS) to be written to<output prefix>.mdist. Combine with'allele-ct'if you want to generate the usual.distfile as well. - By default, distance rescaling in the presence of missing genotype calls is sensitive to allele count distributions: if variant A contributes, on average, twice as much to other pairwise distances as variant B, a missing call at variant A will result in twice as large of a missingness correction. To turn this off (because e.g. your missing calls are highly nonrandom), use the
'flat-missing'modifier. - The computation can be subdivided with
--parallel. ๐ฅ
--distance-matrix,--ibs-matrixโ these deprecated commands are equivalent to--distance 1-ibs flat-missing squareand--distance ibs flat-missing square, respectively, except that they generate space- instead of tab-delimited text matrices. ๐--make-rel[{square | square0 | triangle}] [{gz | bin | bin4}] [{cov | ibc2 | ibc3}]โ writes a lower-triangular variance-standardized realized relationship matrix to<output prefix>.rel, and corresponding IDs to<output prefix>.rel.id. ๐งฌ- It is usually best to perform this calculation on a marker set in approximate linkage equilibrium.
'square','square0','triangle','gz','bin', and'bin4'act as they do on--distance.- The
'cov'modifier removes the variance standardization step, causing a covariance matrix to be calculated instead. - By default, the diagonal elements in the relationship matrix are based on
--ibc's Fhat1; use the'ibc2'or'ibc3'modifiers to base them on Fhat2 or Fhat3 instead. - The computation can be subdivided with
--parallel.
--make-grm-gz['no-gz'] [{cov | ibc2 | ibc3}]--make-grm-bin[{cov | ibc2 | ibc3}]
So --make-grm-gz writes the relationships in GCTA's original gzipped list format, which describes one pair per line, while --make-grm-bin writes them in GCTA 1.1+'s single-precision triangular binary format. Note that these formats explicitly report the number of valid observations (where neither sample has a missing call) for each pair, which is useful input for some scripts. These computations can be subdivided with --parallel. โจ
--rel-cutoff[val]โ (alias:--grm-cutoff) excludes one member of each pair of samples with relatedness greater than the given cutoff value (default0.025). If no later operation will cause the list of remaining samples to be written to disk, this will save it to<output prefix>.rel.id. Note that maximizing the remaining sample size is equivalent to the NP-hard maximum independent set problem, so we use a greedy algorithm instead of guaranteeing optimality. (Use the--make-reland--keep/--removeflags if you want to try to do better.) ๐ญ--ibs-test[permutation count]--groupdist[iters] [d]
Given case/control phenotype data, these commands consider three subsets of the distance matrix: pairs of affected samples, affected-unaffected pairs, and pairs of unaffected samples. Each of these subsets has a distribution of pairwise genomic distances; --ibs-test uses permutation to estimate p-values re: which types of pairs are most similar, while --groupdist focuses on the differences between the centers of these distributions and estimates standard errors via delete-d jackknife. ๐ฆ
--regress-distance[iters] [d]โ linear regression of pairwise genomic distances on pairwise average phenotypes and vice versa, using delete-d jackknife for standard errors. A scalar phenotype is required. ๐ธ- With less than two parameters,
dis set to<number of people>^0.6rounded down. With no parameters, 100k iterations are run.
- With less than two parameters,
--regress-rel[iters] [d]โ linear regression of pairwise genomic relationships on pairwise average phenotypes, and vice versa. Defaults foritersanddare the same as for--regress-distance.--genome['gz'] ['rel-check'] ['full'] ['unbounded'] ['nudge']โ generates an identity-by-descent report. ๐- It is usually best to perform this calculation on a marker set in approximate linkage equilibrium.
- The
'rel-check'modifier excludes pairs of samples with different FIDs from the final report. 'full'adds raw pairwise comparison data to the report.- The P(IBD=0/1/2) estimator employed by this command sometimes yields numbers outside the range
[0,1]; by default, these are clipped. The'unbounded'modifier turns off this clipping. - Then, when PI_HAT^2 < P(IBD=2),
'nudge'adjusts the final P(IBD=0/1/2) estimates to a theoretically possible configuration. - The computation can be subdivided with
--parallel.
--homozyg[{group | group-verbose}] ['consensus-match'] ['extend'] ['subtract-1-from-lengths']--homozyg-snp<min var count>--homozyg-kb<min length>--homozyg-density<max inverse density (kb/var)>--homozyg-gap<max internal gap kb length>--homozyg-het<max hets>--homozyg-window-snp<scanning window size>--homozyg-window-het<max hets in scanning window hit>--homozyg-window-missing<max missing calls in scanning window hit>--homozyg-window-threshold<min scanning window hit rate>
These commands request a set of run-of-homozygosity reports, and allow you to customize how they are generated. ๐ง
- If you're satisfied with all the default settings described below, just use
--homozygwith no modifiers. Otherwise,--homozyglets you change a few binary settings: 'group[-verbose]'adds a report on pools of overlapping runs of homozygosity. (Automatically set when--homozyg-matchis present.)- With
'group[-verbose]','consensus-match'causes pairwise segmental matches to be called based on the variants in the pool's consensus segment, rather than the variants in the pairwise intersection. - Due to how the scanning window algorithm works, it is possible for a reported ROH to be adjacent to a few homozygous variants. The
'extend'modifier causes them to be included in the reported ROH if that wouldn't cause a violation of the--homozyg-densitybound. - By default, segment bp lengths are calculated as
<end bp position>-<start bp position>+ 1. Therefore, reports normally differ slightly from PLINK 1.07, which does not add 1 at the end. For testing purposes, you can use the'subtract-1-from-lengths'modifier to apply the old formula. - By default, only runs of homozygosity containing at least 100 variants, and of total length >= 1000 kilobases, are noted. You can change these minimums with
--homozyg-snpand--homozyg-kb, respectively. - By default, a ROH must have at least one variant per 50 kb on average; change this bound with
--homozyg-density. - By default, if two consecutive variants are more than 1000 kb apart, they cannot be in the same ROH; change this bound with
--homozyg-gap. - By default, a ROH can contain an unlimited number of heterozygous calls; you can impose a limit with
--homozyg-het. - By default, the scanning window contains 50 variants; change this with
--homozyg-window-snp. - By default, a scanning window hit can contain at most 1 heterozygous call and 5 missing calls; change these limits with
--homozyg-window-hetand--homozyg-window-missing, respectively.
- By default, for a variant to even be eligible for inclusion in a ROH, the hit rate of all scanning windows containing that variant has to be at least
0.05. Wanna move that goalpost? That's literally what--homozyg-window-thresholdis for, bestie. ๐
--cluster ['cc'] [{group-avg | old-tiebreaks}] ['missing'] ['only2']โ okay so this clusters your samples using a pairwise similarity statistic (normally IBS). Let's unpack the modifiers, one by one, no skipping ๐- The
'cc'modifier forces every cluster to contain at least one case and one control. No lonely lil clusters allowed. ๐ฅบ - The
'group-avg'modifier makes clusters get joined based on average pairwise similarity instead of minimum pairwise similarity. - The
'missing'modifier makes clustering run on identity-by-missingness instead of identity-by-state, and it writes a space-delimited identity-by-missingness matrix to disk. - The
'only2'modifier means only a.cluster2file gets written (and that file is valid input for--within); otherwise you get 2 other files too. - By default, IBS ties are not broken the same way PLINK 1.07 broke them, so final cluster solutions tend to differ. This is generally harmless โ fr, don't spiral about it ๐. But if you wanna make testing easier, use the
'old-tiebreaks'modifier to force emulation of the old algorithm. ๐ฐ๏ธ
- The
--pca [count] ['header'] ['tabs'] ['var-wts']โ calculates a variance-standardized relationship matrix (use--make-rel/--make-grm-gz/--make-grm-binif you wanna dump it) and extracts the top20principal components. iconic behavior โจ- It's usually best to do this calculation on a marker set that's in approximate linkage equilibrium. iykyk.
- You can change the number of PCs by passing a numeric parameter.
- The
'header'modifier adds a header line to the.eigenvecoutput file. (For compatibility with the GCTA flag of the same name, the default is no header line.) - The
'tabs'modifier makes the.eigenvecfile(s) tab-delimited. - The
'var-wts'modifier requests an additional.eigenvec.varfile with PCs expressed as variant weights instead of sample weights.
--neighbour <n1> <n2>โ (alias:--neighbor) reports IBS distances from each sample to their *n1*th- to *n2*th-nearest neighbors, plus the associated Z-scores and the identities of those neighbors. Genuinely so useful for outlier detection ๐
--assoc ['perm' | 'mperm='<value>] ['perm-count'] [{fisher | fisher-midp}] ['counts'] ['set-test']--assoc ['perm' | 'mperm='<value>] ['perm-count'] ['qt-means'] ['lin'] ['set-test']--model ['perm' | 'mperm='<value>] ['perm-count'] [{fisher | fisher-midp | trend-only}] ['set-test'] [{dom | rec | gen | trend}]โ basic association analysis report ๐ซถ Given a case/control phenotype,--assocruns a1dfchi-square allelic test, while--modelruns 4 other tests as well (1dfdominant gene action,1dfrecessive gene action,2dfgenotypic, Cochran-Armitage trend).- With
'fisher'/'fisher-midp', Fisher's exact test is used to generate p-values.'fisher-midp'also applies Lancaster's mid-p adjustment. 'perm'causes an adaptive permutation test to be performed.'mperm='<value>causes a max(T) permutation test to be performed with the specified number of replications.'perm-count'makes the permutation test report include counts instead of frequencies.'counts'makes--assocreport allele counts instead of frequencies.'set-test'tests the significance of variant sets. Requires permutation; can be customized with--set-p/--set-r2/--set-max.'dom','rec','gen', and'trend'force the corresponding test to be used as the basis for--modelpermutation. (By default, the most significant result among the allelic, dominant, and recessive tests is used.)'trend-only'causes only the trend test to be performed.- Given a quantitative phenotype,
--assocnormally performs a Wald test.- In this case, the
'qt-means'modifier causes trait means and standard deviations stratified by genotype to be reported as well. 'lin'causes the Lin statistic to be computed, and makes it the basis for multiple-testing corrections and permutation tests.
- In this case, the
- With
Several other flags (most notably, --aperm) can be used to customize the permutation test. ๐ซ
--mh ['perm' | 'mperm='<value>] ['perm-count'] ['set-test']โ (alias:--cmh)--bd ['perm' | 'perm-bd' | 'mperm='<value>] ['perm-count'] ['set-test']--mh2--homogโ given a case/control phenotype and a set of clusters,--mhcomputes2x2xKCochran-Mantel-Haenszel statistics for each variant, while--bdalso performs the Breslow-Day test for odds ratio homogeneity. Permutation and variant set testing based on the CMH (default) or Breslow-Day (when'perm-bd'is present) statistic are supported. The following similar analyses are also available:--mh2swaps the roles of case/control status and cluster membership, performing a phenotype-stratifiedIxJxKCochran-Mantel-Haenszel test on association between cluster assignments and genotypes.--homogexecutes an alternative to the Breslow-Day test, based on partitioning of the chi-square statistic.
--gxe [covariate index]โ given both a quantitative phenotype and a case/control covariate loaded with--covarthat defines two groups,--gxecompares the regression coefficient derived from considering only members of one group to the regression coefficient derived from considering only members of the other. ๐ฆ By default, the first covariate in the--covarfile defines the groups; use e.g."--gxe 3"to base them on the third covariate instead.
--linear ['perm' | 'mperm='<value>] ['perm-count'] ['set-test'] [{genotypic | hethom | dominant | recessive | no-snp}] ['hide-covar'] [{sex | no-x-sex}] ['interaction'] ['beta'] ['standard-beta'] ['intercept']--logistic ['perm' | 'mperm='<value>] ['perm-count'] ['set-test'] [{genotypic | hethom | dominant | recessive | no-snp}] ['hide-covar'] [{sex | no-x-sex}] ['interaction'] ['beta'] ['intercept']โ multi-covariate association analysis on a quantitative (--linear) or case/control (--logistic) phenotype. Normally you'd use these with--covar. ๐ฅ'perm'normally causes an adaptive permutation test to be performed on the main effect, while'mperm='<value>starts a max(T) permutation test.'perm-count'makes the permutation test report include counts instead of frequencies.'set-test'tests the significance of variant sets. Requires permutation; can be customized with--set-p/--set-r2/--set-max.- The
'genotypic'modifier adds an additive effect/dominance deviation2dfjoint test (0/1/2and0/1/0coding), while'hethom'uses0/0/1and0/1/0coding instead. If permutation is also requested, these modifiers cause permutation to be based on the joint test. 'dominant'and'recessive'specify a model assuming full dominance or recessiveness, respectively, for theA1allele.'no-snp'causes regression to be performed only on the phenotype and the covariates, with no reference to genomic data. If permutation is also requested, results are reported for all covariates.'hide-covar'removes covariate-specific lines from the report.- By default, sex (male =
1, female =0) is automatically added as a covariate on X chromosome variants, and nowhere else. The'sex'modifier causes it to be added everywhere, while'no-x-sex'excludes it. 'interaction'adds genotype x covariate interactions to the model. This cannot be used with the usual permutation tests; use--teststo define the permutation test statistic instead. ๐จ'intercept'causes intercepts to be included in the main report.- For logistic regressions, the
'beta'modifier causes regression coefficients instead of odds ratios to be reported. - With
--linear, the'standard-beta'modifier standardizes the phenotype and all predictors to zero mean and unit variance before regression.
--dosage <allele dosage file> ['noheader'] ['skip0='<i>] ['skip1='<j>] ['skip2='<k>] ['dose1'] ['format='<m>] ['Zout'] [{occur | standard-beta}] ['sex'] ['case-control-freqs']--dosage <list file> list [{sepheader | noheader}] ['skip0='<i>] ['skip1='<j>] ['skip2='<k>] ['dose1'] ['format='<m>] ['Zout'] [{occur | standard-beta}] ['sex'] ['case-control-freqs']--write-dosageโ processes (possibly gzipped) text files with variant-major allelic dosage data. ๐ This cannot be used with a regular input fileset; instead, you must only specify a.famand possibly a.mapfile, and you can't specify any other commands.
Heads up bestie: PLINK 2.0 will have first-class support for genotype probabilities. An equivalent data import flag will be provided then, and --dosage will be retired. ๐
- By default,
--dosageassumes that only one allelic dosage file should be loaded. To specify multiple files:- create a master list with one entry per line. There are normally two supported formats for this list: just a filename per line, or variant batch numbers in the first column and filenames in the second.
- Provide the name of that list as the first
--dosageparameter. - Add the
'list'modifier.
- By default,
--dosageassumes the allelic dosage file(s) contain a header line, which has'SNP'in columni+1,'A1'in columni+j+2,'A2'in columni+j+3, and sample FID/IIDs starting from columni+j+k+4. (i/j/kare normally zero, but can be changed with'skip0','skip1', and'skip2'respectively.) If such a header line is not present:- when all samples appear in the same order as they do in the
.famfile, you can use the'noheader'modifier. - Otherwise, use the
'sepheader'modifier, and append sample ID filenames to your'list'file entries.
- when all samples appear in the same order as they do in the
- The
'format='modifier lets you say how many values are used to represent each dosage.'format=1'normally means a single0..2A1 expected count;'dose1'switches that up into a0..1frequency.'format=2'โ the default, bestie ๐ โ means a0..1homozygous A1 likelihood followed by a0..1het likelihood, and'format=3'means0..1hom A1,0..1het,0..1hom A2. โจ 'Zout'makes the output file get gzipped. ๐- Normally an association analysis runs.
'standard-beta'and'sex'act how they're supposed to with--linear/--logistic, no notes. And'case-control-freqs'makes case and control allele frequencies get reported separately. ๐ฆ - There are three alternate modes that make the association analysis get skipped entirely:
'occur'asks for a simple variant occurrence report. ๐ธ--write-dosagemakes a simple merged file get generated that matches the'format'spec (not counting'dose1', okurrr).--scoreapplies a linear scoring system to the dosages. ๐ฅ
--lasso <h2 estimate> [min lambda] ['report-zeroes']โ estimates variant effect sizes via LASSO regression. You have to hand it an additive heritability estimate to calibrate the regression, that part isn't optional. Heads up though: this method may need a genuinely huge sample size (like, hundreds of thousands) before it's effective on complex polygenic traits. ๐--test-missing ['perm' | 'mperm='<value>] ['perm-count'] ['midp']โ checks for association between missingness and case/control status using Fisher's exact test. (Het. haploids get treated as missing, fyi.) The'midp'modifier makes Lancaster's mid-p adjustment get applied. โจ--make-perm-pheno <ct>โ generates phenotype permutations and writes them to disk, without invoking an association test. Just the permutations, nothing more. ๐--tdt [{exact | exact-midp | poo}] ['perm' | 'mperm='<value>] ['perm-count'] [{parentdt1 | parentdt2 | pat | mat}] ['set-test']โ reports transmission disequilibrium test statistics, given case/control phenotypes and pedigree information.- A Mendel error check runs before the main tests; offending genotypes get treated as missing by this analysis. ๐
- By default the basic TDT p-value is based on a chi-square test, unless you request the exact binomial test with
'exact'or'exact-midp'. 'perm'/'mperm='requests a family-based adaptive or max(T) permutation test. By default the permutation test statistic is the basic TDT p-value;'parentdt1'/'parentdt2'make parenTDT or combined test p-values get considered instead.'set-test'tests the significance of variant sets. This cannot be used with exact tests for now, sorry bestie. ๐ญ- The
'poo'modifier makes a parent-of-origin analysis get performed instead, with transmissions from heterozygous fathers and heterozygous mothers considered separately.- The parent-of-origin analysis does not currently support exact tests. ๐ซ
- By default the permutation test statistic is the absolute parent-of-origin test Z score;
'pat'/'mat'make paternal or maternal TDT chi-square statistics, respectively, get considered instead.
--qfam ['perm' | 'mperm='<value>] ['perm-count'] ['emp-se']--qfam-parents ['perm' | 'mperm='<value>] ['perm-count'] ['emp-se']--qfam-between ['perm' | 'mperm='<value>] ['perm-count'] ['emp-se']--qfam-total ['perm' | 'mperm='<value>] ['perm-count'] ['emp-se']โ QFAM family-based association test for quantitative traits. ๐- A Mendel error check runs before the main tests; offending genotypes get treated as missing by this analysis. ๐
- This procedure requires permutation.
'perm'and'perm-count'have the usual meanings. However,'mperm='<value> just specifies a fixed number of permutations; the method does not support a proper max(T) test. ๐ซถ - The
'emp-se'modifier addsBETAandEMP_SE(empirical standard error for beta) fields to the.permoutput file. โจ
--annotate <PLINK report> ['attrib='<file>] ['ranges='<file>] ['filter='<file>] ['snps='<file>] [{NA | prune}] ['block'] ['subset='<file>] ['minimal'] ['distance']โ adds annotations to a variant-based PLINK report. This needs an annotation source, no cap:'attrib='<file> specifies a (possibly gzipped) attribute file. ๐'ranges='<file> specifies a gene/range list file. (Both source types can be specified at the same time, iconic.) ๐- The following options are also supported:
'filter='<file> makes only variants within one of the ranges in the file get included in the new report.'snps='<file> makes only variants named in the file get included in the new report.- The
'NA'modifier makes unannotated variants have'NA'instead of.in the new report'sANNOTcolumn, while the'prune'modifier excludes them entirely. ๐ซ - The
'block'modifier replaces the singleANNOTcolumn with a0/1-coded column for each possible annotation. - With
'ranges':'subset='<file> makes only intervals named in the subset file get loaded from the ranges file. ๐ธ- interval annotations normally come with a parenthesized signed distance to the interval boundary (
0if the variant is located inside the interval; this is always true without--border). They can be excluded with the'minimal'modifier. - the
'distance'modifier adds'DIST'and'SGN'columns describing signed distance to the nearest interval. ๐ฆ
- When
--pfilteris present, high p-values get filtered out. โจ
--clump <PLINK report filename(s)...>โ processes association analysis report(s) with'SNP'and p-value columns, organizing results by LD-based clumps. Multiple filenames can be separated by spaces or commas, whichever vibe you're on. ๐--gene-report <PLINK report> <gene range file>โ generates a gene-based report from a variant-based report. ๐ฅ- When
--pfilteris present, high p-values get filtered out. - When
--extract(without'range') is present, only variants named in the--extractfile get considered.
- When
--meta-analysis <PLINK report filenames...>--meta-analysis <PLINK report filenames...> + [{logscale | qt}] [{no-map | no-allele}] ['study'] ['report-all'] ['weighted-z']โ performs a meta-analysis on several variant-based reports with'SNP'and'SE'fields. ๐ง- Normally an
'OR'odds ratio field must also be present in each input file. With'logscale','BETA'log-odds values/regression coefficients get expected instead, but the generated report will still contain odds ratio estimates. With'qt', both input and output values are regression betas. ๐ 'CHR','BP', and'A1'fields are also normally required.'no-map'makes them all get ignored, while'no-allele'makes just'A1'get ignored.- If
'A2'fields are present, and neither'no-map'nor'no-allele'was specified, A1/A2 allele flips get handled properly. Otherwise, A1 mismatches get thrown out. ๐๏ธ 'study'makes study-specific effect estimates get collated in the meta-analysis report.'report-all'makes variants present in only a single input file get included in the meta-analysis report. ๐'weighted-z'requests weighted Z-score-based p-values (as computed by the Abecasis Lab's METAL software) in addition to the usual inverse variance-based analysis. This requires P and effective sample size fields. โญ- When
--extract(without'range') is present, only variants named in the--extractfile get considered. - Unless
'no-map'is specified, chromosome filters also get respected. ๐
- Normally an
--fast-epistasis [{boost | joint-effects | no-ueki}] ['case-only'] [{set-by-set | set-by-all}] ['nop']--epistasis [{set-by-set | set-by-all}]โ scan for epistatic interactions, the two of them together. ๐--fast-epistasisinspects3x3joint genotype count tables and only applies to case/control phenotypes, while--epistasisperforms linear or logistic regression.- By default,
--fast-epistasisuses the PLINK 1.07 allele-based test. Two newer tests are now supported:'boost'invokes the likelihood ratio test introduced by Wan X et al. (2010) BOOST: A Fast Approach to Detecting Gene-Gene Interactions in Genome-wide Case-Control Studies, while'joint-effects'applies the joint effects test introduced in Ueki M, Cordell HJ (2012) Improved statistics for genome-wide interaction analysis. ๐ - The original
--fast-epistasistest normally applies the variance and empty cell corrections suggested by Ueki and Cordell's paper. To disable them, use the'no-ueki'modifier. ๐ 'case-only'requests a case-only instead of a case/control test.- By default, all pairs of variants across the entire genome get tested. To just test pairs of variants within a single set, add the
'set-by-set'modifier and load exactly one set with--set/--make-set; with exactly two sets loaded, all variants in one set get tested against all variants in the other.'set-by-all'tests all variants in one set against the entire genome instead. ๐ 'nop'strips p-values from the main report.- These computations can be subdivided with
--parallel; however...
- By default,
--epistasis-summary-merge <common file prefix> <ct>โ when a--[fast-]epistasisjob gets subdivided with--parallel, the main report can be assembled at the end by applying Unix'cat'in the usual manner, but the.summary.1,.summary.2, ... files may require a specialized merge.--epistasis-summary-mergetakes care of the latter. ๐ซถ--twolocus <variant ID> <variant ID>โ two-locus joint genotype count report. ๐--score <filename> [i] [j] [k] ['header'] [{sum | no-sum}] [{no-mean-imputation | center}] ['include-cnt'] ['double-dosage']
okay so real talk about scoring ๐ โ you're applying a linear scoring system to every single sample. The input file needs one line per scored variant. Variant IDs get read from column #i, allele codes from column #j, and the actual scores from column #k โ where i defaults to 1, j defaults to i+1, and k defaults to j+1. Slay, the defaults just keep stacking ๐ซถ
- the
headermodifier means the first nonempty line of the input file gets ignored. Without it?--scorestraight up assumes there's no header line at all. - by default, the final scores are averages of the valid per-variant scores. very demure, very mindful.
The sum modifier makes it report sums instead. no cap:
you cannot usesumtogether withno-mean-imputation. Also, for backward compatibility,sumis automatically on with dosage data unless you specifyno-sum.
- by default, copies of the unnamed allele contribute zero to the score, while missing genotypes contribute an amount proportional to the loaded (via
--read-freq) or imputed allele frequency. If you wanna throw out missing observations instead โ which decreases the denominator in the final average when that happens โ use theno-mean-imputationmodifier. - alternatively, you can use the
centermodifier to shift all scores to mean zero. iconic behaviour honestly โจ - this command can be used with dosage data. By default, the
CNTcolumn is omitted from the output file in that case โ useinclude-cntto keep it. Also note: scores get multiplied by 0..1 dosages, not 0..2 diploid allele counts, unless thedouble-dosagemodifier is present. iykyk ๐
โจ the R girlies โจ
--R <R script file> ['debug']โ connect to a Rserve background process (preferably version 1.7 or later) and execute theRplinkfunction defined in the input file. Unless the'debug'modifier is present โ in which case, the R commands that PLINK would have tried to execute get logged to a file. bestie just wants to watch ๐
๐ธ --write-var-ranges <block ct> ๐ธ
divide the set of variants into equal-size blocks. (Can be used with --snps to split a job across multiple machines โ group project but make it efficient ๐ฆ)
the following other flags are supported. (Order of operations is described at https://www.cog-genomics.org/plink/1.9/order.) ๐
--script <fname>โ include command-line options from file.--rerun [log]โ rerun commands in log (default'plink.log').--versionโ display only the version number before exiting.--silentโ suppress output to console. shhh ๐คซ--gplinkโ reserved for interoperation with gPLINK.--missing-genotype <char>โ set the missing genotype code (normally'0').--double-idโ set both FIDs and IIDs to the VCF/BCF sample ID.--const-fid [ID]โ set all FIDs to the given constant (default'0').--id-delim [d]โ parse sample IDs as<FID><d><IID>(default delim'_').--vcf-idspace-to <c>โ convert spaces in sample IDs to the given character.--biallelic-only ['strict'] ['list']โ skip VCF variants with 2+ ALT alleles.--vcf-min-qual <val>โ skip VCF variants with low/missingQUAL.--vcf-filter [exception(s)...]โ skip variants which haveFILTERfailures.--vcf-require-gtโ skip variants with noGTfield.--vcf-min-gq <val>โ no-call a genotype whenGQis below the given threshold.--vcf-min-gp <val>โ no-call a genotype when 0-1 scaledGPis below the given threshold.--vcf-half-call <m>โ specify how'0/.'and similar VCFGTvalues should be handled. four modes, bestie:'error'/'e'(default) โ errors out and reports the line #. dramatic but valid ๐'haploid'/'h'โ treats them as haploid calls.'missing'/'m'โ treats them as missing.'reference'/'r'โ treats the missing value as0.
--oxford-single-chr <chr nm>โ specify single-chromosome.genfile with ignorable first column.--oxford-pheno-name <col nm>โ import named phenotype from the.samplefile.--hard-call-threshold <val>/--hard-call-threshold randomโ when an Oxford-format fileset is loaded, calls with uncertainty level greater than0.1are normally treated as missing. You can adjust this threshold by providing a numeric parameter, or randomize all calls with'random'.--missing-code [string list](alias:--missing_code) โ comma-delimited list of missing phenotype values for Oxford-format filesets (def.'NA').--simulate-ncases <num>โ set--simulatecase count (default1000).--simulate-ncontrols <n>โ set--simulatecontrol count (default1000).--simulate-prevalence <p>โ set--simulatedisease prevalence (default0.01).--simulate-n <num>โ set--simulate-qtsample count (default1000).--simulate-label <prefix>โ set--simulate[-qt]FID/IID name prefix.--simulate-missing <freq>โ set--simulate[-qt]missing genotype frequency.--allow-extra-chr ['0'](alias:--aec) โ permit unrecognized chromosome codes. The'0'modifier causes them to be treated as if they had been set to zero.--chr-set <autosome ct> ['no-x'] ['no-y'] ['no-xy'] ['no-mt']โ specify a nonhuman chromosome set. The first parameter sets the number of diploid autosome pairs if positive, or haploid chromosomes if negative. Given diploid autosomes, the remaining modifiers indicate the absence of the named non-autosomal chromosomes.--cow/--dog/--horse/--mouse/--rice/--sheepโ shortcuts for those species ๐๐ถ๐ด๐ญ๐พ๐--autosome-num <value>โ alias for"--chr-set <value> no-y no-xy no-mt".--cm-map <fname pattern> [chr]โ use SHAPEIT-format recombination maps to set centimorgan positions. To process more than one chromosome, include a'@'in the first parameter where the chrom. number belongs, e.g.'genetic_map_chr@_combined_b37.txt'.--zero-cmsโ zero out centimorgan positions.--allow-no-samplesโ allow the input fileset to contain no samples.--allow-no-varsโ allow the input fileset to contain no variants.--pheno <fname>โ load phenotype data from the specified file, instead of using the values in the main input fileset.--all-phenoโ for basic association tests, loop through all phenotypes in the--phenofile.--mpheno <n>โ load phenotype from column(n+2)in the--phenofile.--pheno-name <c>โ if the--phenofile has a header row, use the column with the given name.--pheno-mergeโ when the main input fileset contains a phenotype value for a sample, but the--phenofile doesn't, use the original value instead of treating the phenotype as missing.--missing-phenotype <v>โ set missing phenotype value (normally-9).--1โ expect case/control phenotypes to be coded as0= control,1= case, instead of the usual0= missing,1= control,2= case. This also forces phenotypes to be interpreted as case/ctrl.--make-pheno <fn> <val>โ define a new case/control phenotype. If thevalparameter is'*', all samples listed in the given file are cases, and everyone else is a control. (Note that, in some shells, it's necessary to surround the*with quotes.) Otherwise, all samples with third column entry equal to thevalparameter are cases, and all other samples mentioned in the file are controls.--tail-pheno <Lt> [Hbt]โ downcode a scalar phenotype to a case/control phenotype. All samples with phenotype values greater thanHbtare cases, and all with values less than or equal toLtare controls. IfHbtis unspecified, it's equal toLt; otherwise, in-between phenotype values are set to missing.--covar <filename> ['keep-pheno-on-missing-cov']โ specify covariate file.--covar-name <...>โ specify covariate(s) in the--covarfile by name. Separate multiple names with spaces or commas, and use dashes to designate ranges.--covar-number <...>โ specify covariate(s) in the--covarfile by index.--no-const-covarโ exclude constant covariates.--allow-no-covarsโ allow no covariates to be loaded from the--covarfile.--within <f> ['keep-NA']โ specify initial cluster assignments.--mwithin <n>โ load cluster assignments from columnn+2.--familyโ create a cluster for each family ID.--loop-assoc <f> ['keep-NA']โ run specified case/control association commands once for each cluster in the file, using cluster membership as the phenotype.--set <filename>โ load sets from a.setfile.--set-names <name(s)...>โ load only sets named on the command line. Use spaces to separate multiple names.--subset <filename>โ load only sets named in the given text file.--set-collapse-all <set name>โ merge all sets.--complement-setsโ invert all sets. (Names gain'C_'prefixes.)--make-set-complement-all <s>โ--set-collapse-all+ inversion.--make-set <filename>โ define sets from a list of named bp ranges.--make-set-border <kbs>โ stretch regions in the--make-setfile.--make-set-collapse-groupโ define sets from groups instead of sets in the--make-setfile.--keep <filename>โ exclude all samples not named in the file.--remove <filename>โ exclude all samples named in the file.--keep-fam <filename>โ exclude all families not named in the file.--remove-fam <filename>โ exclude all families named in the file.--extract ['range'] <f>โ exclude all variants not named in the file.--exclude ['range'] <f>โ exclude all variants named in the file.--keep-clusters <filename>โ these can be used individually or in combination (with the next one ๐) to define a list of clusters to keep; all samples not in a cluster in that list are then excluded.--keep-cluster-names <name(s)...>โ the other half of that combo ๐ use spaces to separate cluster names.--remove-clusters <filename>โ exclude all clusters named in the file.--remove-cluster-names <name(s)...>โ exclude the named clusters.--gene <sets...>โ exclude variants not in a set named on the command line. (Separate multiple set names with spaces.)--gene-allโ exclude variants which aren't a member of any set. (PLINK 1.07 automatically did this under some circumstances.)--attrib <f> [att lst]โ given a file assigning attributes to variants, and aโฆ to be continued, bestie ๐--attrib-indiv <f> [a]โ bestie, this is a comma-delimited list (and no whitespace, we don't do that here) of attribute names. It yeets the variants/samples that are either missing from the file or don't have any of the listed attributes. โจ Now here's the cute twist: if some attribute names in the list start with a'-', those become "negative match conditions" instead โ so any variant with at least one negative-match attribute gets removed. โ ๏ธ Heads up though: the first character in the list cannot be a'-', because that's just how command-line parsing works. Add a comma in front to get around it. iykyk.--chr <chrs...>โ exclude all variants that aren't on the given chromosome(s). For humans the valid choices are0(unplaced),1-22,X,Y,XY, andMT. Separate multiple chromosomes with spaces and/or commas, and use a dash (with no adjacent spaces, ok?) to denote a range, like"--chr 1-4, 22, xy". ๐--not-chr <...>โ the reverse of--chr, it excludes variants on the listed chromosomes. simple as that ๐ฆ--autosomeโ exclude all non-autosomal variants. bye bye sex chromosomes โ๏ธ--autosome-xyโ same energy, but it excludes all non-autosomal variants except those with chromosome codeXY(the pseudo-autosomal region of X). ๐งฌ--snps-only ['just-acgt']โ exclude non-SNP variants. By default, "SNP" means both allele codes are single-character;'just-acgt'restricts the codes to{A,C,G,T,a,c,g,t,<missing>}. so picky, love that ๐ธ--from <var ID>and--to <var ID>โ use ID(s) to specify a variant range to load. When used together, both variants must be on the same chromosome. no cross-chromosome shenanigans ๐ฅ--snp <var ID>โ specify a single variant to load.--exclude-snp <>โ specify a single variant to exclude.--window <kbs>โ with--snpor--exclude-snp, this loads/excludes all variants within half the specified kb distance of the named one. half. not the whole thing. ๐--from-bp <pos>,--to-bp <pos>,--from-kb <pos>,--to-kb <pos>,--from-mb <pos>,--to-mb <pos>โ use physical position(s) to define a variant range to load.--from-kb/--to-kb/--from-mb/--to-mballow decimal values. ๐ซถ And listen โ you must also specify a single chromosome (with e.g.--chr) when using these flags, no exceptions bestie.--snps <var IDs...>and--exclude-snps <...>โ use IDs to specify variant range(s) to load or exclude. E.g."--snps rs1111-rs2222, rs3333, rs4444". chef's kiss ๐--thin <p>โ randomly remove variants, retaining each with probability p. ๐ฒ--thin-count <n>โ randomly remove variants until n of them remain.--bp-space <bps>โ remove variants so that each pair is no closer than the given bp distance. (Equivalent to VCFtools--thin.) ๐--thin-indiv <p>โ randomly remove samples, retaining with probability p.--thin-indiv-count <n>โ randomly remove samples until n of them remain.--filter <f> <val(s)...>โ exclude all samples without a 3rd column entry in the given file matching one of the given space-separated value(s).--mfilter <n>โ match against the (n+2)th column instead. fancy ๐--geno [val]โ exclude variants with missing call frequencies greater than a threshold (default0.1). โ ๏ธ Important lore: the default threshold is only applied if--genois invoked without a parameter; when--genois not invoked, no per-variant missing call frequency ceiling is enforced at all. And the other inclusion/exclusion default thresholds work exactly the same way. not me being consistent โจ--mind [val]โ exclude samples with missing call frequencies greater than a threshold (default0.1).--oblig-missing <f1> <f2>โ specify blocks of missing genotype calls for--geno/--mindto ignore. The first file should have variant IDs in the first column and block IDs in the second, while the second file should have FIDs in the first column, IIDs in the second, and block IDs in the third. structure queen ๐--pruneโ remove samples with missing phenotypes.--maf [freq]โ exclude variants with minor allele frequency lower than a threshold (default0.01).--max-maf <freq>โ exclude variants with MAF greater than the threshold.--mac <ct>(alias:--min-ac) โ exclude variants with minor allele count lower than the given threshold.--max-mac <ct>(alias:--max-ac) โ exclude variants with minor allele count greater than the given threshold.--maf-succโ Rule of succession MAF estimation (the one used in EIGENSOFT ๐งฎ). Given j observations of one allele and k >= j observations of the other, it infers a MAF of(j+1) / (j+k+2), rather than the defaultj / (j+k). math girlies rise ๐ฆ--read-freq <fn>โ estimate MAFs and heterozygote frequencies from the given--freq[x]report, instead of the input fileset.--hwe <p> ['midp'] ['include-nonctrl']โ exclude variants with Hardy-Weinberg equilibrium exact test p-values below a threshold.--me <t> <v> ['var-first']โ filter out trios and variants with Mendel error rates exceeding the given thresholds.--me-exclude-one [ratio]โ make--meexclude only one sample per trio. one. just one. ๐--qual-scores <f> [qcol] [IDcol] [skip]โ filter out variants with out-of-range quality scores. The default range is now[0, \infty ). โจ--qual-threshold <min qual score>โ set the--qual-scoresrange floor.--qual-max-threshold <max qual score>โ set the--qual-scoresrange ceiling.--allow-no-sexโ do not treat ambiguous-sex samples as having missing phenotypes in analysis commands. (Automatic with--no-sex.)--must-have-sexโ force ambiguous-sex phenotypes to missing on--make-bed/--make-just-fam/--recode/--write-covar.--filter-casesโ include only cases in the current analysis.--filter-controlsโ include only controls.--filter-malesโ include only males.--filter-femalesโ include only females.--filter-foundersโ include only founders.--filter-nonfoundersโ include only nonfounders.--nonfoundersโ include nonfounders in allele freq/HWE calculations.--make-founders ['require-2-missing'] ['first']โ clear parental IDs for those with 1+ missing parent(s). ๐ซถ--recode-allele <fn>โ with--recode A/A-transpose/AD, count alleles named in the file (otherwise A1 alleles are always counted).--output-chr <MT code>โ set the chromosome coding scheme in output files by providing the desired human mitochondrial code. (Options are'26','M','MT','0M','chr26','chrM', and'chrMT'.) ๐งฌ--output-missing-genotype <ch>โ set the code used to represent missing genotypes in output files (normally the--missing-genotypevalue).--output-missing-phenotype <s>โ set the string used to represent missing phenotypes in output files (normally the--missing-phenotypevalue).--zero-cluster <f>โ in combination with--within/--family, set blocks of genotype calls to missing. The input file should have variant IDs in the first column and cluster IDs in the second. โ ๏ธ This must now be used with--make-bedand no other output commands. periodt.--set-hh-missingโ cause--make-bedand--recodeto set heterozygous haploid genotypes to missing.--set-mixed-mt-missingโ cause--make-bedand--recodeto set mixed MT genotypes to missing.--split-x <bp1> <bp2> ['no-fail']/--split-x <build> ['no-fail']โ changes the chromosome code of all chrX variants with bp position <= bp1 or >= bp2 toXY. These build codes are supported as shorthand: ๐'b36'/'hg18'= NCBI 36,2709521/154584237'b37'/'hg19'= GRCh37,2699520/154931044'b38'/'hg38'= GRCh38,2781479/155701383
By default, PLINK errors out when no variants would be affected by --split-x; the 'no-fail' modifier (useful in scripts) overrides this. ๐
--merge-x ['no-fail']โ merge the XY chromosome back with X.--set-me-missingโ cause--make-bedto set Mendel errors to missing.--fill-missing-a2โ cause--make-bedto replace all missing calls with homozygous A2 calls.--set-missing-var-ids <t>โ given a template string with a'@'where the chromosome code should go and a'#'where the bp coordinate belongs,--set-missing-var-idsassigns chromosome-and-bp-based IDs to unnamed variants. You may also use'$1'and'$2'to refer to allele names in the template string โ and honestly this becomes essential when multiple variants share the same coordinate. no cap. ๐ฅ--new-id-max-allele-len <n>โ specify the maximum number of leading characters from allele names to include in new variant IDs (default23).--missing-var-code <string>โ change the unnamed variant code (default'.').--update-chr <f> [chrcol] [IDcol] [skip]โ update variant chromosome codes.--update-cm <f> [cmcol] [IDcol] [skip]โ update centimorgan positions.--update-map <f> [bpcol] [IDcol] [skip]โ update variant bp positions.--update-name <f> [newcol] [oldcol] [skip]โ update variant IDs.--update-alleles <fname>โ update variant allele codes.--allele1234 ['multichar']โ interpret/recode A/C/G/T alleles as 1/2/3/4. With'multichar', it converts all A/C/G/Ts in allele names to 1/2/3/4s. ๐ธ--alleleACGT ['multichar']โ the reverse of--allele1234. ๐ซ--update-ids <f>โ update sample IDs.--update-parents <f>โ update parental IDs.--update-sex <f> [n]โ update sexes. Sex (1orM= male,2orF= female,0= missing) is loaded from column n+2 (default n is1).--flip <filename>โ flip alleles (A<->T, C<->G) for the SNP IDs in the file. ๐--flip-subset <fn>โ only apply--flipto samples in the--flip-subsetfile.--flip-scan-window <ct+1>โ set the--flip-scanmax variant ct dist. (def.10).--flip-scan-window-kb <x>โ set the--flip-scanmax kb distance (default1000).--flip-scan-threshold <x>โ set the--flip-scanmin correlation (default0.5).--keep-allele-orderand--real-ref-allelesโ keep the allele order defined in the.bimfile, instead of forcing A2 to be the major allele.--real-ref-allelesalso removes'PR'from the INFO values emitted by--recode vcf{,-fid,-iid}. ๐--a1-allele <f> [a1col] [IDcol] [skip]โ force alleles in the file to A1.--a2-allele <filename> [a2col] [IDcol] [skip]โ force alleles in the file to A2. e.g."--a2-allele <VCF filename> 4 3 '#'"๐
which scrapes reference allele assignments from a VCF file, is especially useful.) like ok bestie that one's the goat fr ๐
--indiv-sort <m> [f]โ sets the FID/IID sort order. Four modes, pick ur fighter:'none'/'0'keeps samples in the order they were loaded. This is the default for non-merge operations.'natural'/'n'invokes 'natural sort', e.g.'id2'<'ID3'<'id10'. This is the default when merging.'ascii'/'a'sorts in ASCII order, e.g.'ID3'<'id10'<'id2'. chaotic but valid ๐'file'/'f'uses the order in the given file (named in the second parameter).- For now, only
--merge/--bmerge/--merge-listand--make-bed/--make-just-famrespect this flag. everyone else is just standing there ๐ง
--with-phenotype ['no-parents'] [{no-sex | female-2}]โ include more sample info in the new.covfile. more lore in the file, we love to see it โจ--dummy-coding [N] ['no-round']โ split categorical variables (ncategories,2 < n <= N, defaultNis49) inton-1binary dummy variables when writing the covariate file. turning one big vibe into a bunch of little binary vibes ๐ฆ--merge-mode <n>โ tweak--[b]merge/--merge-listbehavior with a numeric code. here's the menu, bestie:1(default) = ignore missing calls, otherwise difference -> missing2= only overwrite originally missing calls3= only overwrite when nonmissing in new file4/5= never overwrite and always overwrite, respectively6= report all mismatching calls without merging7= report mismatching nonmissing calls without merging
--merge-equal-posโ with--merge/--bmerge/--merge-list, merge variants with different names but identical positions. (Exception: same-position chromosome code0variants aren't merged.) same spot, different name, they're getting married anyway ๐--mendel-duosโ make Mendel error checks consider samples with only one parent in the dataset. single-parent representation!! ๐ซถ--mendel-multigenโ make Mendel error checks consider (great-)grandparental genotypes when parental genotype data is missing. the ancestors are being consulted ๐--ld-window <ct+1>โ set the--r/--r2max variant ct pairwise distance (usu.10).--ld-window-kb <x>โ set the--r/--r2max kb pairwise distance (usually1000).--ld-window-cm <x>โ set the--r/--r2max centimorgan pairwise distance.--ld-window-r2 <x>โ set the threshold for--r2report inclusion (usually0.2).--ld-snp <var ID>โ set the first variant in all--r/--r2pairs. main character of every pair, periodt โญ--ld-snps <vID...>โ restrict the first--r/--r2variant to the given ranges.--ld-snp-list <f>โ restrict the first--r/--r2var. to those named in the file.--list-allโ generate the'all'mode report when using--show-tagsin file mode.--tag-kb <kbs>โ set the--show-tagsmax tag kb distance (default250).--tag-r2 <val>โ set the--show-tagsmin tag r-squared (default0.8).--tag-mode2โ use two-column--show-tags(file mode) I/O format. two columns, two vibes, we move โจ--ld-xchr <code>โ set the chrX model for--indep[-pairwise],--r/--r2,--flip-scan, and--show-tags.1(default) = males coded0/1, females0/1/2(A1 dosage)2= males coded0/23= males coded0/2, but females given double weighting girls getting extra credit ๐
--blocks-max-kb <kbs>โ set the--blocksmaximum haploblock span (def.200).--blocks-min-maf <cutoff>โ adjust the--blocksMAF minimum (default0.05).--blocks-strong-lowci <x>and--blocks-strong-highci <x>โ set the--blocks"strong LD" CI thresholds (defaults0.70and0.98). a matched set, they come as a pair, no cap ๐--blocks-recomb-highci <x>โ set the'recombination'CI threshold (default0.90).--blocks-inform-frac <x>โ force haploblock<strong LD pairs>:<total informative pairs>ratios to be larger than this value (default0.95).--distance-wts exp=<x>โ when computing genomic distances, assign each variant a weight of(2q(1-q))^{-x}, whereqis the loaded or inferred MAF.--read-dists <dist file> [id file]โ load a triangular binary distance matrix instead of recalculating from scratch. skip the math, we're reading it off the shelf ๐--ppc-gap <val>โ minimum number of base pairs, in thousands, between informative pairs of markers used in the--genomePPC test.500if unspecified.--min <cutoff>โ specify minimum PI_HAT for inclusion in the--genomereport.--max <cutoff>โ specify maximum PI_HAT for inclusion in the--genomereport.--homozyg-match <>โ set minimum concordance across jointly homozygous variants for a pairwise allelic match to be declared.--pool-size <ct>โ set minimum size of pools in the"--homozyg group"report. gotta hit the minimum to get in the pool party ๐--read-genome <fn>โ load the--genomereport for--cluster/--neighbour, instead of recalculating IBS and PPC test p-values from scratch.--ppc <p-val>โ specify minimum PPC test p-value within a cluster.--mc <max size>โ specify maximum cluster size.--mcc <c1> <c2>โ specify maximum case and control counts per cluster.--K <min count>โ specify minimum cluster count.--ibm <val>โ specify minimum identity-by-missingness.--match <f> [mv]โ use covariate values to restrict clustering. Without--match-type, two samples can only be in the same cluster if all covariates match. The optional second parameter specifies a covariate value to treat as missing. no matching vibes, no shared cluster, sorry bestie ๐ซ--match-type <f>โ refine interpretation of the--matchfile. The--match-typefile is expected to be a single line with as many entries as the--matchfile has covariates;'0'entries specify "negative matches" (i.e. samples with equal covariate values cannot be in the same cluster),'1'entries specify "positive matches" (default), and'-1'causes the corresponding covariate to be ignored. 0 = no, 1 = yes, -1 = we don't see it ๐--qmatch <f> [m]and--qt <fname>โ force all members of a cluster to have similar quantitative covariate values. The--qmatchfile contains the covariate values, while the--qtfile is a list of nonnegative tolerances (and'-1's marking covariates to skip). tolerance list said: either chill or be skipped ๐ธ--pca-cluster-names <...>and--pca-clusters <fname>โ these can be used individually or in combination to define a list of clusters to use in the basic--pcacomputation. (--pca-cluster-namesexpects a space-delimited sequence of cluster names, while--pca-clustersexpects a file with one cluster name per line.) All samples outside those clusters will then be projected on to the calculated PCs. the outsiders get projected, lowkey iconic ๐ฆ--mds-plot <dims> ['by-cluster'] ['eigendecomp'] ['eigvals']โ multidimensional scaling analysis. Requires--cluster. ๐--cell <thresh>โ skip some--modeltests when a contingency table entry is smaller than the given threshold.--condition <var ID> [{dominant | recessive}]โ add one variant as a--linearor--logisticcovariate.--condition-list <f> [{dominant | recessive}]โ add variants named in the file as--linear/--logisticcovariates.--parameters <...>โ include only the given covariates/interactions in the--linear/--logisticmodels, identified by a list of 1-based indices and/or ranges of them.--tests <all> [...]โ perform a (joint) test on the specified term(s) in the--linear/--logisticmodel, identified by 1-based indices and/or ranges of them. If permutation was requested, it is based on this test.- Note that, when
--parametersis also present, the indices refer to the terms remaining AFTER pruning by--parameters. - You can use
"--tests all"to include all terms. all means ALL, bestie ๐
- Note that, when
--vif <max VIF>โ set VIF threshold for the--linearmulticollinearity check (default50).--xchr-model <code>โ set the X chromosome--linear/--logisticmodel.0= skip sex and haploid chromosomes1(default) = add sex as a covariate on X chromosome2= code male genotypes0/2instead of0/13= test for interaction between genotype and sex it's giving chemistry ๐
--lasso-select-covars [cov(s)...]โ subject some or all covariates to LASSO model selection.--adjust ['gc'] ['log10'] ['qq-plot']โ report some multiple-testing corrections.--lambda <val>โ set genomic control lambda for--adjust.--ci <size>โ report confidence intervals for odds ratios.--pfilter <val>โ filter out association test results with higher p-values.--aperm <min perms - 1> [max perms] [alpha] [beta] [init interval] [slope]โ set up to six parameters controlling adaptive permutation tests. six knobs, one beautiful machine โจ- The first two control the minimum and maximum number of permutations that may be run for each variant; default values are
5and1000000. - The next two control the early termination condition. A
100% * (1 - beta/2T)confidence interval is calculated for each empirical p-value, whereTis the total number of variants; whenever this confidence interval doesn't contain alpha, the variant is exempted from further permutation testing. Default values are0and1e-4. - The last two control when the early termination condition is checked. If a check occurs at permutation
#p, the next check occurs after<slope>p + <init interval>more permutations (rounded down). Default initial interval is1, and default slope is0.001.
- The first two control the minimum and maximum number of permutations that may be run for each variant; default values are
--mperm-saveโ save bestmax(T)permutation test statistics.--mperm-save-allโ save allmax(T)permutation test statistics. no crumbs left behind ๐--set-p <p-val>โ adjust set test significant variant p-value ceiling (default0.05).--set-r2 [v] ['write']โ adjust set test significant variant pairwise r^2 ceiling (default0.5).'write'causes violating pairs to be dumped to<output prefix>.ldset. snitches get written to a file ๐--set-max <ct>โ adjust set test maximum # of significant variants considered per set (default5).--set-test-lambda <v>โ specify genomic control correction for set test.--border <kbs>โ extend--annotaterange intervals by given # kbs.--annotate-snp-field <nm>โ set--annotatevariant ID field name.--clump-p1 <pval>โ set--clumpindex var. p-value ceiling (default1e-4).--clump-p2 <pval>โ set--clumpsecondary p-value threshold (default0.01).--clump-r2 <r^2>โ set--clumpr^2 threshold (default0.5).--clump-kb <kbs>โ set--clumpkb radius (default250).--clump-snp-field <n...>โ set--clumpvariant ID field name (default'SNP'). With multiple field names, earlier names take precedence over later ones. first come, first served, sorry to the latecomers ๐--clump-field <name...>โ set--clumpp-value field name (default'P').--clump-allow-overlapโ let--clumpnon-index vars. join multiple clumps. yes literally that. ๐--clump-verboseโ request extended--clumpreport. โจ--clump-annotate <hdr...>โ include named extra fields in--clump-verboseand--clump-bestreports. (field names can be separated with spaces or commas.) ๐--clump-range <filename>โ report overlaps between clumps and regions. ๐ฆ--clump-range-border <kb>โ stretch regions in--clump-rangefile. ๐ธ--clump-index-firstโ extract--clumpindex vars. from only first file. ๐--clump-replicateโ exclude clumps which contain secondary results from only one file. ๐--clump-bestโ report best proxy for each--clumpindex var. ๐
okay so these next flags are one big meta-analysis field-name squad โ the original description is literally sliced across the lines, so I'm serving each piece exactly as written, fr fr:
--meta-analysis-chr-field <n...>โ Set--meta-analysischromosome, variant--meta-analysis-snp-field <n...>โ ID, position, A1/A2 allele, p-value,--meta-analysis-bp-field <n...>โ standard error, and/or effective sample--meta-analysis-a1-field <n...>โ size field names.--meta-analysis-a2-field <n...>โ Defaults are'CHR','SNP','BP','A1',--meta-analysis-p-field <n...>โ'A2','P','SE', and'NMISS',--meta-analysis-se-field <n...>โ respectively. When multiple parameters--meta-analysis-ess-field <n...>โ are given to these flags, earlier names take precedence over later ones. Note that, if the numbers of cases and controls are unequal, effective sample size should be
4 / (1/<# cases> + 1/<# controls>).
--meta-analysis-report-dupsโ When a variant appears multiple times in in the same file, report that. (yes "in in" is in the original, keep it ๐)--gene-list-border <kbs>โ Extend--gene-reportregions by given # of kbs. ๐ธ--gene-subset <filename>โ Specify gene name subset for--gene-report. ๐--gene-report-snp-field <>โ Set--gene-reportvariant ID field name (default'SNP'). Only relevant with--extract. ๐ฆ--gap <kbs>โ Set"--fast-epistasis case-only"min. gap (default 1000). โจ--epi1 <p-value>โ Set--[fast-]epistasisreporting threshold (default5e-6for'boost',1e-4otherwise). ๐--epi2 <p-value>โ Set threshold for contributing toSIG_Ecount (def.0.01). ๐--je-cellmin <n>โ Set required number of observations per 3x3x2 contingency table cell for joint-effects test (default 5). ๐--q-score-range <range file> <data file> [i] [j] ['header']โ Apply--scoreto subset(s) of variants in the primary score list based on e.g. p-value ranges. ๐- * The first file should have range labels in the first column, p-value lower bounds in the second column, and upper bounds in the third column. Lines with too few entries, or nonnumeric values in the second or third column, are ignored.
- * The second file should contain a variant ID and a p-value on each nonempty line (except possibly the first). Variant IDs are read from column #i and p-values are read from column #j, where i defaults to 1 and j defaults to i+1. The
'header'modifier causes the first nonempty line of this file to be skipped.
--R-port <port #>โ Connect to Rserve on a port other than6311. ๐ธ--R-host <host>โ Connect to Rserve host. ๐--R-socket <sock>โ Connect to Rserve socket. ๐ฆ--parallel <k> <n>โ Divide the output matrix into n pieces, and only compute the kth piece. The primary output file will have the piece number included in its name, e.g.plink.rel.13orplink.rel.13.gzif k is 13. Concatenating these files in order will yield the full matrix of interest. (Yes, this can be done before unzipping.) N.B. This generally cannot be used to directly write a symmetric square matrix. Choosesquare0ortriangleshape instead, and postprocess as necessary. ๐ฅ--memory <val>โ Set size, in MB, of initial workspace malloc attempt. (Practically mandatory when using GNU parallel.) ๐--threads <val>โ Set maximum number of concurrent threads. This has one known limitation: some BLAS/LAPACK linear algebra operations are multithreaded in a way that PLINK cannot control. If this is problematic, you should recompile against single-threaded BLAS/LAPACK. ๐--d <char>โ Change variant/covariate range delimiter (normally'-'). โจ--seed <val...>โ Set random number seed(s). Each value must be an integer between0and4294967295inclusive. ๐ธ--perm-batch-size <val>โ Set number of permutations per batch for some permutation tests. ๐--output-min-p <p>โ Specify minimum p-value to write to reports. ๐ฆ--debugโ Use slower, more crash-resistant logging method. ๐
๐ Primary methods paper: Chang CC, Chow CC, Tellier LCAM, Vattikuti S, Purcell SM, Lee JJ (2015) Second-generation PLINK: rising to the challenge of larger and richer datasets. GigaScience, 4.
For further documentation and support, consult the main webpage (https://www.cog-genomics.org/plink/1.9 ) and/or the mailing list (https://groups.google.com/d/forum/plink2-users ).
SEE ALSO ๐
The full documentation for PLINK v1.90b6.16 64-bit (19 Feb is maintained as a Texinfo manual. If the info and PLINK v1.90b6.16 64-bit (19 Feb programs are properly installed at your site, the command
info PLINK v1.90b6.16 64-bit (19 Feb
should give you access to the complete manual.
and that's the whole manual, bestie โ PLINK v1.90b6.16 64-bit (19 Feb...), March 2020, PLINK(1). you're welcome, periodt ๐ โจ
๐ฆ where this page comes from
- debian bookworm: plink1.9 1.90~b6.26-220402-1 ยท GPL-3.0-or-later
- debian trixie: plink1.9 1.90~b7.7-241022-2 ยท GPL-3.0-or-later
- ubuntu jammy: plink1.9 1.90~b6.21-201019-1 ยท GPL-3.0-or-later
- ubuntu noble: plink1.9 1.90~b7.2-231211-1 ยท GPL-3.0-or-later
- ubuntu resolute: plink1.9 1.90~b7.7-241022-2 ยท GPL-3.0-or-later
- ubuntu stonking: plink1.9 1.90~b7.7-241022-2 ยท GPL-3.0-or-later
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms