MARK is a cross-platform bioinformatics suite designed to analyze targeted mitochondrial DNA (mtDNA) control-region data. It is specifically engineered to resolve overlapping amplicons, such as those generated by the Promega PowerSeq™ CRM Nested System.
MARK adapts Illumina-based chemistry workflows for both Illumina and Oxford Nanopore Technologies (ONT) sequencing platforms.
MARK includes an automated Python GUI dashboard:
MARKLaunch.pyThe dashboard drives two split-track shell pipelines:
| Pipeline | Platform | Input Type |
|---|---|---|
MARK.sh |
Oxford Nanopore Technologies | Long-read FASTQ data |
MARK-I.sh |
Illumina | Paired-end FASTQ data |
Both pipelines map reads to a linearized mitochondrial reference and split the analysis into two directly comparable tracks:
-
Baseline Track
Uses unmodified alignments. -
Trimmed Track
Resolves overlapping amplicons by assigning reads to a primary amplicon using a maximum-overlap rule. The pipeline then applies CIGAR soft-clipping to enforce tiled amplicon boundaries, reducing internal gaps and overlap-driven artifacts.
-
GUI Dashboard
MARKLaunch.pyprovides a unified interface for configuring variables, launching pipelines, and running post-processing tools. -
Cross-Platform Support
Handles both ONT long-read data and Illumina short-read paired-end data. -
Diagnostic Split-Track Analysis
Performs independent variant calling, annotation, and depth tracking for both the baseline and trimmed tracks. This allows direct comparison of how amplicon-boundary enforcement affects variant detection. -
Amplicon-Aware Processing
Uses a maximum-overlap rule to assign reads to their most appropriate amplicon and applies boundary-aware trimming to reduce overlap-related artifacts. -
Automated Post-Processing
Includes tools to convert linearized VCF coordinates back to standard circular rCRS positions and clean BAM headers for downstream review. -
Debug-Friendly Outputs
Produces multiple VCF layers, including raw, quality-filtered, SNP-only, cleaned, and homopolymer-focused outputs, allowing detailed review of variant behavior across processing stages.
MARK can be installed through Conda when the package is available, or run directly from the GitHub source.
Tested Installation:
conda create -n mark_env -c conda-forge -c bioconda python=3.10 biopython fastp fastplong minimap2 bwa-mem2 bcftools cutadapt fastqc samtools -y
conda activate mark_env
git clone https://github.com/DP-Genome/MARK.git
cd MARK
python3 MARKLaunch.pyMARK can be driven via the interactive GUI dashboard or run entirely from the command line for automation and advanced usage.
Launch the interactive dashboard. After installing via Anaconda, MARKLaunch.py is on your PATH and can be run directly:
MARKLaunch.pyWhen running from a cloned source folder, launch it with Python from inside that folder:
python3 MARKLaunch.pyThe underlying bash pipelines (MARK.sh and MARK-I.sh) are fully standalone scripts. They can be executed directly from the terminal without the dashboard. This is useful for HPC environments, workflow managers, or users who prefer overriding parameters manually.
MARKLaunch.py dashboard, navigating to the Step 2: Post-Processing tab, and running the steps sequentially on your output folder. Alternatively, you can use the AUTO feature in the dashboard to run the pipeline and post-processing together in one click.
Run either script with --help to see all available override options:
MARK.sh --help
MARK-I.sh --helpFrom the main dashboard tab:
-
Select the appropriate pipeline script:
MARK.shfor ONT dataMARK-I.shfor Illumina paired-end data
-
Adjust pipeline parameters, including:
- Quality thresholds
- Minimum and maximum read length settings
- Depth thresholds
- Trimming variables
-
Select the required input files and folders:
- Input FASTQ folder
- Reference FASTA file
- Amplicon or region BED file
- Adapter/primer list
-
Click Run Pipeline.
The second dashboard tab is used to finalize and organize the analysis outputs.
Post-processing includes:
-
Organize Raw Output
Sorts BAM and VCF files into their respective folders. -
Linear VCF Correction
Converts variants called on the linearized mitochondrial reference back to standard circular rCRS coordinates. -
BAM Cleaning
Cleans BAM headers and removes intermediate processing tags where required. -
Final Collection
Packages the cleaned and corrected files into a final delivery folder.
The Auto button on the first tab can be used to run the selected pipeline and all four post-processing steps sequentially.
MARK follows the general workflow below:
-
Maximum Length Filtering
Removes anomalous reads before core processing. -
Preprocessing
Performs platform-specific preprocessing:- Illumina read merging where applicable
- Quality filtering
- Dual-pass 5′ and 3′ adapter/primer trimming using
cutadapt
-
Alignment
Aligns reads against a linearized mitochondrial reference:- ONT:
minimap2 - Illumina:
bwa-mem2
- ONT:
-
Track Splitting
Generates two analysis tracks:- Baseline BAM
- Trimmed BAM processed using amplicon-boundary logic
-
Variant Calling and Annotation
Usesbcftoolsfor ploidy-1 variant calling and annotates specific targets, including:- Homopolymer regions
- Blacklist sites
- Other predefined regions of interest
-
VCF Export
Produces distinct VCF outputs for debugging, comparison, and final interpretation, including:- Raw VCF
- Quality-filtered VCF
- SNP-only VCF
- Cleaned VCF
- Homopolymer-only VCF
Each run creates a timestamped output folder (e.g. MARK_<input>_<timestamp>_output/), with one subfolder per sample. The post-processing steps then organize and finalize the results.
Typical outputs include:
MARK_<input>_<timestamp>_output/
├── <sample>/ # per-sample intermediates, QC, logs, and VCFs
├── sorted_bams/ # collected baseline/trimmed sorted BAMs
├── vcfs/ # collected raw and filtered VCFs
├── run_summary.txt # per-stage read-retention summary
└── Final_Pipeline_Results/
├── corrected_vcfs/ # VCFs converted back to circular rCRS coordinates
└── cleaned_bams/ # header-cleaned BAMs
Exact folder names may vary depending on the run timestamp and selected pipeline.
| Script | Purpose |
|---|---|
MARKLaunch.py |
GUI dashboard for running pipelines and post-processing |
MARK.sh |
ONT mitochondrial amplicon pipeline |
MARK-I.sh |
Illumina mitochondrial amplicon pipeline |
The baseline and trimmed tracks should be reviewed together when assessing variant behavior, especially in difficult regions such as homopolymers, amplicon overlaps, and primer-proximal positions.
An ONT test input fastq has been provided to test the pipeline with 'Test_M.fastq'.
The corrected cleaned VCF files in Final_Pipeline_Results/corrected_vcfs/ are the main files intended for downstream comparison and review. Intermediate VCFs are retained for transparency and troubleshooting.
If you use MARK, please cite this repository: Omar, Ahmed K A. MARK: Mitochondrial Amplicon Resolving Kit. GitHub repository. https://github.com/DP-Genome/MARK
