Skip to content

Commit d4ea788

Browse files
README.md: updates for installing v1.5.0
1 parent 3f8c653 commit d4ea788

1 file changed

Lines changed: 87 additions & 209 deletions

File tree

README.md

Lines changed: 87 additions & 209 deletions
Original file line numberDiff line numberDiff line change
@@ -6,228 +6,106 @@
66
[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
77

88
DNMTools is a set of tools for analyzing DNA methylation data from
9-
high-throughput sequencing experiments, especially whole genome
10-
bisulfite sequencing (WGBS), but also reduced representation bisulfite
11-
sequencing (RRBS). These tools focus on overcoming the computing
12-
challenges imposed by the scale of genome-wide DNA methylation data,
13-
which is usually the early parts of data analysis.
9+
high-throughput sequencing experiments, especially whole genome bisulfite
10+
sequencing (WGBS), but also reduced representation bisulfite sequencing
11+
(RRBS). These tools focus on overcoming the computing challenges imposed by
12+
the scale of genome-wide DNA methylation data, which is usually the early
13+
parts of data analysis.
1414

15-
## Installing release 1.4.4
16-
17-
The documentation for DNMTools can be found
18-
[here](https://dnmtools.readthedocs.io). But if you want to install
19-
from source and you are reading this on GitHub or in a source tree you
20-
unpacked, then keep reading. And if you are in a terminal, sorry for
21-
all the formatting.
22-
23-
### Required libraries
24-
25-
* A recent compiler. Most users will be building and installing this
26-
software with GCC. We require a compiler that fully supports C++17,
27-
so we recommend using at least GCC 9 (released in 2019). There are
28-
still many systems that install a very old version of GCC by
29-
default, so if you have problems with building this software, that
30-
might be the first thing to check. The clang LLVM compiler can
31-
also be used with a recent enough version.
32-
* The GNU Scientific Library. It can be installed using apt on Linux
33-
(Ubuntu, Debian), using brew on macOS, or from source available
34-
[here](http://www.gnu.org/software/gsl).
35-
* The HTSlib library. This can be installed through brew on macOS,
36-
through apt on Linux (Ubuntu, Debian), or from source downloadable
37-
[here](https://github.com/samtools/htslib).
38-
39-
All the above can also be installed using conda. If you use conda for
40-
these dependencies, even if you are building dnmtools from the source
41-
repo, it is easiest if all dependencies are available through conda.
42-
43-
### Configuration
44-
45-
* Download [dnmtools-1.4.4.tar.gz](https://github.com/smithlabcode/dnmtools/releases/download/v1.4.4/dnmtools-1.4.4.tar.gz).
46-
* Unpack the archive:
47-
```console
48-
tar -zxvf dnmtools-1.4.4.tar.gz
49-
```
50-
* Move into the dnmtools directory and create a build directory:
51-
```console
52-
cd dnmtools-1.4.4 && mkdir build && cd build
53-
```
54-
* Run the configuration script:
55-
```console
56-
../configure
57-
```
58-
If you do not want to install DNMTools system-wide, or if you do
59-
not have admin privileges, specify a prefix directory:
60-
```console
61-
../configure --prefix=/some/reasonable/place
62-
```
63-
If you installed HTSlib yourself in some non-standard directory,
64-
you must specify the location like this:
65-
```console
66-
../configure CPPFLAGS='-I /path/to/htslib/headers' \
67-
LDFLAGS='-L/path/to/htslib/lib'
68-
```
69-
Depending on how you obtained HTSlib, the headers may not be
70-
in a directory at the same depth as the library file.
71-
72-
### Building and installing the tools
73-
74-
If you are still in the `build` directory, run `make` to compile the
75-
tools, and then `make install` to install them:
76-
```console
77-
make && make install
78-
```
79-
If your HTSlib (or some other library) is not installed system-wide,
80-
then you might need to udpate your library path:
81-
```console
82-
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/path/to/htslib/lib
83-
```
84-
85-
### Testing the program
86-
87-
To test if everything was successful, simply run `dnmtools` without
88-
any arguments and you should see the list of available commands:
89-
```console
90-
dnmtools
91-
```
92-
There is a test suite for `dnmtools` and these test can be performed
93-
as follows:
94-
```console
95-
make check
96-
```
97-
This must be done from the build directory. Note that the tests
98-
performed with `make check` are mostly regression tests that cover
99-
prior issues rather than coverage tests to test all the functionality
100-
of `dnmtools`.
101-
102-
### Using a clone of the repo
103-
104-
We strongly recommend using DNMTools through the latest stable release
105-
under the releases section on GitHub or through a package as with
106-
conda/mamba. Developers who wish to work on the latest commits, which
107-
are unstable, can compile the source using `autogen.sh` which just
108-
wraps `autoreconf`.
15+
**Nanopore** As of v1.5.0, DNMTools has funcionality to start analysis with a
16+
BAM file from Nanopore sequencing with 5mC and 5hmC calls at CpG sites.
10917

11018
## Usage
11119

112-
Read the [documentation](https://dnmtools.readthedocs.io) for usage of
113-
individual tools within DNMTools.
114-
115-
## Installing and running `dnmtools` docker images
116-
117-
The docker images of `dnmtools` are accessible through GitHub Container
118-
registry. These are light-weight (~30 MB) images that let you run `dnmtools`
119-
without worrying about the dependencies.
120-
121-
### Installation
122-
123-
To pull the image for the latest version, run:
124-
```console
125-
docker pull ghcr.io/smithlabcode/dnmtools
126-
```
127-
To test the image installation, run:
128-
```console
129-
docker run ghcr.io/smithlabcode/dnmtools
130-
```
131-
You should see the help page of `dnmtools`.
132-
133-
For simpler reference, you can
134-
re-tag the installed image as follows, but note that you would have to re-tag
135-
the image whenever you pull an image for a new version.
136-
```console
137-
docker tag ghcr.io/smithlabcode/dnmtools:latest dnmtools:latest
138-
```
139-
140-
You can also install the image for a particular vertion by running
141-
```console
142-
docker pull ghcr.io/smithlabcode/dnmtools:v[VERSION NUMBER] #(e.g. v1.4.4)
143-
```
144-
Not all versions have corresponding images; you can find available images
145-
[here](https://github.com/smithlabcode/dnmtools/pkgs/container/dnmtools).
146-
147-
### Running the docker image
148-
149-
To run the image, you can run (assuming you tagged the image as above)
150-
```console
151-
docker run -v /path/to/data:/data -w /data \
152-
dnmtools [DNMTOOLS COMMAND] [OPTIONS] [ARGUMENTS]
153-
```
154-
In the above command, replace `/path/to/data` with the path to the directory you
155-
want to mount, and it will be mounted as the `/data` directory in the container.
156-
For example, if your genome data `genome.fa` is located in `./genome_data`, you
157-
can execute `abismalidx` by running:
158-
```console
159-
docker run -v ./genome_data:/data -w /data \
160-
dnmtools abismalidx -v -t 4 genome.fa genome.idx
161-
```
162-
In the above command, `-w /data` specifies the working directory in the
163-
container, so the output `genome.idx` is saved in the `/data` directory,
164-
which corresponds to the `./genome_data` directory in the host
165-
machine. If you want to specify the output directory, use a command like below.
166-
```console
167-
docker run -v ./genome_data:/data -w /data \
168-
-v ./genome_index:/output \
169-
dnmtools abismalidx -v -t 4 genome.fa /output/genome.idx
170-
```
171-
When you need to access multiple directories, it might be useful to use the
172-
option `-v ./:/app -w /app`, which mounts the current directory
173-
to the `/app` directory in the container, which is alo set as the working
174-
directory. You can specify the paths in the same way you would from the
175-
working directory in the host machine. For example:
176-
```console
177-
docker run -v ./:/app -w /app \
178-
dnmtools abismal -i genome_index/genome.idx -v -t 4 \
179-
-o mapped_reads/output.sam \
180-
reads/reads_1.fq reads/reads_1.fq
181-
```
182-
183-
### Testing the install and use of docker image
184-
185-
Run the following commands to test the installation and usage of the docker
186-
image of `dnmtools`.
187-
```console
188-
docker pull ghcr.io/smithlabcode/dnmtools:latest
189-
docker tag ghcr.io/smithlabcode/dnmtools:latest dnmtools:latest
190-
191-
# Clone the repo to access test data
192-
git clone git@github.com:smithlabcode/dnmtools.git
193-
cd dnmtools
194-
195-
# Run containers and save outputs in artifacts directory
196-
197-
mkdir artifacts
198-
199-
docker run -v ./:/app -w /app \
200-
dnmtools abismalidx -v -t 1 data/tRex1.fa artifacts/tRex1.idx
201-
202-
docker run -v ./:/app -w /app \
203-
dnmtools simreads -seed 1 -o artifacts/simreads -n 10000 \
204-
-m 0.01 -b 0.98 data/tRex1.fa
205-
206-
docker run -v ./:/app -w /app \
207-
dnmtools abismal -v -t 1 -i artifacts/tRex1.idx artifacts/simreads_{1,2}.fq
208-
```
209-
210-
## Contacts and bug reports
20+
The documentation for DNMTools can be found
21+
[here](https://dnmtools.readthedocs.io).
22+
23+
## Installation
24+
25+
- **Linux**
26+
The binary should work on almost any Linux system as recent as 2017: Ubuntu
27+
16.04+, Debian 9+, Fedora 24+, openSUSE Leap 42.3+, and RHEL/CentOS 8+.
28+
[Download](https://github.com/smithlabcode/dnmtools/releases/download/v1.5.0/dnmtools-1.5.0-Linux.tar.gz).
29+
30+
- **Mac**
31+
The Mac binary should work on any Mac hardware and macOS-13 (Ventura) or
32+
newer.
33+
[Download](https://github.com/smithlabcode/dnmtools/releases/download/v1.5.0/dnmtools-1.5.0-macOS.tar.gz).
34+
35+
- **Conda**
36+
```console
37+
conda install -c bioconda dnmtools
38+
```
39+
40+
- **Build from source**
41+
Get the source here:
42+
[dnmtools-1.5.0.tar.gz](https://github.com/smithlabcode/dnmtools/releases/download/v1.5.0/dnmtools-1.5.0.tar.gz). Dependencies:
43+
[GSL](http://www.gnu.org/software/gsl),
44+
[HTSlib](https://github.com/samtools/htslib),
45+
[libdeflate](https://github.com/ebiggers/libdeflate) and
46+
[ZLib](https://github.com/madler/zlib). Installing GSL and HTSlib is usually enough.
47+
See below for system-specific details.
48+
49+
Build DNMTools like this:
50+
```console
51+
tar -xf dnmtools-1.5.0.tar.gz
52+
cd dnmtools-1.5.0
53+
./configure --prefix=$HOME
54+
make
55+
make install
56+
```
57+
58+
Get dependencies and a compiler on (these might change):
59+
60+
Ubuntu/Debian
61+
```console
62+
apt-get install build-essential htslib-dev libgsl-dev
63+
```
64+
65+
RedHat/Fedora
66+
```console
67+
dnf install @c-development @development-tools htslib-devel gsl-devel awk
68+
```
69+
70+
Homebrew (see below)
71+
```console
72+
brew install gcc htslib gsl
73+
```
74+
75+
Conda (see below)
76+
```console
77+
conda create -n build-env -c conda-forge -c bioconda gcc gxx make autoconf automake htslib gsl && \
78+
conda activate build-env
79+
```
80+
81+
If you used Homebrew or Conda, you might need to set additional environment
82+
variables or run configure differently. For example with Homebrew:
83+
```console
84+
./configure CPPFLAGS="-I$(brew --prefix)/include" LDFLAGS="-L$(brew --prefix)/lib"
85+
```
86+
87+
## Contact
21188

21289
Andrew D. Smith
21390
andrewds@usc.edu
21491

21592
## Copyright and License Information
21693

217-
Copyright (C) 2022-2024
94+
Copyright (C) 2022-2025
95+
21896
Andrew D. Smith and Guilherme de Sena Brandine
21997

22098
Authors of DNMTools: Andrew D. Smith and Guilherme de Sena Brandine
22199

222-
Essential contributors: Ben Decato, Meng Zhou, Liz Ji, Terence Li,
223-
Jenny Qu, Qiang Song, Fang Fang and Masaru Nakajima
100+
Essential contributors: Ben Decato, Meng Zhou, Liz Ji, Terence Li, Jenny Qu,
101+
Qiang Song, Fang Fang and Masaru Nakajima
224102

225-
This is free software: you can redistribute it and/or modify it under
226-
the terms of the GNU General Public License as published by the Free
227-
Software Foundation, either version 3 of the License, or (at your
228-
option) any later version.
103+
This is free software: you can redistribute it and/or modify it under the
104+
terms of the GNU General Public License as published by the Free Software
105+
Foundation, either version 3 of the License, or (at your option) any later
106+
version.
229107

230-
This software is distributed in the hope that it will be useful, but
231-
WITHOUT ANY WARRANTY; without even the implied warranty of
232-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
233-
General Public License for more details.
108+
This software is distributed in the hope that it will be useful, but WITHOUT
109+
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
110+
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
111+
details.

0 commit comments

Comments
 (0)