CodonAdaptPy 1.0.0__py3-none-any.whl → 1.0.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
codonadaptpy/__init__.py CHANGED
@@ -1,10 +1,10 @@
1
1
  """
2
2
  CodonAdaptPy Package
3
3
 
4
- CodonAdaptPy is an integrated, class-based Python toolkit for validating
4
+ CodonAdaptPy is a Python package for validating
5
5
  coding sequences, calculating codon-usage and host-adaptation statistics,
6
6
  performing comparative and evolutionary analyses, generating reproducible
7
- reports, and designing constrained optimized or deoptimized coding sequences.
7
+ reports, and designing synonymous coding sequences under user-defined constraints.
8
8
 
9
9
  Features:
10
10
  - FASTA, GenBank, tabular, pasted-sequence, and batch input workflows
@@ -22,7 +22,7 @@ Scientific interpretation:
22
22
  :Created: July 20, 2026
23
23
  :Updated: July 20, 2026
24
24
  :Author: Naveen Duhan
25
- :Version: 1.0.0
25
+ :Version: 1.0.1
26
26
  """
27
27
 
28
28
  from .__version__ import __author__, __email__, __version__
codonadaptpy/__main__.py CHANGED
@@ -9,7 +9,7 @@ This module makes ``python -m codonadaptpy`` equivalent to the installed
9
9
  :Created: July 20, 2026
10
10
  :Updated: July 20, 2026
11
11
  :Author: Naveen Duhan
12
- :Version: 1.0.0
12
+ :Version: 1.0.1
13
13
  """
14
14
 
15
15
  from .cli import main
@@ -13,9 +13,9 @@ Constants:
13
13
  :Created: July 20, 2026
14
14
  :Updated: July 20, 2026
15
15
  :Author: Naveen Duhan
16
- :Version: 1.0.0
16
+ :Version: 1.0.1
17
17
  """
18
18
 
19
- __version__ = "1.0.0"
19
+ __version__ = "1.0.1"
20
20
  __author__ = "Naveen Duhan"
21
21
  __email__ = ""
@@ -8,12 +8,12 @@ a raw multi-ORF genome as one continuous reading frame.
8
8
 
9
9
  Classes:
10
10
  - IsolateAnalysis: Per-gene, genome-wide, and focus-gene results.
11
- - CDSAggregator: Metadata-aware orchestration for isolate collections.
11
+ - CDSAggregator: Metadata-aware analysis of isolate collections.
12
12
 
13
13
  :Created: July 20, 2026
14
14
  :Updated: July 20, 2026
15
15
  :Author: Naveen Duhan
16
- :Version: 1.0.0
16
+ :Version: 1.0.1
17
17
  """
18
18
 
19
19
  from __future__ import annotations
codonadaptpy/analyzer.py CHANGED
@@ -1,7 +1,7 @@
1
1
  """
2
- CodonAdaptPy Analysis Orchestration
2
+ CodonAdaptPy Analysis Interface
3
3
 
4
- This module exposes the primary class-based Python API. :class:`CodonAnalyzer`
4
+ This module exposes the primary high-level Python API. :class:`CodonAnalyzer`
5
5
  coordinates normalization, validation, intrinsic metrics, optional reference-
6
6
  dependent adaptation statistics, multi-host comparisons, simulation, and
7
7
  sliding-window profiles while keeping each calculation module independently
@@ -14,7 +14,7 @@ Classes:
14
14
  :Created: July 20, 2026
15
15
  :Updated: July 20, 2026
16
16
  :Author: Naveen Duhan
17
- :Version: 1.0.0
17
+ :Version: 1.0.1
18
18
  """
19
19
 
20
20
  from __future__ import annotations
@@ -55,7 +55,7 @@ class AnalysisConfig:
55
55
 
56
56
 
57
57
  class CodonAnalyzer:
58
- """Run complete codon-usage and adaptation analyses through one API."""
58
+ """Coordinate codon-usage and adaptation analyses through one interface."""
59
59
 
60
60
  def __init__(
61
61
  self,
@@ -85,7 +85,7 @@ class CodonAnalyzer:
85
85
  )
86
86
 
87
87
  def analyze(self, record: SequenceRecord) -> AnalysisResult:
88
- """Analyze one sequence and return a complete structured result."""
88
+ """Analyze one sequence and return a structured result."""
89
89
 
90
90
  validation = self.validator.validate(record, raise_on_error=self.config.strict)
91
91
  sequence = validation.normalized_sequence
codonadaptpy/cli.py CHANGED
@@ -1,12 +1,12 @@
1
1
  """
