In October we added a first set of established command-line tools to the cloud server. This is the next batch. You do not have to learn their options: describe the job, Omi puts the right tool in the plan, you approve it, and the result comes back into your project with the tool and version noted in your report.
Everything here runs on the cloud server, so it needs a paid plan or a top-up, and every tool is installed at a fixed, pinned version. These tools support research. They are not validated clinical pipelines.
In this post: The tools by task · Resistance screening · Phylogenetic trees · Offline databases · Safety rails · Limits
The new tools, by what a lab does
Resistance and plasmids
- AMRFinderPlus 4.2.7 and ResFinder 4.7.2 with PointFinder and DisinFinder. Details below.
- MOB-suite 3.1.9. Separates plasmid contigs from the chromosome in an assembly and reports each plasmid’s replicon type and whether it looks mobilisable. Short-read assemblies often break plasmids into pieces, so for a clean plasmid consider a hybrid assembly. “Non-mobilizable” means no transfer genes were found, not that transfer is impossible.
Read processing and alignment
- cutadapt 5.2. Removes adapters from single or paired reads. You tell Omi which kit was used (Illumina TruSeq, Nextera, small RNA or your own sequence), because it will not guess. fastp and Trimmomatic remain the default trimmers.
- BWA-MEM2 as an alignment option for bacterial, viral and fungal genomes. Very large references are refused up front, because building the index needs more memory than the server has.
Assembly
- Shovill 1.4.2. A fast route from paired Illumina reads to an assembled isolate. It uses SPAdes by default, or SKESA, MEGAHIT or Velvet. If its read-stitching step fails, as it can for some libraries, it is re-run once without stitching and you are told.
- Unicycler 0.5.1. Assembles from short reads, long reads, or both together, aiming for closed chromosomes and plasmids. Omi will not call a genome “complete” without checking that the contigs are circular.
Annotation
- Bakta 1.12.2 with its light database (v6.0). Gives gene names and products for a genome or plasmid. The light database leaves more genes as “hypothetical protein” than the full one, and Omi says so. Omi offers it as an optional step for one representative isolate; the local gene-finding and Pfam route stays available if you prefer not to upload.
Variants
- GATK 4.6.2.0 base and variant quality score recalibration. You supply the known-sites and resource files, because the server does not hold a human resource bundle. Recalibration also needs a large set of variants, so for a single bacterial isolate Omi will suggest hard filters instead.
- iVar 1.4.4 and LoFreq 2.1.5 for viral amplicon sequencing: removing primers, calling variants (including low-frequency ones) and building a consensus genome. You provide the primer scheme and the reference, since none is bundled, and Omi will not choose the species or strain for you. A consensus position marked N is missing data, not “same as the reference”.
- ClinVar and SnpEff now work from reference data stored on the server. See the databases below.
Phylogeny
- MAFFT 7.526, trimAl, VSEARCH 2.32.0 (a reference-based chimera check) and IQ-TREE 3.1.3, plus a tree-drawing tool that checks its own layout. See the full chain below.
Resistance screening: three tools, your choice
Screening an assembled genome for resistance genes sounds like one job, but labs and journals expect different tools. Omi now offers three, and you choose. Whichever you pick, the report names the program and the database version it used.
- AMRFinderPlus 4.2.7 (NCBI). Cloud. Finds acquired resistance genes and, when you name the organism, known point mutations. An extended set also covers stress, biocide and virulence genes. It reads nucleotide or protein FASTA, and an annotation file if you have one.
- ResFinder 4.7.2 with PointFinder and DisinFinder (Center for Genomic Epidemiology). Cloud. Works from an assembly or straight from sequencing reads, finds acquired genes, looks for point mutations when you name the species, and reports disinfectant resistance genes.
- The built-in screen against CARD and VFDB. Runs on your own computer inside the notebook, so nothing leaves your machine. It reports acquired resistance and virulence genes, which makes it a good first look and a good way to learn what the output means. It is the only one of the three that does not need a paid plan.
Which one should you use?
- For something you will report or publish, use AMRFinderPlus or ResFinder, and say which one in your Methods.
- For point mutations, tell Omi the organism (AMRFinderPlus) or species (ResFinder). Without it, only acquired genes are searched, and Omi will say so.
- For a quick look, teaching, or keeping data local, use the built-in screen.
- If you run more than one, keep the tables separate. The tools use different databases and gene names, so a gene can be called differently or found by one and not another. Omi will not merge them into one list.
What we checked
We ran all three on one published E. coli genome. They agreed on the same six acquired resistance genes, and AMRFinderPlus and ResFinder reported the same four fluoroquinolone point mutations. That is a sanity check, not a validation study, so test the tools on genomes you know before you rely on them for a decision.
Reading the output correctly
- In AMRFinderPlus, the Scope column says whether a gene is in the core or the extended set. It does not say whether a gene is intrinsic or acquired.
- The contig a gene sits on is a hint about whether it is chromosomal or plasmid-borne, not proof. Omi will not call a whole drug class chromosomal or plasmid-borne without checking each gene.
- Coverage and identity are different numbers. A hit at 99.7 percent coverage is not a 99.7 percent identity hit.
The Software and versions table in your report lists the program (for example AMRFinderPlus 4.2.7) and the database release it used, read from the tool itself. A resistance gene is a genotype: it does not prove the isolate is resistant, and results depend on the quality of the assembly, since a fragmented assembly can split a gene across contigs.
Phylogenetic trees done properly
A quick neighbour-joining tree is a fine first look at your data. It is not what a reviewer expects in a methods section. While running a real 16S project we saw where the shortcuts hide, and we changed how Omi builds trees. For anything you will report, Omi now follows one standard chain, and it checks its own work along the way.
- Align with MAFFT (7.526). Omi can choose the fast automatic mode or the more careful L-INS-i and G-INS-i modes.
- Trim with trimAl, so poorly aligned columns do not drive the tree.
- Infer the tree with IQ-TREE 3 (3.1.3), letting ModelFinder pick the substitution model and running 1000 ultrafast bootstraps.
- Screen for chimeras with VSEARCH for marker genes, by comparing your sequences against a reference set you supply.
- Draw the figure with a tool that measures the page and checks the layout.
The quick tree recipe is still there for a first look, and Omi labels its result as preliminary.
The tools report their own facts
After each step the tool adds a short summary to its output, so Omi quotes numbers it was given instead of guessing:
- Alignment: how many sequences and columns, what share of the characters are gaps, and which sequences have the most gaps.
- Trimming: how many columns were kept and how many informative sites are left.
- Tree: the model chosen, the log-likelihood, and how many branches have support of at least 95, between 70 and 94, or below 70.
When a number looks worrying, for example more than half the alignment is gaps, only a third of the columns survive trimming, or most branches are weakly supported, the summary says WARNING and Omi is told not to contradict it.
Habits that keep a 16S tree honest
- Add type-strain references and an outgroup. Without them, a tree cannot tell you what your isolates are.
- Test every label, not just the odd ones. Names copied from a BLAST table should be checked against the tree before they go into a report.
- Do not mix up two kinds of identity. BLAST identity is similarity to a reference. It is not similarity within your own set, and it should not be pooled across genera.
- Identical sequences do not prove clonality, and a 16S tree often cannot separate closely related species. If no branch reaches 70 percent, Omi is expected to say so instead of writing that the tree “confirms” the species.
- Do not claim there are no chimeras unless you screened for them. Omi will run the check first.
A figure that checks itself
IQ-TREE writes a tree file, not a picture, and hand-drawn plots tend to squeeze labels, hide the legend or let a long outgroup branch flatten everything else. The new tree-figure tool roots on the outgroup you name (leaving a long outgroup branch out of the drawing and saying so), chooses a cladogram or a phylogram and prints “branch lengths not to scale” when they are not, and colours clades from a simple table using colours that stay readable for colour-blind readers. It marks support with filled and hollow dots, puts the legend outside the tree, sizes the page from the real width of the labels, and shows database-style reference names as Genus species (accession) in grey italics.
It then measures the result, looking for overlapping labels, text running off the page and a legend covering a label, and enlarges the page until the layout is clean or reports what is still wrong. It saves a 300 dpi PNG, a PDF and an SVG, and never changes the tree itself. On the desktop app, Omi is not allowed to hand-draw a tree from a tree file, so the layout check always runs.
The 95 percent line is for ultrafast bootstrap support, which is not the same scale as the 70 percent rule of thumb for standard bootstrap. Some species, such as members of the S. aureus complex, cannot be separated by 16S, and the report should say so. The tree-drawing tool and the report checks are in the desktop app; the web app has the cloud tools and the same guidance for Omi.
Reference databases that work offline
Annotation is only as reproducible as the database behind it. If a tool asks a website at run time, the answer can change from week to week, and a run can fail because the website is busy. For the tools below, Omicsboard keeps the reference data on its own server. Your run uses a fixed, checked release, and your report says which one.
- ClinVar for the GRCh38 and GRCh37 human builds. The annotation tool adds clinical significance, review status, condition and gene to each variant in your VCF, and can keep only pathogenic variants or only those above a minimum review level (zero to four stars). It handles chromosome names with or without the
chrprefix. - SnpEff genome databases for human (GRCh38.110), E. coli K-12, Salmonella Typhimurium LT2, Salmonella Typhi CT18, Klebsiella pneumoniae HS11286 and Mycobacterium tuberculosis H37Rv. SnpEff predicts what each variant does to a gene. If you ask for a genome we have not installed, the run still downloads it on the shared cloud server, as before.
- AMRFinderPlus and ResFinder with PointFinder and DisinFinder, at pinned database releases, and Bakta with its light database.
How it is kept current
- ClinVar refreshes itself. The server checks NCBI once a day. When a new release appears, it downloads it, checks it against NCBI’s checksum, indexes it, runs a real annotation test, and only then switches over. If anything fails, the current release stays in use, and the last few releases are kept for rollback.
- Everything else is updated by us, deliberately. Each download is verified against a fixed checksum or an exact version before it is accepted. For AMRFinderPlus we can also load NCBI’s database from a copy carried in by hand, test it on its own genes, switch to it in one step and switch back if needed.
You get the release in your report (the ClinVar release date for each build, the SnpEff genome, the AMRFinderPlus database), no outside lookup during the run, and the same annotation every time you run the same file against the same release.
- It is a snapshot. A variant added to ClinVar this morning will not appear until the next refresh, so always quote the release date.
- Not in ClinVar does not mean benign. It only means there is no submission. ClinVar here is for human data and research, not diagnosis, and Omi is told to quote ClinVar’s own classification words.
- Insertions and deletions need to be in a standard left-aligned form to match ClinVar. The tool can normalise them if you give it the reference genome.
- The SnpEff genome list is fixed. If you need another genome kept on the server, tell us.
Safety rails you will notice
- Windows line endings are caught. A FASTQ, FASTA or VCF written with Windows line endings can break some tools in confusing ways. Omi now refuses to start the tool, tells you which file is the problem and how to rewrite it.
- Mismatched sequence names are reported. If a variant file names the chromosome differently from the SnpEff database, the run fails with a clear message listing the names the database expects, instead of reporting success with nothing annotated.
- Clear messages for missing inputs, so you see which argument is missing rather than a cryptic path error.
- Every result lists the tools and versions that ran, and they flow into the Software and versions table in your report.
Honest limits
- Some heavy tools, such as GATK, run one at a time on the shared server.
- Results depend on your input data and on the choices Omi makes in the plan, so read the plan and the output.
- Each tool is a research aid. The databases are snapshots that we update ourselves.
Try it
Attach your reads or assembly and describe the job in plain words, for example “Assemble these paired reads with Shovill, then screen the assembly for plasmids and resistance genes.” Omi sets out the tools and where each one runs before it starts. Twelve of the cloud tools can also be used from Claude or ChatGPT through the new connector, and the rest of this release is described in what is new in 1.5.49.