v2: Update parameter table validation for PEtab 2.0 erratum E1 (infinite bounds)
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 55/100
Piste de recherche
Start with petab/v2/core.py and petab/v2/lint.py, especially the parameter bound validators, Problem.get_priors, Problem.get_startpoint_distributions, and CheckPriorDistribution. Read the existing time bound validators and related tests first. Add coverage for allowed and rejected infinite bounds, MAP prior validation, start point sampling, and one-sided prior truncation; done means these cases behave as specified, with an informative error or fallback for unsampleable start points.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
PEtab 2.0.0 erratum E1 (PEtab-dev/PEtab#682, PEtab-dev/PEtab#684, errata page) made the following changes:
lowerBoundmay be-infandupperBoundmay beinf.infas a lower bound and-infas an upper bound are invalid.- If priors are specified for any parameter, every estimated parameter with an infinite bound must have an explicit proper prior. The default
uniform(lowerBound, upperBound)would be improper.
The current state of petab.v2:
Parameter.lb/ubare plainfloats without a finiteness check (core.py#L1048-L1055).lb == ub == infpasses validation, becauseParameter._validateonly checkslb > ub(core.py#L1136). The existing_is_finite_or_neg_inf/_is_finite_or_pos_infvalidators fortimecould be reused here.- There is no check that parameters with infinite bounds have an explicit prior when the problem has a MAP objective.
Problem.get_priorscreatesUniform(p.lb, p.ub)for parameters without a prior, which may be infinite (core.py#L2083). Problem.get_startpoint_distributionscreates the same default uniform distribution, also for maximum likelihood problems (core.py#L2101). Start points can't be sampled for parameters with infinite bounds and no prior. This should raise an informative error, or the caller should be able to provide a fallback distribution.
To do:
- Restrict
lbto finite or-infandubto finite orinf. - Add a validation task: if
has_map_objective, every estimated parameter with an infinite bound needs an explicitpriorDistribution. Whether the specified prior is proper, e.g.uniformwith infinitepriorParameters, is still open in the spec. This could be checked together with the existing TODO inCheckPriorDistribution(lint.py#L819). - Handle infinite bounds in start point sampling.
- Test that prior truncation works with one-sided infinite bounds (e.g.,
log-normalwith bounds0/inf), i.e., that it is a no-op where the bounds match the prior's domain. - Nominal values: no change for now. Pending PEtab-dev/PEtab#685, which proposes allowing
inf/-inf. Currently, infinite nominal values are not rejected.
🤖 Generated with Claude Code
- Langage dominant
- Python
- Étoiles
- 18
- Forks
- 9
- Merge moyen
- 2 j 4 h
- PR mergées (30 j)
- 30
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de PEtab-dev/libpetab-python
-
`petab_files_1to2` keeps a stale model file when converting into a non-empty output directoryOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 73/100
PEtab-dev/libpetab-python#566 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
PEtab-dev/libpetab-python#549 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
PEtab-dev/libpetab-python#525 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 3/5 1-2 jours Accessibilité débutants 48/100
PEtab-dev/libpetab-python#555 ·
Les mainteneurs répondent en général sous 1 jour
-
`sympify_petab` returns `Integer` for Python/numpy integers, but `Float` for numeric stringsOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 50/100
PEtab-dev/libpetab-python#553 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de PEtab-dev/libpetab-python
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 67/100
pydot/pydot#601 · 4 commentaires ·
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
letsencrypt/cp-cps#361 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
-
CI: startup_failure because callers grant fewer permissions than ledger-app-workflows@v1 declaresPeut-être pris @maykonmichel l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
LedgerHQ/app-boilerplate-rust#227 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
linuxmint/mintupdate#1107 ·