2
2
  CodonAdaptPy Command-Line Interface
3
3
 
4
- This module exposes standalone subcommands for complete sequence analysis,
4
+ This module provides commands for coding-sequence analysis,
5
5
  multi-host comparison, reference construction/cataloging, and constrained
6
6
  optimization or deoptimization. It also exposes MAFFT/trimAL/IQ-TREE/FastTree
7
7
  phylogenetics with ETE3-backed static tree and temporal-diagnostic figures.
8
- CLI workflows call the same class-based API
9
- used by Python callers and write reproducible, structured output directories.
8
+ CLI workflows use the same public Python API as direct Python calls and write
9
+ reproducible, structured output directories.
10
10
 
11
11
  Commands:
12
12
  - analyze: Analyze one sequence or a batch input file.
@@ -22,7 +22,7 @@ Functions:
22
22
  :Created: July 20, 2026
23
23
  :Updated: July 20, 2026
24
24
  :Author: Naveen Duhan
25
- :Version: 1.0.0
25
+ :Version: 1.0.1
26
26
  """
27
27
 
28
28
  from __future__ import annotations
@@ -49,7 +49,7 @@ from .visualization import PlotManager
49
49
 
50
50
 
51
51
  def build_parser() -> argparse.ArgumentParser:
52
- """Construct the top-level parser and all standalone subcommands."""
52
+ """Construct the top-level parser and its subcommands."""
53
53
 
54
54
  parser = argparse.ArgumentParser(
55
55
  prog="codonadaptpy",
@@ -62,7 +62,7 @@ def build_parser() -> argparse.ArgumentParser:
62
62
  _add_analysis_arguments(analyze)
63
63
  analyze.set_defaults(handler=_run_analyze)
64
64
 
65
- compare = subparsers.add_parser("compare", help="Compare sequences with multiple host references.")
65
+ compare = subparsers.add_parser("compare", help="Compare sequences against multiple host references.")
66
66
  _add_analysis_arguments(compare)
67
67
  compare.set_defaults(handler=_run_analyze)
68
68
 
@@ -13,7 +13,7 @@ Classes:
13
13
  :Created: July 20, 2026
14
14
  :Updated: July 20, 2026
15
15
  :Author: Naveen Duhan
16
- :Version: 1.0.0
16
+ :Version: 1.0.1
17
17
  """
18
18
 
19
19
  from __future__ import annotations
@@ -15,7 +15,7 @@ Exceptions:
15
15
  :Created: July 20, 2026
16
16
  :Updated: July 20, 2026
17
17
  :Author: Naveen Duhan
18
- :Version: 1.0.0
18
+ :Version: 1.0.1
19
19
  """
20
20
 
21
21
 
@@ -17,7 +17,7 @@ Classes:
17
17
  :Created: July 20, 2026
18
18
  :Updated: July 20, 2026
19
19
  :Author: Naveen Duhan
20
- :Version: 1.0.0
20
+ :Version: 1.0.1
21
21
  """
22
22
 
23
23
  from __future__ import annotations
@@ -8,7 +8,7 @@ pairs, host comparison, and evolutionary diagnostics.
8
8
  :Created: July 20, 2026
9
9
  :Updated: July 20, 2026
10
10
  :Author: Naveen Duhan
11
- :Version: 1.0.0
11
+ :Version: 1.0.1
12
12
  """
13
13
 
14
14
  from .adaptation import AdaptationMetrics
@@ -12,7 +12,7 @@ Classes:
12
12
  :Created: July 20, 2026
13
13
  :Updated: July 20, 2026
14
14
  :Author: Naveen Duhan
15
- :Version: 1.0.0
15
+ :Version: 1.0.1
16
16
  """
17
17
 
18
18
  from __future__ import annotations
@@ -12,7 +12,7 @@ Classes:
12
12
  :Created: July 20, 2026
13
13
  :Updated: July 20, 2026
14
14
  :Author: Naveen Duhan
