| Branch | |
|
|-----------|-------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
master
| |
|
|
develop
| |
|
Work with PLINK and PLINK2 from R.
See doc/install.md
plinkr
can seamlessly run any PLINK
or PLINK2
versions.
Run PLINK:
library(plinkr)
run_plink("--help")
To call a specific version of PLINK:
run_plink(c("--help", "--noweb"), create_plink_v1_7_options())
run_plink("--help", create_plink_v1_9_options())
run_plink("--help", create_plink_v2_0_options())
Of course, you can also call PLINK to detect genetic associations :-) :
# Use the PLINK v1.9 example files
plink_v1_9 <- create_plink_v1_9_options()
ped_filename <- get_plink_example_filename("toy.ped", plink_v1_9)
map_filename <- get_plink_example_filename("toy.map", plink_v1_9)
# Do a case-control association
plinkr::run_plink(
args = c(
"--ped", ped_filename,
"--map", map_filename
)
)
basic_usage
for basic usage of PLINK, as taken
from the PLINK website, which shows a quantitative trait analysistest_assoc_qt
for the same basic usage of PLINK,
using the plinkr
interfacedemo_assoc_qt
for doing a quantitative trait
analysis using simulated data and the plinkr
interfaceassoc_qt_data <- create_assoc_qt_data(
data = create_plink_text_filenames(
map_filename = get_plinkr_filename("demo_assoc_qt.map"),
ped_filename = get_plinkr_filename("demo_assoc_qt.ped")
),
phenotype_data = create_phenotype_data_filename(
phe_filename = get_plinkr_filename("demo_assoc_qt.phe")
)
)
assoc_qt_filenames <- assoc_qt(assoc_qt_data = assoc_qt_data)
read_plink_qassoc_file(assoc_qt_filenames$qassoc_filenames[1])
assoc_qt_data <- create_assoc_qt_data(
data = create_plink_bin_filenames(
bed_filename = get_plinkr_filename("demo_assoc_qt.bed"),
bim_filename = get_plinkr_filename("demo_assoc_qt.bim"),
fam_filename = get_plinkr_filename("demo_assoc_qt.fam")
),
phenotype_data = create_phenotype_data_filename(
phe_filename = get_plinkr_filename("demo_assoc_qt.phe")
)
)
assoc_qt_filenames <- assoc_qt(assoc_qt_data = assoc_qt_data)
read_plink_qassoc_file(assoc_qt_filenames$qassoc_filenames[1])
plinkr
can seamlessly use PLINK
/PLINK2
in-memory-data or files.
assoc_qt_data <- create_demo_assoc_qt_data()
# Prove that this is PLINK text data
check_plink_text_data(assoc_qt_data$data)
assoc_qt_params <- create_test_assoc_qt_params()
assoc_qt(
assoc_qt_data = assoc_qt_data,
assoc_qt_params = assoc_qt_params
)
To convert the in-memory data to PLINK binary format and do the same quantitative trait analysis:
assoc_qt_data$data <- convert_plink_text_data_to_plink_bin_data(
assoc_qt_data$data
)
# Prove that this is PLINK binary data
check_plink_bin_data(assoc_qt_data$data)
assoc_qt(
assoc_qt_data = assoc_qt_data,
assoc_qt_params = assoc_qt_params
)
demo_assoc_qt
for a walk-through of the data that
is simulated by defaultcreate_demo_assoc_qt_params
for many examples how
data can be simulatedplinkr
can read and save many types of PLINK files. Below is an
overview. List from the PLINK file format
reference.
| File extension | plink
read function |
|---------------------|----------------------------------|
| .adjusted
| read_plink_adjusted_file
|
| .allele.no.snp
| :construction: |
| .assoc
| read_plink_assoc_file
|
| .assoc.adjusted
| read_plink_assoc_adjusted_file
|
| .assoc.dosage
| :construction: |
| .assoc.fisher
| :construction: |
| .assoc.linear
| :construction: |
| .assoc.logistic
| :construction: |
| .auto.R
| :construction: |
| .bcf
| :construction: |
| .beagle.dat
| :construction: |
| .bed
| read_plink_bed_file
|
| .bim
| read_plink_bin_file
|
| PLINK binary data | read_plink_bin_data
|
| PLINK2 binary data | read_plink2_bin_data
|
| .blocks*
| :construction: |
| .chr-*.dat
| :construction: |
| .chr-*.map
| :construction: |
| .clst
| :construction: |
| .clumped*
| :construction: |
| .cluster*
| :construction: |
| .cmh
| :construction: |
| .cmh2
| :construction: |
| .cnv
| :construction: |
| .cnv.indiv
| :construction: |
| .cnv.overlap
| :construction: |
| .cnv.summary
| :construction: |
| .cov
| read_plink_cov_file
|
| .dfam
| :construction: |
| .diff
| :construction: |
| .dist
| :construction: |
| .dupvar
| :construction: |
| .eigenvec*
| :construction: |
| .epi.*
| :construction: |
| .fam
| read_plink_fam_file
|
| .flipscan
| :construction: |
| .frq
| read_plink_frq_file
|
| .frq.cc
| :construction: |
| .frq.count
| :construction: |
| .frq.strat
| read_plink_frq_strat_file
|
| .frqx
| :construction: |
| .fst
| :construction: |
| .gen
| :construction: |
| .genome
| :construction: |
| .grm
| :construction: |
| .grm.N.bin
| :construction: |
| .grm.bin
| :construction: |
| .gvar
| :construction: |
| .het
| :construction: |
| .hh
| :construction: |
| .hom
| :construction: |
| .hom.indiv
| :construction: |
| .hom.overlap*
| :construction: |
| .hom.summary
| :construction: |
| .homog
| :construction: |
| .hwe
| :construction: |
| .ibc
| :construction: |
| .imiss
| read_plink_imiss_file
|
| .info
| :construction: |
| .lasso
| :construction: |
| .ld
| read_plink_ld_file
|
| .ldset
| :construction: |
| .lgen
| :construction: |
| .list
| :construction: |
| .lmiss
| read_plink_lmiss_file
|
| .log
| read_plink_log_file
|
| .map
| read_plink_map_file
|
| .mdist
| :construction: |
| .mdist.missing
| :construction: |
| .mds
| :construction: |
| .*mendel
| :construction: |
| .meta
| :construction: |
| .mibs
| :construction: |
| .missing
| :construction: |
| .missing.hap
| :construction: |
| .model
| :construction: |
| .mperm
| :construction: |
| .nearest
| :construction: |
| .occur.dosage
| :construction: |
| .out.dosage
| :construction: |
| .ped
| read_plink_ped_file
|
| .perm
| :construction: |
| .phe
| read_plink_phe_file
|
| .pphe
| :construction: |
| .prob
| :construction: |
| .profile
| :construction: |
| .qassoc
| read_plink_qassoc_file
|
| .qassoc.gxe
| :construction: |
| .qassoc.means
| :construction: |
| .qfam.*
| :construction: |
| .range.report
| :construction: |
| .raw
| :construction: |
| .recode.*.txt
| :construction: |
| .recode.phase.inp
| :construction: |
| .recode.strct_in
| :construction: |
| .ref
| :construction: |
| .rel
| :construction: |
| .rlist
| :construction: |
| .sample
| :construction: |
| .set
| :construction: |
| .set.{perm,mperm}
| :construction: |
| .set.table
| :construction: |
| .sexcheck
| :construction: |
| .simfreq
| read_plink_simfreq_file
|
| .tags.list
| :construction: |
| .tdt
| :construction: |
| .tdt.poo
| :construction: |
| PLINK text data | read_plink_text_data
|
| .tfam
| :construction: |
| .tped
| :construction: |
| .traw
| :construction: |
| .twolocus
| :construction: |
| .var.ranges
| :construction: |
| .vcf
| :construction: |
| Association type | Data type | General function | Specialized function |
|------------------|-------------------|---------------------------|-----------------------------------------------|
| Case-control | PLINK1 text data | assoc
| assoc_on_plink_text_data
|
| Case-control | PLINK1 bin data | assoc
| assoc_on_plink_bin_data
|
| Case-control | PLINK2 bin data | assoc
| assoc_on_plink2_bin_data
|
| Case-control | PLINK1 text files | assoc
:construction: | assoc_on_plink_text_files
:construction: |
| Case-control | PLINK1 bin files | assoc
:construction: | assoc_on_plink_bin_files
:construction: |
| Case-control | PLINK2 bin files | assoc
:construction: | assoc_on_plink2_bin_files
:construction: |
| Quantitative | PLINK1 text data | assoc_qt
| assoc_qt_on_plink_text_data
|
| Quantitative | PLINK1 bin data | assoc_qt
| assoc_qt_on_plink_bin_data
|
| Quantitative | PLINK2 bin data | assoc_qt
| assoc_qt_on_plink2_bin_data
|
| Quantitative | PLINK1 text files | assoc_qt
:construction: | assoc_qt_on_plink_text_files
:construction: |
| Quantitative | PLINK1 bin files | assoc_qt
:construction: | assoc_qt_on_plink_bin_files
:construction: |
| Quantitative | PLINK2 bin files | assoc_qt
:construction: | assoc_qt_on_plink2_bin_files
:construction: |
plinkr
allows to convert between any PLINK and PLINK2 files.
| From | To | Function name |
|---------------------|---------------------|---------------------------------------------------------------|
| PLINK1 text files | PLINK1 binary files | convert_plink_text_files_to_plink_bin_files
|
| PLINK1 text files | PLINK2 binary files | convert_plink_text_files_to_plink2_bin_files
|
| PLINK1 binary files | PLINK text files | convert_plink_bin_files_to_plink_text_files
|
| PLINK1 binary files | PLINK2 binary files | convert_plink_bin_files_to_plink2_bin_files
|
| PLINK2 binary files | PLINK text files | convert_plink2_bin_files_to_plink_text_files
:construction: |
| PLINK2 binary files | PLINK binary files | convert_plink2_bin_files_to_plink_bin_files
|
| :construction: | :construction: | :construction: |
| any type of files | PLINK text files | convert_files_to_plink_text_files
:construction: |
| any type of files | PLINK1 binary files | convert_files_to_plink_bin_files
:construction: |
| any type of files | PLINK2 binary files | convert_files_to_plink2_bin_files
:construction: |
| PLINK1 binary files | SAIGE files | create_bgen_files_for_saige
:construction: |
| PLINK1 binary files | PLINK2 VCF files | convert_plink_bin_files_to_plink_vcf_files
:construction: |
plinkr
allows to convert between any PLINK and PLINK2 data.
| From | To | Function name |
|--------------------|--------------------|-------------------------------------------------------------|
| PLINK1 text data | PLINK1 binary data | convert_plink_text_data_to_plink_bin_data
|
| PLINK1 text data | PLINK2 binary data | convert_plink_text_data_to_plink2_bin_data
|
| PLINK1 binary data | PLINK text data | convert_plink_bin_data_to_plink_text_data
:construction: |
| PLINK1 binary data | PLINK2 binary data | convert_plink_bin_data_to_plink2_bin_data
|
| PLINK2 binary data | PLINK text data | convert_plink2_bin_data_to_plink_text_data
:construction: |
| PLINK2 binary data | PLINK binary data | convert_plink2_bin_data_to_plink_bin_data
|
See doc/faq.md
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.