Repository files navigation

GitHub DownloadsInstall with CondaInstall with Conda

Abismal

Another Bisulfite Mapping Algorithm (abismal) is a read mapping program for bisulfite sequencing in DNA methylation studies.

Quickstart

  • Download macOS or Linux binaries, install through conda or source.

  • Make an index for your reference genome (assuming human hg38):

    ./abismal idx hg38.fa hg38.idx
  • Map reads using that index:

    ./abismal map -i hg38.idx -o reads.sam reads_1.fq reads_2.fq
  • See documentation for mapping options and output formats.

Examples

  • Make an index from a reference genome in a single FASTA file (here, hg38.fa):

    ./abismal idx hg8.fa hg38.idx
  • Make an index using 8 threads:

    ./abismal idx -t 8 hg38.fa hg38.idx
  • Map single-end reads to hg38 using an index:

    ./abismal map -i hg38.idx -o reads.sam reads.fq
  • Map single-end reads with 64 cores (and get very close to 64x speedup):

    ./abismal map -i hg38.idx -o reads.sam -t 64 reads.fq
  • Map paired-end reads in reads_1.fq and reads_2.fq:

    ./abismal map -i hg38.idx -o reads.sam reads_1.fq reads_2.fq
  • Get output in BAM format:

    ./abismal map -i hg38.idx -B -o reads.bam reads.fq
  • Get mapping statistics in YAML format:

    ./abismal map -i hg38.idx -s reads.stats.yaml -o reads.sam reads.fq
  • Skip making the index (make it on the fly):

    ./abismal map -g hg38.fa -o reads.sam reads.fq
  • Map reads from PBAT data:

    ./abismal map -i hg38.idx -P -o reads.sam reads.fq
  • Map reads from random PBAT data:

    ./abismal map -i hg38.idx -R -o reads.sam reads.fq

Mapping results are reported in SAM format. Some choices in the output are explicitly highlighted below:

  • Reads are output identically to how they appear in the input FASTQ files, regardless of mapped strand.
  • the NM tag reports the edit distance between the read and the output, specifically the sum of mismatches, insertions and deletions to the best mapping position.
  • The CV tag reports the assumed bisulfite base used to map the read. Reads mapped as A-rich will be reported with CV:A:A, and reads mapped as T-rich will be reported with CV:A:T. This tag is independent of the strand the read was mapped to. If reads are not mapped in PBAT or random PBAT mode, the first end will always be T-rich and the second end will always be A-rich.

Building from source

If you are here because the binaries don't work for you, please let us know and we'll try to fix that.

Linux

These instructions have been tested for Ubuntu 24.04 and Fedora 41. They will likely work on most APT and RPM-based distributions in 2025.

Here are the basic commands if you are ready to build:

wget https://github.com/smithlabcode/abismal/releases/download/v3.3.0/abismal-3.3.0.tar.gztar -xf abismal-3.3.0.tar.gzcd abismal-3.3.0./configure --prefix=${HOME}makemake install

If you that doesn't work, then check that you have the right dependencies. You can find them in the lists below, depending on your system.

  • Dependencies:

    Ubuntu/Debian

    apt-get update && \DEBIAN_FRONTEND=noninteractive \apt-get install -y --no-install-recommends \ ca-certificates \ g++ \ make \ zlib1g-dev \ libhts-dev \ automake \ git \ wget

    Fedora/Red Hat

    dnf update -y && \dnf install -y \ g++ \ make \ zlib-devel \ libhts-devel \ wget \ automake \ awk \ git

    The wget is only needed if for the next step, and the automake and git (and awk for Fedora/Red Hat) are only needed for the subsequent step using a clone. Your machine likely has these already.

    If you don't have admin privileges on your system, you can use Conda to get all the dependencies. Assuming you don't already have conda installed, this will get everything you need:

    wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh && \sh Miniforge3-Linux-x86_64.sh -bsup ${HOME}/miniforge3 && \export PATH=${HOME}/miniforge3/bin:$PATH && \conda install -y \ conda-forge::binutils \ conda-forge::gxx \ conda-forge::zlib \ conda-forge::make \ conda-forge::automake \ conda-forge::git \ bioconda::htslib
  • Build from a source release and install in your home directory:

    wget https://github.com/smithlabcode/abismal/releases/download/v3.3.0/abismal-3.3.0.tar.gztar -xf abismal-3.3.0.tar.gzcd abismal-3.3.0./configure --prefix=${HOME}makemake install
  • Build from a clone and install in your home directory:

    git clone --recursive https://github.com/smithlabcode/abismal.gitcd abismal./autogen.sh./configure --prefix=${HOME}makemake install

macOS

  • Dependencies:

    Get a compiler through xcode or get gcc from Homebrew by adding gcc to the list below.

    brew update && \brew install \ zlib \ htslib \ automake \ git \ wget

    The wget is only needed if for the next step, and the automake and git are only needed for the subsequent step using a clone. I tested these steps on GitHub runners for macOS-15 so you might need additional dependencies.

    Conda as explained above will also work, but you need the conda installer script for your macOS system.

  • Build from a source release and install in your home directory:

    wget https://github.com/smithlabcode/abismal/releases/download/v3.3.0/abismal-3.3.0.tar.gztar -xf abismal-3.3.0.tar.gzcd abismal-3.3.0./configure CPPFLAGS="-I$(brew --prefix)/include" LDFLAGS="-L$(brew --prefix)/lib" --prefix=${HOME}makemake install
  • Build from a clone and install in your home directory:

    git clone --recursive https://github.com/smithlabcode/abismal.gitcd abismal./autogen.sh./configure CPPFLAGS="-I$(brew --prefix)/include" LDFLAGS="-L$(brew --prefix)/lib" --prefix=${HOME}makemake install

If you build from source you can enable a mode for mapping very short reads. Using such reads is discouraged and rarely helpful. Use the --help argument to the configure script to see how to enable this option.

Contacts

Andrew D Smith andrewds@usc.edu

Citation

The abismal manuscript is available here. If you used abismal to analyze your data, please cite:

de Sena Brandine, G., & Smith, A. D. (2021).
Fast and memory-efficient mapping of short bisulfite sequencing reads using a two-letter alphabet.
NAR Genomics and Bioinformatics, 3(4), lqab115.

About

Abismal is a mapper of FASTQ bisulfite-converted short reads (between 50 and 1000 bases) to a FASTA reference genome.

Topics

Resources

