Repository navigation
v1.5.2
New Features
Local BLAST database
- MitoPilot now finds each sample's closest reference mitogenome by searching a local BLAST database packaged in the container, rather than querying NCBI over the network. The database holds all annotated metazoan mitogenomes in GenBank (134,560 sequences).
- The search takes 1-2 seconds per sample instead of minutes, needs no internet connection and no NCBI API key, and is reproducible: a remote search returns whatever GenBank held that day, so the same project could pick a different reference on a re-run.
- Verified against saved remote results: accession, percent identity, and query coverage are identical for every sample in the test project.
- Annotations for the winning reference are still fetched from NCBI, so an internet connection is still required for that step.
New BLAST options
- Remote BLAST searches NCBI over the network instead of the bundled database, for reaching sequences the local database does not contain.
- Fall back to remote BLAST when no local hit (on by default) retries a sample against NCBI when the local search finds nothing, which covers lineages with no mitogenome in the database. Turn it off for strictly offline, reproducible runs.
- Restrict search to taxon IDs limits the search to one or more numeric NCBI taxon IDs (for example
7711for Chordata). The same restriction is applied if the remote fallback runs. - The Entrez query field now applies only to remote searches and is shown only when Remote BLAST is ticked. Existing projects that set a custom Entrez query are switched to Remote BLAST when the project is upgraded, so they keep behaving as before.
Version and database provenance
- The BLAST options window shows when the bundled database was built and how many sequences it holds, so it is clear which reference set produced a project's assignments. The build date is also recorded alongside each sample's results.
- Opening a project whose container version does not match the installed MitoPilot now shows a warning naming both versions. It does not block the app: the project still works, it simply runs the pipeline code baked into the older image.
Scaffold-join editor
- The base-pair alignment zoom now opens windows up to 1000 bp, up from the previous cap. This is the widest window that renders on every display.
- Row labels stay in a fixed panel in the base-pair zoom, so it remains clear which scaffold each row belongs to while the alignment scrolls sideways.
- Build joined assembly now shows a progress spinner while Path 0 is being built, instead of appearing to hang.
Bug Fixes
BLAST results
- BLAST hits could be silently lost. The assembly record and the BLAST result were written to the project database by two independent processes with no guaranteed ordering, so a hit could be overwritten moments after it was stored. The sample then showed a reference in the Assemble panel but a blank one in Annotate, with nothing reporting a problem. Observed on one sample of fourteen in a single run.
- A path with no BLAST hit is now scored as one. A missing hit was treated as missing information and simply left out of an assembly path's score, so a path that matched nothing was never penalized and could outrank a path with a genuine, if distant, match. For the same reason the "possible NUMT/contaminant" flag never fired for those paths, which is exactly where it is most useful.
- Automatic scaffold joining is no longer cancelled by a no-hit scaffold. A scaffold that matched nothing was counted as a second, disagreeing reference, so MitoPilot held back the join and left the sample fragmented without explanation.
Annotation editing
- The synteny plot no longer mis-registers after editing an assembly. Linearize left the cached reference alignment untouched, so the plot was silently shifted by the rotation offset, and Trim deleted the alignment with nothing rebuilding it. Both operations now repair the cached alignment exactly, and an alignment that cannot be repaired is recomputed on demand when the window opens.
- The Trim control re-measures after annotation edits. Deleting, restoring, merging, or adjusting the boundaries of an annotation now updates the unannotated flanks shown in the Trim control and its confirmation dialog, which previously kept reporting the pre-edit measurement.
- The PCG outlier review no longer shows the pre-edit alignment after returning through Back to Review. The review now decides for itself what changed by comparing against the project database, and recomputes only the genes that actually moved.
- Mouse-wheel scrolling is no longer translated into horizontal scrolling on the coverage map and synteny views.
App
- Fixed a crash when opening annotation options. Ignoring every scaffold of a sample and then un-ignoring one left that sample with no parameter sets assigned, showing "undefined" for the annotate, curate, and ORF sets; clicking one closed the app. Affected samples are repaired automatically.
HPC
- Fixed the reference fetch step being killed by scheduler memory limits. On nodes with many cores, R reserved several GB of address space before doing any work, which schedulers that cap address space (such as SGE on Hydra) treated as an overrun, killing the task before it made a single request. Raising the memory request did not help, because the reservation grows with the node's core count. All R pipeline steps are now capped to a single compute thread.
- The NMNH Hydra profile now uses a fixed memory reservation for its annotation steps rather than one that scaled with the retry attempt.
Note
To update older MitoPilot projects, please run MitoPilot::backwards_compatibility(). This will add any missing fields to the SQL database (including the new assembly_backup table) and attempt to update the Docker/Singularity container version in your project .config file.
Full Changelog: 1.5.1...1.5.2