Plink.jl
PopGenCore.jl/src/io/Plink.jl
| 📦 not exported | 🟪 exported by PopGenCore.jl | 🔵 exported by PopGen.jl |
|---|
📦 _plinkindex
_plinkindex(s::Matrix{UInt8}, i::Integer, j::Integer)
_plinkindex(s::Matrix{UInt8})
Tthis function copies the getindex tool OpenMendel/SnpArrays.jl uses to pull out the byte values from the compressed hex genotypes Repo: https://github.com/OpenMendel/SnpArrays.jl
📦 _SNP
_SNP(genotype::UInt8)
_SNP(genomatrix::AbstractArray{UInt8})
- 00 Homozygous for first allele (0x00)
- 01 Missing genotype (0x01)
- 10 Heterozygous (0x02)
- 11 Homozygous for second allele in .bim file (0x03)
📦 _plinkped
_plinkped(infile::String, keepfields::Union{Symbol,Vector{Symbol}} = :all, silent::Bool = false)
📦 _plinkbed
_plinkbed(infile::String, famfields::Union{Symbol,Vector{Symbol}} = :all, bimfields::Union{Symbol,Vector{Symbol}} = :all, silent::Bool = false)
📦 _genoconversion
_genoconversion(genotype::T) where T<:Genotype = join(genotype, " ")
_genoconversion(genotype::Missing) = "0 0"
🟪🔵 plink
plink(infile::String; famfields::Union{Symbol,Vector{Symbol}} = :all, bimfields::Union{Symbol,Vector{Symbol}} = :all, silent::Bool = false)
Read a PLINK .ped or binary .bed file into memory as a PopData object.
Requires an accompanying .fam file in the same directory, but an accompanying .bim file is optional.
infile::String: path to.pedor.bedfile
Keyword Arguments
famfields::Symbol|Vector{Symbol}: which additional fields to import from the.famfile:all[default]:none- any one or combination of
[:sire, :dam, :sex, :phenotype]
bimfields::Symbol|Vector{Symbol}: which additional fields to import from the optional.bimfile:all[default]:none- any one or combination of
[:chromosome, :cm, :bp]
silent::Bool: whether to print file information during import (default:false)
Example
parakeet = plink("datadir/parakeet.ped", famfields = :sex)
parrot = plink("datadir/parrot.bed", famfields = [:sire, :dam], bimfields = :chromosome)
plink(data::PopData; filename::String)
Write a biallelic PopData object to PLINK .ped format with an accompanying
.fam file. Genotypes are coded by the PLINK standard:
- Integers are the alleles
0encodes missing- After column 6, every two numbers indicate a diploid genotype.
Example
sharks = dropmultiallelic(@gulfsharks) ;
plink(sharks, filename = "biallelic_sharks.ped")