Stars

20 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

GitHub DownloadsInstall with CondaInstall with Conda

Abismal

Another Bisulfite Mapping Algorithm (abismal) is a read mapping program for bisulfite sequencing in DNA methylation studies.

Quickstart

  • Download macOS or Linux binaries, install through conda or source.

  • Make an index for your reference genome (assuming human hg38):

    ./abismal idx hg38.fa hg38.idx
  • Map reads using that index:

    ./abismal map -i hg38.idx -o reads.sam reads_1.fq reads_2.fq
  • See documentation for mapping options and output formats.

Examples

  • Make an index from a reference genome in a single FASTA file (here, hg38.fa):

    ./abismal idx hg8.fa hg38.idx
  • Make an index using 8 threads:

    ./abismal idx -t 8 hg38.fa hg38.idx
  • Map single-end reads to hg38 using an index:

    ./abismal map -i hg38.idx -o reads.sam reads.fq
  • Map single-end reads with 64 cores (and get very close to 64x speedup):

    ./abismal map -i hg38.idx -o reads.sam -t 64 reads.fq
  • Map paired-end reads in reads_1.fq and reads_2.fq:

    ./abismal map -i hg38.idx -o reads.sam reads_1.fq reads_2.fq
  • Get output in BAM format:

    ./abismal map -i hg38.idx -B -o reads.bam reads.fq
  • Get mapping statistics in YAML format:

    ./abismal map -i hg38.idx -s reads.stats.yaml -o reads.sam reads.fq
  • Skip making the index (make it on the fly):

    ./abismal map -g hg38.fa -o reads.sam reads.fq
  • Map reads from PBAT data:

    ./abismal map -i hg38.idx -P -o reads.sam reads.fq
  • Map reads from random PBAT data:

    ./abismal map -i hg38.idx -R -o reads.sam reads.fq

Mapping results are reported in SAM format. Some choices in the output are explicitly highlighted below:

  • Reads are output identically to how they appear in the input FASTQ files, regardless of mapped strand.
  • the NM tag reports the edit distance between the read and the output, specifically the sum of mismatches, insertions and deletions to the best mapping position.
  • The CV tag reports the assumed bisulfite base used to map the read. Reads mapped as A-rich will be reported with CV:A:A, and reads mapped as T-rich will be reported with CV:A:T. This tag is independent of the strand the read was mapped to. If reads are not mapped in PBAT or random PBAT mode, the first end will always be T-rich and the second end will always be A-rich.

Building from source

If you are here because the binaries don't work for you, please let us know and we'll try to fix that.

Linux

These instructions have been tested for Ubuntu 24.04 and Fedora 41. They will likely work on most APT and RPM-based distributions in 2025.

Here are the basic commands if you are ready to build:

wget https://github.com/smithlabcode/abismal/releases/download/v3.3.0/abismal-3.3.0.tar.gztar -xf abismal-3.3.0.tar.gzcd abismal-3.3.0./configure --prefix=${HOME}makemake install

If you that doesn't work, then check that you have the right dependencies. You can find them in the lists below, depending on your system.

  • Dependencies:

    Ubuntu/Debian

    apt-get update && \DEBIAN_FRONTEND=noninteractive \apt-get install -y --no-install-recommends \ ca-certificates \ g++ \ make \ zlib1g-dev \ libhts-dev \ automake \ git \ wget

    Fedora/Red Hat

    dnf update -y && \dnf install -y \ g++ \ make \ zlib-devel \ libhts-devel \ wget \ automake \ awk \ git

    The wget is only needed if for the next step, and the automake and git (and awk for Fedora/Red Hat) are only needed for the subsequent step using a clone. Your machine likely has these already.

    If you don't have admin privileges on your system, you can use Conda to get all the dependencies. Assuming you don't already have conda installed, this will get everything you need:

    wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh && \sh Miniforge3-Linux-x86_64.sh -bsup ${HOME}/miniforge3 && \export PATH=${HOME}/miniforge3/bin:$PATH && \conda install -y \ conda-forge::binutils \ conda-forge::gxx \ conda-forge::zlib \ conda-forge::make \ conda-forge::automake \ conda-forge::git \ bioconda::htslib
  • Build from a source release and install in your home directory:

    wget https://github.com/smithlabcode/abismal/releases/download/v3.3.0/abismal-3.3.0.tar.gztar -xf abismal-3.3.0.tar.gzcd abismal-3.3.0./configure --prefix=${HOME}makemake install
  • Build from a clone and install in your home directory:

    git clone --recursive https://github.com/smithlabcode/abismal.gitcd abismal./autogen.sh./configure --prefix=${HOME}makemake install

macOS

  • Dependencies:

    Get a compiler through xcode or get gcc from Homebrew by adding gcc to the list below.

    brew update && \brew install \ zlib \ htslib \ automake \ git \ wget

    The wget is only needed if for the next step, and the automake and git are only needed for the subsequent step using a clone. I tested these steps on GitHub runners for macOS-15 so you might need additional dependencies.

    Conda as explained above will also work, but you need the conda installer script for your macOS system.

  • Build from a source release and install in your home directory:

    wget https://github.com/smithlabcode/abismal/releases/download/v3.3.0/abismal-3.3.0.tar.gztar -xf abismal-3.3.0.tar.gzcd abismal-3.3.0./configure CPPFLAGS="-I$(brew --prefix)/include" LDFLAGS="-L$(brew --prefix)/lib" --prefix=${HOME}makemake install
  • Build from a clone and install in your home directory:

    git clone --recursive https://github.com/smithlabcode/abismal.gitcd abismal./autogen.sh./configure CPPFLAGS="-I$(brew --prefix)/include" LDFLAGS="-L$(brew --prefix)/lib" --prefix=${HOME}makemake install

If you build from source you can enable a mode for mapping very short reads. Using such reads is discouraged and rarely helpful. Use the --help argument to the configure script to see how to enable this option.

Contacts

Andrew D Smith andrewds@usc.edu

Citation

The abismal manuscript is available here. If you used abismal to analyze your data, please cite:

de Sena Brandine, G., & Smith, A. D. (2021).
Fast and memory-efficient mapping of short bisulfite sequencing reads using a two-letter alphabet.
NAR Genomics and Bioinformatics, 3(4), lqab115.

About

Abismal is a mapper of FASTQ bisulfite-converted short reads (between 50 and 1000 bases) to a FASTA reference genome.

Topics

Resources

Stars