15
- :Version: 1.0.0
15
+ :Version: 1.0.1
16
16
  """
17
17
 
18
18
  from __future__ import annotations
@@ -11,7 +11,7 @@ Classes:
11
11
  :Created: July 20, 2026
12
12
  :Updated: July 20, 2026
13
13
  :Author: Naveen Duhan
14
- :Version: 1.0.0
14
+ :Version: 1.0.1
15
15
  """
16
16
 
17
17
  from __future__ import annotations
@@ -12,7 +12,7 @@ Classes:
12
12
  :Created: July 20, 2026
13
13
  :Updated: July 20, 2026
14
14
  :Author: Naveen Duhan
15
- :Version: 1.0.0
15
+ :Version: 1.0.1
16
16
  """
17
17
 
18
18
  from __future__ import annotations
@@ -64,7 +64,7 @@ class HostComparator:
64
64
  self.adaptation = AdaptationMetrics(self.genetic_code)
65
65
 
66
66
  def compare(self, codons: list[str], reference: Mapping[str, float]) -> dict[str, float]:
67
- """Calculate a complete host-comparison result for one reference."""
67
+ """Calculate a structured host-comparison result for one reference."""
68
68
 
69
69
  keys = sorted(codon for codon, aa in self.genetic_code.forward_table.items() if aa != "*")
70
70
  query_frequency = self.usage.frequencies(codons)
@@ -11,7 +11,7 @@ Classes:
11
11
  :Created: July 20, 2026
12
12
  :Updated: July 20, 2026
13
13
  :Author: Naveen Duhan
14
- :Version: 1.0.0
14
+ :Version: 1.0.1
15
15
  """
16
16
 
17
17
  from __future__ import annotations
@@ -12,7 +12,7 @@ Classes:
12
12
  :Created: July 20, 2026
13
13
  :Updated: July 20, 2026
14
14
  :Author: Naveen Duhan
15
- :Version: 1.0.0
15
+ :Version: 1.0.1
16
16
  """
17
17
 
18
18
  from __future__ import annotations
@@ -32,7 +32,7 @@ class CodonUsageMetrics:
32
32
  self.genetic_code = genetic_code or GeneticCode.from_ncbi(1)
33
33
 
34
34
  def counts(self, codons: Iterable[str], *, include_stops: bool = False) -> dict[str, int]:
35
- """Count unambiguous recognized codons and return a complete 64-codon map."""
35
+ """Count unambiguous recognized codons and return a 64-codon map."""
36
36
 
37
37
  observed = Counter(codon.upper().replace("U", "T") for codon in codons)
38
38
  return {
codonadaptpy/models.py CHANGED
@@ -11,12 +11,12 @@ Classes:
11
11
  - ValidationConfig: User-selected validation policy.
12
12
  - ValidationIssue: One structured validation observation.
13
13
  - ValidationReport: Validation outcome and normalized sequence.
14
- - AnalysisResult: Complete metrics for a single sequence.
14
+ - AnalysisResult: Metrics and metadata for a single sequence.
15
15
 
16
16
  :Created: July 20, 2026
17
17
  :Updated: July 20, 2026
18
18
  :Author: Naveen Duhan
19
- :Version: 1.0.0
19
+ :Version: 1.0.1
20
20
  """
21
21
 
22
22
  from __future__ import annotations
codonadaptpy/optimizer.py CHANGED
@@ -16,7 +16,7 @@ Classes:
16
16
  :Created: July 20, 2026
17
17
  :Updated: July 20, 2026
18
18
  :Author: Naveen Duhan
19
- :Version: 1.0.0
19
+ :Version: 1.0.1
20
20
  """
21
21
 
22
22
  from __future__ import annotations
codonadaptpy/parsers.py CHANGED
@@ -18,7 +18,7 @@ Classes:
18
18
  :Created: July 20, 2026
19
19
  :Updated: July 20, 2026
20
20
  :Author: Naveen Duhan
21
- :Version: 1.0.0
21
+ :Version: 1.0.1
22
22
  """
23
23
 
24
24
  from __future__ import annotations
@@ -17,7 +17,7 @@ Classes:
17
17
  :Created: July 20, 2026
18
18
  :Updated: July 20, 2026
19
19
  :Author: Naveen Duhan
