# bdaisley/isolater architecture

> Architecture diagram of the GitHub repository bdaisley/isolater, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/bdaisley/isolater
- Repository: https://github.com/bdaisley/isolater

## Overview

isolateR is an R package for processing Sanger marker sequences into quality-controlled results, taxonomic assignments, and microbial strain libraries. Its documented user workflow begins with ABIF (.ab1) files: `isoALL` wraps quality control, taxonomy assignment, and library generation; the three stages are also available individually. Taxonomy uses type-strain databases and VSEARCH global alignment, while quality and taxonomic stages can export interactive HTML and CSV results. Optional capabilities include FASTA export and phylogenetic tree generation. The graph follows README-documented workflow links; source excerpts were not provided, so uncertain internal wiring is omitted.

Main entry points: [`R/isoTAX_function.R`](https://github.com/bdaisley/isolater/blob/main/R/isoTAX_function.R) (Taxonomy assignment), [`R/isoQC_function.R`](https://github.com/bdaisley/isolater/blob/main/R/isoQC_function.R) (Sequence QC), [`R/isoALL.R`](https://github.com/bdaisley/isolater/blob/main/R/isoALL.R) (Batch workflow), [`R/isoLIB_function.R`](https://github.com/bdaisley/isolater/blob/main/R/isoLIB_function.R) (Strain library)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_workflow["Workflow orchestration"]
  node_isoall["Batch workflow<br/>[isoALL.R]"]
end

subgraph group_analysis["Sequence analysis"]
  node_qc["Sequence QC<br/>[isoQC_function.R]"]
  node_tax["Taxonomy assignment<br/>[isoTAX_function.R]"]
  node_lib["Strain library<br/>[isoLIB_function.R]"]
end

subgraph group_outputs["Results and visualization"]
  node_tree["Phylogenetic trees<br/>[make_tree.R]"]
  node_fasta["FASTA export<br/>[make_fasta.R]"]
  node_html["Interactive HTML<br/>[isoQC_function.R]"]
  node_csv["CSV results"]
end

subgraph group_support["Database and utilities"]
  node_database[("Type-strain database<br/>[get_db.R]")]
  node_vsearch["VSEARCH<br/>[get_vsearch.R]"]
end

node_user(("Researcher"))
node_abif["ABIF inputs"]

node_user -->|"runs workflow"| node_isoall
node_user -->|"runs QC"| node_qc
node_user -->|"runs taxonomy"| node_tax
node_user -->|"builds library"| node_lib
node_abif -->|"provides sequences"| node_qc
node_isoall -->|"runs QC"| node_qc
node_isoall -->|"runs taxonomy"| node_tax
node_isoall -->|"builds library"| node_lib
node_qc -->|"exports results"| node_csv
node_qc -->|"exports sequences"| node_fasta
node_qc -->|"exports report"| node_html
node_csv -->|"provides sequences"| node_tax
node_tax -->|"searches against"| node_database
node_tax -->|"aligns with"| node_vsearch
node_tax -->|"exports assignments"| node_csv
node_tax -->|"exports report"| node_html
node_csv -->|"provides assignments"| node_lib
node_lib -->|"exports library"| node_csv
node_tax -.->|"supports visualization"| node_tree

click node_isoall "https://github.com/bdaisley/isolater/blob/main/R/isoALL.R"
click node_qc "https://github.com/bdaisley/isolater/blob/main/R/isoQC_function.R"
click node_tax "https://github.com/bdaisley/isolater/blob/main/R/isoTAX_function.R"
click node_lib "https://github.com/bdaisley/isolater/blob/main/R/isoLIB_function.R"
click node_database "https://github.com/bdaisley/isolater/blob/main/R/get_db.R"
click node_vsearch "https://github.com/bdaisley/isolater/blob/main/R/get_vsearch.R"
click node_tree "https://github.com/bdaisley/isolater/blob/main/R/make_tree.R"
click node_fasta "https://github.com/bdaisley/isolater/blob/main/R/make_fasta.R"
click node_html "https://github.com/bdaisley/isolater/blob/main/R/isoQC_function.R"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_isoall toneBlue
class node_qc,node_tax,node_lib toneAmber
class node_tree,node_fasta,node_html,node_csv toneMint
class node_database,node_vsearch toneRose
class node_user,node_abif toneIndigo
```

## Components

### Workflow orchestration

- [Batch workflow](https://github.com/bdaisley/isolater/blob/main/R/isoALL.R): `R/isoALL.R`

### Sequence analysis

- [Sequence QC](https://github.com/bdaisley/isolater/blob/main/R/isoQC_function.R): `R/isoQC_function.R`
- [Taxonomy assignment](https://github.com/bdaisley/isolater/blob/main/R/isoTAX_function.R): `R/isoTAX_function.R`
- [Strain library](https://github.com/bdaisley/isolater/blob/main/R/isoLIB_function.R): `R/isoLIB_function.R`

### Results and visualization

- [Phylogenetic trees](https://github.com/bdaisley/isolater/blob/main/R/make_tree.R): `R/make_tree.R`
- [FASTA export](https://github.com/bdaisley/isolater/blob/main/R/make_fasta.R): `R/make_fasta.R`
- [Interactive HTML](https://github.com/bdaisley/isolater/blob/main/R/isoQC_function.R): `R/isoQC_function.R`
- **CSV results**

### Database and utilities

- [Type-strain database](https://github.com/bdaisley/isolater/blob/main/R/get_db.R): `R/get_db.R`
- [VSEARCH](https://github.com/bdaisley/isolater/blob/main/R/get_vsearch.R): `R/get_vsearch.R`

### Other components

- **Researcher**
- **ABIF inputs**

## Connections

- Researcher → Batch workflow: runs workflow
- Researcher → Sequence QC: runs QC
- Researcher → Taxonomy assignment: runs taxonomy
- Researcher → Strain library: builds library
- ABIF inputs → Sequence QC: provides sequences
- Batch workflow → Sequence QC: runs QC
- Batch workflow → Taxonomy assignment: runs taxonomy
- Batch workflow → Strain library: builds library
- Sequence QC → CSV results: exports results
- Sequence QC → FASTA export: exports sequences
- Sequence QC → Interactive HTML: exports report
- CSV results → Taxonomy assignment: provides sequences
- Taxonomy assignment → Type-strain database: searches against
- Taxonomy assignment → VSEARCH: aligns with
- Taxonomy assignment → CSV results: exports assignments
- Taxonomy assignment → Interactive HTML: exports report
- CSV results → Strain library: provides assignments
- Strain library → CSV results: exports library
- Taxonomy assignment → Phylogenetic trees: supports visualization