20 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

GitHub DownloadsInstall with CondaInstall with Conda

Abismal

Another Bisulfite Mapping Algorithm (abismal) is a read mapping program for bisulfite sequencing in DNA methylation studies.

Quickstart

  • Download macOS or Linux binaries, install through conda or source.

  • Make an index for your reference genome (assuming human hg38):

    ./abismal idx hg38.fa hg38.idx
  • Map reads using that index:

    ./abismal map -i hg38.idx -o reads.sam reads_1.fq reads_2.fq
  • See documentation for mapping options and output formats.

Examples

  • Make an index from a reference genome in a single FASTA file (here, hg38.fa):

    ./abismal idx hg8.fa hg38.idx
  • Make an index using 8 threads:

    ./abismal idx -t 8 hg38.fa hg38.idx
  • Map single-end reads to hg38 using an index:

    ./abismal map -i hg38.idx -o reads.sam reads.fq
  • Map single-end reads with 64 cores (and get very close to 64x speedup):

    ./abismal map -i hg38.idx -o reads.sam -t 64 reads.fq
  • Map paired-end reads in reads_1.fq and reads_2.fq:

    ./abismal map -i hg38.idx -o reads.sam reads_1.fq reads_2.fq
  • Get output in BAM format:

    ./abismal map -i hg38.idx -B -o reads.bam reads.fq
  • Get mapping statistics in YAML format:

    ./abismal map -i hg38.idx -s reads.stats.yaml -o reads.sam reads.fq
  • Skip making the index (make it on the fly):

    ./abismal map -g hg38.fa -o reads.sam reads.fq
  • Map reads from PBAT data:

    ./abismal map -i hg38.idx -P -o reads.sam reads.fq
  • Map reads from random PBAT data:

    ./abismal map -i hg38.idx -R -o reads.sam reads.fq

Mapping results are reported in SAM format. Some choices in the output are explicitly highlighted below:

  • Reads are output identically to how they appear in the input FASTQ files, regardless of mapped strand.
  • the NM tag reports the edit distance between the read and the output, specifically the sum of mismatches, insertions and deletions to the best mapping position.
  • The CV tag reports the assumed bisulfite base used to map the read. Reads mapped as A-rich will be reported with CV:A:A, and reads mapped as T-rich will be reported with CV:A:T. This tag is independent of the strand the read was mapped to. If reads are not mapped in PBAT or random PBAT mode, the first end will always be T-rich and the second end will always be A-rich.

Building from source

If you are here because the binaries don't work for you, please let us know and we'll try to fix that.

Linux

These instructions have been tested for Ubuntu 24.04 and Fedora 41. They will likely work on most APT and RPM-based distributions in 2025.

Here are the basic commands if you are ready to build:

wget https://github.com/smithlabcode/abismal/releases/download/v3.3.0/abismal-3.3.0.tar.gztar -xf abismal-3.3.0.tar.gzcd abismal-3.3.0./configure --prefix=${HOME}makemake install

If you that doesn't work, then check that you have the right dependencies. You can find them in the lists below, depending on your system.

  • Dependencies:

    Ubuntu/Debian

    apt-get update && \DEBIAN_FRONTEND=noninteractive \apt-get install -y --no-install-recommends \ ca-certificates \ g++ \ make \ zlib1g-dev \ libhts-dev \ automake \ git \ wget

    Fedora/Red Hat

    dnf update -y && \dnf install -y \ g++ \ make \ zlib-devel \ libhts-devel \ wget \ automake \ awk \ git

    The wget is only needed if for the next step, and the automake and git (and awk for Fedora/Red Hat) are only needed for the subsequent step using a clone. Your machine likely has these already.

    If you don't have admin privileges on your system, you can use Conda to get all the dependencies. Assuming you don't already have conda installed, this will get everything you need:

    wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh && \sh Miniforge3-Linux-x86_64.sh -bsup ${HOME}/miniforge3 && \export PATH=${HOME}/miniforge3/bin:$PATH && \conda install -y \ conda-forge::binutils \ conda-forge::gxx \ conda-forge::zlib \ conda-forge::make \ conda-forge::automake \ conda-forge::git \ bioconda::htslib
  • Build from a source release and install in your home directory:

    wget https://github.com/smithlabcode/abismal/releases/download/v3.3.0/abismal-3.3.0.tar.gztar -xf abismal-3.3.0.tar.gzcd abismal-3.3.0./configure --prefix=${HOME}makemake install
  • Build from a clone and install in your home directory:

    git clone --recursive https://github.com/smithlabcode/abismal.gitcd abismal./autogen.sh./configure --prefix=${HOME}makemake install

macOS

  • Dependencies:

    Get a compiler through xcode or get gcc from Homebrew by adding gcc to the list below.

    brew update && \brew install \ zlib \ htslib \ automake \ git \ wget

    The wget is only needed if for the next step, and the automake and git are only needed for the subsequent step using a clone. I tested these steps on GitHub runners for macOS-15 so you might need additional dependencies.

    Conda as explained above will also work, but you need the conda installer script for your macOS system.

  • Build from a source release and install in your home directory:

    wget https://github.com/smithlabcode/abismal/releases/download/v3.3.0/abismal-3.3.0.tar.gztar -xf abismal-3.3.0.tar.gzcd abismal-3.3.0./configure CPPFLAGS="-I$(brew --prefix)/include" LDFLAGS="-L$(brew --prefix)/lib" --prefix=${HOME}makemake install
  • Build from a clone and install in your home directory:

    git clone --recursive https://github.com/smithlabcode/abismal.gitcd abismal./autogen.sh./configure CPPFLAGS="-I$(brew --prefix)/include" LDFLAGS="-L$(brew --prefix)/lib" --prefix=${HOME}makemake install

If you build from source you can enable a mode for mapping very short reads. Using such reads is discouraged and rarely helpful. Use the --help argument to the configure script to see how to enable this option.

Contacts

Andrew D Smith andrewds@usc.edu

Citation

The abismal manuscript is available here. If you used abismal to analyze your data, please cite:

de Sena Brandine, G., & Smith, A. D. (2021).
Fast and memory-efficient mapping of short bisulfite sequencing reads using a two-letter alphabet.
NAR Genomics and Bioinformatics, 3(4), lqab115.

About

Abismal is a mapper of FASTQ bisulfite-converted short reads (between 50 and 1000 bases) to a FASTA reference genome.

Topics

Resources

Stars

