From 04d2044c17b22986e92d2484921ddb94cc977a81 Mon Sep 17 00:00:00 2001 From: Tillsa Date: Sat, 11 Jul 2020 13:09:36 +0200 Subject: [PATCH] Set version to 1.0.1 --- CHANGELOG.txt | 2 + Makefile | 2 +- bin/reademption | 2 +- docs/build/doctrees/docker_image.doctree | Bin 6740 -> 6740 bytes docs/build/doctrees/environment.pickle | Bin 36295 -> 35971 bytes docs/build/doctrees/example_analysis.doctree | Bin 41982 -> 41982 bytes docs/build/doctrees/index.doctree | Bin 12953 -> 12953 bytes docs/build/doctrees/installation.doctree | Bin 24845 -> 24845 bytes docs/build/doctrees/license.doctree | Bin 4634 -> 4634 bytes .../live_and_installation_image.doctree | Bin 6727 -> 6727 bytes docs/build/doctrees/subcommands.doctree | Bin 98767 -> 98767 bytes docs/build/doctrees/troubleshooting.doctree | Bin 7491 -> 7491 bytes docs/build/doctrees/versions.doctree | Bin 2764 -> 2764 bytes docs/build/html/.buildinfo | 2 +- .../html/_static/documentation_options.js | 2 +- docs/build/html/docker_image.html | 2 +- docs/build/html/example_analysis.html | 2 +- docs/build/html/index.html | 2 +- docs/build/html/installation.html | 2 +- docs/build/html/license.html | 2 +- .../html/live_and_installation_image.html | 2 +- docs/build/html/search.html | 2 +- docs/build/html/subcommands.html | 2 +- docs/build/html/troubleshooting.html | 2 +- docs/build/html/versions.html | 2 +- docs/reademption | 316 +----------------- docs/source/conf.py | 2 +- docs/source/reademption | 316 +----------------- setup.py | 2 +- 29 files changed, 20 insertions(+), 646 deletions(-) mode change 100755 => 120000 docs/reademption mode change 100755 => 120000 docs/source/reademption diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 6862ffec..edd80945 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,3 +1,5 @@ +v1.0.1 (2020-07-11) +- Hotfix of align error cause by realign arg still present v1.0.0 (2020-07-08) - Added calculation of TPM (transcripts per million) - Added automated integration of subcommands and parameters to the documentation diff --git a/Makefile b/Makefile index 3b4344d0..69ec7187 100644 --- a/Makefile +++ b/Makefile @@ -34,7 +34,7 @@ new_release: @echo "* Add description to CHANGELOG.txt" @echo "* Refresh the two reademption links in docs and docs/source." "* this is need for building the docu on 'read the docs'. See last point of this list." - @echo "cd docs && ln -s ../bin/reademption reademption && cd source && ../../bin/reademption reademption && cd ../.." + @echo "rm docs/reademption && rm docs/source/reademption && cd docs && ln -s ../bin/reademption reademption && cd source && ln -s ../../bin/reademption reademption && cd ../.." @echo "* Create new docs" @echo " make html_doc" @echo "* Create package" diff --git a/bin/reademption b/bin/reademption index 859ee3db..2e6e5b46 100755 --- a/bin/reademption +++ b/bin/reademption @@ -9,7 +9,7 @@ __author__ = "Konrad Foerstner , Till Sauerwein ZmrDkHO@p26k}#y1iGHc$oG delta 16 Xcmca&a>ZmrDkHOjp4sLM#y1iGHf#mn diff --git a/docs/build/doctrees/environment.pickle b/docs/build/doctrees/environment.pickle index 777c3ea19e176ae42814bf39f707abc516fe7e2a..b2270f36c0acbfaa5e2db876752acd3a0e255cbf 100644 GIT binary patch literal 35971 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 diff --git a/docs/build/doctrees/example_analysis.doctree b/docs/build/doctrees/example_analysis.doctree index 330f86d2fcf56900e6c045d7e5e2480dab37a27f..6c65d2d9c9f2cce5ff2275aa8fa7d65fce707ec8 100644 GIT binary patch delta 18 acmex&oax_jrVX8p%!Yafn|m0G76AZKjR&s) delta 18 acmex&oax_jrVX8p%m#X9n|m0G76AZKsRy(G diff --git a/docs/build/doctrees/index.doctree b/docs/build/doctrees/index.doctree index 24e304a61280811cbe779a43c5d840812dbfe1af..ec22c26a74c75e9b27c35aabb2164c7d5a2eac50 100644 GIT binary patch delta 16 YcmbQ4Ix}^{d`4zNJ%i1Q7{40;0610#TmS$7 delta 16 YcmbQ4Ix}^{d`4yiJ+sY=7{40;06206VE_OC diff --git a/docs/build/doctrees/installation.doctree b/docs/build/doctrees/installation.doctree index b62fac19e16511f976eb0be3824351381d6abee6..8d55cab98ecfb030f1cea78089bc8ccd733fe507 100644 GIT binary patch delta 18 ZcmeA@#Mpa?aYH>Lv!R~B<|fAOcmP7327>?q delta 18 ZcmeA@#Mpa?aYH>Lvw@!3<|fAOcmP7V28aLv diff --git a/docs/build/doctrees/license.doctree b/docs/build/doctrees/license.doctree index 4a9bc34c82812405281280e24d9f861c81aa16b0..a237f15089e3fbee0b193bdbfe0134ea8ca576db 100644 GIT binary patch delta 16 XcmbQGGD~GcG$XU2p26lg#ytW6EXD-+ delta 16 XcmbQGGD~GcG$XTtp4sL&#ytW6EaC+I diff --git a/docs/build/doctrees/live_and_installation_image.doctree b/docs/build/doctrees/live_and_installation_image.doctree index 12744a6475663ab186cfd37eb91cf93401e5535c..ac95dbff3a9343e581f7cb90ea134b15233712b5 100644 GIT binary patch delta 16 YcmX?Za@=IYL`G&qJ%i0t7&l7*05jdPa0ZF(b2~p26la#xPC*F_Q%X delta 16 XcmX>jdPa0ZF(b2qp4sLy#xPC*F|P#& diff --git a/docs/build/html/.buildinfo b/docs/build/html/.buildinfo index c011b4c2..b7b610d1 100644 --- a/docs/build/html/.buildinfo +++ b/docs/build/html/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: c741056ab09da0ac4fd08d495d4d90f3 +config: fac7b175e42a77c563865d24476733a6 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/build/html/_static/documentation_options.js b/docs/build/html/_static/documentation_options.js index 2f08d25f..9fd31e43 100644 --- a/docs/build/html/_static/documentation_options.js +++ b/docs/build/html/_static/documentation_options.js @@ -1,6 +1,6 @@ var DOCUMENTATION_OPTIONS = { URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '1.0.0', + VERSION: '1.0.1', LANGUAGE: 'None', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/docs/build/html/docker_image.html b/docs/build/html/docker_image.html index 61625d3f..e615cbf9 100644 --- a/docs/build/html/docker_image.html +++ b/docs/build/html/docker_image.html @@ -7,7 +7,7 @@ - Docker image — READemption 1.0.0 documentation + Docker image — READemption 1.0.1 documentation diff --git a/docs/build/html/example_analysis.html b/docs/build/html/example_analysis.html index 0ba11de2..ad2d1bbb 100644 --- a/docs/build/html/example_analysis.html +++ b/docs/build/html/example_analysis.html @@ -7,7 +7,7 @@ - Performing an example analysis — READemption 1.0.0 documentation + Performing an example analysis — READemption 1.0.1 documentation diff --git a/docs/build/html/index.html b/docs/build/html/index.html index 98be07eb..a056551b 100644 --- a/docs/build/html/index.html +++ b/docs/build/html/index.html @@ -7,7 +7,7 @@ - READemption - A RNA-Seq Analysis Pipeline — READemption 1.0.0 documentation + READemption - A RNA-Seq Analysis Pipeline — READemption 1.0.1 documentation diff --git a/docs/build/html/installation.html b/docs/build/html/installation.html index ac22930c..5c2d1b8e 100644 --- a/docs/build/html/installation.html +++ b/docs/build/html/installation.html @@ -7,7 +7,7 @@ - Installation and updating — READemption 1.0.0 documentation + Installation and updating — READemption 1.0.1 documentation diff --git a/docs/build/html/license.html b/docs/build/html/license.html index bdfc0a9c..8154deda 100644 --- a/docs/build/html/license.html +++ b/docs/build/html/license.html @@ -7,7 +7,7 @@ - License — READemption 1.0.0 documentation + License — READemption 1.0.1 documentation diff --git a/docs/build/html/live_and_installation_image.html b/docs/build/html/live_and_installation_image.html index cc22d8a0..f6652b03 100644 --- a/docs/build/html/live_and_installation_image.html +++ b/docs/build/html/live_and_installation_image.html @@ -7,7 +7,7 @@ - Live system and installation image — READemption 1.0.0 documentation + Live system and installation image — READemption 1.0.1 documentation diff --git a/docs/build/html/search.html b/docs/build/html/search.html index c4acef01..0b601c21 100644 --- a/docs/build/html/search.html +++ b/docs/build/html/search.html @@ -7,7 +7,7 @@ - Search — READemption 1.0.0 documentation + Search — READemption 1.0.1 documentation diff --git a/docs/build/html/subcommands.html b/docs/build/html/subcommands.html index 5eb657fd..911570c1 100644 --- a/docs/build/html/subcommands.html +++ b/docs/build/html/subcommands.html @@ -7,7 +7,7 @@ - READemption’s subcommands — READemption 1.0.0 documentation + READemption’s subcommands — READemption 1.0.1 documentation diff --git a/docs/build/html/troubleshooting.html b/docs/build/html/troubleshooting.html index abf8a046..abaa5d09 100644 --- a/docs/build/html/troubleshooting.html +++ b/docs/build/html/troubleshooting.html @@ -7,7 +7,7 @@ - Troubleshooting — READemption 1.0.0 documentation + Troubleshooting — READemption 1.0.1 documentation diff --git a/docs/build/html/versions.html b/docs/build/html/versions.html index ed447b5b..7766a212 100644 --- a/docs/build/html/versions.html +++ b/docs/build/html/versions.html @@ -7,7 +7,7 @@ - Versions/Change log — READemption 1.0.0 documentation + Versions/Change log — READemption 1.0.1 documentation diff --git a/docs/reademption b/docs/reademption deleted file mode 100755 index 859ee3db..00000000 --- a/docs/reademption +++ /dev/null @@ -1,315 +0,0 @@ -#!/usr/bin/env python3 - -"""READemption - A RNA-seq Analysis Pipeline""" - -import argparse -from reademptionlib.controller import Controller - -__author__ = "Konrad Foerstner , Till Sauerwein " -__copyright__ = "2011-2020 by Konrad Foerstner " -__license__ = "ISC license" -__email__ = "konrad@foerstner.org, sauerwein@zbmed.de" -__version__ = "1.0.0" - - -def main(): - parser = create_parser() - args = parser.parse_args() - if args.version is True: - print("READemption version " + __version__) - elif "func" in dir(args): - controller = Controller(args) - args.func(controller) - else: - parser.print_help() - - -def create_parser(): - parser = argparse.ArgumentParser() - parser.add_argument( - "--version", "-v", default=False, action="store_true", - help="show version") - subparsers = parser.add_subparsers(help="commands") - - # Arguments for project creation - create_project_parser = subparsers.add_parser( - "create", help="Create a project") - create_project_parser.add_argument( - "--project_path", "-f", help="Path of the project folder.") - create_project_parser.set_defaults(func=create_project) - - # Parameters for read alignment - read_aligning_parser = subparsers.add_parser( - "align", help="Run read alignings") - read_aligning_parser.add_argument( - "--project_path", "-f", help="Path of the project folder.") - read_aligning_parser.add_argument( - "--min_read_length", "-l", default=12, type=int, - help="Minimal read length after clipping (default 12). Should be " - "higher for eukaryotic species.") - read_aligning_parser.add_argument( - "--processes", "-p", default=1, type=int, - help="Number of processes that should be used (default 1).") - read_aligning_parser.add_argument( - "--segemehl_accuracy", "-a", default=95.0, type=float, - help="Segemehl's minimal accuracy (in %%) (default 95).") - read_aligning_parser.add_argument( - "--segemehl_evalue", "-e", default=5.0, type=float, - help="Segemehl's maximal e-value (default 5.0).") - read_aligning_parser.add_argument( - "--segemehl_bin", "-s", default="segemehl.x", - help="Segemehl's binary path (default 'segemehl.x').") - read_aligning_parser.add_argument( - "--paired_end", "-P", default=False, action="store_true", - help="Use this if reads are originating from a paired-end sequencing. " - "The members of a pair must be marked with '_p1' and '_p2' in front " - "of the file type suffixes (e.g. 'my_sample_p1.fa' and " - "'my_sample_p2.fa' or 'my_sample_p1.fa.bz2' and 'my_sample_p2.fa.bz2'" - "). This option cannot be used with polyA tail clipping.") - read_aligning_parser.add_argument( - "--split", "-S", default=False, action="store_true", - help="Run segemehl with read splitting.") - read_aligning_parser.add_argument( - "--poly_a_clipping", "-c", default=False, - action="store_true", help="Perform polyA tail clipping. This option " - "cannot be used for paired-end reads.") - read_aligning_parser.add_argument( - "--fastq", "-q", default=False, action="store_true", - help="Input reads are in FASTQ not FASTA format.") - read_aligning_parser.add_argument( - "--min_phred_score", "-Q", default=None, type=int, - help="Minimal Phred score. Works only if read are given in FASTQ " - "format. As soon as a based drop below this value it and all the " - "nucleotides downstream of it will be trimmed off.") - read_aligning_parser.add_argument( - "--adapter", "-A", default=None, type=str, - help="Adapter sequence. If it is found in a read it and all the " - "nucleotides downstream will be trimmed off.") - read_aligning_parser.add_argument( - "--check_for_existing_files", "-F", default=False, - action="store_true", help="Check for existing files (e.g. from a " - "interrupted previous run) and do not overwrite them if they exits. " - "Attention! You have to take care that there are no partially " - "generated files left!") - read_aligning_parser.add_argument( - "--reverse_complement", "-R", default=False, action="store_true", - help="Map reverse complement of the input reads.") - read_aligning_parser.add_argument( - "--progress", "-g", default=False, action="store_true", - help="Show progress of the segemehl mapping.") - read_aligning_parser.add_argument( - "--crossalign_cleaning", "-x", default=None, - dest="crossalign_cleaning_str", metavar="CROSSALIGN_CLEANING_STRING", - help="Remove reads that are cross-mapped to replicons of different " - "species. To associated species and replicons give a string in the " - "following format: ':,,..," - ";:,,..," - "'") - read_aligning_parser.set_defaults(func=align_reads) - - # Parameters for coverage file building - coverage_creation_parser = subparsers.add_parser( - "coverage", help="Create coverage (wiggle) files") - coverage_creation_parser.add_argument( - "--project_path", "-f", help="Path of the project folder.") - coverage_creation_parser.add_argument( - "--unique_only", "-u", default=False, action="store_true", - help="Use uniquely aligned reads only.") - coverage_creation_parser.add_argument( - "--normalize_by_uniquely", "-U", default=False, action="store_true", - help="Normalize by the number of uniquely aligned reads. By default " - "the normalization is done based on the total number of aligned reads " - "even if only uniquely aligned reads are used for the coverage " - "calculation.") - coverage_creation_parser.add_argument( - "--processes", "-p", default=1, type=int, - help="Number of processes that should be used (default 1).") - coverage_creation_parser.add_argument( - "--skip_read_count_splitting", "-s", default=False, - action="store_true", help="Do not split the read counting between " - "different alignings. Default is to do the splitting.") - coverage_creation_parser.add_argument( - "--non_strand_specific", "-d", default=False, - action="store_true", help="Do not distict between the coverage of the " - "forward and reverse strand but sum them to a single value for each " - "base.") - coverage_creation_parser.add_argument( - "--coverage_style", "-b", choices=["global", "first_base_only", - "last_base_only", "centered"], - default="global", help="Select for coverage generation if only the " - "first aligned base at the 5' end of each read ('first_base_only') or " - "the last aligned base at the 3' end of each read ('last_base_only') " - "is taken into account. The centered approach ('centered') clips a " - "predefined number of nts from each alignment end and adds to the " - "remaining genomic region a value divided by its length. By default " - "the coverage is generated using the whole range of each alignment " - "('global').") - coverage_creation_parser.add_argument( - "--clip_length", "-cl", type=int, default=11, help="Number of " - "nucleotides that are clipped from each alignment end for centered " - "approach.") - coverage_creation_parser.add_argument( - "--check_for_existing_files", "-F", default=False, - action="store_true", help="Check for existing files (e.g. from a " - "interrupted previous run) and do not overwrite them if they exits. " - "Attention! You have to take care that there are no partially " - "generated files left!") - coverage_creation_parser.set_defaults(func=create_coverage_files) - - # Parameters for gene wise quantification - gene_wise_quanti_parser = subparsers.add_parser( - "gene_quanti", help="Quantify the expression gene wise") - gene_wise_quanti_parser.add_argument( - "--project_path", "-f", help="Path of the project folder.") - gene_wise_quanti_parser.add_argument( - "--min_overlap", "-o", default=1, type=int, - help="Minimal read-annotation-overlap (in nt) (default 1).") - gene_wise_quanti_parser.add_argument( - "--read_region", "-b", choices=["global", "first_base_only", - "last_base_only", "centered"], - default="global", help="Select for gene-wise quantification " - "if only the first aligned base at the 5' end of each read " - "('first_base_only') or the last aligned base at the 3' end of each " - "read ('last_base_only') is taken into account. The centered approach " - "('centered') clips a predefined number of nts from each alignment end " - "and calculates the overlap based on the remaining region. By default " - "the overlap is calculated based on the whole range of each alignment " - "('global').") - gene_wise_quanti_parser.add_argument( - "--clip_length", "-cl", type=int, default=11, help="Number of " - "nucleotides that are clipped from each alignment end for centered " - "approach.") - gene_wise_quanti_parser.add_argument( - "--no_count_split_by_alignment_no", "-n", default=False, - action="store_true", help="Do not split read countings by the number " - "of alignments a read has. By default this count splitting is " - "performed.") - gene_wise_quanti_parser.add_argument( - "--no_count_splitting_by_gene_no", "-l", default=False, - action="store_true", help="Do not split read countings by the number " - "of genes it overlaps with. By default this count splitting is " - "performed.") - gene_wise_quanti_parser.add_argument( - "--add_antisense", "-a", default=False, action="store_true", - help="Count anti-sense and sense read-gene-overlaps and report them separately. By default only sense " - "overlaps are counted.") - gene_wise_quanti_parser.add_argument( - "--antisense_only", "-x", default=False, action="store_true", - help="Count only anti-sense read-gene-overlaps and no sense overlaps. By default only sense " - "overlaps are counted.") - gene_wise_quanti_parser.add_argument( - "--non_strand_specific", default=False, action="store_true", - help="Use countings of reads overlapping with a gene on both strands " - "and sum them up.") - gene_wise_quanti_parser.add_argument( - "--processes", "-p", default=1, type=int, - help="Number of processes that should be used (default 1).") - gene_wise_quanti_parser.add_argument( - "--features", "-t", dest="allowed_features", default=None, - help="Comma separated list of features that should be considered " - "(e.g. gene, cds, region, exon). Other feature will be skipped. If " - "not specified all features will be considered.") - gene_wise_quanti_parser.add_argument( - "--unique_only", "-u", default=False, action="store_true", - help="Use uniquely aligned reads only.") - gene_wise_quanti_parser.add_argument( - "--pseudocounts", "-c", default=False, action="store_true", - help="Add a pseudocount of 1 to each gene.") - gene_wise_quanti_parser.add_argument( - "--check_for_existing_files", "-F", default=False, - action="store_true", help="Check for existing files (e.g. from a " - "interrupted previous run) and do not overwrite them if they exits. " - "Attention! You have to take care that there are no partially " - "generated files left!") - gene_wise_quanti_parser.set_defaults(func=run_gene_wise_quantification) - - # Parameters for DESeq calling - deseq_parser = subparsers.add_parser( - "deseq", help="Compare expression pairwise using DESeq") - deseq_parser.add_argument( - "--project_path", "-f", help="Path of the project folder.") - deseq_parser.add_argument( - "--libs", "-l", required=True, - help="Comma separated list of libraries.") - deseq_parser.add_argument( - "--conditions", "-c", required=True, - help="Comma separated list of condition in the same order as " - "their corresponding libraries.") - deseq_parser.add_argument( - "--cooks_cutoff_off", "-k", default=False, action="store_true") - deseq_parser.add_argument( - "--fc_shrinkage_off", "-so", default=False, action="store_true", - help="turn off log2 fold change shrinkage") - deseq_parser.set_defaults(func=run_deseq) - - # Parameters for viz_align - viz_align_parser = subparsers.add_parser( - "viz_align", - help="Generate read processing and alignment visualisations.") - viz_align_parser.add_argument( - "--paired_end", "-P", default=False, action="store_true", - help="Use this if reads are originating from a paired-end sequencing.") - viz_align_parser.add_argument( - "--project_path", "-f", help="Path of the project folder.") - viz_align_parser.set_defaults(func=viz_align) - - # Parameters for viz_gene_quanti - viz_gene_quanti_parser = subparsers.add_parser( - "viz_gene_quanti", - help="Generate gene wise quantification visualisations.") - viz_gene_quanti_parser.add_argument( - "--paired_end", "-P", default=False, action="store_true", - help="Use this if reads are originating from a paired-end sequencing.") - viz_gene_quanti_parser.add_argument( - "--project_path", "-f", help="Path of the project folder.") - viz_gene_quanti_parser.set_defaults(func=viz_gene_quanti) - - # Parameters for viz_deseq - viz_deseq_parser = subparsers.add_parser( - "viz_deseq", - help="Generate DESeq visualisations.") - viz_deseq_parser.add_argument( - "--project_path", "-f", help="Path of the project folder.") - - viz_deseq_parser.add_argument( - "--max_pvalue", type=float, default="0.05", - help="Maximum adjusted p-value for genes considered to be regulated. " - "Genes with adjusted p-values below will be marked red. " - "(default 0.05)") - viz_deseq_parser.set_defaults(func=viz_deseq) - return parser - - -def create_project(controller): - controller.create_project(__version__) - - -def align_reads(controller): - controller.align_reads() - - -def create_coverage_files(controller): - controller.create_coverage_files() - - -def run_gene_wise_quantification(controller): - controller.quantify_gene_wise() - - -def run_deseq(controller): - controller.compare_with_deseq() - - -def viz_align(controller): - controller.viz_align() - - -def viz_gene_quanti(controller): - controller.viz_gene_quanti() - - -def viz_deseq(controller): - controller.viz_deseq() - -if __name__ == "__main__": - main() diff --git a/docs/reademption b/docs/reademption new file mode 120000 index 00000000..e0ac8633 --- /dev/null +++ b/docs/reademption @@ -0,0 +1 @@ +../bin/reademption \ No newline at end of file diff --git a/docs/source/conf.py b/docs/source/conf.py index 2f185455..a52a03a0 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -58,7 +58,7 @@ # The short X.Y version. version = "1.0" # The full version, including alpha/beta/rc tags. -release = "1.0.0" +release = "1.0.1" # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/docs/source/reademption b/docs/source/reademption deleted file mode 100755 index 859ee3db..00000000 --- a/docs/source/reademption +++ /dev/null @@ -1,315 +0,0 @@ -#!/usr/bin/env python3 - -"""READemption - A RNA-seq Analysis Pipeline""" - -import argparse -from reademptionlib.controller import Controller - -__author__ = "Konrad Foerstner , Till Sauerwein " -__copyright__ = "2011-2020 by Konrad Foerstner " -__license__ = "ISC license" -__email__ = "konrad@foerstner.org, sauerwein@zbmed.de" -__version__ = "1.0.0" - - -def main(): - parser = create_parser() - args = parser.parse_args() - if args.version is True: - print("READemption version " + __version__) - elif "func" in dir(args): - controller = Controller(args) - args.func(controller) - else: - parser.print_help() - - -def create_parser(): - parser = argparse.ArgumentParser() - parser.add_argument( - "--version", "-v", default=False, action="store_true", - help="show version") - subparsers = parser.add_subparsers(help="commands") - - # Arguments for project creation - create_project_parser = subparsers.add_parser( - "create", help="Create a project") - create_project_parser.add_argument( - "--project_path", "-f", help="Path of the project folder.") - create_project_parser.set_defaults(func=create_project) - - # Parameters for read alignment - read_aligning_parser = subparsers.add_parser( - "align", help="Run read alignings") - read_aligning_parser.add_argument( - "--project_path", "-f", help="Path of the project folder.") - read_aligning_parser.add_argument( - "--min_read_length", "-l", default=12, type=int, - help="Minimal read length after clipping (default 12). Should be " - "higher for eukaryotic species.") - read_aligning_parser.add_argument( - "--processes", "-p", default=1, type=int, - help="Number of processes that should be used (default 1).") - read_aligning_parser.add_argument( - "--segemehl_accuracy", "-a", default=95.0, type=float, - help="Segemehl's minimal accuracy (in %%) (default 95).") - read_aligning_parser.add_argument( - "--segemehl_evalue", "-e", default=5.0, type=float, - help="Segemehl's maximal e-value (default 5.0).") - read_aligning_parser.add_argument( - "--segemehl_bin", "-s", default="segemehl.x", - help="Segemehl's binary path (default 'segemehl.x').") - read_aligning_parser.add_argument( - "--paired_end", "-P", default=False, action="store_true", - help="Use this if reads are originating from a paired-end sequencing. " - "The members of a pair must be marked with '_p1' and '_p2' in front " - "of the file type suffixes (e.g. 'my_sample_p1.fa' and " - "'my_sample_p2.fa' or 'my_sample_p1.fa.bz2' and 'my_sample_p2.fa.bz2'" - "). This option cannot be used with polyA tail clipping.") - read_aligning_parser.add_argument( - "--split", "-S", default=False, action="store_true", - help="Run segemehl with read splitting.") - read_aligning_parser.add_argument( - "--poly_a_clipping", "-c", default=False, - action="store_true", help="Perform polyA tail clipping. This option " - "cannot be used for paired-end reads.") - read_aligning_parser.add_argument( - "--fastq", "-q", default=False, action="store_true", - help="Input reads are in FASTQ not FASTA format.") - read_aligning_parser.add_argument( - "--min_phred_score", "-Q", default=None, type=int, - help="Minimal Phred score. Works only if read are given in FASTQ " - "format. As soon as a based drop below this value it and all the " - "nucleotides downstream of it will be trimmed off.") - read_aligning_parser.add_argument( - "--adapter", "-A", default=None, type=str, - help="Adapter sequence. If it is found in a read it and all the " - "nucleotides downstream will be trimmed off.") - read_aligning_parser.add_argument( - "--check_for_existing_files", "-F", default=False, - action="store_true", help="Check for existing files (e.g. from a " - "interrupted previous run) and do not overwrite them if they exits. " - "Attention! You have to take care that there are no partially " - "generated files left!") - read_aligning_parser.add_argument( - "--reverse_complement", "-R", default=False, action="store_true", - help="Map reverse complement of the input reads.") - read_aligning_parser.add_argument( - "--progress", "-g", default=False, action="store_true", - help="Show progress of the segemehl mapping.") - read_aligning_parser.add_argument( - "--crossalign_cleaning", "-x", default=None, - dest="crossalign_cleaning_str", metavar="CROSSALIGN_CLEANING_STRING", - help="Remove reads that are cross-mapped to replicons of different " - "species. To associated species and replicons give a string in the " - "following format: ':,,..," - ";:,,..," - "'") - read_aligning_parser.set_defaults(func=align_reads) - - # Parameters for coverage file building - coverage_creation_parser = subparsers.add_parser( - "coverage", help="Create coverage (wiggle) files") - coverage_creation_parser.add_argument( - "--project_path", "-f", help="Path of the project folder.") - coverage_creation_parser.add_argument( - "--unique_only", "-u", default=False, action="store_true", - help="Use uniquely aligned reads only.") - coverage_creation_parser.add_argument( - "--normalize_by_uniquely", "-U", default=False, action="store_true", - help="Normalize by the number of uniquely aligned reads. By default " - "the normalization is done based on the total number of aligned reads " - "even if only uniquely aligned reads are used for the coverage " - "calculation.") - coverage_creation_parser.add_argument( - "--processes", "-p", default=1, type=int, - help="Number of processes that should be used (default 1).") - coverage_creation_parser.add_argument( - "--skip_read_count_splitting", "-s", default=False, - action="store_true", help="Do not split the read counting between " - "different alignings. Default is to do the splitting.") - coverage_creation_parser.add_argument( - "--non_strand_specific", "-d", default=False, - action="store_true", help="Do not distict between the coverage of the " - "forward and reverse strand but sum them to a single value for each " - "base.") - coverage_creation_parser.add_argument( - "--coverage_style", "-b", choices=["global", "first_base_only", - "last_base_only", "centered"], - default="global", help="Select for coverage generation if only the " - "first aligned base at the 5' end of each read ('first_base_only') or " - "the last aligned base at the 3' end of each read ('last_base_only') " - "is taken into account. The centered approach ('centered') clips a " - "predefined number of nts from each alignment end and adds to the " - "remaining genomic region a value divided by its length. By default " - "the coverage is generated using the whole range of each alignment " - "('global').") - coverage_creation_parser.add_argument( - "--clip_length", "-cl", type=int, default=11, help="Number of " - "nucleotides that are clipped from each alignment end for centered " - "approach.") - coverage_creation_parser.add_argument( - "--check_for_existing_files", "-F", default=False, - action="store_true", help="Check for existing files (e.g. from a " - "interrupted previous run) and do not overwrite them if they exits. " - "Attention! You have to take care that there are no partially " - "generated files left!") - coverage_creation_parser.set_defaults(func=create_coverage_files) - - # Parameters for gene wise quantification - gene_wise_quanti_parser = subparsers.add_parser( - "gene_quanti", help="Quantify the expression gene wise") - gene_wise_quanti_parser.add_argument( - "--project_path", "-f", help="Path of the project folder.") - gene_wise_quanti_parser.add_argument( - "--min_overlap", "-o", default=1, type=int, - help="Minimal read-annotation-overlap (in nt) (default 1).") - gene_wise_quanti_parser.add_argument( - "--read_region", "-b", choices=["global", "first_base_only", - "last_base_only", "centered"], - default="global", help="Select for gene-wise quantification " - "if only the first aligned base at the 5' end of each read " - "('first_base_only') or the last aligned base at the 3' end of each " - "read ('last_base_only') is taken into account. The centered approach " - "('centered') clips a predefined number of nts from each alignment end " - "and calculates the overlap based on the remaining region. By default " - "the overlap is calculated based on the whole range of each alignment " - "('global').") - gene_wise_quanti_parser.add_argument( - "--clip_length", "-cl", type=int, default=11, help="Number of " - "nucleotides that are clipped from each alignment end for centered " - "approach.") - gene_wise_quanti_parser.add_argument( - "--no_count_split_by_alignment_no", "-n", default=False, - action="store_true", help="Do not split read countings by the number " - "of alignments a read has. By default this count splitting is " - "performed.") - gene_wise_quanti_parser.add_argument( - "--no_count_splitting_by_gene_no", "-l", default=False, - action="store_true", help="Do not split read countings by the number " - "of genes it overlaps with. By default this count splitting is " - "performed.") - gene_wise_quanti_parser.add_argument( - "--add_antisense", "-a", default=False, action="store_true", - help="Count anti-sense and sense read-gene-overlaps and report them separately. By default only sense " - "overlaps are counted.") - gene_wise_quanti_parser.add_argument( - "--antisense_only", "-x", default=False, action="store_true", - help="Count only anti-sense read-gene-overlaps and no sense overlaps. By default only sense " - "overlaps are counted.") - gene_wise_quanti_parser.add_argument( - "--non_strand_specific", default=False, action="store_true", - help="Use countings of reads overlapping with a gene on both strands " - "and sum them up.") - gene_wise_quanti_parser.add_argument( - "--processes", "-p", default=1, type=int, - help="Number of processes that should be used (default 1).") - gene_wise_quanti_parser.add_argument( - "--features", "-t", dest="allowed_features", default=None, - help="Comma separated list of features that should be considered " - "(e.g. gene, cds, region, exon). Other feature will be skipped. If " - "not specified all features will be considered.") - gene_wise_quanti_parser.add_argument( - "--unique_only", "-u", default=False, action="store_true", - help="Use uniquely aligned reads only.") - gene_wise_quanti_parser.add_argument( - "--pseudocounts", "-c", default=False, action="store_true", - help="Add a pseudocount of 1 to each gene.") - gene_wise_quanti_parser.add_argument( - "--check_for_existing_files", "-F", default=False, - action="store_true", help="Check for existing files (e.g. from a " - "interrupted previous run) and do not overwrite them if they exits. " - "Attention! You have to take care that there are no partially " - "generated files left!") - gene_wise_quanti_parser.set_defaults(func=run_gene_wise_quantification) - - # Parameters for DESeq calling - deseq_parser = subparsers.add_parser( - "deseq", help="Compare expression pairwise using DESeq") - deseq_parser.add_argument( - "--project_path", "-f", help="Path of the project folder.") - deseq_parser.add_argument( - "--libs", "-l", required=True, - help="Comma separated list of libraries.") - deseq_parser.add_argument( - "--conditions", "-c", required=True, - help="Comma separated list of condition in the same order as " - "their corresponding libraries.") - deseq_parser.add_argument( - "--cooks_cutoff_off", "-k", default=False, action="store_true") - deseq_parser.add_argument( - "--fc_shrinkage_off", "-so", default=False, action="store_true", - help="turn off log2 fold change shrinkage") - deseq_parser.set_defaults(func=run_deseq) - - # Parameters for viz_align - viz_align_parser = subparsers.add_parser( - "viz_align", - help="Generate read processing and alignment visualisations.") - viz_align_parser.add_argument( - "--paired_end", "-P", default=False, action="store_true", - help="Use this if reads are originating from a paired-end sequencing.") - viz_align_parser.add_argument( - "--project_path", "-f", help="Path of the project folder.") - viz_align_parser.set_defaults(func=viz_align) - - # Parameters for viz_gene_quanti - viz_gene_quanti_parser = subparsers.add_parser( - "viz_gene_quanti", - help="Generate gene wise quantification visualisations.") - viz_gene_quanti_parser.add_argument( - "--paired_end", "-P", default=False, action="store_true", - help="Use this if reads are originating from a paired-end sequencing.") - viz_gene_quanti_parser.add_argument( - "--project_path", "-f", help="Path of the project folder.") - viz_gene_quanti_parser.set_defaults(func=viz_gene_quanti) - - # Parameters for viz_deseq - viz_deseq_parser = subparsers.add_parser( - "viz_deseq", - help="Generate DESeq visualisations.") - viz_deseq_parser.add_argument( - "--project_path", "-f", help="Path of the project folder.") - - viz_deseq_parser.add_argument( - "--max_pvalue", type=float, default="0.05", - help="Maximum adjusted p-value for genes considered to be regulated. " - "Genes with adjusted p-values below will be marked red. " - "(default 0.05)") - viz_deseq_parser.set_defaults(func=viz_deseq) - return parser - - -def create_project(controller): - controller.create_project(__version__) - - -def align_reads(controller): - controller.align_reads() - - -def create_coverage_files(controller): - controller.create_coverage_files() - - -def run_gene_wise_quantification(controller): - controller.quantify_gene_wise() - - -def run_deseq(controller): - controller.compare_with_deseq() - - -def viz_align(controller): - controller.viz_align() - - -def viz_gene_quanti(controller): - controller.viz_gene_quanti() - - -def viz_deseq(controller): - controller.viz_deseq() - -if __name__ == "__main__": - main() diff --git a/docs/source/reademption b/docs/source/reademption new file mode 120000 index 00000000..2fc57ea7 --- /dev/null +++ b/docs/source/reademption @@ -0,0 +1 @@ +../../bin/reademption \ No newline at end of file diff --git a/setup.py b/setup.py index 301d8477..2305a6cd 100644 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ setup( name="READemption", - version="1.0.0", + version="1.0.1", packages=["reademptionlib", "tests"], author="Konrad U. Förstner, Till Sauerwein", author_email="konrad@foerstner.org",