Installation¶
There are 3 ways to use craw: * by install the standalone python scripts * by using docker image * by using singularity image
CRAW installation¶
Requirements¶
For craw_coverage¶
python >= 3.5
pysam >= 0.15.2
For craw_htmp¶
python >= 3.5
pysam == 0.15.2
pandas >= 0.24
numpy >= 1.16
matplotlib >= 3.0
pillow >= 5.4
scipy >= 0.16.1
Installation¶
Installation from package¶
Using pip
pip install craw
Do not forget to configure the matplotlib backend, specially if you use virtualenv. Otherwise on some platform there won’t any output. See matplotlib configuration for more explanation.
Note
On MacOS install python > 3 from image on http://python.org . Then install craw using pip
pip3 install craw
craw will be installed in /Library/Framework/Python.Framework/Version/3.6/ So if you want to use directly craw_coverage and craw_htmp just create a symbolic linc like this:
ln -s /Library/Framework/Python.Framework/Version/3.6/bin/craw_coverage /usr/local/bin/craw_coverage
ln -s /Library/Framework/Python.Framework/Version/3.6/bin/craw_htmp /usr/local/bin/craw_htmp
The documentation (html and pdf) is located in /Library/Framework/Python.Framework/Version/3.6/share/craw/
Installation from repository¶
To get the last version, clone the project and install with the setup.py
git clone https://gitlab.pasteur.fr/bneron/craw.git
cd craw
pip install .
Note
Instead of installing craw you can directly use the scripts from the repository. You can also use the package without installing it. To do this, you have to export the CRAW_HOME environment variable. CRAW_HOME must point to the src directory of the project. Then you can use craw_coverage and craw_htmp scripts located in bin directory.
This project is documented using sphinx. So if you use a clone, you have to generate the documentation from the source.
The project come from with some unit and functional tests. to test if everything work fine.
cd $CRAW_HOME python3 tests/run_tests.py -vvv
matplotlib configuration¶
matplotlib is a python library to create graphics. craw_htmp use this library to generate heat map. The two parameters to configure for craw is:
the backend
figure.dpi
backend¶
matplolib lay on low level graphic library of youre computer. This library will determine the graphical formats manage by matplotlib and then by craw_htmp. Most of backend handle png but some library like Qt can handle ‘jpeg’, ‘eps’, pdf …
In your matplolibrc file you must define the backend for instance to use Qt5
backend: qt5agg
An example of matplolibrc file and all supported backend is available here: http://matplotlib.org/users/customizing.html#a-sample-matplotlibrc-file
figure.dpi¶
It’s not an essential option but matplolib and craw_htmp will produce better graphic (on screen) if you configure matplotlib to the native resolution of your screen. To know the resolution of your screen you can visit the following page https://www.infobyip.com/detectmonitordpi.php and report the resolution (for 1 inch) in matplotlibrc file like:
figure.dpi: 96
For full explanation on how to configure matplotlib read http://matplotlib.org/users/customizing.html#the-matplotlibrc-file.
Using Docker Image¶
Docker images are available. The two scripts are accessible through the sub-command coverage or htmp. For instance to use the latest version of craw_htmp:
docker pull c3bi/craw
docker run -v$PWD:/root -it c3bi/craw coverage --bam foo.bam --annot foo.annot --ref-col 'Position' --before 3 --after 5 --out foo.cov
docker run -v$PWD:/root -it c3bi/craw htmp --size raw --out foo.png foo.cov
Note
In docker the interactive htmp output is not available. So you must specify the –out option
Using Singularity Image¶
Singularity images are available. The two scripts are accessible through the sub-command coverage or htmp. For instance to use the latest version of craw_htmp:
singularity pull --name craw shub://c3bi/craw
./craw coverage --bam foo.bam --annot foo.annot --ref-col 'Position' --before 3 --after 5 --out foo.cov
./craw htmp --size raw --out foo.png foo.cov
Note
instead of Docker images, in Singularity images the interactive output is available.