20 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

GitHub DownloadsInstall with CondaInstall with Conda

Abismal

Another Bisulfite Mapping Algorithm (abismal) is a read mapping program for bisulfite sequencing in DNA methylation studies.

Quickstart

  • Download macOS or Linux binaries, install through conda or source.

  • Make an index for your reference genome (assuming human hg38):

    ./abismal idx hg38.fa hg38.idx
  • Map reads using that index:

    ./abismal map -i hg38.idx -o reads.sam reads_1.fq reads_2.fq
  • See documentation for mapping options and output formats.

Examples

  • Make an index from a reference genome in a single FASTA file (here, hg38.fa):

    ./abismal idx hg8.fa hg38.idx
  • Make an index using 8 threads:

    ./abismal idx -t 8 hg38.fa hg38.idx
  • Map single-end reads to hg38 using an index:

    ./abismal map -i hg38.idx -o reads.sam reads.fq
  • Map single-end reads with 64 cores (and get very close to 64x speedup):

    ./abismal map -i hg38.idx -o reads.sam -t 64 reads.fq
  • Map paired-end reads in reads_1.fq and reads_2.fq:

    ./abismal map -i hg38.idx -o reads.sam reads_1.fq reads_2.fq
  • Get output in BAM format:

    ./abismal map -i hg38.idx -B -o reads.bam reads.fq
  • Get mapping statistics in YAML format:

    ./abismal map -i hg38.idx -s reads.stats.yaml -o reads.sam reads.fq
  • Skip making the index (make it on the fly):

    ./abismal map -g hg38.fa -o reads.sam reads.fq
  • Map reads from PBAT data:

    ./abismal map -i hg38.idx -P -o reads.sam reads.fq
  • Map reads from random PBAT data:

    ./abismal map -i hg38.idx -R -o reads.sam reads.fq

Mapping results are reported in SAM format. Some choices in the output are explicitly highlighted below:

  • Reads are output identically to how they appear in the input FASTQ files, regardless of mapped strand.
  • the NM tag reports the edit distance between the read and the output, specifically the sum of mismatches, insertions and deletions to the best mapping position.
  • The CV tag reports the assumed bisulfite base used to map the read. Reads mapped as A-rich will be reported with CV:A:A, and reads mapped as T-rich will be reported with CV:A:T. This tag is independent of the strand the read was mapped to. If reads are not mapped in PBAT or random PBAT mode, the first end will always be T-rich and the second end will always be A-rich.

Building from source

If you are here because the binaries don't work for you, please let us know and we'll try to fix that.

Linux

These instructions have been tested for Ubuntu 24.04 and Fedora 41. They will likely work on most APT and RPM-based distributions in 2025.

Here are the basic commands if you are ready to build:

wget https://github.com/smithlabcode/abismal/releases/download/v3.3.0/abismal-3.3.0.tar.gztar -xf abismal-3.3.0.tar.gzcd abismal-3.3.0./configure --prefix=${HOME}makemake install

If you that doesn't work, then check that you have the right dependencies. You can find them in the lists below, depending on your system.

  • Dependencies:

    Ubuntu/Debian

    apt-get update && \DEBIAN_FRONTEND=noninteractive \apt-get install -y --no-install-recommends \ ca-certificates \ g++ \ make \ zlib1g-dev \ libhts-dev \ automake \ git \ wget

    Fedora/Red Hat

    dnf update -y && \dnf install -y \ g++ \ make \ zlib-devel \ libhts-devel \ wget \ automake \ awk \ git

    The wget is only needed if for the next step, and the automake and git (and awk for Fedora/Red Hat) are only needed for the subsequent step using a clone. Your machine likely has these already.

    If you don't have admin privileges on your system, you can use Conda to get all the dependencies. Assuming you don't already have conda installed, this will get everything you need:

    wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh && \sh Miniforge3-Linux-x86_64.sh -bsup ${HOME}/miniforge3 && \export PATH=${HOME}/miniforge3/bin:$PATH && \conda install -y \ conda-forge::binutils \ conda-forge::gxx \ conda-forge::zlib \ conda-forge::make \ conda-forge::automake \ conda-forge::git \ bioconda::htslib
  • Build from a source release and install in your home directory:

    wget https://github.com/smithlabcode/abismal/releases/download/v3.3.0/abismal-3.3.0.tar.gztar -xf abismal-3.3.0.tar.gzcd abismal-3.3.0./configure --prefix=${HOME}makemake install
  • Build from a clone and install in your home directory:

    git clone --recursive https://github.com/smithlabcode/abismal.gitcd abismal./autogen.sh./configure --prefix=${HOME}makemake install

macOS

  • Dependencies:

    Get a compiler through xcode or get gcc from Homebrew by adding gcc to the list below.

    brew update && \brew install \ zlib \ htslib \ automake \ git \ wget

    The wget is only needed if for the next step, and the automake and git are only needed for the subsequent step using a clone. I tested these steps on GitHub runners for macOS-15 so you might need additional dependencies.

    Conda as explained above will also work, but you need the conda installer script for your macOS system.

  • Build from a source release and install in your home directory:

    wget https://github.com/smithlabcode/abismal/releases/download/v3.3.0/abismal-3.3.0.tar.gztar -xf abismal-3.3.0.tar.gzcd abismal-3.3.0./configure CPPFLAGS="-I$(brew --prefix)/include" LDFLAGS="-L$(brew --prefix)/lib" --prefix=${HOME}makemake install
  • Build from a clone and install in your home directory:

    git clone --recursive https://github.com/smithlabcode/abismal.gitcd abismal./autogen.sh./configure CPPFLAGS="-I$(brew --prefix)/include" LDFLAGS="-L$(brew --prefix)/lib" --prefix=${HOME}makemake install

If you build from source you can enable a mode for mapping very short reads. Using such reads is discouraged and rarely helpful. Use the --help argument to the configure script to see how to enable this option.

Contacts

Andrew D Smith andrewds@usc.edu

Citation

The abismal manuscript is available here. If you used abismal to analyze your data, please cite:

de Sena Brandine, G., & Smith, A. D. (2021).
Fast and memory-efficient mapping of short bisulfite sequencing reads using a two-letter alphabet.
NAR Genomics and Bioinformatics, 3(4), lqab115.

About

Abismal is a mapper of FASTQ bisulfite-converted short reads (between 50 and 1000 bases) to a FASTA reference genome.

Topics

Resources

Stars