20
- :Version: 1.0.0
20
+ :Version: 1.0.1
21
21
  """
22
22
 
23
23
  from __future__ import annotations
@@ -1,7 +1,7 @@
1
1
  """
2
2
  CodonAdaptPy Phylogenetic and Temporal Analysis
3
3
 
4
- This module provides class-based wrappers for reproducible nucleotide or
4
+ This module provides reusable interfaces for reproducible nucleotide or
5
5
  protein phylogenetics and lightweight temporal exploration. External programs
6
6
  are invoked with argument lists rather than shell strings, their commands and
7
7
  outputs are retained, and failures include captured diagnostic text.
@@ -23,7 +23,7 @@ Classes:
23
23
  :Created: July 20, 2026
24
24
  :Updated: July 20, 2026
25
25
  :Author: Naveen Duhan
26
- :Version: 1.0.0
26
+ :Version: 1.0.1
27
27
  """
28
28
 
29
29
  from __future__ import annotations
@@ -14,7 +14,7 @@ Classes:
14
14
  :Created: July 20, 2026
15
15
  :Updated: July 20, 2026
16
16
  :Author: Naveen Duhan
17
- :Version: 1.0.0
17
+ :Version: 1.0.1
18
18
  """
19
19
 
20
20
  from __future__ import annotations
codonadaptpy/reporting.py CHANGED
@@ -12,7 +12,7 @@ Classes:
12
12
  :Created: July 20, 2026
13
13
  :Updated: July 20, 2026
14
14
  :Author: Naveen Duhan
15
- :Version: 1.0.0
15
+ :Version: 1.0.1
16
16
  """
17
17
 
18
18
  from __future__ import annotations
@@ -33,7 +33,7 @@ class ReportGenerator:
33
33
  """Export package results to machine-readable and publication-friendly files."""
34
34
 
35
35
  def write_json(self, results: list[AnalysisResult], path: str | Path) -> Path:
36
- """Write complete nested analysis results as indented JSON."""
36
+ """Write nested analysis results as indented JSON."""
37
37
 
38
38
  destination = Path(path)
39
39
  destination.write_text(
@@ -18,7 +18,7 @@ Classes:
18
18
  :Created: July 20, 2026
19
19
  :Updated: July 20, 2026
20
20
  :Author: Naveen Duhan
21
- :Version: 1.0.0
21
+ :Version: 1.0.1
22
22
  """
23
23
 
24
24
  from __future__ import annotations
@@ -166,4 +166,3 @@ class SequenceValidator:
166
166
  if raise_on_error and not report.is_valid:
167
167
  raise SequenceValidationError("; ".join(issue.message for issue in report.errors))
168
168
  return report
169
-
@@ -13,7 +13,7 @@ Classes:
13
13
  :Created: July 20, 2026
14
14
  :Updated: July 20, 2026
15
15
  :Author: Naveen Duhan
