You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Question about filtering external CDSs supplied with -c #83
Related to #38, I have two questions about the current handling of -c inputs.
Is -c perhaps too strong?
My understanding is that CDSs supplied through -c are treated as priority/trusted evidence and can bypass filtering that is applied to ordinary protein-derived CDS candidates. Would it make sense to optionally apply the same filtering to -c inputs?
If the reason for treating -c separately is that ordinary protein candidates have miniprot-specific metadata such as identity / similarity, would it be worth testing whether those features are actually necessary for the downstream filtering?
If removing identity / similarity has little effect on the final annotation accuracy, external CDS GFFs could potentially go through the same downstream filtering path without requiring unavailable alignment metadata.
If you agree, I can run this ablation experiment. If this has already been tested, please let me know.
Identity and similarity for external CDSs is by default 100%, as they match the genome exactly. Ordinary proteins from related species do not, there are differences in the translated sequence. I do not have any way to validate external CDSs except for matching them with transcripts. That is why the CDSs supplied with -c must be of high quality.
Thanks, that makes sense. I think it would still be useful to have an option for external CDSs that are not necessarily trusted.
Looking at the current main code, _EXTERNAL seems to bypass filtering for unmatched CDSs at two stages:
In eviann.sh L769, _EXTERNAL bypasses the splice-site Markov/WAM threshold.
The second bypass makes sense to me given your explanation, since identity / similarity are not meaningful for an external CDS.
But the first bypass seems independent of the missing protein-alignment metadata, since the splice-site Markov/WAM scores can still be computed for an external CDS.
Would it make sense to add an option for less-trusted external CDSs where this first bypass is disabled, while keeping the current -c behavior for genuinely high-confidence CDSs?
flowchart TD
A["Unmatched protein/CDS candidates"]
A --> B["Compute splice-site Markov/WAM scores"]
B --> C{"_EXTERNAL?"}
C -- Yes --> E["Downstream processing"]
C -- No --> D{"Splice scores pass?"}
D -- No --> X["Reject"]
D -- Yes --> E
E --> F{"_EXTERNAL?"}
F -- Yes --> H["Remove redundant intron-chain models"]
F -- No --> G{"Pass normal unmatched-protein filtering?<br/>readthrough / ORF validity<br/>identity / similarity<br/>protein support + locus ranking"}
G -- No --> X
G -- Yes --> H
H --> I["Final set"]
Activity
alekseyzimin commentedon Sep 10, 2026
Identity and similarity for external CDSs is by default 100%, as they match the genome exactly. Ordinary proteins from related species do not, there are differences in the translated sequence. I do not have any way to validate external CDSs except for matching them with transcripts. That is why the CDSs supplied with -c must be of high quality.
hibiki-kato commentedon Sep 10, 2026
Thanks, that makes sense. I think it would still be useful to have an option for external CDSs that are not necessarily trusted.
Looking at the current
maincode,_EXTERNALseems to bypass filtering for unmatched CDSs at two stages:eviann.shL769,_EXTERNALbypasses the splice-site Markov/WAM threshold.filter_unused_proteins.plL136 andfilter_unused_proteins.plL156, and are explicitly retained atfilter_unused_proteins.plL175.The second bypass makes sense to me given your explanation, since
identity/similarityare not meaningful for an external CDS.But the first bypass seems independent of the missing protein-alignment metadata, since the splice-site Markov/WAM scores can still be computed for an external CDS.
Would it make sense to add an option for less-trusted external CDSs where this first bypass is disabled, while keeping the current
-cbehavior for genuinely high-confidence CDSs?flowchart TD A["Unmatched protein/CDS candidates"] A --> B["Compute splice-site Markov/WAM scores"] B --> C{"_EXTERNAL?"} C -- Yes --> E["Downstream processing"] C -- No --> D{"Splice scores pass?"} D -- No --> X["Reject"] D -- Yes --> E E --> F{"_EXTERNAL?"} F -- Yes --> H["Remove redundant intron-chain models"] F -- No --> G{"Pass normal unmatched-protein filtering?<br/>readthrough / ORF validity<br/>identity / similarity<br/>protein support + locus ranking"} G -- No --> X G -- Yes --> H H --> I["Final set"]