Pergola is a tool to process and convert longitudinal behavioral data into genomic data formats. This way data becomes compatible with genomics software tools for its analysis and visualization.

The required input to Pergola consists in:

  1. A CSV file containing behavioral data
  2. A mapping file setting the correspondence between the input and the output.

Run a job

  1. Provide a sequence of behavioral events.
    a. Upload a CSV file from your local disk.
    b. Copy and paste the sequence of events into the text area.
  2. Provide a mappings file setting the correspondence to pergola ontology terms of the fields in your input data.
    a. Upload the file from your local disk.
    b. Configure it using the mappings menu.
  3. Set your options as desired. Otherwise, default settings are used.
  4. Submit your job
  5. Be patient. The execution time depends on the length of the input data.


Pergola generates the following outputs:

  1. BEHAVIORAL TRAJECTORY: n files containing a track of behavior corresponding to the number of different items under the field set as "track" in mapping file.
  2. FASTA FILE: A fasta file that can be used to load a genome to render data in a genome browser.
  3. CHROM SIZES: A txt file containing the length of your experiment assigned to a chromosome label. Some genomic tools need this file for downstream analyses.

Pergola can process data in different ways. The available options are listed below.

Data input options

Visualization/Processing options

NOTE: Visualization options are both important to set the behavior of the visualization and in case of downloading the data to choose how this data will be processed.

Access via webservice

It is possible to access programmatically this website and retrieve formatted files. We provide some example code for convenience in this Gist.

It can be run by simply typing: python myconfig.json

For JSON configuration definition, an example below. You can learn about the different available parameters by checking the '?' icons in the main page.

	"params": {
		"separator": "{TAB}",
		"outformatannot": "bed",
		"outformatcont": "bedGraph",
		"trackline": true,
		"relativecoord": true
	"files": {
		"infile": {
			"filename": "input.tsv",
			"content-type": "text/csv",
			"content-file": "input.csv"
		"mapfile": {
			"filename": "mapfile.txt",
			"content-type": "text/plain",
			"content-file": "b2p.txt"