# deuphro/gittributor architecture

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

- Interactive diagram: https://gitdiagram.com/deuphro/gittributor
- Repository: https://github.com/deuphro/gittributor

## Overview

ATTRIBUTOR is an Igor Pro application for forming and exploring molecular-formula hypotheses from high-resolution mass spectra. Its main workflow loads and activates spectra, builds charged formulas and isotope simulations, searches bounded formula factors against target peaks, and reviews candidate envelopes. Formula lists, spectrum processing, mass-defect analysis, graph propagation, and Hough discovery support broader exploration. The README documents these relationships, but no source excerpts were provided; component paths therefore point to the documented procedure source, and unsampled internal calls are not inferred.

Main entry points: [`MainProc.ipf`](https://github.com/deuphro/gittributor/blob/master/MainProc.ipf) (AdvancedManager), [`ATTRIBUTOR 2022.pxp`](https://github.com/deuphro/gittributor/blob/master/ATTRIBUTOR%202022.pxp) (Packed experiment)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_spectra["Spectra and processing"]
  node_advanced_manager["AdvancedManager<br/>[MainProc.ipf]"]
  node_filters["filtres<br/>[MainProc.ipf]"]
end

subgraph group_formula["Formula and simulation"]
  node_formula_builder["mendeleiev<br/>[MainProc.ipf]"]
  node_isotope_sim["genestringmol<br/>[MainProc.ipf]"]
  node_envelope_view["elaborateur<br/>[MainProc.ipf]"]
  node_factor_list["attributeur factors<br/>[MainProc.ipf]"]
end

subgraph group_attribution["Attribution"]
  node_attributeur["attributeur<br/>[MainProc.ipf]"]
  node_bounded_search["trouvemass<br/>[MainProc.ipf]"]
  node_graph_attribution["Graph Attribution<br/>[MainProc.ipf]"]
  node_kruskal["kruskal4mass<br/>[MainProc.ipf]"]
end

subgraph group_analysis["Comparison and discovery"]
  node_formula_manager["molmanager<br/>[MainProc.ipf]"]
  node_aggregator["agregateur<br/>[MainProc.ipf]"]
  node_dmvm["dmvm<br/>[MainProc.ipf]"]
  node_data_stats["datastat<br/>[MainProc.ipf]"]
  node_hough["Hough analysis<br/>[MainProc.ipf]"]
  node_advanced_formula_panel["AdvMolManPanel<br/>[MainProc.ipf]"]
  node_advanced_formula_graph["AdvMolManGraph<br/>[MainProc.ipf]"]
  node_advanced_formula_ops["AdvMolManOper<br/>[MainProc.ipf]"]
end

subgraph group_peaks["Peak analysis"]
  node_peak_quality["PeakQualCont<br/>[MainProc.ipf]"]
end

node_researcher(("Researcher"))
node_igor["Igor Pro"]
node_experiment["Packed experiment"]
node_spectrum_file["Mass-intensity file"]

node_researcher -->|"launches"| node_igor
node_igor -->|"opens"| node_experiment
node_researcher -->|"loads"| node_spectrum_file
node_spectrum_file -->|"loads spectrum"| node_advanced_manager
node_advanced_manager -.->|"processes spectra"| node_filters
node_advanced_manager -->|"activates spectrum"| node_formula_builder
node_researcher -->|"builds formula"| node_formula_builder
node_formula_builder -->|"simulates isotopes"| node_isotope_sim
node_isotope_sim -->|"shows envelope"| node_envelope_view
node_formula_builder -->|"adds patterns"| node_factor_list
node_factor_list -->|"selects factors"| node_attributeur
node_attributeur -->|"calculates candidates"| node_bounded_search
node_attributeur -->|"launches graph search"| node_graph_attribution
node_graph_attribution -->|"builds mass families"| node_kruskal
node_attributeur -->|"reviews proposals"| node_isotope_sim
node_researcher -->|"manages formula lists"| node_formula_manager
node_formula_manager -->|"overlays formula lists"| node_aggregator
node_advanced_manager -->|"overlays mass defect"| node_dmvm
node_dmvm -->|"analyzes distributions"| node_data_stats
node_data_stats -->|"launches Hough analysis"| node_hough
node_hough -->|"starts attribution"| node_attributeur
node_hough -->|"creates ROI"| node_advanced_manager
node_formula_manager -->|"synchronizes selection"| node_advanced_formula_panel
node_advanced_formula_panel -->|"configures projections"| node_advanced_formula_graph
node_advanced_formula_panel -->|"offers operations"| node_advanced_formula_ops
node_researcher -->|"manages peak fits"| node_peak_quality

click node_experiment "https://github.com/deuphro/gittributor/blob/master/ATTRIBUTOR%202022.pxp"
click node_advanced_manager "https://github.com/deuphro/gittributor/blob/master/MainProc.ipf"
click node_filters "https://github.com/deuphro/gittributor/blob/master/MainProc.ipf"
click node_formula_builder "https://github.com/deuphro/gittributor/blob/master/MainProc.ipf"
click node_isotope_sim "https://github.com/deuphro/gittributor/blob/master/MainProc.ipf"
click node_envelope_view "https://github.com/deuphro/gittributor/blob/master/MainProc.ipf"
click node_factor_list "https://github.com/deuphro/gittributor/blob/master/MainProc.ipf"
click node_attributeur "https://github.com/deuphro/gittributor/blob/master/MainProc.ipf"
click node_bounded_search "https://github.com/deuphro/gittributor/blob/master/MainProc.ipf"
click node_graph_attribution "https://github.com/deuphro/gittributor/blob/master/MainProc.ipf"
click node_kruskal "https://github.com/deuphro/gittributor/blob/master/MainProc.ipf"
click node_formula_manager "https://github.com/deuphro/gittributor/blob/master/MainProc.ipf"
click node_aggregator "https://github.com/deuphro/gittributor/blob/master/MainProc.ipf"
click node_dmvm "https://github.com/deuphro/gittributor/blob/master/MainProc.ipf"
click node_data_stats "https://github.com/deuphro/gittributor/blob/master/MainProc.ipf"
click node_hough "https://github.com/deuphro/gittributor/blob/master/MainProc.ipf"
click node_advanced_formula_panel "https://github.com/deuphro/gittributor/blob/master/MainProc.ipf"
click node_advanced_formula_graph "https://github.com/deuphro/gittributor/blob/master/MainProc.ipf"
click node_advanced_formula_ops "https://github.com/deuphro/gittributor/blob/master/MainProc.ipf"
click node_peak_quality "https://github.com/deuphro/gittributor/blob/master/MainProc.ipf"

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_advanced_manager,node_filters toneBlue
class node_formula_builder,node_isotope_sim,node_envelope_view,node_factor_list toneAmber
class node_attributeur,node_bounded_search,node_graph_attribution,node_kruskal toneMint
class node_formula_manager,node_aggregator,node_dmvm,node_data_stats,node_hough,node_advanced_formula_panel,node_advanced_formula_graph,node_advanced_formula_ops toneRose
class node_peak_quality,node_researcher,node_igor,node_spectrum_file toneIndigo
class node_experiment toneTeal
```

## Components

### Spectra and processing

- [AdvancedManager](https://github.com/deuphro/gittributor/blob/master/MainProc.ipf): `MainProc.ipf`
- [filtres](https://github.com/deuphro/gittributor/blob/master/MainProc.ipf): `MainProc.ipf`

### Formula and simulation

- [mendeleiev](https://github.com/deuphro/gittributor/blob/master/MainProc.ipf): `MainProc.ipf`
- [genestringmol](https://github.com/deuphro/gittributor/blob/master/MainProc.ipf): `MainProc.ipf`
- [elaborateur](https://github.com/deuphro/gittributor/blob/master/MainProc.ipf): `MainProc.ipf`
- [attributeur factors](https://github.com/deuphro/gittributor/blob/master/MainProc.ipf): `MainProc.ipf`

### Attribution

- [attributeur](https://github.com/deuphro/gittributor/blob/master/MainProc.ipf): `MainProc.ipf`
- [trouvemass](https://github.com/deuphro/gittributor/blob/master/MainProc.ipf): `MainProc.ipf`
- [Graph Attribution](https://github.com/deuphro/gittributor/blob/master/MainProc.ipf): `MainProc.ipf`
- [kruskal4mass](https://github.com/deuphro/gittributor/blob/master/MainProc.ipf): `MainProc.ipf`

### Comparison and discovery

- [molmanager](https://github.com/deuphro/gittributor/blob/master/MainProc.ipf): `MainProc.ipf`
- [agregateur](https://github.com/deuphro/gittributor/blob/master/MainProc.ipf): `MainProc.ipf`
- [dmvm](https://github.com/deuphro/gittributor/blob/master/MainProc.ipf): `MainProc.ipf`
- [datastat](https://github.com/deuphro/gittributor/blob/master/MainProc.ipf): `MainProc.ipf`
- [Hough analysis](https://github.com/deuphro/gittributor/blob/master/MainProc.ipf): `MainProc.ipf`
- [AdvMolManPanel](https://github.com/deuphro/gittributor/blob/master/MainProc.ipf): `MainProc.ipf`
- [AdvMolManGraph](https://github.com/deuphro/gittributor/blob/master/MainProc.ipf): `MainProc.ipf`
- [AdvMolManOper](https://github.com/deuphro/gittributor/blob/master/MainProc.ipf): `MainProc.ipf`

### Peak analysis

- [PeakQualCont](https://github.com/deuphro/gittributor/blob/master/MainProc.ipf): `MainProc.ipf`

### Other components

- **Researcher**
- **Igor Pro**
- [Packed experiment](https://github.com/deuphro/gittributor/blob/master/ATTRIBUTOR%202022.pxp): `ATTRIBUTOR 2022.pxp`
- **Mass-intensity file**

## Connections

- Researcher → Igor Pro: launches (evidence: `README.md`)
- Igor Pro → Packed experiment: opens (evidence: `README.md`)
- Researcher → Mass-intensity file: loads (evidence: `README.md`)
- Mass-intensity file → AdvancedManager: loads spectrum (evidence: `README.md`)
- AdvancedManager → filtres: processes spectra
- AdvancedManager → mendeleiev: activates spectrum (evidence: `README.md`)
- Researcher → mendeleiev: builds formula (evidence: `README.md`)
- mendeleiev → genestringmol: simulates isotopes (evidence: `README.md`)
- genestringmol → elaborateur: shows envelope (evidence: `README.md`)
- mendeleiev → attributeur factors: adds patterns (evidence: `README.md`)
- attributeur factors → attributeur: selects factors (evidence: `README.md`)
- attributeur → trouvemass: calculates candidates (evidence: `README.md`)
- attributeur → Graph Attribution: launches graph search (evidence: `README.md`)
- Graph Attribution → kruskal4mass: builds mass families (evidence: `README.md`)
- attributeur → genestringmol: reviews proposals (evidence: `README.md`)
- Researcher → molmanager: manages formula lists (evidence: `README.md`)
- molmanager → agregateur: overlays formula lists (evidence: `README.md`)
- AdvancedManager → dmvm: overlays mass defect (evidence: `README.md`)
- dmvm → datastat: analyzes distributions (evidence: `README.md`)
- datastat → Hough analysis: launches Hough analysis (evidence: `README.md`)
- Hough analysis → attributeur: starts attribution (evidence: `README.md`)
- Hough analysis → AdvancedManager: creates ROI (evidence: `README.md`)
- molmanager → AdvMolManPanel: synchronizes selection (evidence: `README.md`)
- AdvMolManPanel → AdvMolManGraph: configures projections (evidence: `README.md`)
- AdvMolManPanel → AdvMolManOper: offers operations (evidence: `README.md`)
- Researcher → PeakQualCont: manages peak fits (evidence: `README.md`)
