Dowser

B-cell receptor phylogenetics in the Immcantation framework

dowser.readthedocs.io
Accepts:CSVTSVRDARDS

What it does

Dowser is an R package in the Immcantation framework for reconstructing and analysing B-cell receptor (BCR) phylogenies. It builds lineage trees from BCR sequences, reconstructs germline and intermediate (internal-node) sequences, and statistically tests for evidence of B-cell evolution, migration and differentiation.

It accepts AIRR-formatted data and Change-O clone tables, supports several tree-building algorithms — maximum parsimony, maximum likelihood, and the immunoglobulin-specific IgPhyML — and can analyse paired heavy/light chains.

  • Multiple tree builders: pratchet, pml, dnapars, dnaml, IgPhyML and RAxML
  • Germline and intermediate (internal-node) sequence reconstruction
  • Discrete trait analysis (migration, differentiation, isotype switching)
  • Measurable-evolution / time-resolved analysis
  • Paired heavy/light chain support
  • Publication-quality lineage visualisations

Accepted input types

Input typeWhat the framework does with it
TSVAIRR / Change-O clone table (tab-separated), used directly as the clone table. Enable column mapping if your headers differ from the canonical AIRR keys.
CSVThe same AIRR / Change-O clone table in comma-separated form; converted to the canonical table before the R service runs.
RDA / RDSSaved R data objects containing the clone/AIRR data, loaded directly by the R service.⚠ NEEDS VERIFICATION

Form fields

Every field shown in this method's form, generated from the package's field definitions so it always matches the live form. The mapping column is filled only where a field corresponds clearly to a native method parameter.

Input Mapping

FieldWhat it is / used forAllowed valuesDefaultMaps to method parameterVisible when
Enable input column mappingdoMapping
When true, map uploaded table headers to canonical Dowser AIRR keys before running.Yes / NoNoN/A (wrapper-specific)Always
Sequence ID columncolumn_map.sequence_id
—text—N/A (wrapper-specific)Shown when Enable input column mapping is enabled
Clone ID columncolumn_map.clone_id
—text—N/A (wrapper-specific)Shown when Enable input column mapping is enabled
Aligned sequence columncolumn_map.sequence_alignment
—text—N/A (wrapper-specific)Shown when Enable input column mapping is enabled
Germline alignment columncolumn_map.germline_alignment_d_mask
—text—N/A (wrapper-specific)Shown when Enable input column mapping is enabled
V call columncolumn_map.v_call
—text—N/A (wrapper-specific)Shown when Enable input column mapping is enabled
J call columncolumn_map.j_call
—text—N/A (wrapper-specific)Shown when Enable input column mapping is enabled
Junction length columncolumn_map.junction_length
—text—N/A (wrapper-specific)Shown when Enable input column mapping is enabled
Junction column (optional if junction_length mapped)column_map.junction
—text—N/A (wrapper-specific)Shown when Enable input column mapping is enabled
Cell ID column (paired H/L)column_map.cell_id
—text—N/A (wrapper-specific)Shown when Enable input column mapping is enabled and Chain mode = HL
Locus column (paired H/L)column_map.locus
—text—N/A (wrapper-specific)Shown when Enable input column mapping is enabled and Chain mode = HL
V region start columncolumn_map.v_region_start
—text—N/A (wrapper-specific)Shown when Enable input column mapping is enabled and Use region columns (formatClones) is enabled
V region end columncolumn_map.v_region_end
—text—N/A (wrapper-specific)Shown when Enable input column mapping is enabled and Use region columns (formatClones) is enabled
J region start columncolumn_map.j_region_start
—text—N/A (wrapper-specific)Shown when Enable input column mapping is enabled and Use region columns (formatClones) is enabled
J region end columncolumn_map.j_region_end
—text—N/A (wrapper-specific)Shown when Enable input column mapping is enabled and Use region columns (formatClones) is enabled

Tree Construction

FieldWhat it is / used forAllowed valuesDefaultMaps to method parameterVisible when
Analysis modeanalysis_mode
—tree_only, tree_with_internal_sequences, discrete_trait_analysis, time_evolutiontree_only—Always
Tree build methodtree_buildRequired
—pratchet, pml, dnapars, dnaml, igphyml, raxmlpratchetSelects Dowser's tree-building algorithm — the enum values are Dowser's own build options (pratchet, pml, dnapars, dnaml, igphyml, raxml).Always
Min seq/cloneminseq
—integer3Dowser formatClones minimum sequences per clone.Always
Threadsnproc
—integer1—Always
Random seedseed
Seed for stochastic tree search (e.g. the pratchet parsimony ratchet). Fixing this makes a run reproducible: the same input, parameters and seed produce the same tree. Also forwarded as rseed to RAxML-NG / IgPhyML builders, which ignore R's RNG.integer (≥ 0)42—Always
Collapse identical sequencescollapse_identical_sequences
—Yes / NoYesDowser formatClones collapse-identical-sequences option.Always
Trait columns to preserve (advanced)trait_fields
Optional comma- or space-separated columns passed to Dowser formatClones as traits, so identical sequences with different trait values are not collapsed together. In DTA mode, leave empty to use Trait field (DTA).text—Passed to Dowser formatClones as traits.Always
Pad to codon length (formatClones)mod3
When true, Dowser formatClones pads sequence ends to make lengths multiples of three. Default false in this framework to avoid changing sequence lengths unless requested.Yes / NoNoDowser formatClones mod3 (pad sequence lengths to multiples of three).Always
Remove stop-codon sequences (formatClones)filterstop
When true, Dowser formatClones removes sequences with in-frame stop codons. Default false in this framework to avoid silent sequence removal.Yes / NoNoDowser formatClones filterstop (drop sequences with in-frame stop codons).Always
Use region columns (formatClones)use_regions
When true, Dowser formatClones assigns CDR/FWR regions. Requires region start/end columns in the input.Yes / NoNoDowser formatClones region assignment (uses CDR/FWR region columns).Always
Collapse internal nodescollapse_internal_nodes
—Yes / NoYes—Always
Check divergencecheck_divergence
—Yes / NoYes—Always