20 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

GitHub DownloadsInstall with CondaInstall with Conda

Abismal

Another Bisulfite Mapping Algorithm (abismal) is a read mapping program for bisulfite sequencing in DNA methylation studies.

Quickstart

  • Download macOS or Linux binaries, install through conda or source.

  • Make an index for your reference genome (assuming human hg38):

    ./abismal idx hg38.fa hg38.idx
  • Map reads using that index:

    ./abismal map -i hg38.idx -o reads.sam reads_1.fq reads_2.fq
  • See documentation for mapping options and output formats.

Examples

  • Make an index from a reference genome in a single FASTA file (here, hg38.fa):

    ./abismal idx hg8.fa hg38.idx
  • Make an index using 8 threads:

    ./abismal idx -t 8 hg38.fa hg38.idx
  • Map single-end reads to hg38 using an index:

    ./abismal map -i hg38.idx -o reads.sam reads.fq
  • Map single-end reads with 64 cores (and get very close to 64x speedup):

    ./abismal map -i hg38.idx -o reads.sam -t 64 reads.fq
  • Map paired-end reads in reads_1.fq and reads_2.fq:

    ./abismal map -i hg38.idx -o reads.sam reads_1.fq reads_2.fq
  • Get output in BAM format:

    ./abismal map -i hg38.idx -B -o reads.bam reads.fq
  • Get mapping statistics in YAML format:

    ./abismal map -i hg38.idx -s reads.stats.yaml -o reads.sam reads.fq
  • Skip making the index (make it on the fly):

    ./abismal map -g hg38.fa -o reads.sam reads.fq
  • Map reads from PBAT data:

    ./abismal map -i hg38.idx -P -o reads.sam reads.fq
  • Map reads from random PBAT data:

    ./abismal map -i hg38.idx -R -o reads.sam reads.fq

Mapping results are reported in SAM format. Some choices in the output are explicitly highlighted below:

  • Reads are output identically to how they appear in the input FASTQ files, regardless of mapped strand.
  • the NM tag reports the edit distance between the read and the output, specifically the sum of mismatches, insertions and deletions to the best mapping position.
  • The CV tag reports the assumed bisulfite base used to map the read. Reads mapped as A-rich will be reported with CV:A:A, and reads mapped as T-rich will be reported with CV:A:T. This tag is independent of the strand the read was mapped to. If reads are not mapped in PBAT or random PBAT mode, the first end will always be T-rich and the second end will always be A-rich.

Building from source

If you are here because the binaries don't work for you, please let us know and we'll try to fix that.

Linux

These instructions have been tested for Ubuntu 24.04 and Fedora 41. They will likely work on most APT and RPM-based distributions in 2025.

Here are the basic commands if you are ready to build:

wget https://github.com/smithlabcode/abismal/releases/download/v3.3.0/abismal-3.3.0.tar.gztar -xf abismal-3.3.0.tar.gzcd abismal-3.3.0./configure --prefix=${HOME}makemake install

If you that doesn't work, then check that you have the right dependencies. You can find them in the lists below, depending on your system.

  • Dependencies:

    Ubuntu/Debian

    apt-get update && \DEBIAN_FRONTEND=noninteractive \apt-get install -y --no-install-recommends \ ca-certificates \ g++ \ make \ zlib1g-dev \ libhts-dev \ automake \ git \ wget

    Fedora/Red Hat

    dnf update -y && \dnf install -y \ g++ \ make \ zlib-devel \ libhts-devel \ wget \ automake \ awk \ git

    The wget is only needed if for the next step, and the automake and git (and awk for Fedora/Red Hat) are only needed for the subsequent step using a clone. Your machine likely has these already.

    If you don't have admin privileges on your system, you can use Conda to get all the dependencies. Assuming you don't already have conda installed, this will get everything you need:

    wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh && \sh Miniforge3-Linux-x86_64.sh -bsup ${HOME}/miniforge3 && \export PATH=${HOME}/miniforge3/bin:$PATH && \conda install -y \ conda-forge::binutils \ conda-forge::gxx \ conda-forge::zlib \ conda-forge::make \ conda-forge::automake \ conda-forge::git \ bioconda::htslib
  • Build from a source release and install in your home directory:

    wget https://github.com/smithlabcode/abismal/releases/download/v3.3.0/abismal-3.3.0.tar.gztar -xf abismal-3.3.0.tar.gzcd abismal-3.3.0./configure --prefix=${HOME}makemake install
  • Build from a clone and install in your home directory:

    git clone --recursive https://github.com/smithlabcode/abismal.gitcd abismal./autogen.sh./configure --prefix=${HOME}makemake install

macOS

  • Dependencies:

    Get a compiler through xcode or get gcc from Homebrew by adding gcc to the list below.

    brew update && \brew install \ zlib \ htslib \ automake \ git \ wget

    The wget is only needed if for the next step, and the automake and git are only needed for the subsequent step using a clone. I tested these steps on GitHub runners for macOS-15 so you might need additional dependencies.

    Conda as explained above will also work, but you need the conda installer script for your macOS system.

  • Build from a source release and install in your home directory:

    wget https://github.com/smithlabcode/abismal/releases/download/v3.3.0/abismal-3.3.0.tar.gztar -xf abismal-3.3.0.tar.gzcd abismal-3.3.0./configure CPPFLAGS="-I$(brew --prefix)/include" LDFLAGS="-L$(brew --prefix)/lib" --prefix=${HOME}makemake install
  • Build from a clone and install in your home directory:

    git clone --recursive https://github.com/smithlabcode/abismal.gitcd abismal./autogen.sh./configure CPPFLAGS="-I$(brew --prefix)/include" LDFLAGS="-L$(brew --prefix)/lib" --prefix=${HOME}makemake install

If you build from source you can enable a mode for mapping very short reads. Using such reads is discouraged and rarely helpful. Use the --help argument to the configure script to see how to enable this option.

Contacts

Andrew D Smith andrewds@usc.edu

Citation

The abismal manuscript is available here. If you used abismal to analyze your data, please cite:

de Sena Brandine, G., & Smith, A. D. (2021).
Fast and memory-efficient mapping of short bisulfite sequencing reads using a two-letter alphabet.
NAR Genomics and Bioinformatics, 3(4), lqab115.

About

Abismal is a mapper of FASTQ bisulfite-converted short reads (between 50 and 1000 bases) to a FASTA reference genome.

Topics

Resources

Stars

