Skip to content

projectoriented/methylink

Repository files navigation

methylink

GitHub actions status License: MIT

A command line tool to link methylated sites between two BAM/SAM files of the same origin.

Installation

In a clean ✨ environment

pip install methylink

NOTE: This does not work on windows. Separately, C libraries like zlib may be a dependency if you do not already have htslib installed- peep here: https://pysam.readthedocs.io/en/latest/installation.html#requirements. If a faster solution is desired and docker is installed, please build the image to circumvent local dependencies. Thanks!

Usage:

Usage: methylink [OPTIONS] COMMAND [ARGS]...

  A command line tool to link methylated sites between two BAM files of the
  same origin.

Options:
  -h, --help                      Show this message and exit.
  --version                       Show the version and exit.
  --log_level [DEBUG|INFO|WARNING|ERROR|CRITICAL]
                                  Set the level of log output.  [default:
                                  INFO]
  --threads INTEGER               Number of threads to use.  [default: 1]
  --tmp PATH                      Temp directory to use.
  --methyl_bams TEXT              Unmapped bam files with methylation tags.
                                  [required]
  --aln TEXT                      Aligned bam to map the meth tags to.
                                  [required]
  --sample TEXT                   Sample name. This will be a prefix for the output; e.g. CHM1-linked.bam [required]
  --output TEXT                   Output file.  [required]

Quick start

methylink \
  --threads 2 \
  --aln tests/data/CHM1_aln_test-subsampled.bam \
  --sample CHM1 \
  --methyl_bams "$(echo tests/data/CHM1_methylated_test-{1,2,3,4,5}.bam)" \
  --output CHM1-linked.bam

Development

I'm happy with any contributions to make this code better 💪. You should be able to go forth with the following:

git clone [this repo]
cd methylink
python -m venv vmeth
source vmeth/bin/activate

pip install --editable .

What remains to do-

  • add to bioconda
  • expand on documentation
  • use signal library to catch for forced exit (eg. ctrl+c) to safely delete temp folders
  • write github actions to automate test + build + publish

Test

pytest

If that's okay then you're good to go, 🎉!