Welcome to pylibseq’s documentation!

Contents:

Functions and classes

Summary statistics

class libsequence.summstats.PolySIM(self: libsequence.summstats.PolySIM, arg0: Sequence::SimData) → None

Bases: libsequence.summstats.PolySNP

Class to calculate summary statistics for 0/1-encoded data in a libsequence.polytable.SimData object.

Note

Public API shared with libsequence.summstats.PolySNP.

class libsequence.summstats.PolySNP(self: libsequence.summstats.PolySNP, pt: Sequence::PolyTable, haveOutgroup: bool=False, outgroup: int=0, totMuts: bool=True) → None

Bases: pybind11_builtins.pybind11_object

Class to calculate summary statistics.

fulid(self: libsequence.summstats.PolySNP) → float

Fu and Li’s D

fulidstar(self: libsequence.summstats.PolySNP) → float

Fu and Li’s D*

fulif(self: libsequence.summstats.PolySNP) → float

Fi and Li’s F

fulifstar(self: libsequence.summstats.PolySNP) → float

Fu and Li’s F*

hapdiv(self: libsequence.summstats.PolySNP) → float

Haplotype diversity

hprime(self: libsequence.summstats.PolySNP, likeThorntonAndolfatto: bool=False) → float

Normalized version of Fay and Wu’s \(\hat\theta_H\)

nhaps(self: libsequence.summstats.PolySNP) → int

Number of haplotypes

numexternalmutations(self: libsequence.summstats.PolySNP) → int

Number of derived singletons.

numpoly(self: libsequence.summstats.PolySNP) → int

Total number of variable positions.

numsingletons(self: libsequence.summstats.PolySNP) → int

Number of singletons.

rm(self: libsequence.summstats.PolySNP) → int

Hudson and Kaplan’s lower bound on the number of recombination events.

tajimasd(self: libsequence.summstats.PolySNP) → float

Tajima’s D.

thetah(self: libsequence.summstats.PolySNP) → float

Fay and Wu’s \(\hat\theta_H\)

thetal(self: libsequence.summstats.PolySNP) → float

\(\hat\theta\) from site homozygosity. See eqn. 1 of PMC1456302.

thetapi(self: libsequence.summstats.PolySNP) → float

Sum of site heterozygosity/mean pairwise differences.

thetaw(self: libsequence.summstats.PolySNP) → float

Watterson’s \(\hat\theta\)

wallsb(self: libsequence.summstats.PolySNP) → float

Wall’s B

wallsbprime(self: libsequence.summstats.PolySNP) → int

Wall’s B’

wallsq(self: libsequence.summstats.PolySNP) → float

Wall’s Q

class libsequence.summstats.StateCounter(self: libsequence.summstats.StateCounter, gapchar: str='-') → None

Bases: pybind11_builtins.pybind11_object

Tally up the number of occurrences of value polymorphism characters at a site.

a

Number of times ‘A’ or ‘a’ was seen at a site.

c

Number of times ‘C’ or ‘c’ was seen at a site.

g

Number of times ‘G’ or ‘g’ was seen at a site.

ndna

Number of times a non-DNA character was seen at a site.

nstates(self: libsequence.summstats.StateCounter) → int

The total number of character states observed at a site.

one

Number of times ‘1’ was seen at a site.

t

Number of times ‘T’ or ‘t’ was seen at a site.

zero

Number of times ‘0’ was seen at a site.

libsequence.summstats.garudStats(d: Sequence::SimData) → dict

Returns the H1, H12, and H2/H1 statistics from PMC4338236 as a dict.

Parameters:d – A libsequence.polytable.SimData.
libsequence.summstats.ld(p: Sequence::PolyTable, have_outgroup: bool=False, outgroup: int=0, mincount: int=1, maxd: float=1.7976931348623157e+308) → list

Return pairwise LD statistics.

Parameters:
  • p – A libsequence.polytable.PolySites or libsequence.polytable.SimData.
  • have_outgroup – (False) Boolean–is outgroup sequence present in p?
  • outgroup
    1. The index of the outgroup sequence in p.
  • mincount – Do not include site pairs with MAF < mincount.
  • maxd – Do not include site pairs separated by >= maxd.
Return type:

list of dict

libsequence.summstats.lhaf(arg0: Sequence::SimData, arg1: float) → List[float]

\(l-HAF\) from Ronen et al. DOI:10.1371/journal.pgen.1005527

Parameters:
  • pt – A libsequence.polytable.PolyTable
  • l – The scaling factor for the statistic. See paper for details.
Returns:

The \(l-HAF\) statistic for each haplotype in pt

Return type:

list

Note

Only libsequence.polytable.SimData types currently supported.

libsequence.summstats.nSLiHS(d: Sequence::SimData, core_snps: object=None, gmap: object=None) → List[Tuple[float, float, int]]

“Raw”/unstandardized \(nS_L\) and iHS from Ferrer-Admetlla et al. doi:10.1093/molbev/msu077.

param pt:A libsequence.polytable.PolyTable
Parameters:core_snps

(None) Indexes of SNPs to analyze as “core” SNPs. :param gmap: (None) A dictionary relating each position in pt to its location on a genetic map. :return: A list of (nSL,iHS) tuples :rtype: list

Note

Only libsequence.polytable.SimData types currently supported

Fst

class libsequence.fst.Fst

Bases: pybind11_builtins.pybind11_object

__init__(*args, **kwargs) Overloaded function.

  1. __init__(self: libsequence.fst.Fst, polytable: Sequence::PolyTable, config: List[int], haveOutgroup: bool=False, outgroup: int=0) -> None
  2. __init__(self: libsequence.fst.Fst, polytable: Sequence::PolyTable, config: List[int], weights: List[float], haveOutgroup: bool=False, outgroup: int=0) -> None
fixed(self: libsequence.fst.Fst, arg0: int, arg1: int) → Set[float]
hbk(self: libsequence.fst.Fst) → float

Hudson, Boos, Kaplan (1992) MBE

hsm(self: libsequence.fst.Fst) → float

Hudson, Slatkin, Maddison (1992) Genetics

piB(self: libsequence.fst.Fst) → float

\(\pi_B= \frac{\sum_{i<j}w_i w_j \pi_{ij}}{\sum_{i<j}w_i w_j}\)

piD(self: libsequence.fst.Fst) → float

\(\pi_D = \frac{\pi_T - \pi_S}{2 \sum_{i<j}w_i w_j}\)

piS(self: libsequence.fst.Fst) → float

\(\pi_S = \frac{\sum_i w_i^2 \pi_{ii}}{\sum_i w_i^2}\)

piT(self: libsequence.fst.Fst) → float

\(\pi_T = \sum_i w_i^2 \pi_{ii} + 2\sum_{i<j}w_i w_j \pi_{ij}\)

priv(self: libsequence.fst.Fst, arg0: int, arg1: int) → Tuple[Set[float], Set[float]]
shared(self: libsequence.fst.Fst, arg0: int, arg1: int) → Set[float]
slatkin(self: libsequence.fst.Fst) → float

Slatkin (1991) Genetics

Indices and tables