20 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

GitHub DownloadsInstall with CondaInstall with Conda

Abismal

Another Bisulfite Mapping Algorithm (abismal) is a read mapping program for bisulfite sequencing in DNA methylation studies.

Quickstart

  • Download macOS or Linux binaries, install through conda or source.

  • Make an index for your reference genome (assuming human hg38):

    ./abismal idx hg38.fa hg38.idx
  • Map reads using that index:

    ./abismal map -i hg38.idx -o reads.sam reads_1.fq reads_2.fq
  • See documentation for mapping options and output formats.

Examples

  • Make an index from a reference genome in a single FASTA file (here, hg38.fa):

    ./abismal idx hg8.fa hg38.idx
  • Make an index using 8 threads:

    ./abismal idx -t 8 hg38.fa hg38.idx
  • Map single-end reads to hg38 using an index:

    ./abismal map -i hg38.idx -o reads.sam reads.fq
  • Map single-end reads with 64 cores (and get very close to 64x speedup):

    ./abismal map -i hg38.idx -o reads.sam -t 64 reads.fq
  • Map paired-end reads in reads_1.fq and reads_2.fq:

    ./abismal map -i hg38.idx -o reads.sam reads_1.fq reads_2.fq
  • Get output in BAM format:

    ./abismal map -i hg38.idx -B -o reads.bam reads.fq
  • Get mapping statistics in YAML format:

    ./abismal map -i hg38.idx -s reads.stats.yaml -o reads.sam reads.fq
  • Skip making the index (make it on the fly):

    ./abismal map -g hg38.fa -o reads.sam reads.fq
  • Map reads from PBAT data:

    ./abismal map -i hg38.idx -P -o reads.sam reads.fq
  • Map reads from random PBAT data:

    ./abismal map -i hg38.idx -R -o reads.sam reads.fq

Mapping results are reported in SAM format. Some choices in the output are explicitly highlighted below:

  • Reads are output identically to how they appear in the input FASTQ files, regardless of mapped strand.
  • the NM tag reports the edit distance between the read and the output, specifically the sum of mismatches, insertions and deletions to the best mapping position.
  • The CV tag reports the assumed bisulfite base used to map the read. Reads mapped as A-rich will be reported with CV:A:A, and reads mapped as T-rich will be reported with CV:A:T. This tag is independent of the strand the read was mapped to. If reads are not mapped in PBAT or random PBAT mode, the first end will always be T-rich and the second end will always be A-rich.

Building from source

If you are here because the binaries don't work for you, please let us know and we'll try to fix that.

Linux

These instructions have been tested for Ubuntu 24.04 and Fedora 41. They will likely work on most APT and RPM-based distributions in 2025.

Here are the basic commands if you are ready to build:

wget https://github.com/smithlabcode/abismal/releases/download/v3.3.0/abismal-3.3.0.tar.gztar -xf abismal-3.3.0.tar.gzcd abismal-3.3.0./configure --prefix=${HOME}makemake install

If you that doesn't work, then check that you have the right dependencies. You can find them in the lists below, depending on your system.

  • Dependencies:

    Ubuntu/Debian

    apt-get update && \DEBIAN_FRONTEND=noninteractive \apt-get install -y --no-install-recommends \ ca-certificates \ g++ \ make \ zlib1g-dev \ libhts-dev \ automake \ git \ wget

    Fedora/Red Hat

    dnf update -y && \dnf install -y \ g++ \ make \ zlib-devel \ libhts-devel \ wget \ automake \ awk \ git

    The wget is only needed if for the next step, and the automake and git (and awk for Fedora/Red Hat) are only needed for the subsequent step using a clone. Your machine likely has these already.

    If you don't have admin privileges on your system, you can use Conda to get all the dependencies. Assuming you don't already have conda installed, this will get everything you need:

    wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh && \sh Miniforge3-Linux-x86_64.sh -bsup ${HOME}/miniforge3 && \export PATH=${HOME}/miniforge3/bin:$PATH && \conda install -y \ conda-forge::binutils \ conda-forge::gxx \ conda-forge::zlib \ conda-forge::make \ conda-forge::automake \ conda-forge::git \ bioconda::htslib
  • Build from a source release and install in your home directory:

    wget https://github.com/smithlabcode/abismal/releases/download/v3.3.0/abismal-3.3.0.tar.gztar -xf abismal-3.3.0.tar.gzcd abismal-3.3.0./configure --prefix=${HOME}makemake install
  • Build from a clone and install in your home directory:

    git clone --recursive https://github.com/smithlabcode/abismal.gitcd abismal./autogen.sh./configure --prefix=${HOME}makemake install

macOS

  • Dependencies:

    Get a compiler through xcode or get gcc from Homebrew by adding gcc to the list below.

    brew update && \brew install \ zlib \ htslib \ automake \ git \ wget

    The wget is only needed if for the next step, and the automake and git are only needed for the subsequent step using a clone. I tested these steps on GitHub runners for macOS-15 so you might need additional dependencies.

    Conda as explained above will also work, but you need the conda installer script for your macOS system.

  • Build from a source release and install in your home directory:

    wget https://github.com/smithlabcode/abismal/releases/download/v3.3.0/abismal-3.3.0.tar.gztar -xf abismal-3.3.0.tar.gzcd abismal-3.3.0./configure CPPFLAGS="-I$(brew --prefix)/include" LDFLAGS="-L$(brew --prefix)/lib" --prefix=${HOME}makemake install
  • Build from a clone and install in your home directory:

    git clone --recursive https://github.com/smithlabcode/abismal.gitcd abismal./autogen.sh./configure CPPFLAGS="-I$(brew --prefix)/include" LDFLAGS="-L$(brew --prefix)/lib" --prefix=${HOME}makemake install

If you build from source you can enable a mode for mapping very short reads. Using such reads is discouraged and rarely helpful. Use the --help argument to the configure script to see how to enable this option.

Contacts

Andrew D Smith andrewds@usc.edu

Citation

The abismal manuscript is available here. If you used abismal to analyze your data, please cite:

de Sena Brandine, G., & Smith, A. D. (2021).
Fast and memory-efficient mapping of short bisulfite sequencing reads using a two-letter alphabet.
NAR Genomics and Bioinformatics, 3(4), lqab115.

About

Abismal is a mapper of FASTQ bisulfite-converted short reads (between 50 and 1000 bases) to a FASTA reference genome.

Topics

Resources

Stars

20 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

