ioUtils.jl
PopGenCore.jl/src/Utils/ioUtils.jl
| 📦 not exported | 🟪 exported by PopGenCore.jl | 🔵 exported by PopGen.jl |
|---|
📦 isbinary
isbinary(filepath::String)
Returns true if the filepath is a binary file.
🟪 findploidy
findploidy(genotypes::T) where T<:AbstractVector
Used internally in the genepop and delimited file parsers to scan the genotypes
of a sample and return the ploidy of the first non-missing locus.
🟪 phase
phase(loc::T, type::DataType, digit::Int) where T<:AbstractString
phase(loc::Missing, type::DataType, digit::Int) = missing
phase(loc::T, type::DataType, digits::T) where T<:Integer
Takes a String of numbers or Integers and returns a typed locus appropriate for PopGen.jl as used in the
genepop and csv file parsers. Use type to specify output type (Int8 or Int16),
and digit to specify the number of digits/characters used per allele in a locus.
Examples
ph_locus = phase("128114", Int16, 3)
map(i -> phase(i, Int16, 3), ["112131", "211112", "001003", "516500"])
# or #
[phase(i, Int8, 2) for i in ["0101", "0103", "0202", "0103"]]
🟪 unphase
unphase(geno::T; digits::Int = 3, ploidy::Int = 2, miss::Int = 0) where T <: Genotype
unphase(geno::Missing; digits::Int = 3, ploidy::Int, miss::Int = 0)
Takes a Genotype (e.g. (131, 94)) and returns a string of concatenated
alleles padded with n number of zeroes, where n is given by digits = .
missing values are returned as either a string of 'digits × ploidy' zeroes (miss = 0)
or "-9" (miss = -9). The ploidy flag is only relevant for unphasing missing genotypes
and not used otherwise.
Example
unphase((1,2,3,4), digits = 3)
"001002003004"
unphase(missing, digits = 2, ploidy = 2, miss = -9)
"-9"
unphase(missing, digits = 2, ploidy = 2, miss = 0)
"0000"