Loading Data into Persephone
The Persephone system stores its data in both a relational database and the file system. The database contains the majority of objects that require transactional consistency, while most large compressed binary blocks—such as genomic sequences, BAM/CRAM alignments, and variant data—are stored externally in the file system. This separation simplifies maintenance and backup operations.
Data loading is performed using PersephoneShell (psh), a command‑line utility designed to manage the database objects visualized by the Persephone client application. Through this tool, administrators can list, create, and modify objects such as organisms, genomic sequences, gene annotations, and other core entities.
Please note that PersephoneShell is an administrative tool and should be used only by personnel who have received proper training. The documentation below provides the necessary background to perform all routine data‑management tasks safely and effectively.
Note
In addition to PersephoneShell, we introduced a REST API server for loading data via HTTP requests.
All data stored in the database is shared among all Persephone users. In addition to this shared content, users may upload their own private datasets, which remain visible only to them. User‑specific data resides exclusively in the file system and is not accessible through PersephoneShell. Maintenance of these personal datasets is handled entirely through the main Persephone client application. External files—such as genomic sequences, annotations, and NGS read alignments—can be added via drag‑and‑drop or by providing a URL.
Tip
It is quite common to use the drag&drop feature to preview the data files before loading them into the database.
The Persephone software stack is usually supplied as a Docker image, with all components pre-installed. The following sections, including Setting Up PersephoneShell or Initializing the Schema, offer ways of advanced customization and can be initially skipped. The page describing typical steps of using PersephoneShell under Docker is available here.
Click the following links for more information.
- Setting Up PersephoneShell. This section describes how to install PersephoneShell.
- Running PersephoneShell. How to run PersephoneShell from a command prompt. Learn some common tricks.
- Initializing the Schema. How to use the init command to initialize the Persephone schema and add configuration values.
- Use Case. A use case where PersephoneShell is used to add an organism and corresponding map sets, maps, sequences, annotations, markers and other tracks. This section can be used as a basic tutorial.
- Commands. The detailed reference of PersephoneShell's commands.
- Control files. The structure of the INI file format and common rules of editing the files.