openvax / openvax/varcode

Exacto start_to_stop peptides from models of unknown 5' completeness are compared with the full reference

Open
#467 1 comment 0 reactions 0 assignees View on GitHub

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_unknown as 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.