Source code for hicstuff.main

#! /usr/bin/env python
# Based on Rémy Greinhofer (rgreinho) tutorial on subcommands in docopt
# https://github.com/rgreinho/docopt-subcommands-example
# cmdoret, 20181214
"""
Simple Hi-C pipeline for generating and manipulating contact matrices.

usage:
    hicstuff [-hv] <command> [<args>...]

options:
    -h, --help                  shows the help
    -v, --version               shows the version

The subcommands are:
    convert         Convert Hi-C data between different formats.
    digest          Digest genome into a list of fragments.
    cutsite         Preprocess fastq files by digesting reads at religation site.
    distancelaw     Analyse and plot distance law.
    filter          Filters Hi-C pairs to exclude spurious events.
    iteralign       Iteratively aligns reads to a reference genome.
    missview        Preview missing Hi-C bins in based on the genome and read length.
    pipeline        Hi-C pipeline to generate contact matrix from fastq files.
    rebin           Bin the matrix and regenerate files accordingly.
    subsample       Bootstrap subsampling of contacts from a Hi-C map.
    view            Visualize a Hi-C matrix.    
"""

from docopt import docopt
from docopt import DocoptExit
import hicstuff.commands as commands
from hicstuff.version import __version__


[docs]def main(): args = docopt(__doc__, version=__version__, options_first=True) # Retrieve the command to execute. command_name = args.pop("<command>").capitalize() # Retrieve the command arguments. command_args = args.pop("<args>") if command_args is None: command_args = {} # After 'popping' '<command>' and '<args>', what is left in the # args dictionary are the global arguments. # Retrieve the class from the 'commands' module. try: command_class = getattr(commands, command_name) except AttributeError: print("Unknown command.") raise DocoptExit() # Create an instance of the command. command = command_class(command_args, args) # Execute the command. command.execute()
if __name__ == "__main__": main()