Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Develop #60

Merged
merged 17 commits into from
Apr 30, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,24 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.5.0] - 2024-04-24

### Added
- Added finaletools.interval_end_motifs function to calculate end-motifs
over genomic intervals. Stores results in an IntervalEndMotifs object.
- Added CLI subcommand interval-end-motifs to calculate end-motifs over
genomic intervals.
- Added CLI subcommand interval-mds to calculate MDS over intervals from
interval end-motifs table.

### Changed
- Added gc_correct option to delfi_merge_bins so that merging is possible
without GC correction

### Fixed
- `delfi` can now be run with `gc_correct=false` and `merge_bins=true`
- fixed `cleavage_profile` import in `frag`

## [0.4.5] - 2024-04-9

### Added
Expand Down
26 changes: 13 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
# FinaleTools
# FinaleToolkit
A package and standalone program to extract fragmentation patterns of cell-free
DNA from paired-end sequencing data. FinaleTools refers to FragmentatIoN
DNA from paired-end sequencing data. FinaleToolkit refers to FragmentatIoN
AnaLysis of cEll-free DNA Tools.

FinaleTools is in active development, and all API is subject to change and
FinaleToolkit is in active development, and all API is subject to change and
should be considered unstable.

## Installation
Instructions:
- (Optional) create a conda or venv environment to use FinaleTools in.
- Run `pip install finaletools`
- (Optional) create a conda or venv environment to use FinaleToolkit in.
- Run `pip install finaletoolkit`

To verify FinaleTools has been successfully installed, try
To verify FinaleToolkit has been successfully installed, try
```
$ finaletools -h
usage: finaletools [-h]
$ finaletoolkit -h
usage: finaletoolkit [-h]
{coverage,frag-length,frag-length-bins,frag-length-intervals,wps,delfi,filter-bam,adjust-wps,agg-wps,delfi-gc-correct,end-motifs,mds}
...

Expand All @@ -28,9 +28,9 @@ subcommands:
```

## Usage
Documentation can be found at https://epifluidlab.github.io/finaletools-docs/
Documentation can be found at https://epifluidlab.github.io/finaletoolkit-docs/

FinaleTools functions generally accept reads in a few file formats:
FinaleToolkit functions generally accept reads in a few file formats:
- Binary Alignment Map (BAM) Files
- Compressed Reference-oriented Alignment Map
- FinaleDB Frag.gz Files
Expand All @@ -55,11 +55,11 @@ tabix -p bed $OUTPUT;

Frag.gz files can be retrieved from http://finaledb.research.cchmc.org/

Because FinaleTools uses pysam, BAM files should be bai-indexed and Frag.gz files should be tabix-indexed.
Because FinaleToolkit uses pysam, BAM files should be bai-indexed and Frag.gz files should be tabix-indexed.

To view fragment length distribution
```
$ finaletools frag-length-bins --contig 22 --histogram sample.bam
$ finaletoolkit frag-length-bins --contig 22 --histogram sample.bam
Fragment Lengths for 22:-
10.61% ▇ mean :169.28
09.85% ▆█▁ median :169.00
Expand All @@ -79,7 +79,7 @@ len (nt)067 091 115 139 163 187 211 235 259 283
```

## FAQ
Q: When running on an ARM64 Mac, I can install FinaleTools without errors.
Q: When running on an ARM64 Mac, I can install FinaleToolkit without errors.
However, I get an `ImportError` when I run it.

A: Try `brew install curl`. Otherwise, email me and I will try to help you.
Binary file modified docs/build/doctrees/api.doctree
Binary file not shown.
Binary file modified docs/build/doctrees/cli.doctree
Binary file not shown.
Binary file modified docs/build/doctrees/environment.pickle
Binary file not shown.
Binary file modified docs/build/doctrees/index.doctree
Binary file not shown.
Binary file modified docs/build/doctrees/quick_start.doctree
Binary file not shown.
Binary file modified docs/build/doctrees/releases.doctree
Binary file not shown.
Binary file removed docs/build/doctrees/usage.doctree
Binary file not shown.
12 changes: 12 additions & 0 deletions docs/build/html/_sources/api.rst.txt
Original file line number Diff line number Diff line change
Expand Up @@ -29,16 +29,28 @@ DELFI

.. autofunction:: finaletools.frag.delfi_gc_correct

.. autofunction:: finaletools.frag.delfi_merge_bins

End-motifs
==========

.. autoclass:: finaletools.frag.EndMotifFreqs
:members:

.. autoclass:: finaletools.frag.EndMotifsIntervals
:members:

.. autofunction:: finaletools.frag.region_end_motifs

.. autofunction:: finaletools.frag.end_motifs

.. autofunction:: finaletools.frag.interval_end_motifs

Cleavage Profile
================
.. autofunction:: finaletools.frag.cleavage_profile


Frag File Utilities
===================

Expand Down
1 change: 0 additions & 1 deletion docs/build/html/_sources/index.rst.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ Welcome to FinaleTools's documentation!
:maxdepth: 2
:caption: Contents:

usage
quick_start
cli
api
Expand Down
214 changes: 191 additions & 23 deletions docs/build/html/api.html

Large diffs are not rendered by default.

44 changes: 20 additions & 24 deletions docs/build/html/cli.html

Large diffs are not rendered by default.

40 changes: 35 additions & 5 deletions docs/build/html/genindex.html
Original file line number Diff line number Diff line change
Expand Up @@ -117,10 +117,12 @@ <h2 id="B">B</h2>
<h2 id="C">C</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="api.html#finaletools.genome.ContigGaps">ContigGaps (class in finaletools.genome)</a>
<li><a href="api.html#finaletools.frag.cleavage_profile">cleavage_profile() (in module finaletools.frag)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="api.html#finaletools.genome.ContigGaps">ContigGaps (class in finaletools.genome)</a>
</li>
<li><a href="api.html#finaletools.frag.coverage">coverage() (in module finaletools.frag)</a>
</li>
</ul></td>
Expand All @@ -134,6 +136,8 @@ <h2 id="D">D</h2>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="api.html#finaletools.frag.delfi_gc_correct">delfi_gc_correct() (in module finaletools.frag)</a>
</li>
<li><a href="api.html#finaletools.frag.delfi_merge_bins">delfi_merge_bins() (in module finaletools.frag)</a>
</li>
</ul></td>
</tr></table>
Expand All @@ -146,6 +150,8 @@ <h2 id="E">E</h2>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="api.html#finaletools.frag.EndMotifFreqs">EndMotifFreqs (class in finaletools.frag)</a>
</li>
<li><a href="api.html#finaletools.frag.EndMotifsIntervals">EndMotifsIntervals (class in finaletools.frag)</a>
</li>
</ul></td>
</tr></table>
Expand All @@ -156,13 +162,19 @@ <h2 id="F">F</h2>
<li><a href="api.html#finaletools.utils.filter_bam">filter_bam() (in module finaletools.utils)</a>
</li>
<li><a href="api.html#finaletools.frag.frag_length">frag_length() (in module finaletools.frag)</a>
</li>
<li><a href="api.html#finaletools.frag.frag_length_bins">frag_length_bins() (in module finaletools.frag)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="api.html#finaletools.frag.frag_length_bins">frag_length_bins() (in module finaletools.frag)</a>
<li><a href="api.html#finaletools.frag.EndMotifsIntervals.freq">freq() (finaletools.frag.EndMotifsIntervals method)</a>
</li>
<li><a href="api.html#finaletools.frag.EndMotifFreqs.from_file">from_file() (finaletools.frag.EndMotifFreqs class method)</a>

<ul>
<li><a href="api.html#finaletools.frag.EndMotifsIntervals.from_file">(finaletools.frag.EndMotifsIntervals class method)</a>
</li>
</ul></li>
</ul></td>
</tr></table>

Expand Down Expand Up @@ -191,22 +203,30 @@ <h2 id="I">I</h2>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="api.html#finaletools.genome.ContigGaps.in_gap">in_gap() (finaletools.genome.ContigGaps method)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="api.html#finaletools.genome.ContigGaps.in_tcmere">in_tcmere() (finaletools.genome.ContigGaps method)</a>

<ul>
<li><a href="api.html#finaletools.genome.GenomeGaps.in_tcmere">(finaletools.genome.GenomeGaps method)</a>
</li>
</ul></li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="api.html#finaletools.frag.interval_end_motifs">interval_end_motifs() (in module finaletools.frag)</a>
</li>
</ul></td>
</tr></table>

<h2 id="M">M</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="api.html#finaletools.frag.EndMotifsIntervals.mds_bed">mds_bed() (finaletools.frag.EndMotifsIntervals method)</a>
</li>
<li><a href="api.html#finaletools.frag.EndMotifFreqs.motif_diversity_score">motif_diversity_score() (finaletools.frag.EndMotifFreqs method)</a>

<ul>
<li><a href="api.html#finaletools.frag.EndMotifsIntervals.motif_diversity_score">(finaletools.frag.EndMotifsIntervals method)</a>
</li>
</ul></li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="api.html#finaletools.frag.multi_wps">multi_wps() (in module finaletools.frag)</a>
Expand All @@ -233,12 +253,22 @@ <h2 id="R">R</h2>
<h2 id="T">T</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="api.html#finaletools.genome.GenomeGaps.to_bed">to_bed() (finaletools.genome.GenomeGaps method)</a>
<li><a href="api.html#finaletools.frag.EndMotifsIntervals.to_bed">to_bed() (finaletools.frag.EndMotifsIntervals method)</a>

<ul>
<li><a href="api.html#finaletools.genome.GenomeGaps.to_bed">(finaletools.genome.GenomeGaps method)</a>
</li>
</ul></li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="api.html#finaletools.frag.EndMotifsIntervals.to_bedgraph">to_bedgraph() (finaletools.frag.EndMotifsIntervals method)</a>
</li>
<li><a href="api.html#finaletools.frag.EndMotifFreqs.to_tsv">to_tsv() (finaletools.frag.EndMotifFreqs method)</a>

<ul>
<li><a href="api.html#finaletools.frag.EndMotifsIntervals.to_tsv">(finaletools.frag.EndMotifsIntervals method)</a>
</li>
</ul></li>
</ul></td>
</tr></table>

Expand Down
1 change: 1 addition & 0 deletions docs/build/html/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@ <h1>Welcome to FinaleTools’s documentation!<a class="headerlink" href="#welcom
<li class="toctree-l2"><a class="reference internal" href="api.html#window-protection-score">Window Protection Score</a></li>
<li class="toctree-l2"><a class="reference internal" href="api.html#delfi">DELFI</a></li>
<li class="toctree-l2"><a class="reference internal" href="api.html#end-motifs">End-motifs</a></li>
<li class="toctree-l2"><a class="reference internal" href="api.html#cleavage-profile">Cleavage Profile</a></li>
<li class="toctree-l2"><a class="reference internal" href="api.html#frag-file-utilities">Frag File Utilities</a></li>
<li class="toctree-l2"><a class="reference internal" href="api.html#genome-utilities">Genome Utilities</a></li>
</ul>
Expand Down
Binary file modified docs/build/html/objects.inv
Binary file not shown.
15 changes: 9 additions & 6 deletions docs/build/html/quick_start.html
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<html class="writer-html5" lang="en">
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />

<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Quick-start Guide &mdash; FinaleTools documentation</title>
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/css/theme.css" />


<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
Expand All @@ -20,7 +22,7 @@
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="CLI" href="cli.html" />
<link rel="prev" title="Welcome to FinaleTools’s documentation!" href="index.html" />
<link rel="prev" title="Usage" href="usage.html" />
</head>

<body class="wy-body-for-nav">
Expand All @@ -44,6 +46,7 @@
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="usage.html">Usage</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Quick-start Guide</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#installation">Installation</a></li>
<li class="toctree-l2"><a class="reference internal" href="#usage">Usage</a></li>
Expand Down Expand Up @@ -172,7 +175,7 @@ <h2>Usage<a class="headerlink" href="#usage" title="Permalink to this heading">
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="index.html" class="btn btn-neutral float-left" title="Welcome to FinaleTools’s documentation!" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="usage.html" class="btn btn-neutral float-left" title="Usage" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="cli.html" class="btn btn-neutral float-right" title="CLI" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>

Expand Down
11 changes: 7 additions & 4 deletions docs/build/html/releases.html
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<html class="writer-html5" lang="en">
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />

<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Releases &mdash; FinaleTools documentation</title>
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/css/theme.css" />


<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
Expand Down Expand Up @@ -43,6 +45,7 @@
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="usage.html">Usage</a></li>
<li class="toctree-l1"><a class="reference internal" href="quick_start.html">Quick-start Guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="cli.html">CLI</a></li>
<li class="toctree-l1"><a class="reference internal" href="api.html">API</a></li>
Expand Down
2 changes: 1 addition & 1 deletion docs/build/html/searchindex.js

Large diffs are not rendered by default.

Loading