Skip to content

Examples

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

Examples


Reading and Inspecting a File

IOController io = IOController.getInstance();
RNAFile file = io.loadFile(Path.of("example.bpseq"));
 
System.out.println("File            : " + file.getFileName());
System.out.println("Format          : " + file.getFormat().getName());
System.out.println("Structure size  : " + file.getStructure().getSize());
System.out.println("Has pseudoknots : " + file.getStructure().isPseudoknotted());
System.out.println("Sequence        : " + file.getStructure().getSequence());
 
System.out.println("\nFull content:");
file.getContent().forEach(System.out::println);

Converting BPSEQ to Dot-Bracket

IOController io = IOController.getInstance();
TranslatorController translator = TranslatorController.getInstance();
 
RNAFile source    = io.loadFile(Path.of("structure.bpseq"));
RNAFile dotBracket = translator.translate(source, RNAFormat.DB);
 
System.out.println("Structure in Dot-Bracket:");
dotBracket.getContent().forEach(System.out::println);

Batch Conversion of a Directory

IOController io = IOController.getInstance();
TranslatorController translator = TranslatorController.getInstance();
 
io.loadDirectory(Path.of("/data/bpseq/"));
 
List<RNAFile> translated = io.getLoadedRNAFiles().stream()
        .map(f -> translator.translate(f, RNAFormat.DB))
        .toList();
 
io.saveFiles(translated, Path.of("/data/output/"), false, false, "");
 
System.out.println("Converted " + translated.size() + " files.");

Saving with Statistics and ZIP

IOController io = IOController.getInstance();
TranslatorController translator = TranslatorController.getInstance();
 
io.loadDirectory(Path.of("/data/ct/"));
 
List<RNAFile> translated = io.getLoadedRNAFiles().stream()
        .map(f -> translator.translate(f, RNAFormat.AAS))
        .toList();
 
// Produces: translated files + statistics CSVs, all compressed into a ZIP
io.saveFiles(
        translated,
        Path.of("/data/output/"),
        false,                    // no non-canonical pairs CSV
        true,                     // generate statistics CSV
        "batch_aas_with_stats"    // ZIP archive name
);

Robust Load-Translate-Save with Error Handling

IOController io = IOController.getInstance();
TranslatorController translator = TranslatorController.getInstance();
 
try {
    io.loadDirectory(Path.of("/data/bpseq/"));
 
    List<RNAFile> translated = io.getLoadedRNAFiles().stream()
            .map(f -> translator.translate(f, RNAFormat.DB))
            .toList();
 
    io.saveFiles(translated, Path.of("/data/output/"), false, false, "");
 
} catch (IOException e) {
    System.err.println("I/O error: " + e.getMessage());
} catch (IllegalArgumentException e) {
    System.err.println("Incompatible format: " + e.getMessage());
} catch (RNAInputFileParserException e) {
    System.err.println("Parsing error: " + e.getMessage());
} finally {
    io.clearAllDataStructures();
}

See Also

Clone this wiki locally