JOA Tutorial

JOA provides joint overlapping intervals of n interval sets.

  1. Input Files: (Mandatory)

    You have to provide input files in bed format.

  2. Data Structure Type: (Optional)

    JOA finds overlapping intervals of n interval sets using Segment Tree and/or Indexed Segment Tree Forest.

    • Segment Tree (Default)
    • Indexed Segment Tree Forest
  3. Output Type: (Optional)

    JOA provides output in two different ways.

    • Only the resulting interval per each found overlap (Default)
    • All the overlapping intervals and the resulting interval per each found overlap

JOA Command-Line Parameters

In the following table, command-line arguments are specified.

Description Parameter Optional/Required Parameter Options Default Options
Input Files -f Required None (“path/to/file”)  
Data Structure -t Optional -t “st” -t “st”
-t “istf”
Output -o Optional -o “one” -o “one”
-o “all”

Command-Line Parameters Descriptions

The order of parameters is not fixed. One may set the parameters in any order.

-f

Required Absolute paths to input files must be specified just after -f parameter.

-t

Optional This parameter specifies the data structure type used in finding n overlapping intervals. If you do not set anything, -t “st” is set as default.

-t “st”

This option utilizes “segment tree” data structure in finding n overlapping intervals.

-t “istf”

This option utilizes “indexed segment tree forest” data structure in finding n overlapping intervals.

-o

Optional This parameter specifies the output type. If you do not set anything, -o “one” is set as default.

-o “one”

This option outputs only the resulting interval per each found overlap.

-o “all”

This option outputs all the n overlapping intervals and the resulting interval per each found overlap.

JOA Command-Line Sample Runs

Example sample run which outputs to stdout:

$ java -jar /path/to/joa.jar -f  /path/to/input1.bed  /path/to/input2.bed

Example sample run which outputs to a file with redirection operator:

$ java -jar /path/to/joa.jar -f  /path/to/input1.bed  /path/to/input2.bed /path/to/input3.bed /path/to/input4.bed /path/to/input5.bed  > /path/to/joa_output_5files.txt

Example sample run using Indexed Segment Tree Forest:

$ java -jar /path/to/joa.jar -f  /path/to/input1.bed  /path/to/input2.bed /path/to/input3.bed /path/to/input4.bed /path/to/input5.bed  -t "istf" > /path/to/joa_output_5files.txt

Example sample run which outputs all n overlapping intervals and plus the resulting interval:

$ java -jar /path/to/joa.jar -f  /path/to/input1.bed  /path/to/input2.bed /path/to/input3.bed /path/to/input4.bed /path/to/input5.bed  -o "all" > /path/to/joa_output_5files.txt

Example sample run for very large BED files with 16GB memory allocation:

$ java Xms16G -Xmx16G -jar /path/to/joa.jar -f  /path/to/bigInput1.bed  /path/to/bigInput2.bed > /path/to/joa_output_big2files.txt

JOA GUI

  • JOA GUI can be run by double clicking on it.

  • JOA GUI can be run by command line when no JOA command-line parameters are provided.

    $ java -jar “path/to/joa.jar”