Skip to main content

Logo

language License: GPL v3 PiPy Downloads

MSAexplorer is a python package and also a standalone app to analyse multiple sequence alignments and generate publication ready figures. Want to just use the MSAexplorer app? The curently stable version of the MSAexplorer app is hosted on github pages.

[!WARNING]
You might fall in love with plotting alignments in python.

Requirements and installation

[!NOTE] MSAexplorer can be installed via PyPi. There are three different possibilities depending on whether you want to only install the python package or the python package and front end app or the python package, front end app and additional tools for aligning and trimming.

Requirements prior installation

python >= python 3.11

Basic installation (python library):

Relies on:

  • matplotlib>=3.8
  • biopython>=1.81
  • numpy>=2.0

Can be installed via:

pip install msaexplorer 

Extended installation (python library + app):

Relies on:

  • matplotlib>=3.8
  • biopython>=1.81
  • numpy>=2.0
  • shiny>=1.3
  • shinywidgets>=0.5.2
  • plotly>=5.23

Can be installed via:

pip install msaexplorer[app] 

Full installation (python library + app + in-app calculations).

[!NOTE] Pyfamsa and pytrimal will require that Cmake is installed.

Relies on:

  • matplotlib>=3.8
  • biopython>=1.81
  • numpy>=2.0
  • shiny>=1.3
  • shinywidgets>=0.5.2
  • plotly>=5.23
  • pyfamsa>=0.5.3
  • pytrimal>=0.8.1

Can be installed via:

pip install msaexplorer[app-plus] 

Installation for development

git clone https://github.com/jonas-fuchs/MSAexplorer
cd MSAexplorer
pip install .[app-plus]

Features of MSAexplorer as an app

usage:  msaexplorer --run --port (optional) --host (optional)

The MSAexplorer app is an interactive visualization tool designed for exploring multiple sequence alignments (MSAs).

options:
  -h, --help   show this help message and exit
  --run        Start the MSAexplorer app
  --host ip    The address that the app should listen on. Defaults to 127.0.0.1
  --port port  The port that the app should listen on. Set to 0 to use a random port. Defaults to 8080.
  --version    show program's version number and exit  
  • The app runs solely in your browser. No need to install anything, just might take a few seconds to load.
  • Use the app offline (after loading it).
  • Analyse alignments on your smartphone or tablet.
  • Download alignment statistics (e.g. entropy, SNPs, coverage, consensus, ORFs and more).
  • Annotate the alignment by additionally reading in gb, gff or bed files.
  • Flexibility to customize plots and colors.
  • Easily export the plot as pdf.
  • Generate plots of the whole alignment as well as just parts of it.
  • Publication ready figures with just a few clicks.

Hosting MSAexplorer yourself

If you want to host MSAexplorer e.g. for your group, you can export the app as a static html with a few easy steps. However, in-app calculations with pyfamsa and pytrimal are currently not supported.

# install shinylive for exporting
pip install shinylive
git clone https://github.com/jonas-fuchs/MSAexplorer
cd MSAexplorer
shinylive export ./ site/  # you should now have a new 'site' folder with the app

Features of MSAexplorer as a python package (full documentation)

  • Access MSAexplorer as a python package
  • Seamlessly integrates with Biopython and matplotlib.
  • Maximum flexibility for the plotting and analysis features while retaining minimal syntax.
### Minimal analysis example ###

from msaexplorer import explore, export

# load the alignment
aln = explore.MSA('example_alignments/DNA.fasta')
print(aln.aln_type)  # print alignment type
print(aln.length)  # print alignment length

# adjust what you want to look at
aln.reference_id = 'AB032031.1 Borna disease virus 1 genomic RNA, complete genome'  # set a reference if needed
aln.zoom = (0, 1000)  # set a zoom range

# now print for example all snps in that zoom range compared to the reference id
snps = aln.get_snps(include_ambig=True)
print(snps)
# and then save to file
export.snps(snps, path='my_path/snps.vcf', format_type='vcf')

# see documentation for full usage
### Two minimal plotting examples ###

from msaexplorer import explore, draw
import matplotlib.pyplot as plt

# Example 1
draw.identity_alignment('example_alignments/DNA.fasta')
plt.show()

# Example 2
aln = explore.MSA('example_alignments/DNA.fasta')
# adjust zoom levels (for example to also plot sequence text)
aln.zoom = (0,60)
plt.figure(figsize=(10,12))  # adjust so the sequence text fits in your figure well
draw.identity_alignment(aln, show_identity_sequence=True)
plt.show()
### Extended plotting example  ####

import matplotlib.pyplot as plt
from msaexplorer import explore
from msaexplorer import draw

#  load alignment
aln = explore.MSA("example_alignments/DNA.fasta", reference_id=None, zoom_range=None)
# set reference to first sequence
aln.reference_id = list(aln.alignment.keys())[0]

fig, ax = plt.subplots(nrows=2, height_ratios=[0.2, 2], sharex=False)

draw.stat_plot(
    aln,
    ax=ax[0],
    stat_type="entropy",
    rolling_average=1,
    line_color="indigo"
)

draw.identity_alignment(
    aln,
    ax=ax[1],
    show_gaps=False,
    show_mask=True,
    show_mismatches=True,
    reference_color='lightsteelblue',
    color_scheme='purine_pyrimidine',
    show_seq_names=False,
    show_ambiguities=True,
    fancy_gaps=True,
    show_x_label=False,
    show_legend=True,
    bbox_to_anchor=(1,1.05)
)

plt.show()

Exampel gallery

Citing MSAexplorer

Coming soon...

Metadata

Release files for msaexplorer 0.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for msaexplorer 0.5
File Size Uploaded
msaexplorer-0.5.tar.gz 143.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for msaexplorer 0.5
File Interpreter ABI Platform
msaexplorer-0.5-py3-none-any.whl Python 3 none any Details

Total release size: 272.0 kB

Release files / msaexplorer-0.5.tar.gz

Download URL msaexplorer-0.5.tar.gz
Size 143.8 kB
Tags Source
SHA-256 checksum
How to use checksums
653663c06e3d3c9ddf86c287fee249fe28f8008167feeaf42b8002aa19e24752
BLAKE2b-256 checksum
How to use checksums
5244567300bd87a5b68b58ec3f36f27d5da91ba3dad8b4989c963dc246b15bce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / msaexplorer-0.5-py3-none-any.whl

Download URL msaexplorer-0.5-py3-none-any.whl
Size 128.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6be82ee659f640f1f010afa88ec63f82f74779bb675404cca41fdcc6f152ab9b
BLAKE2b-256 checksum
How to use checksums
10c8d3813ee0a1ee61e8a929d45e28fa86e96d2b12c1a09290927f7b9be7fae0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release history Release notifications | RSS feed

This release

0.5 This release

2 release files

0.4.6

2 release files

0.4.5

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4

2 release files

0.3.1

2 release files

0.3

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page