Metagenomic profiling using a reference phylogeny
Project description
Install.
From Bioconda (Recommended)
Conda installation is recommended. Create a new environment before installing expam.
conda install -c bioconda expam
From PyPI
You may need to update g++ resources on your local machine. For linux, you can run the following.
apt update
apt-get install build-essential
Then install from PyPi.
python3 -m pip install --upgrade pip
python3 -m pip install expam
From GitLab source
To install from source, you need a local installation of Python >=3.8
, as well as numpy
and cython
. There are some commonly encountered problems when installing on Linux, the
most common of which are outlined in the FAQ section below.
You may need to update g++ resources on your local machine. For linux, you can run the following.
apt update
apt-get install build-essential
First download the source code from the GitLab repository.
git clone https://github.com/seansolari/expam.git
This can then be installed locally by executing the following command from the source code root:
cd expam
python3 -m pip install --upgrade pip
python3 -m pip install -r requirements.txt
python3 setup.py install
Documentation
View our online documentation!
https://expam.readthedocs.io/en/latest/index.html
See the Quick Start Tutorial for a guide to expam's basic usage and download links for pre-built databases.
FAQ
Problems during installation
error: g++: Command not found
This is simply a matter of updating the compiler.
sudo apt-get install build-essential
fatal error: Python.h: No such file or directory
This simply means you need to install/update the Python development files for version 3.
sudo apt-get install python3-dev
(Reference - SO)
ete3 importing errors
For instance, ImportError: cannot import name 'NodeStyle'
.
The ete3 module depends on Qt to draw things, and there are two stages to getting this to work: first, Qt needs to be installed, and then you need to let Python know that Qt is installed. Follow the following instructions depending on your OS.
Mac
Install qt5 using brew.
brew install qt5
brew list --versions qt5
This should show you the precise version that brew installed. We now tell Python which version of Qt5 to link up with. Say we have qt@5 5.15.3
from the above command, then we would run
python3 -m pip install pyqt5==5.15
Had the output been qt@5 5.12.0
, we would run
python3 -m pip install pyqt5==5.12
ie. the first two parts of the version from brew. This should remedy the problem.
Linux
First update the local installation of Qt.
sudo apt-get install qt5-default
Now double-check which version of Qt has been installed.
dpkg -l | grep "pyqt5"
Take the first two parts of the version output from this, and pass it to this following install with Pip. For instance, if we have qt5 5.12.0
, take the 5.12
component. Install the corresponding Python interface to Qt.
python3 -m pip install pyqt5==5.12
OOM Killer
If you run into the unlikely circumstance where the OOM killer has been invoked and the program experiences an ungraceful exit, the operating system may not have cleaned all shared memory resources expam used, leading to potentially problematic memory leaks.
To prevent this occurring, make prudent use of the expam_limit
functionality (see documentation), and don't use an extremely high number of processes (particularly for large databases). Within the range of 10-30 processes will likely be suitable for high-memory machines.
If you suspect that OOM killer has been invoked, this can be confirmed using the following command:
dmesg -T | egrep -i 'killed process'
In the event OOM killer has been called, it is prudent to check how much shared memory is currently being used by the system.
df -h /dev/shm
If the amount of shared memory used is higher than you would expect, you can first check if there are any residual resources that need to be cleaned up.
ls -lah /dev/shm
If there are files starting with 'psm' and owned by you, these may be residual files that need to be cleaned up. Contact your systems administrator to remove these files.
It may also be the case that OOM killer has killed some child process, leaving the parent process sleeping (and therefore holding onto resources). You will need your system administrator's assistance to clean this up.
To check for sleeping (expam) processes, run
sudo lsof /dev/shm | grep "expam"
These sleeping processes should then be killed by running
kill -9 <PID>
Confirm that the leaked memory has been freed by running df -h /dev/shm
.
Commands
A complete list of available commands can by found by using the -h
/--help
flags.
expam --version
expam --help
...
Bug Reports
Please raise any bug reports at https://github.com/seansolari/expam/issues accompanied by any error messages, a rough description of the database/setup and parameters used to create the database.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file expam-1.1.2.tar.gz
.
File metadata
- Download URL: expam-1.1.2.tar.gz
- Upload date:
- Size: 455.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.9.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ede50046a310388a8f0d55f8f25b6a74ba9fd287aa2d4c604a840e97d4f4ab10 |
|
MD5 | fa813d4a6c6b5ad0626dab91abc5f447 |
|
BLAKE2b-256 | fbbb3159bf4c1427f3690267a9054668be2608023f068af03801a56a85d983df |
File details
Details for the file expam-1.1.2-cp39-cp39-macosx_12_0_x86_64.whl
.
File metadata
- Download URL: expam-1.1.2-cp39-cp39-macosx_12_0_x86_64.whl
- Upload date:
- Size: 321.7 kB
- Tags: CPython 3.9, macOS 12.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.9.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6c9e1f73191b633059eff5e54dcdf6c73329bd6070875d1c71c1b2bc389528d6 |
|
MD5 | 2cc05857ed7d9988d48249f7a2a34d11 |
|
BLAKE2b-256 | f82ff944cde039737eae3194f1eda479974e417d904651c96d37d31acedfcc79 |