GitHub DownloadsInstall with CondaInstall with Conda

Abismal

Another Bisulfite Mapping Algorithm (abismal) is a read mapping program for bisulfite sequencing in DNA methylation studies.

Quickstart

  • Download macOS or Linux binaries, install through conda or source.

  • Make an index for your reference genome (assuming human hg38):

    ./abismal idx hg38.fa hg38.idx
  • Map reads using that index:

    ./abismal map -i hg38.idx -o reads.sam reads_1.fq reads_2.fq
  • See documentation for mapping options and output formats.

Examples

  • Make an index from a reference genome in a single FASTA file (here, hg38.fa):

    ./abismal idx hg8.fa hg38.idx
  • Make an index using 8 threads:

    ./abismal idx -t 8 hg38.fa hg38.idx
  • Map single-end reads to hg38 using an index:

    ./abismal map -i hg38.idx -o reads.sam reads.fq
  • Map single-end reads with 64 cores (and get very close to 64x speedup):

    ./abismal map -i hg38.idx -o reads.sam -t 64 reads.fq
  • Map paired-end reads in reads_1.fq and reads_2.fq:

    ./abismal map -i hg38.idx -o reads.sam reads_1.fq reads_2.fq
  • Get output in BAM format:

    ./abismal map -i hg38.idx -B -o reads.bam reads.fq
  • Get mapping statistics in YAML format:

    ./abismal map -i hg38.idx -s reads.stats.yaml -o reads.sam reads.fq
  • Skip making the index (make it on the fly):

    ./abismal map -g hg38.fa -o reads.sam reads.fq
  • Map reads from PBAT data:

    ./abismal map -i hg38.idx -P -o reads.sam reads.fq
  • Map reads from random PBAT data:

    ./abismal map -i hg38.idx -R -o reads.sam reads.fq

Mapping results are reported in SAM format. Some choices in the output are explicitly highlighted below:

  • Reads are output identically to how they appear in the input FASTQ files, regardless of mapped strand.
  • the NM tag reports the edit distance between the read and the output, specifically the sum of mismatches, insertions and deletions to the best mapping position.
  • The CV tag reports the assumed bisulfite base used to map the read. Reads mapped as A-rich will be reported with CV:A:A, and reads mapped as T-rich will be reported with CV:A:T. This tag is independent of the strand the read was mapped to. If reads are not mapped in PBAT or random PBAT mode, the first end will always be T-rich and the second end will always be A-rich.

Building from source

If you are here because the binaries don't work for you, please let us know and we'll try to fix that.

Linux

These instructions have been tested for Ubuntu 24.04 and Fedora 41. They will likely work on most APT and RPM-based distributions in 2025.

Here are the basic commands if you are ready to build:

wget https://github.com/smithlabcode/abismal/releases/download/v3.3.0/abismal-3.3.0.tar.gztar -xf abismal-3.3.0.tar.gzcd abismal-3.3.0./configure --prefix=${HOME}makemake install

If you that doesn't work, then check that you have the right dependencies. You can find them in the lists below, depending on your system.

  • Dependencies:

    Ubuntu/Debian

    apt-get update && \DEBIAN_FRONTEND=noninteractive \apt-get install -y --no-install-recommends \ ca-certificates \ g++ \ make \ zlib1g-dev \ libhts-dev \ automake \ git \ wget

    Fedora/Red Hat

    dnf update -y && \dnf install -y \ g++ \ make \ zlib-devel \ libhts-devel \ wget \ automake \ awk \ git

    The wget is only needed if for the next step, and the automake and git (and awk for Fedora/Red Hat) are only needed for the subsequent step using a clone. Your machine likely has these already.

    If you don't have admin privileges on your system, you can use Conda to get all the dependencies. Assuming you don't already have conda installed, this will get everything you need:

    wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh && \sh Miniforge3-Linux-x86_64.sh -bsup ${HOME}/miniforge3 && \export PATH=${HOME}/miniforge3/bin:$PATH && \conda install -y \ conda-forge::binutils \ conda-forge::gxx \ conda-forge::zlib \ conda-forge::make \ conda-forge::automake \ conda-forge::git \ bioconda::htslib
  • Build from a source release and install in your home directory:

    wget https://github.com/smithlabcode/abismal/releases/download/v3.3.0/abismal-3.3.0.tar.gztar -xf abismal-3.3.0.tar.gzcd abismal-3.3.0./configure --prefix=${HOME}makemake install
  • Build from a clone and install in your home directory:

    git clone --recursive https://github.com/smithlabcode/abismal.gitcd abismal./autogen.sh./configure --prefix=${HOME}makemake install

macOS

  • Dependencies:

    Get a compiler through xcode or get gcc from Homebrew by adding gcc to the list below.

    brew update && \brew install \ zlib \ htslib \ automake \ git \ wget

    The wget is only needed if for the next step, and the automake and git are only needed for the subsequent step using a clone. I tested these steps on GitHub runners for macOS-15 so you might need additional dependencies.

    Conda as explained above will also work, but you need the conda installer script for your macOS system.

  • Build from a source release and install in your home directory:

    wget https://github.com/smithlabcode/abismal/releases/download/v3.3.0/abismal-3.3.0.tar.gztar -xf abismal-3.3.0.tar.gzcd abismal-3.3.0./configure CPPFLAGS="-I$(brew --prefix)/include" LDFLAGS="-L$(brew --prefix)/lib" --prefix=${HOME}makemake install
  • Build from a clone and install in your home directory:

    git clone --recursive https://github.com/smithlabcode/abismal.gitcd abismal./autogen.sh./configure CPPFLAGS="-I$(brew --prefix)/include" LDFLAGS="-L$(brew --prefix)/lib" --prefix=${HOME}makemake install

If you build from source you can enable a mode for mapping very short reads. Using such reads is discouraged and rarely helpful. Use the --help argument to the configure script to see how to enable this option.

Contacts

Andrew D Smith andrewds@usc.edu

Citation

The abismal manuscript is available here. If you used abismal to analyze your data, please cite:

de Sena Brandine, G., & Smith, A. D. (2021).
Fast and memory-efficient mapping of short bisulfite sequencing reads using a two-letter alphabet.
NAR Genomics and Bioinformatics, 3(4), lqab115.

About

Abismal is a mapper of FASTQ bisulfite-converted short reads (between 50 and 1000 bases) to a FASTA reference genome.

Topics

Resources

Stars

20 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

