Pangene is a command-line tool to construct a pangenome gene graph. In this graph, a node repsents a marker gene and an edge between two genes indicates their genomic adjaceny on input genomes. Pangene takes the miniprot alignment between a protein set and multiple genomes and produces a graph in the GFA format. It attempts to reduce the redundancy in the input proteins and filter spurious alignments while preserving close but non-identical paralogs. The output graph can be visualized in generic GFA viewers such as BandageNG or via the GFA Server app on Biowulf OnDemand.
References:
- H Li, M Marin, MR Farhat. (2024) Exploring gene content with pangene graphs. arXiv:2402.16185
- Module Name: pangene (see the modules page for more information)
- Environment variables set
- PANGENE_HOME
- Example files in $PANGENE_HOME/test
Allocate an interactive session and run the program.
Sample session (user input in bold):
[user@biowulf]$ sinteractive salloc.exe: Pending job allocation 46116226 salloc.exe: job 46116226 queued and waiting for resources salloc.exe: job 46116226 has been allocated resources salloc.exe: Granted job allocation 46116226 salloc.exe: Waiting for resource configuration salloc.exe: Nodes cn3144 are ready for job [user@cn3144 ~]$ module load pangene [user@cn3144 ~]$ man pangene # Read the manual (Press q to exit it once finished) [user@cn3144 ~]$ pangene $PANGENE_HOME/test/C4/*.paf.gz > C4.gfa [user@cn3144 ~]$ pangene.js call C4.gfa > C4.bubble.txt [user@cn3144 ~]$ exit salloc.exe: Relinquishing job allocation 46116226 [user@biowulf ~]$
Create a batch input file (e.g. pangene.sh). For example:
#!/bin/bash set -e module load pangene pangene $PANGENE_HOME/test/C4/*.paf.gz > C4.gfa pangene.js call C4.gfa > C4.bubble.txt
Submit this job using the Slurm sbatch command.
sbatch [--cpus-per-task=#] [--mem=#] pangene.sh
Create a swarmfile (e.g. pangene.swarm). For example:
pangene *.sample1.paf > sample1.gfa pangene *.sample2.paf > sample2.gfa pangene *.sample3.paf > sample3.gfa pangene *.sample4.paf > sample4.gfa
Submit this job using the swarm command.
swarm -f pangene.swarm [-g #] [-t #] --module pangenewhere
-g # | Number of Gigabytes of memory required for each process (1 line in the swarm command file) |
-t # | Number of threads/CPUs required for each process (1 line in the swarm command file). |
--module pangene | Loads the pangene module for each subjob in the swarm |