# mousegenomics/mausdb architecture

> Architecture diagram of the GitHub repository mousegenomics/mausdb, 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/mousegenomics/mausdb
- Repository: https://github.com/mousegenomics/mausdb

## Overview

MausDB is a web-based MySQL application for managing mouse colonies and related phenotyping work. Its principal workflow is a user interacting with the CGI application, which provides colony and experimental-management capabilities backed by a database. The tree documents distinct modules for breeding, animal movement, treatment, phenotyping, importing and reporting, alongside SQL setup and query scripts. Only the browser JavaScript and README were sampled, so links among individual Perl modules and specific SQL operations are not asserted.

Main entry points: [`code/usr/lib/cgi-bin/mausdb/mausdb.cgi`](https://github.com/mousegenomics/mausdb/blob/master/code/usr/lib/cgi-bin/mausdb/mausdb.cgi) (CGI application), [`code/var/maus_connect/DB_connect.pm`](https://github.com/mousegenomics/mausdb/blob/master/code/var/maus_connect/DB_connect.pm) (DB connection), [`SQL/setup_database/create_tables_mausdb.sql`](https://github.com/mousegenomics/mausdb/blob/master/SQL/setup_database/create_tables_mausdb.sql) (Database setup), [`SQL`](https://github.com/mousegenomics/mausdb/tree/master/SQL) (SQL operations)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web application"]
  node_cgi["CGI application<br/>[mausdb.cgi]"]
  node_browser["Browser controls<br/>[mausdb.js]"]
end

subgraph group_colony["Colony management"]
  node_colony_ops["Colony operations<br/>[lib_mating.pl]"]
  node_weaning["Weaning<br/>[lib_weaning.pl]"]
  node_movement["Animal movement<br/>[lib_move.pl]"]
  node_genotype["Genotyping<br/>[lib_genotype.pl]"]
end

subgraph group_research["Research operations"]
  node_phenotyping["Phenotyping<br/>[lib_phenotyping.pl]"]
  node_experiments["Experiments<br/>[lib_experiment.pl]"]
  node_treatment["Treatments<br/>[lib_treatment.pl]"]
  node_import["Data import<br/>[lib_import.pl]"]
  node_reports["Reports<br/>[lib_reports.pl]"]
  node_accounting["Accounting<br/>[lib_accounting.pl]"]
end

subgraph group_data["Data and persistence"]
  node_db_connect["DB connection<br/>[DB_connect.pm]"]
  node_sql_setup["Database setup"]
  node_sql_ops["SQL operations"]
  node_mysql[("MySQL database")]
end

node_user(("MausDB user"))

node_user -->|"uses"| node_cgi
node_cgi -->|"serves controls"| node_browser
node_cgi -->|"connects through"| node_db_connect
node_db_connect -->|"connects to"| node_mysql
node_sql_setup -->|"creates schema"| node_mysql
node_sql_ops -->|"queries and updates"| node_mysql

click node_cgi "https://github.com/mousegenomics/mausdb/blob/master/code/usr/lib/cgi-bin/mausdb/mausdb.cgi"
click node_browser "https://github.com/mousegenomics/mausdb/blob/master/code/var/www/mausdb/static_pages/mausdb.js"
click node_colony_ops "https://github.com/mousegenomics/mausdb/blob/master/code/usr/lib/cgi-bin/mausdb/lib_mating.pl"
click node_weaning "https://github.com/mousegenomics/mausdb/blob/master/code/usr/lib/cgi-bin/mausdb/lib_weaning.pl"
click node_movement "https://github.com/mousegenomics/mausdb/blob/master/code/usr/lib/cgi-bin/mausdb/lib_move.pl"
click node_genotype "https://github.com/mousegenomics/mausdb/blob/master/code/usr/lib/cgi-bin/mausdb/lib_genotype.pl"
click node_phenotyping "https://github.com/mousegenomics/mausdb/blob/master/code/usr/lib/cgi-bin/mausdb/lib_phenotyping.pl"
click node_experiments "https://github.com/mousegenomics/mausdb/blob/master/code/usr/lib/cgi-bin/mausdb/lib_experiment.pl"
click node_treatment "https://github.com/mousegenomics/mausdb/blob/master/code/usr/lib/cgi-bin/mausdb/lib_treatment.pl"
click node_import "https://github.com/mousegenomics/mausdb/blob/master/code/usr/lib/cgi-bin/mausdb/lib_import.pl"
click node_reports "https://github.com/mousegenomics/mausdb/blob/master/code/usr/lib/cgi-bin/mausdb/lib_reports.pl"
click node_accounting "https://github.com/mousegenomics/mausdb/blob/master/code/usr/lib/cgi-bin/mausdb/lib_accounting.pl"
click node_db_connect "https://github.com/mousegenomics/mausdb/blob/master/code/var/maus_connect/DB_connect.pm"
click node_sql_setup "https://github.com/mousegenomics/mausdb/blob/master/SQL/setup_database/create_tables_mausdb.sql"
click node_sql_ops "https://github.com/mousegenomics/mausdb/tree/master/SQL"

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_cgi,node_browser,node_user toneBlue
class node_colony_ops,node_weaning,node_movement,node_genotype toneAmber
class node_phenotyping,node_experiments,node_treatment,node_import,node_reports,node_accounting toneMint
class node_db_connect,node_sql_setup,node_sql_ops,node_mysql toneRose
```

## Components

### Web application

- [CGI application](https://github.com/mousegenomics/mausdb/blob/master/code/usr/lib/cgi-bin/mausdb/mausdb.cgi): `code/usr/lib/cgi-bin/mausdb/mausdb.cgi`
- [Browser controls](https://github.com/mousegenomics/mausdb/blob/master/code/var/www/mausdb/static_pages/mausdb.js): `code/var/www/mausdb/static_pages/mausdb.js`

### Colony management

- [Colony operations](https://github.com/mousegenomics/mausdb/blob/master/code/usr/lib/cgi-bin/mausdb/lib_mating.pl): `code/usr/lib/cgi-bin/mausdb/lib_mating.pl`
- [Weaning](https://github.com/mousegenomics/mausdb/blob/master/code/usr/lib/cgi-bin/mausdb/lib_weaning.pl): `code/usr/lib/cgi-bin/mausdb/lib_weaning.pl`
- [Animal movement](https://github.com/mousegenomics/mausdb/blob/master/code/usr/lib/cgi-bin/mausdb/lib_move.pl): `code/usr/lib/cgi-bin/mausdb/lib_move.pl`
- [Genotyping](https://github.com/mousegenomics/mausdb/blob/master/code/usr/lib/cgi-bin/mausdb/lib_genotype.pl): `code/usr/lib/cgi-bin/mausdb/lib_genotype.pl`

### Research operations

- [Phenotyping](https://github.com/mousegenomics/mausdb/blob/master/code/usr/lib/cgi-bin/mausdb/lib_phenotyping.pl): `code/usr/lib/cgi-bin/mausdb/lib_phenotyping.pl`
- [Experiments](https://github.com/mousegenomics/mausdb/blob/master/code/usr/lib/cgi-bin/mausdb/lib_experiment.pl): `code/usr/lib/cgi-bin/mausdb/lib_experiment.pl`
- [Treatments](https://github.com/mousegenomics/mausdb/blob/master/code/usr/lib/cgi-bin/mausdb/lib_treatment.pl): `code/usr/lib/cgi-bin/mausdb/lib_treatment.pl`
- [Data import](https://github.com/mousegenomics/mausdb/blob/master/code/usr/lib/cgi-bin/mausdb/lib_import.pl): `code/usr/lib/cgi-bin/mausdb/lib_import.pl`
- [Reports](https://github.com/mousegenomics/mausdb/blob/master/code/usr/lib/cgi-bin/mausdb/lib_reports.pl): `code/usr/lib/cgi-bin/mausdb/lib_reports.pl`
- [Accounting](https://github.com/mousegenomics/mausdb/blob/master/code/usr/lib/cgi-bin/mausdb/lib_accounting.pl): `code/usr/lib/cgi-bin/mausdb/lib_accounting.pl`

### Data and persistence

- [DB connection](https://github.com/mousegenomics/mausdb/blob/master/code/var/maus_connect/DB_connect.pm): `code/var/maus_connect/DB_connect.pm`
- [Database setup](https://github.com/mousegenomics/mausdb/blob/master/SQL/setup_database/create_tables_mausdb.sql): `SQL/setup_database/create_tables_mausdb.sql`
- [SQL operations](https://github.com/mousegenomics/mausdb/tree/master/SQL): `SQL`
- **MySQL database**

### Other components

- **MausDB user**

## Connections

- MausDB user → CGI application: uses
- CGI application → Browser controls: serves controls
- CGI application → DB connection: connects through
- DB connection → MySQL database: connects to
- Database setup → MySQL database: creates schema
- SQL operations → MySQL database: queries and updates