16
- :Version: 1.0.0
16
+ :Version: 1.0.1
17
17
  """
18
18
 
19
19
  from __future__ import annotations
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: CodonAdaptPy
3
- Version: 1.0.0
4
- Summary: Integrated codon-usage, host-adaptation, evolutionary analysis, and sequence optimization
3
+ Version: 1.0.1
4
+ Summary: Codon usage, host adaptation, evolutionary analysis, phylogenetics, and sequence design
5
5
  Author: Naveen Duhan
6
6
  License-Expression: GPL-3.0-or-later
7
7
  Project-URL: Homepage, https://github.com/navduhan/CodonAdaptPy
@@ -71,8 +71,9 @@ Dynamic: license-file
71
71
 
72
72
  [![CI](https://github.com/navduhan/CodonAdaptPy/actions/workflows/ci.yml/badge.svg)](https://github.com/navduhan/CodonAdaptPy/actions/workflows/ci.yml)
73
73
  [![Documentation Status](https://readthedocs.org/projects/codonadaptpy/badge/?version=latest)](https://codonadaptpy.readthedocs.io/en/latest/?badge=latest)
74
+ [![PyPI version](https://img.shields.io/pypi/v/CodonAdaptPy.svg)](https://pypi.org/project/CodonAdaptPy/)
74
75
 
75
- CodonAdaptPy 1.0.0 is a standalone, class-based Python package for coding-sequence validation, codon-usage analysis, multi-host comparison, evolutionary diagnostics, reproducible reporting, and constrained codon optimization or deoptimization.
76
+ CodonAdaptPy 1.0.1 is a Python package for coding-sequence validation, codon-usage analysis, multi-host comparison, evolutionary diagnostics, reproducible reporting, and constrained codon optimization or deoptimization.
76
77
 
77
78
  ![CodonAdaptPy workflow from validated coding sequences through modular codon analysis to auditable molecular-evolution evidence](docs/assets/codonadaptpy_graphical_abstract.png)
78
79
 
@@ -99,17 +100,17 @@ Codon-usage similarity is descriptive. It is not direct proof of increased expre
99
100
  Install the dependency-free core and CLI:
100
101
 
101
102
  ```bash
102
- python -m pip install .
103
+ python -m pip install CodonAdaptPy
103
104
  ```
104
105
 
105
- Install every standalone analysis, input, plot, and reporting feature:
106
+ Install all optional analysis, input, plotting, and reporting dependencies:
106
107
 
107
108
  ```bash
108
- python -m pip install ".[all]"
109
+ python -m pip install "CodonAdaptPy[all]"
109
110
  ```
110
111
 
111
- Phylogenetic workflows additionally require command-line programs. The
112
- recommended complete environment installs them explicitly:
112
+ Phylogenetic workflows also require external command-line programs. The
113
+ supplied Conda environment installs them together with CodonAdaptPy:
113
114
 
114
115
  ```bash
115
116
  conda env create -f environment.yml
@@ -120,11 +121,11 @@ For an existing environment such as `ngs`:
120
121
 
121
122
  ```bash
122
123
  conda install -n ngs -c bioconda -c conda-forge mafft trimal iqtree fasttree ete3
123
- python -m pip install ".[phylo]"
124
+ python -m pip install "CodonAdaptPy[phylo]"
124
125
  ```
125
126
 
126
- CodonAdaptPy reports a missing executable instead of silently substituting a
127
- different method. Publication mode requires trimAL unless `--no-trim` is
127
+ CodonAdaptPy reports a missing executable instead of silently substituting an
128
+ alternative method. Publication mode requires trimAL unless `--no-trim` is
128
129
  explicitly selected.
129
130
 
130
131
  For development:
@@ -147,7 +148,7 @@ codonadaptpy analyze coding_sequences.fasta \
147
148
  --output results
148
149
  ```
149
150
 
150
- Compare the same sequences with multiple hosts:
151
+ Compare the same sequences against multiple host reference profiles:
151
152
 
152
153
  ```bash
153
154
  codonadaptpy compare coding_sequences.fasta \
@@ -178,7 +179,7 @@ ATG...TAA
178
179
  ATG...TAA
179
180
  ```
180
181
 
181
- For a FASTA plus a separate metadata file, pass `--metadata metadata.csv`. During genome-wide aggregation every CDS is validated independently, its reading frame starts again at position zero, its terminal stop is removed, and no nucleotide or codon pair is counted across gene boundaries.
182
+ For a FASTA plus a separate metadata file, pass `--metadata metadata.csv`. During genome-wide aggregation, every CDS is validated independently, its reading frame restarts at position zero, its terminal stop is removed, and no nucleotide word or codon pair is counted across gene boundaries.
182
183
 
183
184
  Build a versioned reference profile from highly expressed coding sequences:
184
185
 
@@ -222,8 +223,8 @@ codonadaptpy phylogeny f_gene_sequences.fasta \
222
223
  ```
223
224
 
224
225
  This produces ML and time-tree figures, a root-to-tip regression, dated Newick,
225
- lineage-through-time output, and JSON provenance. The deterministic time tree
226
- and LTT curve are rapid deterministic diagnostics—not relaxed-clock posterior
226
+ lineage-through-time output, and JSON provenance. The time tree and LTT curve
227
+ are rapid, deterministic diagnostics—not relaxed-clock posterior
227
228
  dating, effective population-size inference, or 95% HPD intervals.
228
229
 
229
230
  ## Python API
@@ -249,7 +250,7 @@ print(result.metrics["enc"])
249
250
  print(result.metrics["gc3"])
250
251
  ```
251
252
 
252
- Create a publication-ready figure through the package:
253
+ Create a publication-ready figure with CodonAdaptPy:
253
254
 
254
255
  ```python
255
256
  from codonadaptpy import PublicationPlotManager
@@ -264,7 +265,7 @@ plots.save(figure, "f_gene_diagnostics.pdf")
264
265
  plots.save(figure, "f_gene_diagnostics.png", dpi=600)
265
266
  ```
266
267
 
267
- Run phylogenetics through the class-based API:
268
+ Run phylogenetics through the Python API:
268
269
 
269
270
  ```python
270
271
  from codonadaptpy import ETE3TreePlotter, PhylogeneticAnalyzer, TemporalAnalyzer
@@ -300,7 +301,7 @@ JSON profiles preserve provenance and versioning:
300
301
  }
301
302
  ```
302
303
 
303
- Missing sense codons are completed with zero counts during validation. CSV/TSV profiles use `codon,count` or `codon,frequency` columns. The only bundled profile is `uniform_standard`, an explicitly non-biological testing baseline; real host tables must retain a documented source and release.
304
+ Missing sense codons are represented by zero counts during validation. CSV/TSV profiles use `codon,count` or `codon,frequency` columns. The only bundled profile is `uniform_standard`, an explicitly non-biological testing baseline; biological host profiles must retain a documented source and release.
304
305
 
305
306
  ## CAI edge-case policy
306
307
 
@@ -329,7 +330,7 @@ Every analysis captures CodonAdaptPy and Python versions, UTC analysis time, gen
329
330
  ```text
330
331
  src/codonadaptpy/
331
332
  ├── aggregation.py # Per-isolate gene and genome-wide CDS scopes
332
- ├── analyzer.py # Main class-based API
333
+ ├── analyzer.py # Main analysis API
333
334
  ├── comparative.py # Group and multivariate analysis
334
335
  ├── genetic_code.py # Translation tables and codon families
335
336
  ├── metrics/ # Adaptation, usage, composition, pair, host, evolution
@@ -342,5 +343,5 @@ src/codonadaptpy/
342
343
  ├── reporting.py # JSON/CSV/Excel/HTML/PDF/FASTA output
343
344
  ├── validation.py # Coding-sequence quality control
344
345
  ├── visualization.py # Interactive and static plots
345
- └── cli.py # Standalone subcommands
346
+ └── cli.py # Command-line subcommands
346
347
  ```
@@ -0,0 +1,32 @@
1
+ codonadaptpy/__init__.py,sha256=8fxZkJg29VWN-vjLrbu5tUbfx-JixOt2o_cPRqfLpuY,2256
2
+ codonadaptpy/__main__.py,sha256=uy-5SolGVfIG888vEjFk8XsHCjXCxu44KbhIEMkDIRY,387
3
+ codonadaptpy/__version__.py,sha256=OqShTPxZSIGVi6gNd0AjwFDTDLQFtaZZ8x8JWIkPISE,597
4
+ codonadaptpy/aggregation.py,sha256=LFzuMNUIykot2Ebs0K9UPF81ytRc8VLTzprW6ICMHVY,3734
5
+ codonadaptpy/analyzer.py,sha256=DtXmsF8bq-6lCJ9EWKK2I778hbUijx-vyZ5a3TKrJaA,12197
6
+ codonadaptpy/cli.py,sha256=NNmXkatS6EQjRp6kmkvdgfPHMncnMG3KMYV0O7Q0tA0,19532
7
+ codonadaptpy/comparative.py,sha256=cvT6A1uzRvLCufafIRh1JTrk7zqrFxAvnt8bRJnORFI,25160
8
+ codonadaptpy/exceptions.py,sha256=-t0n7na_8LvDAlN69w6rCbb5YzHW1mL8k-JrNoBSrZQ,1407
9
+ codonadaptpy/genetic_code.py,sha256=M22CJPqwysBFIKqnVCjB8JJzE1XG3E_gBJqRFcx6D1I,3898
10
+ codonadaptpy/models.py,sha256=-McJC8aSHP1EWTC_Uv4kfJcWvnYeKw0c3UIXr0ykvWM,4068
11
+ codonadaptpy/optimizer.py,sha256=Eg6z7Yx5YsugcOB-ZwVVeY6-jfo32AxXKQGvy5E-TJA,8651
12
+ codonadaptpy/parsers.py,sha256=tUTbSU5ZVTI-sa14KIBjjPiTTR0KnrpMhD6Ag9OUD80,10346
13
+ codonadaptpy/phylo_visualization.py,sha256=suRxO95atpOMB3LnskI3a1x-Zk_ge-r2G7kMH4EkNsg,13982
14
+ codonadaptpy/phylogenetics.py,sha256=LUn0smHfjfaX9rxqIlE4qLBMX9gwIJYUdtByy1HJ_WQ,25353
15
+ codonadaptpy/py.typed,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
16
+ codonadaptpy/references.py,sha256=u4Y6irSzzRE0kOPuUJD7DrPGIgQmUfWrMf_SbFSYtt8,6751
17
+ codonadaptpy/reporting.py,sha256=bd5F64GhIkTK3mkkwwLVOCvTVOSKmTVG9qpbuhul4I8,7493
18
+ codonadaptpy/validation.py,sha256=sArpX4terUcJstOVM61ydWCgpej_3YUZr2x8HardgPU,6948
19
+ codonadaptpy/visualization.py,sha256=p1cIc-lLr5nG2W6vS2USflSSYuThF9K7b85OLKY5OP8,45906
20
+ codonadaptpy/metrics/__init__.py,sha256=CANoJghz7vGj8FBTHafk4ZcLnf_vvT4DA1cUCPUMCck,732
21
+ codonadaptpy/metrics/adaptation.py,sha256=xE9tgrurI4---yXxdCoR0x55NFJcSlV4LNSs4jwEgqY,5706
22
+ codonadaptpy/metrics/composition.py,sha256=ASJWyyh2SEjP1Rg-e1X5_vH27jzDZenwKU5LkjjkZvg,6994
23
+ codonadaptpy/metrics/evolutionary.py,sha256=vJkbI-rOg1Op6HC9Zly1VTe1-evG3hnqyJ2KOVe7HSE,2309
24
+ codonadaptpy/metrics/host.py,sha256=Z4xJZhalFTsOVdaLCNhO_B_bvvNX_RovL0u_Z4uCN1A,6249
25
+ codonadaptpy/metrics/pairs.py,sha256=u7BxP7e9GpKNYZgfApKQPO77MZ6Sukjs8fqrjYw1JXk,4135
26
+ codonadaptpy/metrics/usage.py,sha256=i-acA6LiFG78gGetNdHE2JSOAOXZkCLEaBQe-YTR2Gk,6840
27
+ codonadaptpy-1.0.1.dist-info/licenses/LICENSE,sha256=Y8C8KvP2FqJGR7H8PH8UxtOr7NiQ0lpcsgLFat1Qbpc,556
28
+ codonadaptpy-1.0.1.dist-info/METADATA,sha256=pyjceJSox2qU0CrQ6HCAIiBgg1jpA7phKm9kHqIjySs,14034
29
+ codonadaptpy-1.0.1.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91
30
+ codonadaptpy-1.0.1.dist-info/entry_points.txt,sha256=iaV2pRT3vmG4fYivmXzRNuu7rPnbArJYLFszpsL5eNM,55
31
+ codonadaptpy-1.0.1.dist-info/top_level.txt,sha256=5r4PMFuAP2s36i6CK64nPkt9ZH51eXprsvPdI-v7ayQ,13
32
+ codonadaptpy-1.0.1.dist-info/RECORD,,
@@ -1,32 +0,0 @@
1
- codonadaptpy/__init__.py,sha256=FLPd1aGwQjXdiuw6eoesyT78vq77RhQQLwW6AYe5EI4,2276
2
- codonadaptpy/__main__.py,sha256=H5y_OyzehFZpFESJOZ1R0W-hpEca-i05eKbE3ZvH6nU,387
3
- codonadaptpy/__version__.py,sha256=iV4XEcym0Bm9zIBm3rmmhXXmjsWzeznXgsyq810nHuA,597
4
- codonadaptpy/aggregation.py,sha256=NQtY6S9zAupX75R7kK8eGDdtZCNT6KxY9ddm3_N9C7k,3740
5
- codonadaptpy/analyzer.py,sha256=tbWd802TdyGZ3xd3qU071SuO7Ly9EmKOMG23dRYh5nk,12207
6
- codonadaptpy/cli.py,sha256=DSe0M7fuDeNjqaN7SkZBftcB4R-dzgBib7mxW8W3-a0,19554
7
- codonadaptpy/comparative.py,sha256=EXAA_Gb_8lsRdBVuuTNjLSo6_c0bCUUd8tMJLu47nuY,25160
8
- codonadaptpy/exceptions.py,sha256=rdWmDnoDxLFFc_YcOJhHUZzkgXYbzLzGpNxQ_ivtYsY,1407
9
- codonadaptpy/genetic_code.py,sha256=bB8TQ8FSCSB6PgP-MK-NuHzGdxwOFQ6C6NULjka471I,3898
10
- codonadaptpy/models.py,sha256=i_rf6pKVa9ylZUCNQKiktUyjeoa16dkZl-TBhoN5qRE,4064
11
- codonadaptpy/optimizer.py,sha256=5qJWtIZzP81nS5t_0Hap6xGF-YEydKDpoT2HbhhyN5U,8651
12
- codonadaptpy/parsers.py,sha256=bEqsGJmmAV-3pwDpm8xmy6UVtD38AJWDT_XIKbMmjJA,10346
13
- codonadaptpy/phylo_visualization.py,sha256=qTEOZXQ1w8pN-vigRQN8b-d9hwp56Vo3jFrUEKacO5I,13982
14
- codonadaptpy/phylogenetics.py,sha256=n9LI84WIW3_ITQgmbQGPCS4VrW-Dp01kWvwZyKYmILM,25354
15
- codonadaptpy/py.typed,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
16
- codonadaptpy/references.py,sha256=p-c_nXtcDBJ0hdgeq89yIfyS4p_lwk4Vx_GY-S3Sqao,6751
17
- codonadaptpy/reporting.py,sha256=GCk0ES8e2DbBnvr90TD8tQgFbic96aynnvtOQ7w5gCY,7502
18
- codonadaptpy/validation.py,sha256=453n-n3uh91_YcnYtQXsKE6pH-Jy4uicgBX-7AchGaE,6949
19
- codonadaptpy/visualization.py,sha256=iOtiFIzmxX0LOufcyblec1YgbWueLongUw-z0T9yO4c,45906
20
- codonadaptpy/metrics/__init__.py,sha256=6RYHb0kYxujOHbikZFKXPSwu9nsWHUq6r4NixKT9YjU,732
21
- codonadaptpy/metrics/adaptation.py,sha256=lMNwSOLiaP4t6QZb6l7KSNIC63PYq1Nhe6P3ZKdQ59k,5706
22
- codonadaptpy/metrics/composition.py,sha256=qYZsJPr1q37smxhrj9ER-G7Ms-fULuTW_NkDsa2v834,6994
23
- codonadaptpy/metrics/evolutionary.py,sha256=01s8uby85qIPXr7ra7VqbwYHbFxcQD6VS2jVn61Bxuo,2309
24
- codonadaptpy/metrics/host.py,sha256=9FV4rZVRNAmu9LPyYi3pG-0V0WkbwHySF4X5dd04x4M,6247
25
- codonadaptpy/metrics/pairs.py,sha256=5pWHNHjocZL5hbIE5J9MtB6uKUz4furEcVlBaG-xy9E,4135
26
- codonadaptpy/metrics/usage.py,sha256=2TpXW9q724drTCNVrdDGuc0Z4JrLechv8OyxfQnJLic,6849
27
- codonadaptpy-1.0.0.dist-info/licenses/LICENSE,sha256=Y8C8KvP2FqJGR7H8PH8UxtOr7NiQ0lpcsgLFat1Qbpc,556
28
- codonadaptpy-1.0.0.dist-info/METADATA,sha256=o_Z6M2jeWvTeAo7R7BBuCAFekaLYZGef2a3R7qAIzxQ,13892
29
- codonadaptpy-1.0.0.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91
30
- codonadaptpy-1.0.0.dist-info/entry_points.txt,sha256=iaV2pRT3vmG4fYivmXzRNuu7rPnbArJYLFszpsL5eNM,55
31
- codonadaptpy-1.0.0.dist-info/top_level.txt,sha256=5r4PMFuAP2s36i6CK64nPkt9ZH51eXprsvPdI-v7ayQ,13
32
- codonadaptpy-1.0.0.dist-info/RECORD,,