Exacto start_to_stop peptides from models of unknown 5' completeness are compared with the full reference
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 87
- Forks
- 28
- Avg merge
- 3h 27m
- Merged PRs (30d)
- 27
Description
Related to #462 / #465, which fixed the explicitly partial labels.
varcode/exacto.py::_primary_protein labels a peptide start_to_stop when its first observed codon is ATG and its last is a stop. The model itself carries sequence_status="observed_model_completeness_unknown". The label therefore describes the ORF within the observed sequence, not whether the observed transcript reaches the real 5′ end.
After #465, start_to_stop still gets the whole-protein comparison. Suppose an observed model is 5′-truncated inside the reference CDS, and Exacto's peptide begins at an internal, in-frame Met and runs to the reference stop. Its protein is a suffix of the reference, so modifies_protein_sequence is True and it survives drop_silent_and_noncoding(keep_unresolved=False). That is the #462 symptom (missing coverage read as a truncation) reached through a different label.
The mechanism is confirmed from the code. I haven't checked how often real Exacto output starts a peptide at an internal Met of a truncated model.
Questions to settle before changing behavior:
- Does Exacto choose the first ATG, or can it report whether the ORF start is supported by the observed transcript's 5′ end?
- Should Varcode treat
start_to_stop+observed_model_completeness_unknownas partial whenever the peptide is a suffix of the reference protein? Or should it require an explicit completeness signal? The goal is to avoid demoting genuine fusion proteins, whose 5′-partner N-terminus differs from the 3′ reference.
Docs (rna_structures.md) already warn that a start-to-stop ORF does not establish a full-length transcript, but the change flags don't reflect that yet.
Found in code review of #465.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with varcode/exacto.py::_primary_protein and compare the behavior described in #462 and #465. Read rna_structures.md, then determine whether Exacto exposes 5′ completeness or whether suffix matching should resolve unknown completeness, while avoiding genuine fusion proteins. Done means the behavior and change flags reflect the settled rule.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- bioinformatics
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100