PILON(1)

🌸 NAME 🌸

pilon β€” bestie, this is the automated genome assembly improvement and variant detection tool πŸ’…βœ¨ She's section 1 of the User Commands manual, and she ate.


πŸ¦‹ SYNOPSIS πŸ¦‹

pilon --genome genome.fasta [--frags frags.bam] [--jumps jumps.bam]
[--unpaired unpaired.bam] [...other options...]

✨ DESCRIPTION ✨

Okay so Pilon is that girl, and here's what she can do for you:

  • Automatically improve draft assemblies πŸ’–
  • Find variation among strains, including large event detection πŸ‘‘

She needs two things to function, no cap: a FASTA file of the genome, plus one or more BAM files of reads aligned to that input FASTA file. That's the whole vibe check.

Then she does her thing β€” read alignment analysis to spot every place where the input genome and the evidence in the reads are lowkey beefing with each other. And then she tries to fix the input genome, including:

  • Single base differences
  • Small indels
  • Larger indel or block substitution events
  • Gap filling
  • Identification of local misassemblies, including optional opening of new gaps 😭

πŸŽ€ OPTIONS πŸŽ€

  • --help β€” for option details 🫢

🌸 INPUTS 🌸

  • --genome genome.fasta β€” The input genome we're trying to glow up. Important: it must be the reference used for the bam alignments. And you also need at least one of --frags or --jumps. Not optional, bestie.
  • --frags frags.bam β€” A bam file full of fragment paired-end alignments, aligned to the --genome argument using bwa or bowtie2. You can pass this argument more than once if you're feeling extra πŸ’…
  • --jumps jumps.bam β€” A bam file full of jump (mate pair) paired-end alignments, aligned to the --genome argument using bwa or bowtie2. Also specifiable more than once. Slay.
  • --unpaired unpaired.bam β€” A bam file of unpaired alignments, aligned to the --genome argument using bwa or bowtie2. Yep, also repeatable. Go off.
  • --bam any.bam β€” A bam file of unknown type. Pilon will scan it and attempt to classify it as one of the above bam types. It's giving detective energy πŸ”

πŸ’œ OUTPUTS πŸ’œ

  • --output prefix β€” Prefix for output files.
  • --outdir directory β€” Use this directory for all output files.
  • --changes β€” If specified, a file listing changes in the <output>.fasta will be generated.
  • --vcf β€” If specified, a vcf file will be generated.
  • --vcfqe β€” If specified, the VCF will contain a QE (quality-weighted evidence) field rather than the default QP (quality-weighted percentage of evidence) field.
  • --tracks β€” This options will cause many track files (*.bed, *.wig) suitable for viewing in a genome browser to be written. Genome browser girlies, this one's for you 🧚

πŸ”₯ CONTROL πŸ”₯

  • --variant β€” Sets up heuristics for variant calling, as opposed to assembly improvement; equivalent to "--vcf --fix all,breaks".
  • --chunksize β€” Input FASTA elements larger than this will be processed in smaller pieces not to exceed this size (default 10000000).
  • --diploid β€” Sample is from diploid organism; will eventually affect calling of heterozygous SNPs.
  • --fix fixlist β€” A comma-separated list of categories of issues to try to fix:
    • "snps": try to fix individual base errors
    • "indels": try to fix small indels
    • "gaps": try to fill gaps
    • "local": try to detect and fix local misassemblies
    • "all": all of the above (default)
    • "bases": shorthand for "snps" and "indels" (for back compatibility)
    • "none": none of the above; new fasta file will not be written

The following are experimental fix types πŸ™ˆ

  • "amb": fix ambiguous bases in fasta output (to most likely alternative)
  • "breaks": allow local reassembly to open new gaps (with "local")
  • "circles": try to close circlar elements when used with long corrected reads
  • "novel": assemble novel sequence from unaligned non-jump reads
  • --dumpreads β€” Dump reads for local re-assemblies.
  • --duplicates β€” Use reads marked as duplicates in the input BAMs (ignored by default).
  • --iupac β€” Output IUPAC ambiguous base codes in the output FASTA file when appropriate.
  • --nonpf β€” Use reads which failed sequencer quality filtering (ignored by default).
  • --targets targetlist β€” Only process the specified target(s). Targets are comma-separated, and each target is a fasta element name optionally followed by a base range. Example: "scaffold00001,scaffold00002:10000-20000" would result in processing all of scaffold00001 and coordinates 10000-20000 of scaffold00002. If "targetlist" is the name of a file, each line will be treated as a target specification.
  • --threads β€” Degree of parallelism to use for certain processing (default 1). Experimental.
  • --verbose β€” More verbose output.
  • --debug β€” Debugging output (implies verbose).
  • --version β€” Print version string and exit.

⭐ HEURISTICS: ⭐

  • --defaultqual qual β€” Assumes bases are of this quality if quals are no present in input BAMs (default 15).
  • --flank nbases β€” Controls how much of the well-aligned reads will be used; this many bases at each end of the good reads will be ignored (default 10).
  • --gapmargin β€” Closed gaps must be within this number of bases of true size to be closed (100000).
  • --K β€” Kmer size used by internal assembler (default 47).
  • --mindepth depth β€” Variants (snps and indels) will only be called if there is coverage of good pairs at this depth or more; if this value is >= 1, it is an absolute depth, if it is a fraction < 1, then minimum depth is computed by multiplying this value by the mean coverage for the region, with a minimum value of 5 (default 0.1: min depth to call is 10% of mean coverage or 5, whichever is greater).
  • --mingap β€” Minimum size for unclosed gaps (default 10).
  • --minmq β€” Minimum alignment mapping quality for a read to count in pileups (default 0).
  • --minqual β€” Minimum base quality to consider for pileups (default 0).
  • --nostrays β€” Skip making a pass through the input BAM files to identify stray pairs, that is, those pairs in which both reads are aligned but not marked valid because they have inconsistent orientation or separation. Identifying stray pairs can help fill gaps and assemble larger insertions, especially of repeat content. However, doing so sometimes consumes considerable memory. ⚠️
Heads up bestie: --nostrays is the "save your RAM" button. Stray pair hunting is powerful but it can eat memory like it's a bottomless brunch πŸ’€

πŸ‘‘ AUTHOR πŸ‘‘

This manpage was written by Andreas Tille for the Debian distribution and can be used for any other usage of the program.


And that's a wrap, my love 🫢 this page ships as pilon 1.22, dated June 2018, and it lives in the User Commands corner of the PILON(1) manual. Periodt. πŸ’…βœ¨πŸŒΈ