Miscellaneous#

Logging#

fastdfe uses the standard Python logging module for logging. By default, fastdfe logs to the console at the INFO level. The logging level can be changed, for example to DEBUG, as follows:

import fastdfe as fd

fd.logger.setLevel("DEBUG")
library(fastdfe)
fd <- load_fastdfe()

fd$logger$setLevel("DEBUG")

The progress bars are disabled as follows:

fd.Settings.disable_pbar = True
fd$Settings$disable_pbar <- TRUE

Debugging#

When an unexpected error occurs, disabling parallelization yields a more descriptive stack trace (see parallelize in BaseInference and JointInference).

Seeding#

fastdfe is seeded by default to ensure reproducibility (see seed in BaseInference and Parser). Randomness is required for various computational tasks, such as bootstrapping, choosing initial values for different optimization runs, and taking subsamples during VCF parsing.

Object-oriented design#

fastdfe follows an object-oriented design. Objects such as BaseInference take their configuration on construction, and expose their results through properties and methods.