Output & Plotting

FieldWhat it is / used forAllowed valuesDefaultMaps to method parameterVisible when
Tip label column (display only)label_field
Display labels only; canonical Newick always uses sequence_id.textsequence_id—Always
Color tips by (column)tip_color_by
—text——Always
Unknown fill (plotting only)unknown_value
—textunknown—Always
Extra annotation columnsannotation_fields
—text——Always
Numeric annotation columnsnumeric_annotation_fields
—text——Always
Additional columns to retaincolumns
—text——Always
Tip size (constant)tipsize
—number2—Always
Scale tip size by (column)tip_size_by
Numeric metadata column for variable tip sizes in Method Output PNG (e.g. duplicate_count). Overrides constant tipsize when the column is present after formatClones.text——Always
Max tip categoriesmax_tip_categories
—integer30—Always

Internal Sequences

FieldWhat it is / used forAllowed valuesDefaultMaps to method parameterVisible when
Return internal sequencesreturn_internal_sequences
—Yes / NoNo—Shown when Analysis mode = tree_with_internal_sequences or Analysis mode = tree_only or Analysis mode = discrete_trait_analysis
Show node numbers in plotshow_node_numbers
—Yes / NoNo—Shown when Return internal sequences is enabled or Analysis mode = tree_with_internal_sequences
Export all sequences FASTAexport_all_sequences_fasta
—Yes / NoNo—Shown when Return internal sequences is enabled

Discrete Trait Analysis

FieldWhat it is / used forAllowed valuesDefaultMaps to method parameterVisible when
Trait field (DTA)trait_field
—text——Shown when Analysis mode = discrete_trait_analysis
Trait modeltrait_model
—unconstrained, isotype_irreversibleunconstrained—Shown when Analysis mode = discrete_trait_analysis
Custom trait model filemodelfile
Paste Dowser parsimony model-file content.text—Custom Dowser parsimony trait model-file content.Shown when Analysis mode = discrete_trait_analysis
DTA permutationspermutations
—integer100—Shown when Analysis mode = discrete_trait_analysis
Tip switch thresholdtip_switch
—integer20—Shown when Analysis mode = discrete_trait_analysis
Permute allpermute_all
—Yes / NoNo—Shown when Analysis mode = discrete_trait_analysis
SP test alternativealternative
—greater, less, two.sidedgreater—Shown when Analysis mode = discrete_trait_analysis
Run testPSrun_test_ps
—Yes / NoYesRuns Dowser testPS (parsimony-score association test).Shown when Analysis mode = discrete_trait_analysis
Run testSPrun_test_sp
—Yes / NoYesRuns Dowser testSP (switch-proportion test).Shown when Analysis mode = discrete_trait_analysis
Run testSCrun_test_sc
—Yes / NoYesRuns Dowser testSC (switch-count test).Shown when Analysis mode = discrete_trait_analysis
Isotype order (CSR)isotype_order
—text——Shown when Analysis mode = discrete_trait_analysis and Trait model = isotype_irreversible
Isotype exceptionsisotype_exceptions
—textIGHD,IGHM—Shown when Analysis mode = discrete_trait_analysis and Trait model = isotype_irreversible

IgPhyML

FieldWhat it is / used forAllowed valuesDefaultMaps to method parameterVisible when
IgPhyML partition modelpartition_model
—single, cf, hl, hlf, hlc, hlcfsingleIgPhyML partition model (single, cf, hl, hlf, hlc, hlcf).Shown when Tree build method = igphyml
Return IgPhyML parametersreturn_igphyml_parameters
—Yes / NoYes—Shown when Tree build method = igphyml

Paired H/L Chains

FieldWhat it is / used forAllowed valuesDefaultMaps to method parameterVisible when
Chain modechain_mode
—H, HLH—Always
Heavy locusheavy_locus
—textIGH—Shown when Chain mode = HL
Split light chainssplit_light
—Yes / NoNo—Shown when Chain mode = HL
Light chain traitslight_traits
—Yes / NoNo—Shown when Chain mode = HL
Major light chain onlymajoronly
—Yes / NoNo—Shown when Chain mode = HL

Time Evolution

FieldWhat it is / used forAllowed valuesDefaultMaps to method parameterVisible when
Time fieldtime_field
—text——Shown when Analysis mode = time_evolution
Time evolution permutationstime_permutations
—integer100—Shown when Analysis mode = time_evolution
Parse time as numerictime_as_numeric
—Yes / NoYes—Shown when Analysis mode = time_evolution

Conditional fields & behaviour

Fields that appear or change based on other inputs
  • Raw FASTA is not accepted — Dowser expects sequences already processed through AIRR / Change-O / IgBLAST / IMGT.
  • The Discrete Trait Analysis fields appear only in that analysis mode; the IgPhyML partition options appear only when the tree builder is IgPhyML; the paired heavy/light options appear only in HL chain mode.