Skip to content

Architecture

Francesco Palozzi edited this page Jun 5, 2026 · 1 revision

Architecture

RNA2DUnifier
│
├── RnaUnifier                  ← Main entry point (facade)
│
├── parser/
│   ├── RnaStructureParser      ← Interface
│   ├── ToolType                ← Enum of supported tools
│   ├── ParserFactory           ← Instantiates and auto-detects parsers
│   └── impl/
│       ├── BarnabaParser
│       ├── BpnetParser
│       ├── Fr3dParser
│       ├── McAnnotateParser
│       ├── RnapolisParser
│       ├── RnaviewParser
│       └── X3dnaParser
│
├── listeners/                  ← ANTLR tree-walk listeners (one per tool)
│   ├── barnaba/
│   ├── bpnet/
│   ├── fr3d/
│   ├── mcAnnotate/
│   ├── RNApolis/
│   ├── RNAview/
│   └── x3dna/
│
├── models/
│   ├── ExtendedRNASecondaryStructure  ← Main domain model
│   ├── Pair                           ← A single base pair
│   └── BondType                       ← Leontis–Westhof enum
│
└── exporter/
    └── BpseqExporter           ← Converts model → BPSEQ / extended BPSEQ string

Each parser uses an ANTLR-generated lexer/parser driven by a grammar (.g4) defined in src/main/antlr4/. The grammar walks are handled by custom listeners that populate ExtendedRNASecondaryStructure through its Builder.


Home

Clone this wiki locally