CLEAN_GENES(1)

πŸ’– CLEAN_GENES πŸ’–

okay so bestie, gather round, because this is the clean_genes manual page from the User Commands crew and it is genuinely iconic πŸ’…


✨ NAME ✨

clean_genes β€” Given a GFF describing a set of genes and a corresponding


🌸 DESCRIPTION 🌸

Okay so picture this: you've got a GFF describing a whole set of genes, and you've got a matching multiple alignment. What clean_genes does is spit out a brand new GFF that only contains the genes that pass certain "cleanliness" criteria. That's the whole vibe check. ✨

Heads up though, the coordinates in the GFF are assumed to line up with the reference sequence in the alignment, and that reference sequence is assumed to be the first one listed. no cap.

So what's the default behavior? Literally just this: every annotated start/stop codon and splice site has to be valid in the reference sequence. And when we say valid splice sites, we mean GT-AG, GC-AG, and AT-AC are the allowed flavors. That's it, that's the default.

Cute use case: you can run this with an "alignment" that is just a single sequence to filter out incorrect annotations. Chef's kiss, honestly.

And if you want more? There are extra options for imposing additional criteria, mostly about conservation across species β€” go peek at --conserved in particular, that's the moment. πŸ‘‘


πŸŽ€ SYNOPSIS πŸŽ€

clean_genes [options] <gff_fname> <msa_fname>

πŸ’… OPTIONS πŸ’…

  • --start, -s β€” Require conserved start codons (all species).
  • --stop, -t β€” Require conserved stop codons (all species).
  • --splice, -l β€” Require conserved splice sites (all species). By default, only GT-AG, GC-AG, and AT-AC splice sites are allowed (see also --splice-strict).
  • --fshift, -f β€” Require that no frame-shift gap is present in any species. Frame shifts are evaluated with respect to the reference sequence. Gaps that have non-multiple-of-three lengths are allowed if compensatory gaps occur nearby (see source code for details β€” yes, the source code, go look 🫢).
  • --nonsense, -n β€” Require that no premature stop codon is present in any species.
  • --conserved, -c β€” Implies --start, --stop, --splice, --fshift, and --nonsense. This is the recommended option for cross-species analysis. main character flag fr fr ✨
  • --N-limit, -N <f> β€” Maximum fraction of bases aligned to CDSs that are Ns in any species (<f> must be between 0 and 1). Default is 0.05. Set it to 1 if you want to allow any number of Ns, live your life.
  • --clean-gaps, -e β€” Require all cds gaps to be multiples of three in length. Can be used with --conserved.
  • --indel-strict, -I β€” Implies --clean_gaps, usually used with --conserved. Prohibits overlapping cds gaps in different sequences, gaps near cds boundaries, and gaps in the reference sequence within and between flanking features (splice sites, etc.; see code for details). Designed for use in training a phylo-HMM with an indel model. very specific, very intentional 🧚
  • --splice-strict, -C β€” Implies --splice. Allow only GT-AG canonical splice sites. Useful when training a gene finder with a simple model for splice sites.
  • --groupby, -g <tag> β€” Group features according to specified tag (default "transcript_id"). If any feature within a group fails, the entire group gets discarded, no survivors. By choosing to group features according to different criteria, you can make the program "clean" the data set at different levels. For example, to clean at the level of individual exons, add a tag like "exon_id" to indicate exons (see the program "refeature"), and then invoke clean_genes with "--groupby exon_id".
  • --msa-format, -i FASTA|PHYLIP|MPM|MAF|SS β€” Alignment file format. Default is to guess the format from the file contents. πŸ”
  • --refseq, -r <seqfile.fa> β€” (Required with --msa-format MAF) Complete reference sequence for alignment (FASTA format).
  • --offset5, -o <n> β€” (Default 0) Offset of canonical "GT" with respect to boundary on intron side of annotated 5' splice sites. Useful with annotations that describe a window around the canonical splice site.
  • --offset3, -p <n> β€” (Default 0) Offset of canonical "AG" with respect to boundary on intron side of annotated 3' splice sites.
  • --log, -L <fname> β€” Write human-readable log to specified file.
  • --machine-log, -M <fname> β€” Like --log, but produces a more concise, machine-readable log. for the robots πŸ€–
  • --stats, -S <fname> β€” Write statistics on retained and discarded features to specified file.
  • --discards, -d <fname> β€” Write discarded features to specified file. bye bestie πŸ’€
  • --no-output, -x β€” Suppress output of "cleaned" features to stdout. Useful if only the log file and/or stats are of interest.
  • --help, -h β€” Print this help message.

🌈 NOTES 🌈

Feature types are defined as follows, and yes this mapping is the whole tea:

  • coding exon <-> "CDS"
  • start codon <-> "start_codon"
  • stop codon <-> "stop_codon"
  • 5' splice site <-> "5'splice"
  • 3' splice site <-> "3'splice"

In addition, splice sites in UTR can be separately designated as "5'splice_utr" and "3'splice_utr". Errors in these sites will be given a different code in the log files, which can be useful for tracking purposes. ✨

If evaluation is done at the level of individual exons (see --groupby), then splice sites are considered independently rather than in the context of introns. As a result, the exons flanking a GT-AC or AT-AG intron might (misleadingly) be considered "clean". ⚠️ watch out for that one, it's giving false confidence.

With --fshift and --nonsense, it is possible for entries to pass through that have stop codons in the frame of the reference sequence, although they do not have any in their own frame. Use --clean-gaps instead to guarantee that no stop codons occur in any sequence in the frame of the reference sequence. 🫢


and that's the whole page bestie, you're so welcome πŸ’– this was clean_genes version 1.4, from way back in May 2016, and it's still serving looks. periodt. πŸ‘‘βœ¨