GitHub DownloadsInstall with CondaInstall with Conda

Abismal

Another Bisulfite Mapping Algorithm (abismal) is a read mapping program for bisulfite sequencing in DNA methylation studies.

Quickstart

  • Download macOS or Linux binaries, install through conda or source.

  • Make an index for your reference genome (assuming human hg38):

    ./abismal idx hg38.fa hg38.idx
  • Map reads using that index:

    ./abismal map -i hg38.idx -o reads.sam reads_1.fq reads_2.fq
  • See documentation for mapping options and output formats.

Examples

  • Make an index from a reference genome in a single FASTA file (here, hg38.fa):

    ./abismal idx hg8.fa hg38.idx
  • Make an index using 8 threads:

    ./abismal idx -t 8 hg38.fa hg38.idx
  • Map single-end reads to hg38 using an index:

    ./abismal map -i hg38.idx -o reads.sam reads.fq
  • Map single-end reads with 64 cores (and get very close to 64x speedup):

    ./abismal map -i hg38.idx -o reads.sam -t 64 reads.fq
  • Map paired-end reads in reads_1.fq and reads_2.fq:

    ./abismal map -i hg38.idx -o reads.sam reads_1.fq reads_2.fq
  • Get output in BAM format:

    ./abismal map -i hg38.idx -B -o reads.bam reads.fq
  • Get mapping statistics in YAML format:

    ./abismal map -i hg38.idx -s reads.stats.yaml -o reads.sam reads.fq
  • Skip making the index (make it on the fly):

    ./abismal map -g hg38.fa -o reads.sam reads.fq
  • Map reads from PBAT data:

    ./abismal map -i hg38.idx -P -o reads.sam reads.fq
  • Map reads from random PBAT data:

    ./abismal map -i hg38.idx -R -o reads.sam reads.fq

Mapping results are reported in SAM format. Some choices in the output are explicitly highlighted below:

  • Reads are output identically to how they appear in the input FASTQ files, regardless of mapped strand.
  • the NM tag reports the edit distance between the read and the output, specifically the sum of mismatches, insertions and deletions to the best mapping position.
  • The CV tag reports the assumed bisulfite base used to map the read. Reads mapped as A-rich will be reported with CV:A:A, and reads mapped as T-rich will be reported with CV:A:T. This tag is independent of the strand the read was mapped to. If reads are not mapped in PBAT or random PBAT mode, the first end will always be T-rich and the second end will always be A-rich.

Building from source

If you are here because the binaries don't work for you, please let us know and we'll try to fix that.

Linux

These instructions have been tested for Ubuntu 24.04 and Fedora 41. They will likely work on most APT and RPM-based distributions in 2025.

Here are the basic commands if you are ready to build:

wget https://github.com/smithlabcode/abismal/releases/download/v3.3.0/abismal-3.3.0.tar.gztar -xf abismal-3.3.0.tar.gzcd abismal-3.3.0./configure --prefix=${HOME}makemake install

If you that doesn't work, then check that you have the right dependencies. You can find them in the lists below, depending on your system.

  • Dependencies:

    Ubuntu/Debian

    apt-get update && \DEBIAN_FRONTEND=noninteractive \apt-get install -y --no-install-recommends \ ca-certificates \ g++ \ make \ zlib1g-dev \ libhts-dev \ automake \ git \ wget

    Fedora/Red Hat

    dnf update -y && \dnf install -y \ g++ \ make \ zlib-devel \ libhts-devel \ wget \ automake \ awk \ git

    The wget is only needed if for the next step, and the automake and git (and awk for Fedora/Red Hat) are only needed for the subsequent step using a clone. Your machine likely has these already.

    If you don't have admin privileges on your system, you can use Conda to get all the dependencies. Assuming you don't already have conda installed, this will get everything you need:

    wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh && \sh Miniforge3-Linux-x86_64.sh -bsup ${HOME}/miniforge3 && \export PATH=${HOME}/miniforge3/bin:$PATH && \conda install -y \ conda-forge::binutils \ conda-forge::gxx \ conda-forge::zlib \ conda-forge::make \ conda-forge::automake \ conda-forge::git \ bioconda::htslib
  • Build from a source release and install in your home directory:

    wget https://github.com/smithlabcode/abismal/releases/download/v3.3.0/abismal-3.3.0.tar.gztar -xf abismal-3.3.0.tar.gzcd abismal-3.3.0./configure --prefix=${HOME}makemake install
  • Build from a clone and install in your home directory:

    git clone --recursive https://github.com/smithlabcode/abismal.gitcd abismal./autogen.sh./configure --prefix=${HOME}makemake install

macOS

  • Dependencies:

    Get a compiler through xcode or get gcc from Homebrew by adding gcc to the list below.

    brew update && \brew install \ zlib \ htslib \ automake \ git \ wget

    The wget is only needed if for the next step, and the automake and git are only needed for the subsequent step using a clone. I tested these steps on GitHub runners for macOS-15 so you might need additional dependencies.

    Conda as explained above will also work, but you need the conda installer script for your macOS system.

  • Build from a source release and install in your home directory:

    wget https://github.com/smithlabcode/abismal/releases/download/v3.3.0/abismal-3.3.0.tar.gztar -xf abismal-3.3.0.tar.gzcd abismal-3.3.0./configure CPPFLAGS="-I$(brew --prefix)/include" LDFLAGS="-L$(brew --prefix)/lib" --prefix=${HOME}makemake install
  • Build from a clone and install in your home directory:

    git clone --recursive https://github.com/smithlabcode/abismal.gitcd abismal./autogen.sh./configure CPPFLAGS="-I$(brew --prefix)/include" LDFLAGS="-L$(brew --prefix)/lib" --prefix=${HOME}makemake install

If you build from source you can enable a mode for mapping very short reads. Using such reads is discouraged and rarely helpful. Use the --help argument to the configure script to see how to enable this option.

Contacts

Andrew D Smith andrewds@usc.edu

Citation

The abismal manuscript is available here. If you used abismal to analyze your data, please cite:

de Sena Brandine, G., & Smith, A. D. (2021).
Fast and memory-efficient mapping of short bisulfite sequencing reads using a two-letter alphabet.
NAR Genomics and Bioinformatics, 3(4), lqab115.

About

Abismal is a mapper of FASTQ bisulfite-converted short reads (between 50 and 1000 bases) to a FASTA reference genome.

Topics

Resources

Stars

20 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages