Skip to content

Question about filtering external CDSs supplied with -c #83

Open

Description

@hibiki-kato

Related to #38, I have two questions about the current handling of -c inputs.

  1. 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?

  2. 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.

Activity

  1. alekseyzimin commented on Sep 10, 2026

    @alekseyzimin
    Owner

    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.

  2. hibiki-kato commented on Sep 10, 2026

    @hibiki-kato
    Author

    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:

    1. In eviann.sh L769, _EXTERNAL bypasses the splice-site Markov/WAM threshold.
    2. Later, external candidates are excluded from the normal protein-specific ranking in filter_unused_proteins.pl L136 and filter_unused_proteins.pl L156, and are explicitly retained at filter_unused_proteins.pl L175.

    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"]
    
    Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions