broadinstitute / adapt

A package for designing activity-informed nucleic acid diagnostics for viruses.
MIT License
29 stars 2 forks source link

Add nearest neighbor model to analyze coverage #66

Closed priyappillai closed 2 years ago

priyappillai commented 2 years ago

This allows PCR primers to be assessed via analyze coverage, and will allow probes that do not have ML models of their activity to be assessed thermodynamically.

The module thermo in adapt/utils allows thermodynamically analysis of oligos. The option --write-thermo-stats of analyze_coverage batch outputs thermodynamic statistics of assays. The options --primer-thermo and --guide-thermo set thermodynamic model analysis for primers and guides respectively, and the options that begin with pcr allow. thermodynamic conditions to be set.

This also requires primer3-py, which is now an optional dependency added by installing adapt-diagnostics[thermo]. The Dockerfiles automatically install this dependency.

codecov[bot] commented 2 years ago

Codecov Report

Merging #66 (3db165e) into dev (0c4dc99) will increase coverage by 0.16%. The diff coverage is 91.57%.

@@            Coverage Diff             @@
##              dev      #66      +/-   ##
==========================================
+ Coverage   87.11%   87.28%   +0.16%     
==========================================
  Files          54       56       +2     
  Lines        9082     9552     +470     
==========================================
+ Hits         7912     8337     +425     
- Misses       1170     1215      +45     
Impacted Files Coverage Δ
bin/design.py 65.53% <ø> (ø)
adapt/utils/thermo.py 82.57% <82.57%> (ø)
bin/analyze_coverage.py 92.11% <89.69%> (-1.03%) :arrow_down:
adapt/coverage_analysis.py 94.88% <89.91%> (-2.29%) :arrow_down:
bin/tests/test_analyze_coverage.py 94.95% <97.89%> (+1.53%) :arrow_up:
adapt/tests/test_coverage_analysis.py 99.31% <100.00%> (ø)
adapt/utils/tests/test_thermo.py 100.00% <100.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 0c4dc99...3db165e. Read the comment docs.

priyappillai commented 2 years ago
  • Since the Docker file seems fixed, should it instead be set to install thermo too?

On this, I'm not sure? For the AWS requirements, we have a second Dockerfile; I don't know whether it makes sense to make a third/fourth file or just add the thermo requirements to both.