From ed501be0af8a7483f3f94f24a21ecce967531cdf Mon Sep 17 00:00:00 2001 From: Ravi Bandaru <80599578+ravibandaru-lab@users.noreply.github.com> Date: Fri, 31 Jan 2025 13:50:25 -0600 Subject: [PATCH 1/5] Update _filter_file.py --- src/finaletoolkit/utils/_filter_file.py | 332 +++++++++++------------- 1 file changed, 147 insertions(+), 185 deletions(-) diff --git a/src/finaletoolkit/utils/_filter_file.py b/src/finaletoolkit/utils/_filter_file.py index c174394..c59f89a 100644 --- a/src/finaletoolkit/utils/_filter_file.py +++ b/src/finaletoolkit/utils/_filter_file.py @@ -1,11 +1,63 @@ from __future__ import annotations import tempfile as tf import subprocess -import traceback +import logging import warnings import gzip import pysam +def validate_deprecated_args(old_arg, new_arg, old_name, new_name): + if old_arg is not None: + warnings.warn(f"{old_name} is deprecated. Use {new_name} instead.", + category=DeprecationWarning, + stacklevel=2) + if new_arg is None: + return old_arg + raise ValueError(f'{old_name} and {new_name} cannot both be specified.') + return new_arg + +def validate_input_file(input_file): + valid_suffixes = {".gz", ".bam", ".cram"} + if not any(input_file.endswith(suffix) for suffix in valid_suffixes): + raise ValueError(f"Input file should have one of the following suffixes: {', '.join(valid_suffixes)}") + return next(suffix for suffix in valid_suffixes if input_file.endswith(suffix)) + +def run_subprocess(cmd: str, error_msg: str = "Command failed", verbose: bool = False, logger=None): + try: + if verbose: + logger.info(f"Running: {cmd}") + subprocess.run(cmd, shell=True, check=True) + except subprocess.CalledProcessError as e: + logger.error(f"{error_msg}: {str(e)}") + raise + +def filter_bed_entries(infile, min_length=None, max_length=None, quality_threshold=30): + def get_mapq_col(length): + if len(parts) < 5: + raise ValueError("There are not enough columns in the BED file to determine the MAPQ column") + return 3 if length==5 else 4 + + for line in infile: + if line.startswith('#'): + continue + + parts = line.strip().split('\t') + mapq_column = get_mapq_col(len(parts)) + + try: + start = int(parts[1]) + end = int(parts[2]) + length = end - start + score = float(parts[mapq_column]) + + if ((min_length is None or length >= min_length) and + (max_length is None or length <= max_length) and + score >= quality_threshold): + yield line + + except (ValueError, IndexError): + continue + def filter_file( input_file: str, whitelist_file: str | None = None, @@ -43,7 +95,7 @@ def filter_file( Maximum length for reads/intervals intersect_policy: str, optional Specifies how to determine whether fragments are in interval for - whitelisting and blacklisting functionality.'midpoint' (default) + whitelisting and blacklisting functionality. 'midpoint' (default) calculates the central coordinate of each fragment and only selects the fragment if the midpoint is in the interval. 'any' includes fragments with any overlap with the interval. @@ -63,7 +115,7 @@ def filter_file( output_file : str Path to the filtered output file. """ - + logger = logging.getLogger(__name__) if verbose: print( f""" @@ -79,50 +131,21 @@ def filter_file( verbose: {verbose} """ ) - - # Pass aliases and check for conflicts - if fraction_low is not None and min_length is None: - min_length = fraction_low - warnings.warn("fraction_low is deprecated. Use min_length instead.", - category=DeprecationWarning, - stacklevel=2) - elif fraction_low is not None and min_length is not None: - warnings.warn("fraction_low is deprecated. Use min_length instead.", - category=DeprecationWarning, - stacklevel=2) - raise ValueError( - 'fraction_low and min_length cannot both be specified') - - if fraction_high is not None and max_length is None: - max_length = fraction_high - warnings.warn("fraction_high is deprecated. Use max_length instead.", - category=DeprecationWarning, - stacklevel=2) - elif fraction_high is not None and max_length is not None: - warnings.warn("fraction_high is deprecated. Use max_length instead.", - category=DeprecationWarning, - stacklevel=2) - raise ValueError( - 'fraction_high and max_length cannot both be specified.') + logging.basicConfig(level=logging.INFO) - if input_file.endswith(".gz"): - suffix = ".gz" - elif input_file.endswith(".bgz"): - suffix = ".bgz" - elif input_file.endswith(".bam"): - suffix = ".bam" - elif input_file.endswith(".cram"): - suffix = ".cram" + # Pass aliases and check for conflicts + min_length = validate_deprecated_args(fraction_low, min_length, "fraction_low", "min_length") + max_length = validate_deprecated_args(fraction_high, max_length, "fraction_high", "max_length") + + suffix = validate_input_file(input_file) + + if intersect_policy == "midpoint": + intersect_param = "-f 0.500" + elif intersect_policy == "any": + intersect_param = "" else: - raise ValueError('Input file should have suffix .bam, .cram, .bgz, or .gz') - - # create tempfile to contain filtered output - if output_file is None: - _, output_file = tf.mkstemp(suffix=suffix) - elif not output_file.endswith(suffix) and output_file != '-': - raise ValueError('Output file should share same suffix as input file.') - - intersect = "-f 0.500" if intersect_policy == "midpoint" else "" + raise ValueError("intersect_policy must be 'midpoint' or 'any'") + pysam.set_verbosity(pysam.set_verbosity(0)) with tf.TemporaryDirectory() as temp_dir: @@ -130,156 +153,95 @@ def filter_file( temp_2 = f"{temp_dir}/output2{suffix}" temp_3 = f"{temp_dir}/output3{suffix}" if input_file.endswith(('.bam', '.cram')): - # create temp dir to store intermediate sorted file - if whitelist_file is not None: - try: - subprocess.run( - f"bedtools intersect -abam {input_file} -b {whitelist_file} {intersect} > {temp_1} && samtools index {temp_1}", - shell=True, - check=True) - except Exception as e: - print(e) - traceback.print_exc() - exit(1) + if whitelist_file: + run_subprocess( + f"bedtools intersect -abam {input_file} -b {whitelist_file} {intersect_param} > {temp_1} && " + f"samtools index {temp_1}", + error_msg="Whitelist filtering failed", + verbose=verbose, + logger=logger + ) else: - subprocess.run( - f"cp {input_file} {temp_1}", shell=True, check=True) - if blacklist_file is not None: - try: - subprocess.run( - f"bedtools intersect -abam {temp_1} -b {blacklist_file} -v {intersect} > {temp_2} && samtools index {temp_2}", - shell=True, - check=True) - except Exception: - traceback.print_exc() - exit(1) + run_subprocess(f"cp {input_file} {temp_1}", verbose=verbose, logger=logger) + if blacklist_file: + intersect_param = "-f 0.500" if intersect_policy == "midpoint" else "" + run_subprocess( + f"bedtools intersect -abam {temp_1} -b {blacklist_file} -v {intersect_param} > {temp_2} && " + f"samtools index {temp_2}", + error_msg="Blacklist filtering failed", + verbose=verbose, + logger=logger + ) else: - subprocess.run( - f"mv {temp_1} {temp_2}", shell=True, check=True) - - try: - subprocess.run( - f"samtools view {temp_2} -F 3852 -f 3 -b -h -o {temp_3} -q {quality_threshold} -@ {workers}", - shell=True, - check=True) - except Exception: - traceback.print_exc() - exit(1) + run_subprocess(f"mv {temp_1} {temp_2}", verbose=verbose, logger=logger) + + run_subprocess( + f"samtools view {temp_2} -F 3852 -f 3 -b -h -o {temp_3} -q {quality_threshold} -@ {workers}", + error_msg="Quality filtering failed", + verbose=verbose, + logger=logger + ) - # filter for reads on different reference and length - with pysam.AlignmentFile(temp_3, 'rb',threads=workers//3) as in_file: - with pysam.AlignmentFile( - output_file, 'wb', template=in_file, threads=workers-workers//3) as out_file: + # Length filtering and final output + pysam.set_verbosity(0) + with pysam.AlignmentFile(temp_3, 'rb', threads=workers//3) as in_file: + with pysam.AlignmentFile(output_file, 'wb', template=in_file, threads=workers-workers//3) as out_file: for read in in_file: - if ( - read.reference_name == read.next_reference_name - and (max_length is None - or read.template_length <= max_length) - and (min_length is None - or read.template_length >= min_length) - ): + if (read.reference_name == read.next_reference_name and + (max_length is None or read.template_length <= max_length) and + (min_length is None or read.template_length >= min_length)): out_file.write(read) + out_file.flush() if output_file != '-': - # generate index for output_file - try: - subprocess.run( - f'samtools index {output_file} {output_file}.bai', - shell=True, - check=True + run_subprocess( + f'samtools index {output_file}', + error_msg="Index creation failed", + verbose=verbose, + logger=logger + ) + + elif input_file.endswith('.gz'): + with gzip.open(input_file, 'rt') as infile, open(temp_1, 'w') as outfile: + for line in filter_bed_entries(infile, min_length, max_length, quality_threshold): + outfile.write(line) + outfile.flush() + + if whitelist_file: + intersect_param = "-f 0.500" if intersect_policy == "midpoint" else "" + run_subprocess( + f"bedtools intersect -a {temp_1} -b {whitelist_file} {intersect_param} > {temp_2}", + error_msg="Whitelist filtering failed", + verbose=verbose, + logger=logger ) - except Exception: - traceback.print_exc() - exit(1) - - elif input_file.endswith('.gz') or input_file.endswith('.bgz'): - with gzip.open(input_file, 'r') as infile, open(temp_1, 'w') as outfile: - mapq_column = 0 # 1-index for sanity when comparing with len() - for line in infile: - line = line.decode('utf-8') - parts = line.strip().split('\t') - if len(parts) < max(mapq_column,4) or line.startswith('#'): - continue - - if mapq_column == 0: - if parts[4-1].isnumeric(): - mapq_column = 4 - elif len(parts) >= 5 and parts[5-1].isnumeric(): - mapq_column = 5 - else: - continue - try: - start = int(parts[1]) - end = int(parts[2]) - length = end - start - score = None - try: - score = float(parts[mapq_column-1]) - except ValueError: - pass - - passes_length_restriction = True - - if min_length is not None and length < min_length: - passes_length_restriction = False - - if max_length is not None and length > max_length: - passes_length_restriction = False - - passes_quality_restriction = True - if score is None or score < quality_threshold: - passes_quality_restriction = False - - if passes_length_restriction and passes_quality_restriction: - outfile.write(line) - except ValueError: - continue - if whitelist_file is not None: - try: - subprocess.run( - f"bedtools intersect -a {temp_1} -b {whitelist_file} {intersect} > {temp_2}", - shell=True, - check=True - ) - except Exception: - traceback.print_exc() - exit(1) else: - subprocess.run(f"mv {temp_1} {temp_2}", shell=True, check=True) - - if blacklist_file is not None: - try: - subprocess.run( - f"bedtools intersect -v -a {temp_2} -b {blacklist_file} {intersect} > {temp_3}", - shell=True, - check=True - ) - except Exception: - traceback.print_exc() - exit(1) + run_subprocess(f"mv {temp_1} {temp_2}", verbose=verbose, logger=logger) + + if blacklist_file: + intersect_param = "-f 0.500" if intersect_policy == "midpoint" else "" + run_subprocess( + f"bedtools intersect -v -a {temp_2} -b {blacklist_file} {intersect_param} > {temp_3}", + error_msg="Blacklist filtering failed", + verbose=verbose, + logger=logger + ) else: - subprocess.run(f"mv {temp_2} {temp_3}", shell=True, check=True) - try: - subprocess.run( - f"bgzip -@ {workers} -c {temp_3} > {output_file}", - shell=True, - check=True - ) - except Exception: - traceback.print_exc() - exit(1) + run_subprocess(f"mv {temp_2} {temp_3}", verbose=verbose, logger=logger) + + # Compression and indexing + run_subprocess( + f"bgzip -@ {workers} -c {temp_3} > {output_file}", + error_msg="Compression failed", + verbose=verbose, + logger=logger + ) if output_file != '-': - # generate index for output_file - try: - subprocess.run( - f'tabix -p bed {output_file}', - shell=True, - check=True - ) - except Exception: - traceback.print_exc() - exit(1) - else: - raise ValueError("Input file must be a BAM, CRAM, or bgzipped BED file.") + run_subprocess( + f'tabix -p bed {output_file}', + error_msg="Index creation failed", + verbose=verbose, + logger=logger + ) return output_file From c0041c02beb41aa7a1a9acabbcfb98ec9af8dfd2 Mon Sep 17 00:00:00 2001 From: James Li <58196853+jamesli124@users.noreply.github.com> Date: Sun, 2 Feb 2025 17:18:13 -0500 Subject: [PATCH 2/5] Update _filter_file.py add support for `.bgz` file endings sometimes used by FinaleDB --- src/finaletoolkit/utils/_filter_file.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/finaletoolkit/utils/_filter_file.py b/src/finaletoolkit/utils/_filter_file.py index c59f89a..805fcdd 100644 --- a/src/finaletoolkit/utils/_filter_file.py +++ b/src/finaletoolkit/utils/_filter_file.py @@ -17,7 +17,7 @@ def validate_deprecated_args(old_arg, new_arg, old_name, new_name): return new_arg def validate_input_file(input_file): - valid_suffixes = {".gz", ".bam", ".cram"} + valid_suffixes = {".gz", ".bam", ".cram", ".bgz"} if not any(input_file.endswith(suffix) for suffix in valid_suffixes): raise ValueError(f"Input file should have one of the following suffixes: {', '.join(valid_suffixes)}") return next(suffix for suffix in valid_suffixes if input_file.endswith(suffix)) @@ -201,7 +201,7 @@ def filter_file( logger=logger ) - elif input_file.endswith('.gz'): + elif input_file.endswith('.gz') or input_file.endswith('.bgz'): with gzip.open(input_file, 'rt') as infile, open(temp_1, 'w') as outfile: for line in filter_bed_entries(infile, min_length, max_length, quality_threshold): outfile.write(line) From 23129884a4f3495a58f9d832dba4a9b9692fd4cd Mon Sep 17 00:00:00 2001 From: jamesli124 <58196853+jamesli124@users.noreply.github.com> Date: Sun, 2 Feb 2025 17:27:27 -0500 Subject: [PATCH 3/5] update changelog and version number --- CHANGELOG.md | 4 ++++ src/finaletoolkit/version.py | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4e9b6e6..122c478 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,10 @@ and this project adheres to ### Added - Snakemake workflow included in FinaleToolkit documentation. +### Fixed +- Issue with `filter-file` where the lack of `output_file.flush()` would +create incorrect outputs. + ## [0.10.6] - 2025-1-14 ### Fixed diff --git a/src/finaletoolkit/version.py b/src/finaletoolkit/version.py index ab71ebd..63e65a0 100644 --- a/src/finaletoolkit/version.py +++ b/src/finaletoolkit/version.py @@ -2,4 +2,4 @@ Single-source module for the package version number. """ -__version__ = "0.10.6" +__version__ = "0.10.7" From e2feba7891e04757c7088337b26318833322ac2e Mon Sep 17 00:00:00 2001 From: jamesli124 <58196853+jamesli124@users.noreply.github.com> Date: Sun, 2 Feb 2025 17:28:08 -0500 Subject: [PATCH 4/5] update docs --- .../api_reference/basicfeatures.doctree | Bin 91172 -> 90956 bytes .../api_reference/cleavageprofile.doctree | Bin 32089 -> 30431 bytes .../documentation/api_reference/delfi.doctree | Bin 43524 -> 44920 bytes .../api_reference/endmotifs.doctree | Bin 183122 -> 182193 bytes .../api_reference/fragfile.doctree | Bin 137225 -> 136820 bytes .../api_reference/genomeutils.doctree | Bin 80502 -> 80099 bytes .../documentation/api_reference/index.doctree | Bin 3094 -> 3094 bytes .../documentation/api_reference/wps.doctree | Bin 101598 -> 98876 bytes .../documentation/cli_reference/index.doctree | Bin 255822 -> 248580 bytes .../doctrees/documentation/index.doctree | Bin 3184 -> 3184 bytes .../documentation/user_guide/features.doctree | Bin 11892 -> 11892 bytes .../documentation/user_guide/help.doctree | Bin 5456 -> 5456 bytes .../documentation/user_guide/index.doctree | Bin 3135 -> 3135 bytes .../user_guide/inputdata.doctree | Bin 11470 -> 11470 bytes .../user_guide/installation.doctree | Bin 6498 -> 6498 bytes .../user_guide/intersectpolicy.doctree | Bin 6577 -> 6577 bytes .../user_guide/quickstart.doctree | Bin 7667 -> 7667 bytes .../user_guide/structure.doctree | Bin 4887 -> 4887 bytes .../documentation/user_guide/what.doctree | Bin 5370 -> 5370 bytes .../workflow_reference/dependencies.doctree | Bin 5648 -> 5648 bytes .../workflow_reference/filter_file.doctree | Bin 3822 -> 3822 bytes .../finaletoolkit_commands.doctree | Bin 4633 -> 4633 bytes .../workflow_reference/index.doctree | Bin 4469 -> 4469 bytes .../workflow_reference/installation.doctree | Bin 3921 -> 3921 bytes .../workflow_reference/key_features.doctree | Bin 4923 -> 4923 bytes .../mappability_filtering.doctree | Bin 3845 -> 3845 bytes .../workflow_reference/notes.doctree | Bin 3246 -> 3246 bytes .../output_file_naming.doctree | Bin 4707 -> 4707 bytes .../workflow_reference/quick_start.doctree | Bin 6965 -> 6965 bytes .../workflow_structure.doctree | Bin 5149 -> 5149 bytes .../yaml_parameters.doctree | Bin 11633 -> 11633 bytes docs/_build/doctrees/environment.pickle | Bin 107607 -> 104581 bytes docs/_build/doctrees/index.doctree | Bin 15990 -> 15990 bytes docs/_build/html/.buildinfo | 4 +- docs/_build/html/_static/basic.css | 15 +- docs/_build/html/_static/doctools.js | 7 + docs/_build/html/_static/language_data.js | 7 + docs/_build/html/_static/pygments.css | 242 +++++++------- docs/_build/html/_static/searchtools.js | 38 +-- .../api_reference/basicfeatures.html | 12 +- .../api_reference/cleavageprofile.html | 8 +- .../documentation/api_reference/delfi.html | 8 +- .../api_reference/endmotifs.html | 12 +- .../documentation/api_reference/fragfile.html | 15 +- .../api_reference/genomeutils.html | 6 +- .../documentation/api_reference/index.html | 6 +- .../html/documentation/api_reference/wps.html | 10 +- .../documentation/cli_reference/index.html | 306 +++++++++--------- docs/_build/html/documentation/index.html | 6 +- .../documentation/user_guide/features.html | 6 +- .../html/documentation/user_guide/help.html | 6 +- .../html/documentation/user_guide/index.html | 6 +- .../documentation/user_guide/inputdata.html | 6 +- .../user_guide/installation.html | 6 +- .../user_guide/intersectpolicy.html | 6 +- .../documentation/user_guide/quickstart.html | 10 +- .../documentation/user_guide/structure.html | 6 +- .../html/documentation/user_guide/what.html | 6 +- .../workflow_reference/dependencies.html | 6 +- .../workflow_reference/filter_file.html | 7 +- .../finaletoolkit_commands.html | 7 +- .../workflow_reference/index.html | 6 +- .../workflow_reference/installation.html | 6 +- .../workflow_reference/key_features.html | 13 +- .../mappability_filtering.html | 7 +- .../workflow_reference/notes.html | 7 +- .../output_file_naming.html | 7 +- .../workflow_reference/quick_start.html | 6 +- .../workflow_structure.html | 7 +- .../workflow_reference/yaml_parameters.html | 7 +- docs/_build/html/genindex.html | 6 +- docs/_build/html/index.html | 10 +- docs/_build/html/search.html | 6 +- docs/_build/html/searchindex.js | 2 +- 74 files changed, 455 insertions(+), 415 deletions(-) diff --git a/docs/_build/doctrees/documentation/api_reference/basicfeatures.doctree b/docs/_build/doctrees/documentation/api_reference/basicfeatures.doctree index 80452ad6a185d92aba57948af97d6ca2d6c5f919..f8adcd03d931b0f2565db8ba49b199426ccc7950 100644 GIT binary patch delta 1453 zcmZ2-g7wTXR+a|Vsf-(00vLrti&Kk=^|KOlQ;Tyl^@CCi@;9e3>NEPcFfuSC=a;1x zC8nopWabr=mc*xJ=A>FFgyv=D=S3Hn6zM1wR2C=Z>V+gGWmdQW^j)LyIW1=#14-NY2kI$xNSY*e^QS;jQsxk)CR%yn@M7 zduFRQ5g%(YlMnRH^k5LAaTVu85UQY^C#yc;`RQNRA{_T{>^Q*xo>K*3Nsflz+#>$umEYj$(p;8 zK?2j)7&2OJKD{e}nbdG(-F#r*3N6NklQUl`sN;`Ml<3>+@RpC!3O)ZR*ebXs<`k!D zD(KoNl#~|aq(%c>nU|7SRFqh$qkv$?PM+K2Gdbh6yLvnE@t!u>^UXZ-Jd)xa)6tlP zMnS)%uqtMxPyXj8F?mEhGx7}+Hu@e39+Z59DXANvPr^j-T1k3RcP=XhB&q_Z~4 zOulH;GIc(qCFfN0WCk#p94Mi(^$%l{uBa@wu-QIakI|439Iw;Q>NCP4)_d}Qd$H-$ b4H#EL7d&0B#2scVF}X``#7) delta 1620 zcmX?ejCIKgR+a|VsZ1ML0vLrd@^e%5vrAL*i}eeN^3#hFb2q0k>ND0aWMp7S&M!+X zN=#4H$jmD!Es0Od%t^IUC@v{ds8OgZs4Py*)yv6DN-jxE%B;`}0g-M%6{wPlIhpBs zxv6<2AkBJ?FdkfCVo3(j47~s#t)q~cSCU#(mY4&yX>u9c%gIuvLX$r+e=}**M{;Fu zW?p7meo=a=u|80zenDkPMt+{Lo}rO`ab`)XZb4#lHqgn%oB3Hq80&L^zM#M3p~0l1 zFu9)X0nitclk3=J<&7{Mf*fd@kFhr}3adea7eykK^9v&*=i~(LBmqgZVBdU#JDzcJ zX@KNpH{L)ARfH@`xNn}zdxVjfrvNFiCvS8%*gTCt&x)+Toy^Y~vANl+!-3IiGEcX( zCq|k;u^vmb<4Qb}rTdNvYbxm4Db(ea<`z`y<)tJR6(v?q&VA)GxuVD2q@RqWFnRyp z#L4cxQzE4ar3MO|eO*}_Gk($2`)0*{XGVE>NN}M`!s2{#z)$JP^VaZf-Z5btByM{r z;f~wMb9wD1|DVFXS#z=$D3wG_Nfkp+C6LTH`Q0Sz&1_S1RG9ecCU1YLI{DgT;mNCa z22PH6#y|a)0i(fYi(LuKWQFkN{d+mJ88=Km`9eX5l(Ybh?tsaw-rNS|bVYEqmy{Od zq(-Agz78}oOip<<$7Bk52_R;2^XnBhr4%FpB)3Y+mTNXnshy&c!P+B_8S9&mzjbG1 z7ls7HX6g5@A+f0X5q~Uh-t}<;FW*$Y6b3NJkj~mDGyS6!W5DDGdM1-E|F@hZqq5bK zu}N1}6<;WAzo5%#$Owwu>Eil~@Yr>l9AGCl{fs{2YOqwV0Yqv$Fyh^r$qv=+TTB>d G=m7wHkY*eJ diff --git a/docs/_build/doctrees/documentation/api_reference/cleavageprofile.doctree b/docs/_build/doctrees/documentation/api_reference/cleavageprofile.doctree index 6b6c5d3a34cda84c2a5aa0dd650ce64200dbf3f5..8cba013efe09f1d0168ad3370de11de62da19f27 100644 GIT binary patch delta 5982 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 literal 32089 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 OxK7Xlb?E(-#s3A>#8X@V diff --git a/docs/_build/doctrees/documentation/api_reference/delfi.doctree b/docs/_build/doctrees/documentation/api_reference/delfi.doctree index 45729be10ed73924837497c52597a82d5e35338d..2ae64f85e839daca91d874ec3ec4220ded1c0954 100644 GIT binary patch delta 7712 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 diff --git a/docs/_build/doctrees/documentation/api_reference/endmotifs.doctree b/docs/_build/doctrees/documentation/api_reference/endmotifs.doctree index 375035e67e65cc86b042479976c935212048b8e6..4e5c0595c88eb6fcb69efb94547e0980d70ba52e 100644 GIT binary patch delta 2408 zcmbW3ZA_b06vsK2meK+%?FwBB>pFwp6*nJDIyTy_ZOmTK4K`<4hz1yv^2dCjkPr^`=cH0yb-=6^i}2FlbEuz`EXNP zG}7MQ*4lhTiFH21djEpGI9h4uDcv^~`6`!vZ2=s`hkSN)Ce4_j2J}*&-s9dBbo0rw zBA{_OkOK7k%-H=vkBW7I7I82AH5+tHsR1{R);lrb$>FUJdh^)3RV0MBDkCiDBW8T! zOerc}2Orw6@~4zePL{#D^m`+*D`7@V`3j zKVZS9>yBxWGO?4TV1^AiIb!Gi2foVav73u0KQq#k5`3&DNNjv{G{>T$?0nZR`Epwl zK4Zm-*M8Jel*Yrm`z(XRbrUw`Na?4E2O7neaAmH;-44S!**;M zabm@A=HRV(WVl6}ob7?%V(^x8%L*HOJW{2TM8DOnBU63 zote-t-74wCH?AHsX|v&fTpwQrtqb7C=k$1WZW-Q>JO1gUr~y77>*xO$o=?mN^z0P^ z&ZGhtG7>NfFl$U2vLGw{2?K%mjoQ3Lbv|5P1y8AwirM-SurKwmU%o>xmx2Sr=}RU( zO^;9qFp{}y;+h-2*U))YH(xYugy+pr#m4;5zzzD5h4Z5 zGYH-A7&|uzbW!ozAZ#-%?!aczI1Jpo@F=p5-(mSxEWz29B5~hM@Mo{oQmDTK-KOMe zvSDZ!nIXnx{ELO1$`b3cNwNw)WjfAW6_SR-SGz z`>uzqNk{wu5_i*ON>>2;?`JRw*CWK1vlO_anpEoWpxFw!2*$1K#6Gf`IcrI=aMh6g cA@rplWmn=Pg4a_vaqulNN2I8PO7)`eHa^{nzW@LL delta 2984 zcmbtWdrVtZ80WhyEtgXIfZh-kJymdqNBGozZ!#}YMJd>}EAX(H-vH)*NKVovWrH#axu z_xQfwIp>=kQhpXzPBeqA%jb1jy8AkPL5n}&a|fJWx&zK~!jL89kJr=d+3gFsUA2}T zPlv_-Sg6a_Tf462W=qf$a#i`AySkljR}i()ZMayJOCz##T4n^gSX8cpg_Fci2JeId>tQ_vFgTPygye@<+KabE&2fq7-(tZh zZ*h=US3w~T%M2v@7bwP$YYlYetqbhp>7aG1PI!&g`b*8l=xx4~5dfWQIhielStSg# zsd2T#h{_LnY;lFC+rDi^ zI`hC8UKnBXSw>rWU+!ivwvPA9A&fKfvvCeR2KeRml=Zh zjWLaIm`%ejJbFfsN2YIp7Ce2nQ2J8fh3SH2!8({3xOzr+jZBTtY){LSoo+fM&k;_t z85%%;b9{e%!vsLJ(ZyWw;XT6z7+H{G<*YHK6p>gJwqMrabF*E-%M9|!=^Md?pPtXg zr(zm#;Bc%oiB2Q2&GO}kqaAl%kkh)aoVl6N(VH$s^C1*>MIt$nhlQ6@i1CW8{lXZt zCExFcbUPAiKP~-3md%es7G%XA-1mV28~%Db-Q?Q8FTPlvH&q5Bd`22nVrwqEpAVf0 zqeeX#lGVLxQWrlX*_-FZ=i5}!lsF)lVXw!BW*nlq7*fM5O81*V$<#VgO3JJnHWFfm zN0LnB>jsFCs0|Ja$j~fl>bQ%1Sr6~X%u+|ln^xG8#1@#&Y4pj zO86BZwo@oh+h|vOiWBbw71HJqa(oVwgNP^%BHb&PHSG|8`xVT&{Ale*i5-!JHG3+> zI~L&!4(A8tL@(pCSiP}sD#UHJ!Vlys7TLE9ONAM-HFyjyu?2TIcbb$5lbYoZt>n1xOUq=((_OW diff --git a/docs/_build/doctrees/documentation/api_reference/fragfile.doctree b/docs/_build/doctrees/documentation/api_reference/fragfile.doctree index 955fd1e733a1aee9934b325c0d8a71ba8dba737e..d03eb965ca69e75eea63d2d7bcd90eee797cfd60 100644 GIT binary patch literal 136820 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 literal 137225 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 p91qNhH5kHCgkUQ4_U zlLPEnCOhbIY(Ayj z>)pdfl7@3r@;Qk0{N}>BhnR^~49r+@n~yFu<{%+sxlVrT$i2B{)lxAMQZPsp*W`I8 zc_*Jz z)8zVh{G0!L6X2YD?zj5n3$KK?`ZIDda!x&O!2kx^BN-WQGm+x{?Q2;W^+@vZbf6Bg z?O8mGPVDMsL?>j|=@~MN0@I^a7%SL7M2Fqsf-(0LKuZI@^e%5vrAL*i}eeN^3#hFb2n!(PGvG_(npfX&CJV8 z%P&e#HP+9`Owuo?EXl~vGuAUS(l5>|N!2Y#OwLYBPc5DtSmVFBlqH;peBDlhzZgy0 z$g?|O@;ph7&AWwjSjjeF^E}B6c9Sl0?SH4kGkNU+-pTjEiZ*j7<#Um3(&l$M69h~q zk?W2K8^O(Nb~{)pGr`S;k<+A|OgC)a=j*^ow(iOMeAzeG_+MZ%=^@kp$@PhRn=gi$ zbCGSr=K92s{3iY6*`K)iN1+iHS-Lj|)-Vg0bdqOpz~q0Exi??y*~mt=37h{-&gURI z)Fz)@z_HU}O!MsD6e5VLvK31xmV!~8(N zW|JE`*vZ$O{2-5q%BF9ivcaacWVqepX^`YH?1ceo$&b{^kJ2V_X2PI13#B delta 31 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 diff --git a/docs/_build/doctrees/documentation/cli_reference/index.doctree b/docs/_build/doctrees/documentation/cli_reference/index.doctree index fadc9d08be8e1af4c48268f30b620fd687f3412c..0f3df8115dd7406f1e25020a947009569e78d8f7 100644 GIT binary patch literal 248580 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%0AXoPu7VE9mnwv{?$w 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�oFDV$HhwNGfD);WPf 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 diff --git a/docs/_build/doctrees/documentation/index.doctree b/docs/_build/doctrees/documentation/index.doctree index 56f3487e6f6300a75d1277be2c42e73b57198d15..68b7d5793cbd17b724bdeb4ddad17a3963c03828 100644 GIT binary patch delta 31 mcmew$@j+rk9-~lbacWVqepX^`YH?1ceo$&b{^kb84_pArL=0O1 delta 31 mcmew$@j+rk9-~l3er~FMc4Xc`kB;52H|MacWVqepX^`YH?1ceo$&b{^mHw0&M`xD+~4j delta 31 mcmX>Xc`kB;52H{`nd3q=3` delta 30 lcmaE4^vGyK0HaVwer~FMc4`tu3x5Cr diff --git a/docs/_build/doctrees/documentation/user_guide/intersectpolicy.doctree b/docs/_build/doctrees/documentation/user_guide/intersectpolicy.doctree index 6c8ec21da8fcff5eab9217aeb2fd0d053171ad74..8442f5781ea32042579aec26d2a5811fa193cb61 100644 GIT binary patch delta 31 mcmdmJywP|=1fx)BacWVqepX^`YH?1ceo$&b{^l%3cL@Nz#tTdU delta 31 mcmdmJywP|=1fx(!er~FMc4 diff --git a/docs/_build/doctrees/documentation/user_guide/quickstart.doctree b/docs/_build/doctrees/documentation/user_guide/quickstart.doctree index cf3630ddfd56a5d136e59105b4327525d8f9941c..c9cb33e1a89cc6705322e6cbf9196f48273397f9 100644 GIT binary patch delta 31 mcmext{n>hh52H|MacWVqepX^`YH?1ceo$&b{^mHwsWJe~MhqGN delta 31 mcmext{n>hh52H{P76-} delta 31 mcmbQBGeKuV0HaVwer~FMc4{h-u>{LPOTd3XWSr3^#> delta 31 mcmaDS`%ZSl1xBHa{M=Oi?9!C{V*P@m{Pd#4+|7>|d3XWU?hJka diff --git a/docs/_build/doctrees/documentation/workflow_reference/finaletoolkit_commands.doctree b/docs/_build/doctrees/documentation/workflow_reference/finaletoolkit_commands.doctree index 8ead81fb9e25ff333848f3019ec206ec5695ba50..89ba4c49c17038336aa2c91bd6747d4eadb5c51b 100644 GIT binary patch delta 31 mcmbQKGE-$k0i#f8acWVqepX^`YH?1ceo$&b{^lme=>h<^C<}G~ delta 31 mcmbQKGE-$k0i#exer~FMc4h<`aSN~j diff --git a/docs/_build/doctrees/documentation/workflow_reference/index.doctree b/docs/_build/doctrees/documentation/workflow_reference/index.doctree index 4d0889614f589d6d2c4d70a376129dfe00474573..9ec841d2a4cf60a089ab59720afb374ebd8cf0ab 100644 GIT binary patch delta 31 mcmeyW^i^qt2cuAEacWVqepX^`YH?1ceo$&b{^lq~X#oJnoC{t6 delta 31 mcmeyW^i^qt2cu9%er~FMc4pd<45LtJacWVqepX^`YH?1ceo$&b{^mT!uL1zZpd<45Ls+er~FMc4tC9e~o(vBF diff --git a/docs/_build/doctrees/documentation/workflow_reference/workflow_structure.doctree b/docs/_build/doctrees/documentation/workflow_reference/workflow_structure.doctree index 12441c9eb0f29b2c6215b8a9cda68579c8217c52..1ab4bf2f35316c6d266b1b2a9b6d29f06336bc69 100644 GIT binary patch delta 31 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 literal 107607 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 diff --git a/docs/_build/doctrees/index.doctree b/docs/_build/doctrees/index.doctree index 3e2b3381227cf1911d1a470d2d761e0cd743798f..6f669529422107f05f3c7da88e0b3449dd1d4cf8 100644 GIT binary patch delta 31 mcmexX^Q~q>5Tj6NacWVqepX^`YH?1ceo$&b{^k@$AzJ|4gA7an delta 31 mcmexX^Q~q>5Tj5=er~FMc4 { - const [docname, title, anchor, descr, score, filename, kind] = result + const [docname, title, anchor, descr, score, filename] = result return score }, */ @@ -40,14 +47,6 @@ if (typeof Scorer === "undefined") { }; } -// Global search result kind enum, used by themes to style search results. -class SearchResultKind { - static get index() { return "index"; } - static get object() { return "object"; } - static get text() { return "text"; } - static get title() { return "title"; } -} - const _removeChildren = (element) => { while (element && element.lastChild) element.removeChild(element.lastChild); }; @@ -65,13 +64,9 @@ const _displayItem = (item, searchTerms, highlightTerms) => { const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; const contentRoot = document.documentElement.dataset.content_root; - const [docName, title, anchor, descr, score, _filename, kind] = item; + const [docName, title, anchor, descr, score, _filename] = item; let listItem = document.createElement("li"); - // Add a class representing the item's type: - // can be used by a theme's CSS selector for styling - // See SearchResultKind for the class names. - listItem.classList.add(`kind-${kind}`); let requestUrl; let linkUrl; if (docBuilder === "dirhtml") { @@ -120,10 +115,8 @@ const _finishSearch = (resultCount) => { "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." ); else - Search.status.innerText = Documentation.ngettext( - "Search finished, found one page matching the search query.", - "Search finished, found ${resultCount} pages matching the search query.", - resultCount, + Search.status.innerText = _( + "Search finished, found ${resultCount} page(s) matching the search query." ).replace('${resultCount}', resultCount); }; const _displayNextItem = ( @@ -145,7 +138,7 @@ const _displayNextItem = ( else _finishSearch(resultCount); }; // Helper function used by query() to order search results. -// Each input is an array of [docname, title, anchor, descr, score, filename, kind]. +// Each input is an array of [docname, title, anchor, descr, score, filename]. // Order the results by score (in opposite order of appearance, since the // `_displayNextItem` function uses pop() to retrieve items) and then alphabetically. const _orderResultsByScoreThenName = (a, b) => { @@ -255,7 +248,6 @@ const Search = { searchSummary.classList.add("search-summary"); searchSummary.innerText = ""; const searchList = document.createElement("ul"); - searchList.setAttribute("role", "list"); searchList.classList.add("search"); const out = document.getElementById("search-results"); @@ -326,7 +318,7 @@ const Search = { const indexEntries = Search._index.indexentries; // Collect multiple result groups to be sorted separately and then ordered. - // Each is an array of [docname, title, anchor, descr, score, filename, kind]. + // Each is an array of [docname, title, anchor, descr, score, filename]. const normalResults = []; const nonMainIndexResults = []; @@ -345,7 +337,6 @@ const Search = { null, score + boost, filenames[file], - SearchResultKind.title, ]); } } @@ -363,7 +354,6 @@ const Search = { null, score, filenames[file], - SearchResultKind.index, ]; if (isMain) { normalResults.push(result); @@ -485,7 +475,6 @@ const Search = { descr, score, filenames[match[0]], - SearchResultKind.object, ]); }; Object.keys(objects).forEach((prefix) => @@ -596,7 +585,6 @@ const Search = { null, score, filenames[file], - SearchResultKind.text, ]); } return results; diff --git a/docs/_build/html/documentation/api_reference/basicfeatures.html b/docs/_build/html/documentation/api_reference/basicfeatures.html index 90834a6..41bcd39 100644 --- a/docs/_build/html/documentation/api_reference/basicfeatures.html +++ b/docs/_build/html/documentation/api_reference/basicfeatures.html @@ -30,7 +30,7 @@ - + @@ -39,7 +39,7 @@ - + @@ -376,7 +376,7 @@

Basic Features#

-finaletoolkit.frag.coverage(input_file: str | TabixFile | AlignmentFile | Path, interval_file: str, output_file: str, scale_factor: float = 1.0, min_length: int | None = None, max_length: int | None = None, normalize: bool = False, intersect_policy: str = 'midpoint', quality_threshold: int = 30, workers: int = 1, verbose: bool | int = False) list[tuple[str, int, int, str, float]]#
+finaletoolkit.frag.coverage(input_file: str | pysam.TabixFile | pysam.AlignmentFile | Path, interval_file: str, output_file: str, scale_factor: float = 1.0, min_length: int | None = None, max_length: int | None = None, normalize: bool = False, intersect_policy: str = 'midpoint', quality_threshold: int = 30, workers: int = 1, verbose: bool | int = False) list[tuple[str, int, int, str, float]]#

Return estimated fragment coverage over intervals specified in intervals. Fragments are read from input_file which may be a BAM, CRAM, or fragment file. Uses an algorithm where the @@ -418,7 +418,7 @@

Basic Features
-finaletoolkit.frag.frag_length(input_file: str | AlignmentFile | TabixFile, contig: str | None = None, start: int | None = None, stop: int | None = None, intersect_policy: str = 'midpoint', output_file: str | None = None, quality_threshold: int = 30, verbose: bool = False) ndarray#
+finaletoolkit.frag.frag_length(input_file: str | pysam.AlignmentFile | pysam.TabixFile, contig: str | None = None, start: int | None = None, stop: int | None = None, intersect_policy: str = 'midpoint', output_file: str | None = None, quality_threshold: int = 30, verbose: bool = False) np.ndarray#

Return np.ndarray containing lengths of fragments in input_file that are above the quality threshold and are proper-paired reads.

@@ -451,7 +451,7 @@

Basic Features
-finaletoolkit.frag.frag_length_bins(input_file: str | AlignmentFile, contig: str | None = None, start: int | None = None, stop: int | None = None, min_length: int | None = 0, max_length: int | None = None, bin_size: int = 1, output_file: str | None = None, intersect_policy: str = 'midpoint', quality_threshold: int = 30, histogram_path: str | None = None, verbose: bool | int = False) tuple[ndarray, ndarray]#
+finaletoolkit.frag.frag_length_bins(input_file: str | pysam.AlignmentFile, contig: str | None = None, start: int | None = None, stop: int | None = None, min_length: int | None = 0, max_length: int | None = None, bin_size: int = 1, output_file: str | None = None, intersect_policy: str = 'midpoint', quality_threshold: int = 30, histogram_path: str | None = None, verbose: bool | int = False) tuple[np.ndarray, np.ndarray]#

Takes input_file, computes frag lengths of fragments and returns two arrays containing bins and counts by size. Optionally prints data to output as a tab delimited table or histogram.

@@ -580,7 +580,7 @@

This Page

diff --git a/docs/_build/html/documentation/api_reference/cleavageprofile.html b/docs/_build/html/documentation/api_reference/cleavageprofile.html index 2f35145..59def8d 100644 --- a/docs/_build/html/documentation/api_reference/cleavageprofile.html +++ b/docs/_build/html/documentation/api_reference/cleavageprofile.html @@ -30,7 +30,7 @@ - + @@ -39,7 +39,7 @@ - + @@ -376,7 +376,7 @@

Cleavage Profile#

-finaletoolkit.frag.cleavage_profile(input_file: str | PathLike | AlignmentFile | TabixFile, chrom_size: int, contig: str, start: int, stop: int, left: int = 0, right: int = 0, min_length: int | None = None, max_length: int | None = None, quality_threshold: int = 30, verbose: bool | int = 0, fraction_low: int | None = None, fraction_high: int | None = None) ndarray#
+finaletoolkit.frag.cleavage_profile(input_file: FragFile, chrom_size: int, contig: str, start: int, stop: int, left: int = 0, right: int = 0, min_length: int | None = None, max_length: int | None = None, quality_threshold: int = 30, verbose: bool | int = 0, fraction_low: int | None = None, fraction_high: int | None = None) np.ndarray#

Cleavage profile calculated over a single interval.

Parameters:
@@ -502,7 +502,7 @@

This Page

diff --git a/docs/_build/html/documentation/api_reference/delfi.html b/docs/_build/html/documentation/api_reference/delfi.html index 1266d7a..a35469b 100644 --- a/docs/_build/html/documentation/api_reference/delfi.html +++ b/docs/_build/html/documentation/api_reference/delfi.html @@ -30,7 +30,7 @@ - + @@ -39,7 +39,7 @@ - + @@ -376,7 +376,7 @@

DELFI#

-finaletoolkit.frag.delfi(input_file: str, chrom_sizes: str, bins_file: str, reference_file: str, blacklist_file: str = None, gap_file: str | GenomeGaps = None, output_file: str = None, gc_correct: bool = True, remove_nocov: bool = True, merge_bins: bool = True, window_size: int = 5000000, quality_threshold: int = 30, workers: int = 1, verbose: int | bool = False) DataFrame#
+finaletoolkit.frag.delfi(input_file: str, chrom_sizes: str, bins_file: str, reference_file: str, blacklist_file: str | None = None, gap_file: str | GenomeGaps | None = None, output_file: str | None = None, gc_correct: bool = True, remove_nocov: bool = True, merge_bins: bool = True, window_size: int = 5000000, quality_threshold: int = 30, workers: int = 1, verbose: int | bool = False) DataFrame#

A function that replicates the methodology of Christiano et al (2019).

@@ -533,7 +533,7 @@

This Page

diff --git a/docs/_build/html/documentation/api_reference/endmotifs.html b/docs/_build/html/documentation/api_reference/endmotifs.html index cc520b9..4798449 100644 --- a/docs/_build/html/documentation/api_reference/endmotifs.html +++ b/docs/_build/html/documentation/api_reference/endmotifs.html @@ -30,7 +30,7 @@ - + @@ -39,7 +39,7 @@ - + @@ -391,7 +391,7 @@

End-Motifs
-classmethod from_file(file_path: str | Path, quality_threshold: int, sep: str = '\t', header: int = 0) EndMotifFreqs#
+classmethod from_file(file_path: str | Path, quality_threshold: int, sep: str = '\t', header: int = 0) EndMotifFreqs#

Reads kmer frequency from a two-column tab-delimited file.

Parameters:
@@ -579,7 +579,7 @@

End-Motifs
-finaletoolkit.frag.end_motifs(input_file: str, refseq_file: str | Path, k: int = 4, min_length: int = 10, max_length: int = 600, both_strands: bool = True, negative_strand: bool = False, output_file: None | str = None, quality_threshold: int = 30, workers: int = 1, verbose: bool | int = False, fraction_low: int | None = None, fraction_high: int | None = None) EndMotifFreqs#
+finaletoolkit.frag.end_motifs(input_file: str, refseq_file: str | Path, k: int = 4, min_length: int = 10, max_length: int = 600, both_strands: bool = True, negative_strand: bool = False, output_file: None | str = None, quality_threshold: int = 30, workers: int = 1, verbose: bool | int = False, fraction_low: int | None = None, fraction_high: int | None = None) EndMotifFreqs#

Function that reads fragments from a BAM, CRAM, or tabix indexed file and returns the 5’ k-mer (default is 4-mer) end motif frequencies as a dictionary. Optionally writes data to a tsv. This @@ -619,7 +619,7 @@

End-Motifs
-finaletoolkit.frag.interval_end_motifs(input_file: str, refseq_file: str | Path, intervals: str | Iterable[tuple[str, int, int, str]], k: int = 4, min_length: int | None = 10, max_length: int | None = 600, both_strands: bool = True, negative_strand: bool = False, output_file: str | None = None, quality_threshold: int = 30, workers: int = 1, verbose: bool | int = False, fraction_low: int | None = None, fraction_high: int | None = None) EndMotifsIntervals#
+finaletoolkit.frag.interval_end_motifs(input_file: str, refseq_file: str | Path, intervals: str | Iterable[tuple[str, int, int, str]], k: int = 4, min_length: int | None = 10, max_length: int | None = 600, both_strands: bool = True, negative_strand: bool = False, output_file: str | None = None, quality_threshold: int = 30, workers: int = 1, verbose: bool | int = False, fraction_low: int | None = None, fraction_high: int | None = None) EndMotifsIntervals#

Function that reads fragments from a BAM, CRAM, or tabix indexed file and user-specified intervals and returns the 5’ k-mer (default is 4-mer) end motif. Optionally writes data to a tsv.

@@ -766,7 +766,7 @@

This Page

diff --git a/docs/_build/html/documentation/api_reference/fragfile.html b/docs/_build/html/documentation/api_reference/fragfile.html index b1aa998..0114b63 100644 --- a/docs/_build/html/documentation/api_reference/fragfile.html +++ b/docs/_build/html/documentation/api_reference/fragfile.html @@ -30,7 +30,7 @@ - + @@ -39,7 +39,7 @@ - + @@ -376,7 +376,7 @@

Frag File Utilities#

-finaletoolkit.utils.filter_file(input_file: str, whitelist_file: str | None = None, blacklist_file: str | None = None, output_file: str | None = None, min_length: int | None = None, max_length: int | None = None, quality_threshold: int = 30, workers: int = 1, verbose: bool = False, fraction_low: int | None = None, fraction_high: int | None = None)#
+finaletoolkit.utils.filter_file(input_file: str, whitelist_file: str | None = None, blacklist_file: str | None = None, output_file: str | None = None, min_length: int | None = None, max_length: int | None = None, intersect_policy: str = 'midpoint', quality_threshold: int = 30, workers: int = 1, verbose: bool = False, fraction_low: int | None = None, fraction_high: int | None = None)#

Accepts the path to a BAM, CRAM, or BED file and creates a filtered version.

Filter reads/intervals based on exceeding the specified quality threshold, intersections with a region in the region bed (if provided), and read length.

@@ -390,6 +390,11 @@

Frag File Utilities
-finaletoolkit.utils.frag_array(input_file: str | PathLike | AlignmentFile | TabixFile, contig: str, quality_threshold: int = 30, start: int | None = None, stop: int | None = None, min_length: int | None = None, max_length: int | None = None, intersect_policy: str = 'midpoint', verbose: bool = False) ndarray[Any, dtype[_ScalarType_co]]#
+finaletoolkit.utils.frag_array(input_file: FragFile, contig: str, quality_threshold: int = 30, start: int | None = None, stop: int | None = None, min_length: int | None = None, max_length: int | None = None, intersect_policy: str = 'midpoint', verbose: bool = False) NDArray#

Reads from BAM, CRAM, or fragment file and returns a three column matrix with fragment start and stop positions and strand.

@@ -693,7 +698,7 @@

This Page

diff --git a/docs/_build/html/documentation/api_reference/genomeutils.html b/docs/_build/html/documentation/api_reference/genomeutils.html index 63ac15c..5adfe72 100644 --- a/docs/_build/html/documentation/api_reference/genomeutils.html +++ b/docs/_build/html/documentation/api_reference/genomeutils.html @@ -30,7 +30,7 @@ - + @@ -39,7 +39,7 @@ - + @@ -750,7 +750,7 @@

This Page

diff --git a/docs/_build/html/documentation/api_reference/index.html b/docs/_build/html/documentation/api_reference/index.html index 00d42f2..bbaec29 100644 --- a/docs/_build/html/documentation/api_reference/index.html +++ b/docs/_build/html/documentation/api_reference/index.html @@ -30,7 +30,7 @@ - + @@ -39,7 +39,7 @@ - + @@ -508,7 +508,7 @@

This Page

diff --git a/docs/_build/html/documentation/api_reference/wps.html b/docs/_build/html/documentation/api_reference/wps.html index 78f8933..d362640 100644 --- a/docs/_build/html/documentation/api_reference/wps.html +++ b/docs/_build/html/documentation/api_reference/wps.html @@ -30,7 +30,7 @@ - + @@ -39,7 +39,7 @@ - + @@ -376,7 +376,7 @@

Window Protection Score (WPS)#

-finaletoolkit.frag.wps(input_file: str | AlignmentFile, chrom: str, start: int, stop: int, chrom_size: int, output_file: str | None = None, window_size: int = 120, min_length: int = 120, max_length: int = 180, quality_threshold: int = 30, verbose: bool | int = 0, fraction_low: int | None = None, fraction_high: int | None = None) ndarray#
+finaletoolkit.frag.wps(input_file: str | pysam.AlignmentFile, chrom: str, start: int, stop: int, chrom_size: int, output_file: str | None = None, window_size: int = 120, min_length: int = 120, max_length: int = 180, quality_threshold: int = 30, verbose: bool | int = 0, fraction_low: int | None = None, fraction_high: int | None = None) np.ndarray#

Return (raw) Windowed Protection Scores as specified in Snyder et al (2016) over a region [start,stop).

@@ -413,7 +413,7 @@

Window Protection Score (WPS)
-finaletoolkit.frag.multi_wps(input_file: str | PathLike | AlignmentFile | TabixFile, site_bed: str | PathLike, chrom_sizes: str | PathLike | None = None, output_file: str | None = None, window_size: int = 120, interval_size: int = 5000, min_length: int = 120, max_length: int = 180, quality_threshold: int = 30, workers: int = 1, verbose: bool | int = 0, fraction_low: int | None = None, fraction_high: int | None = None)#
+finaletoolkit.frag.multi_wps(input_file: FragFile, site_bed: Intervals, chrom_sizes: ChromSizes | None = None, output_file: str | None = None, window_size: int = 120, interval_size: int = 5000, min_length: int = 120, max_length: int = 180, quality_threshold: int = 30, workers: int = 1, verbose: bool | int = 0, fraction_low: int | None = None, fraction_high: int | None = None)#

Function that aggregates WPS over sites in BED file according to the method described by Snyder et al (2016).

@@ -586,7 +586,7 @@

This Page

diff --git a/docs/_build/html/documentation/cli_reference/index.html b/docs/_build/html/documentation/cli_reference/index.html index da0d4c1..5a22516 100644 --- a/docs/_build/html/documentation/cli_reference/index.html +++ b/docs/_build/html/documentation/cli_reference/index.html @@ -30,7 +30,7 @@ - + @@ -39,7 +39,7 @@ - + @@ -369,8 +369,8 @@

CLI#

... -
-

Named Arguments#

+
+

Named Arguments#

-v, --version

show program’s version number and exit

@@ -382,7 +382,8 @@

Sub-commands

coverage#

Calculates fragmentation coverage over intervals defined in a BED file based on alignment data from a BAM/CRAM/Fragment file.

-
finaletoolkit coverage [-h] [-o OUTPUT_FILE] [-n] [-s SCALE_FACTOR] [-min MIN_LENGTH] [-max MAX_LENGTH] [-p {midpoint,any}] [-q QUALITY_THRESHOLD] [-w WORKERS] [-v]
+
finaletoolkit coverage [-h] [-o OUTPUT_FILE] [-n] [-s SCALE_FACTOR] [-min MIN_LENGTH] [-max MAX_LENGTH] [-p {midpoint,any}]
+                       [-q QUALITY_THRESHOLD] [-w WORKERS] [-v]
                        input_file interval_file
 
@@ -397,24 +398,24 @@

Positional Arguments

-
-

Named Arguments#

+
+

Named Arguments#

-o, --output-file

A BED file containing coverage values over the intervals specified in interval file.

-

Default: '-'

+

Default: “-”

-n, --normalize

If flag set, multiplies by user inputed scale factor if given and normalizes output by total coverage. May lead to longer execution time for high-throughput data.

-

Default: False

+

Default: False

-s, --scale-factor

Scale factor for coverage values. Default is 1.

-

Default: 1.0

+

Default: 1.0

-min, --min-length

Minimum length for a fragment to be included in coverage.

-

Default: 0

+

Default: 0

-max, --max-length

Maximum length for a fragment to be included in coverage.

@@ -422,19 +423,19 @@

Named Arguments'midpoint'

+

Default: “midpoint”

-q, --quality-threshold

Minimum mapping quality threshold.

-

Default: 30

+

Default: 30

-w, --workers

Number of worker processes.

-

Default: 1

+

Default: 1

-v, --verbose

Enable verbose mode to display detailed processing information.

-

Default: False

+

Default: False

@@ -442,8 +443,9 @@

Named Arguments

frag-length-bins#

Retrieves fragment lengths grouped in bins given a BAM/CRAM/Fragment file.

-
finaletoolkit frag-length-bins [-h] [-c CONTIG] [-S START] [-E STOP] [-min MIN_LENGTH] [-max MAX_LENGTH] [-p {midpoint,any}] [--bin-size BIN_SIZE] [-o OUTPUT_FILE]
-                               [--histogram-path HISTOGRAM_PATH] [-q QUALITY_THRESHOLD] [-v]
+
finaletoolkit frag-length-bins [-h] [-c CONTIG] [-S START] [-E STOP] [-min MIN_LENGTH] [-max MAX_LENGTH] [-p {midpoint,any}]
+                               [--bin-size BIN_SIZE] [-o OUTPUT_FILE] [--histogram-path HISTOGRAM_PATH] [-q QUALITY_THRESHOLD]
+                               [-v]
                                input_file
 
@@ -455,8 +457,8 @@

Positional Arguments -

Named Arguments#

+
+

Named Arguments#

-c, --contig

Specify the contig or chromosome to select fragments from. (Required if using –start or –stop.)

@@ -469,7 +471,7 @@

Named Arguments0

+

Default: 0

-max, --max-length

Maximum length for a fragment to be included in fragment length.

@@ -477,26 +479,26 @@

Named Arguments'midpoint'

+

Default: “midpoint”

--bin-size

Specify the size of the bins to group fragment lengths into.

-

Default: 1

+

Default: 1

-o, --output-file

A .TSV file containing containing fragment lengths binned according to the specified bin size.

-

Default: '-'

+

Default: “-”

--histogram-path

Path to store histogram.

-q, --quality-threshold

Minimum mapping quality threshold.

-

Default: 30

+

Default: 30

-v, --verbose

Enable verbose mode to display detailed processing information.

-

Default: 0

+

Default: 0

@@ -504,7 +506,9 @@

Named Arguments

frag-length-intervals#

Retrieves fragment length summary statistics over intervals defined in a BED file based on alignment data from a BAM/CRAM/Fragment file.

-
finaletoolkit frag-length-intervals [-h] [-min MIN_LENGTH] [-max MAX_LENGTH] [-p {midpoint,any}] [-o OUTPUT_FILE] [-q QUALITY_THRESHOLD] [-w WORKERS] [-v] input_file interval_file
+
finaletoolkit frag-length-intervals [-h] [-min MIN_LENGTH] [-max MAX_LENGTH] [-p {midpoint,any}] [-o OUTPUT_FILE]
+                                    [-q QUALITY_THRESHOLD] [-w WORKERS] [-v]
+                                    input_file interval_file
 
@@ -518,12 +522,12 @@

Positional Arguments -

Named Arguments#

+
+

Named Arguments#

-min, --min-length

Minimum length for a fragment to be included in fragment length.

-

Default: 0

+

Default: 0

-max, --max-length

Maximum length for a fragment to be included in fragment length.

@@ -531,23 +535,23 @@

Named Arguments'midpoint'

+

Default: “midpoint”

-o, --output-file

A BED file containing fragment length summary statistics (mean, median, st. dev, min, max) over the intervals specified in the interval file.

-

Default: '-'

+

Default: “-”

-q, --quality-threshold

Minimum mapping quality threshold.

-

Default: 30

+

Default: 30

-w, --workers

Number of worker processes.

-

Default: 1

+

Default: 1

-v, --verbose

Enable verbose mode to display detailed processing information.

-

Default: 0

+

Default: 0

@@ -555,8 +559,8 @@

Named Arguments

cleavage-profile#

Calculates cleavage proportion over intervals defined in a BED file based on alignment data from a BAM/CRAM/Fragment file.

-
finaletoolkit cleavage-profile [-h] [-c CHROM_SIZES] [-o OUTPUT_FILE] [-min MIN_LENGTH] [-max MAX_LENGTH] [-lo MIN_LENGTH] [-hi MAX_LENGTH] [-q QUALITY_THRESHOLD] [-l LEFT] [-r RIGHT]
-                               [-w WORKERS] [-v]
+
finaletoolkit cleavage-profile [-h] [-c CHROM_SIZES] [-o OUTPUT_FILE] [-min MIN_LENGTH] [-max MAX_LENGTH] [-lo MIN_LENGTH]
+                               [-hi MAX_LENGTH] [-q QUALITY_THRESHOLD] [-l LEFT] [-r RIGHT] [-w WORKERS] [-v]
                                input_file interval_file
 
@@ -571,19 +575,19 @@

Positional Arguments -

Named Arguments#

+
+

Named Arguments#

-c, --chrom-sizes

A .chrom.sizes file containing chromosome names and sizes.

-o, --output-file

A bigWig file containing the cleavage proportion results over the intervals specified in interval file.

-

Default: '-'

+

Default: “-”

-min, --min-length

Minimum length for a fragment to be included.

-

Default: 0

+

Default: 0

-max, --max-length

Maximum length for a fragment to be included.

@@ -596,23 +600,23 @@

Named Arguments20

+

Default: 20

-l, --left

Number of base pairs to subtract from start coordinate to create interval. Useful when dealing with BED files with only CpG coordinates. Default is 0.

-

Default: 0

+

Default: 0

-r, --right

Number of base pairs to add to stop coordinate to create interval. Useful when dealing with BED files with only CpG coordinates. Default is 0.

-

Default: 0

+

Default: 0

-w, --workers

Number of worker processes.

-

Default: 1

+

Default: 1

-v, --verbose

Enable verbose mode to display detailed processing information.

-

Default: 0

+

Default: 0

@@ -620,8 +624,8 @@

Named Arguments

wps#

Calculates Windowed Protection Score (WPS) over intervals defined in a BED file based on alignment data from a BAM/CRAM/Fragment file.

-
finaletoolkit wps [-h] [-c CHROM_SIZES] [-o OUTPUT_FILE] [-i INTERVAL_SIZE] [-W WINDOW_SIZE] [-min MIN_LENGTH] [-max MAX_LENGTH] [-lo MIN_LENGTH] [-hi MAX_LENGTH] [-q QUALITY_THRESHOLD]
-                  [-w WORKERS] [-v]
+
finaletoolkit wps [-h] [-c CHROM_SIZES] [-o OUTPUT_FILE] [-i INTERVAL_SIZE] [-W WINDOW_SIZE] [-min MIN_LENGTH]
+                  [-max MAX_LENGTH] [-lo MIN_LENGTH] [-hi MAX_LENGTH] [-q QUALITY_THRESHOLD] [-w WORKERS] [-v]
                   input_file site_bed
 
@@ -636,31 +640,31 @@

Positional Arguments -

Named Arguments#

+
+

Named Arguments#

-c, --chrom-sizes

A .chrom.sizes file containing chromosome names and sizes.

-o, --output-file

A bigWig file containing the WPS results over the intervals specified in interval file.

-

Default: '-'

+

Default: “-”

-i, --interval-size

Size in bp of the intervals to calculate WPS over. Thesenew intervals are centered over those specified in the site_bed.Default is 5000

-

Default: 5000

+

Default: 5000

-W, --window-size

Size of the sliding window used to calculate WPS scores. Default is 120

-

Default: 120

+

Default: 120

-min, --min-length

Minimum length for a fragment to be included. Default is 120, corresponding to L-WPS.

-

Default: 120

+

Default: 120

-max, --max-length

Maximum length for a fragment to be included. Default is 180, corresponding to L-WPS.

-

Default: 180

+

Default: 180

-lo, --fraction_low

Minimum length for a fragment to be included in WPS calculation. Deprecated. Use –min-length instead.

@@ -670,15 +674,15 @@

Named Arguments30

+

Default: 30

-w, --workers

Number of worker processes.

-

Default: 1

+

Default: 1

-v, --verbose

Enable verbose mode to display detailed processing information.

-

Default: 0

+

Default: 0

@@ -686,8 +690,8 @@

Named Arguments

adjust-wps#

Adjusts raw Windowed Protection Score (WPS) by applying a median filter and Savitsky-Golay filter.

-
finaletoolkit adjust-wps [-h] [-o OUTPUT_FILE] [-i INTERVAL_SIZE] [-m MEDIAN_WINDOW_SIZE] [-s SAVGOL_WINDOW_SIZE] [-p SAVGOL_POLY_DEG] [-S] [-w WORKERS] [--mean] [--subtract-edges]
-                         [--edge-size EDGE_SIZE] [-v]
+
finaletoolkit adjust-wps [-h] [-o OUTPUT_FILE] [-i INTERVAL_SIZE] [-m MEDIAN_WINDOW_SIZE] [-s SAVGOL_WINDOW_SIZE]
+                         [-p SAVGOL_POLY_DEG] [-S] [-w WORKERS] [--mean] [--subtract-edges] [--edge-size EDGE_SIZE] [-v]
                          input_file interval_file chrom_sizes
 
@@ -705,48 +709,48 @@

Positional Arguments -

Named Arguments#

+
+

Named Arguments#

-o, --output-file

A bigWig file containing the adjusted WPS results over the intervals specified in interval file.

-

Default: '-'

+

Default: “-”

-i, --interval_size

Size in bp of each interval in the interval file.

-

Default: 5000

+

Default: 5000

-m, --median-window-size

Size of the median filter or mean filter window used to adjust WPS scores.

-

Default: 1000

+

Default: 1000

-s, --savgol-window-size

Size of the Savitsky-Golay filter window used to adjust WPS scores.

-

Default: 21

+

Default: 21

-p, --savgol-poly-deg

Degree polynomial for Savitsky-Golay filter.

-

Default: 2

+

Default: 2

-S, --exclude-savgol

Do not perform Savitsky-Golay filteringscores.

-

Default: True

+

Default: True

-w, --workers

Number of worker processes.

-

Default: 1

+

Default: 1

--mean

A mean filter is used instead of median.

-

Default: False

+

Default: False

--subtract-edges

Take the median of the first and last 500 bases in a window and subtract from the whole interval.

-

Default: False

+

Default: False

--edge-size

size of the edge subtracted from ends of window when –subtract-edges is set. Default is 500.

-

Default: 500

+

Default: 500

-v, --verbose

Enable verbose mode to display detailed processing information.

@@ -757,7 +761,8 @@

Named Arguments

delfi#

Calculates DELFI features over genome, returning information about (GC-corrected) short fragments, long fragments, DELFI ratio, and total fragments.

-
finaletoolkit delfi [-h] [-b BLACKLIST_FILE] [-g GAP_FILE] [-o OUTPUT_FILE] [-G] [-R] [-M] [-s WINDOW_SIZE] [-q QUALITY_THRESHOLD] [-w WORKERS] [-v]
+
finaletoolkit delfi [-h] [-b BLACKLIST_FILE] [-g GAP_FILE] [-o OUTPUT_FILE] [-G] [-R] [-M] [-s WINDOW_SIZE]
+                    [-q QUALITY_THRESHOLD] [-w WORKERS] [-v]
                     input_file chrom_sizes reference_file bins_file
 
@@ -778,8 +783,8 @@

Positional Arguments -

Named Arguments#

+
+

Named Arguments#

-b, --blacklist-file

BED file containing regions to ignore when calculating DELFI.

@@ -789,35 +794,35 @@

Named Arguments'-'

+

Default: “-”

-G, --no-gc-correct

Skip GC correction.

-

Default: True

+

Default: True

-R, --keep-nocov

Skip removal two regions in hg19 with no coverage. Use this flag when not using hg19 human reference genome.

-

Default: True

+

Default: True

-M, --no-merge-bins

Keep 100kb bins and do not merge to 5Mb size.

-

Default: True

+

Default: True

-s, --window-size

Specify size of large genomic intervals to merge smaller 100kb intervals (or whatever the user specified in bins_file) into. Defaultis 5000000

-

Default: 5000000

+

Default: 5000000

-q, --quality-threshold

Minimum mapping quality threshold.

-

Default: 30

+

Default: 30

-w, --workers

Number of worker processes.

-

Default: 1

+

Default: 1

-v, --verbose

Enable verbose mode to display detailed processing information.

-

Default: 0

+

Default: 0

@@ -836,16 +841,16 @@

Positional Arguments -

Named Arguments#

+
+

Named Arguments#

-o, --output-file

BED to print GC-corrected DELFI fractions. If “-”, will write to stdout.

-

Default: '-'

+

Default: “-”

--header-lines

Number of header lines in BED.

-

Default: 1

+

Default: 1

-v, --verbose

Enable verbose mode to display detailed processing information.

@@ -856,7 +861,9 @@

Named Arguments

end-motifs#

Measures frequency of k-mer 5’ end motifs.

-
finaletoolkit end-motifs [-h] [-k K] [-min MIN_LENGTH] [-max MAX_LENGTH] [-B] [-n] [-o OUTPUT_FILE] [-q QUALITY_THRESHOLD] [-w WORKERS] [-v] input_file refseq_file
+
finaletoolkit end-motifs [-h] [-k K] [-min MIN_LENGTH] [-max MAX_LENGTH] [-B] [-n] [-o OUTPUT_FILE] [-q QUALITY_THRESHOLD]
+                         [-w WORKERS] [-v]
+                         input_file refseq_file
 
@@ -870,43 +877,43 @@

Positional Arguments -

Named Arguments#

+
+

Named Arguments#

-k

Length of k-mer.

-

Default: 4

+

Default: 4

-min, --min-length

Minimum length for a fragment to be included.

-

Default: 0

+

Default: 0

-max, --max-length

Maximum length for a fragment to be included.

-B, --no-both-strands

Set flag to only consider one strand for end-motifs.

-

Default: True

+

Default: True

-n, --negative-strand

Set flag in conjunction with -B to only consider 5’ end motifs on the negative strand.

-

Default: False

+

Default: False

-o, --output-file

TSV to print k-mer frequencies. If “-”, will write to stdout.

-

Default: '-'

+

Default: “-”

-q, --quality-threshold

Minimum mapping quality threshold.

-

Default: 20

+

Default: 20

-w, --workers

Number of worker processes.

-

Default: 1

+

Default: 1

-v, --verbose

Enable verbose mode to display detailed processing information.

-

Default: 0

+

Default: 0

@@ -914,7 +921,8 @@

Named Arguments

interval-end-motifs#

Measures frequency of k-mer 5’ end motifs in each region specified in a BED file and writes data into a table.

-
finaletoolkit interval-end-motifs [-h] [-k K] [-min MIN_LENGTH] [-max MAX_LENGTH] [-lo MIN_LENGTH] [-hi MAX_LENGTH] [-B] [-n] [-o OUTPUT_FILE] [-q QUALITY_THRESHOLD] [-w WORKERS] [-v]
+
finaletoolkit interval-end-motifs [-h] [-k K] [-min MIN_LENGTH] [-max MAX_LENGTH] [-lo MIN_LENGTH] [-hi MAX_LENGTH] [-B] [-n]
+                                  [-o OUTPUT_FILE] [-q QUALITY_THRESHOLD] [-w WORKERS] [-v]
                                   input_file refseq_file intervals
 
@@ -932,16 +940,16 @@

Positional Arguments -

Named Arguments#

+
+

Named Arguments#

-k

Length of k-mer.

-

Default: 4

+

Default: 4

-min, --min-length

Minimum length for a fragment to be included.

-

Default: 0

+

Default: 0

-max, --max-length

Maximum length for a fragment to be included.

@@ -954,27 +962,27 @@

Named ArgumentsTrue

+

Default: True

-n, --negative-strand

Set flag in conjunction with -B to only consider 5’ end motifs on the negative strand.

-

Default: False

+

Default: False

-o, --output-file

Path to TSV or CSV file to write end motif frequencies to.

-

Default: '-'

+

Default: “-”

-q, --quality-threshold

Minimum mapping quality threshold.

-

Default: 20

+

Default: 20

-w, --workers

Number of worker processes.

-

Default: 1

+

Default: 1

-v, --verbose

Enable verbose mode to display detailed processing information.

-

Default: 0

+

Default: 0

@@ -990,20 +998,20 @@

Positional Arguments
file_path

Tab-delimited or similar file containing one column for all k-mers a one column for frequency. Reads from stdin by default.

-

Default: '-'

+

Default: “-”

-
-

Named Arguments#

+
+

Named Arguments#

-s, --sep

Separator used in tabular file.

-

Default: '    '

+

Default: “ “

--header

Number of header rows to ignore. Default is 0

-

Default: 0

+

Default: 0

@@ -1019,24 +1027,24 @@

Positional Arguments
file_path

Tab-delimited or similar file containing one column for all k-mers a one column for frequency. Reads from stdin by default.

-

Default: '-'

+

Default: “-”

file_out

Path to the output BED/BEDGraph file containing MDS for each interval.

-

Default: '-'

+

Default: “-”

-
-

Named Arguments#

+
+

Named Arguments#

-s, --sep

Separator used in tabular file.

-

Default: '    '

+

Default: “ “

--header

Number of header rows to ignore. Default is 0

-

Default: 0

+

Default: 0

@@ -1044,7 +1052,8 @@

Named Arguments

filter-file#

Filters a BED/BAM/CRAM file so that all reads/intervals, when applicable,are in mapped pairs, exceed a certain MAPQ, are not flagged for quality, are read1, are not secondary or supplementary alignments, are within/excluding specified intervals, and are on the same reference sequence as the mate.

-
finaletoolkit filter-file [-h] [-W WHITELIST_FILE] [-B BLACKLIST_FILE] [-o OUTPUT_FILE] [-q QUALITY_THRESHOLD] [-min MIN_LENGTH] [-max MAX_LENGTH] [-lo MIN_LENGTH] [-hi MAX_LENGTH]
+
finaletoolkit filter-file [-h] [-W WHITELIST_FILE] [-B BLACKLIST_FILE] [-o OUTPUT_FILE] [-q QUALITY_THRESHOLD]
+                          [-min MIN_LENGTH] [-max MAX_LENGTH] [-p {midpoint,any}] [-lo MIN_LENGTH] [-hi MAX_LENGTH]
                           [-w WORKERS] [-v]
                           input_file
 
@@ -1057,8 +1066,8 @@

Positional Arguments -

Named Arguments#

+
+

Named Arguments#

-W, --whitelist-file

Only output alignments overlapping the intervals in this BED file will be included.

@@ -1068,11 +1077,11 @@

Named Arguments
-o, --output-file

Output BED/BAM/CRAM file path.

-

Default: '-'

+

Default: “-”

-q, --quality-threshold

Minimum mapping quality threshold.

-

Default: 30

+

Default: 30

-min, --min-length

Minimum length for a fragment to be included.

@@ -1080,6 +1089,11 @@

Named Arguments-max, --max-length

Maximum length for a fragment to be included.

+
-p, --intersect-policy
+

Possible choices: midpoint, any

+

Specifies what policy is used to include/exclude fragments in the given interval. See User Guide for more information.

+

Default: “midpoint”

+
-lo, --fraction-low

Deprecated alias for –min-length

@@ -1088,7 +1102,7 @@

Named Arguments
-w, --workers

Number of worker processes.

-

Default: 1

+

Default: 1

-v, --verbose

Enable verbose mode to display detailed processing information.

@@ -1115,20 +1129,20 @@

Positional Arguments -

Named Arguments#

+
+

Named Arguments#

-o, --output-file

A wiggle file containing the aggregate signal over the intervals specified in interval file.

-

Default: '-'

+

Default: “-”

-m, --median-window-size

Size of the median filter window used to aggregate scores. Set to 120 if aggregating WPS signals.

-

Default: 1

+

Default: 1

-a, --mean

use mean instead

-

Default: False

+

Default: False

-v, --verbose

Enable verbose mode to display detailed processing information.

@@ -1206,76 +1220,76 @@

Positional Arguments