Skip to content

Feature request: PharmCAT accepts no-call result from outside call file #204

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
holtjma opened this issue Dec 13, 2024 · 0 comments
Open

Comments

@holtjma
Copy link

holtjma commented Dec 13, 2024

  • Do you want to request a feature or report a bug?

Request a feature

  • What is the current behavior?

I am unaware of an option that can be specified in the outside call file that indicates a no-call, for whatever underlying reason. I checked the docs and skimmed the source code, but was unable to find one. If this already exists, I would appreciate some direction and recommend a documentation update to make this more obvious.

Currently, the tool seems to throw an exception similar to the following:

org.pharmgkb.pharmcat.reporter.BadOutsideCallException: Invalid HLA-B allele: 'NO_READS'.
	at org.pharmgkb.pharmcat.phenotype.model.OutsideCall.lambda$new$2(OutsideCall.java:123)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
	at java.base/java.util.AbstractList$RandomAccessSpliterator.forEachRemaining(AbstractList.java:720)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:575)
	at java.base/java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:260)
	at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:616)
	at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:622)
	at java.base/java.util.stream.ReferencePipeline.toList(ReferencePipeline.java:627)
	at org.pharmgkb.pharmcat.phenotype.model.OutsideCall.<init>(OutsideCall.java:143)
	at org.pharmgkb.pharmcat.phenotype.OutsideCallParser.parse(OutsideCallParser.java:56)
	at org.pharmgkb.pharmcat.Pipeline.call(Pipeline.java:289)
	at org.pharmgkb.pharmcat.PharmCAT.main(PharmCAT.java:174)
  • If the current behavior is a bug, please provide the steps to reproduce and, if possible, your example input data via a Gist or similar.
    N/A

  • What is the expected behavior?
    Ideally, I could specify something like this:

DPYD    ./.

In this situation, PharmCAT would accept the call as a no-call for DPYD, regardless of what its own internal calculation might say. I understand from other issues that you do not want to blanket bypass any unparseable diplotype, so I'm instead requesting a specific sentinel that can intentionally placed in the file for this use case.

  • What is the motivation / use case for changing the behavior?

We are providing external diplotype calls to PharmCAT, and would like to specify when failures occur in the external tool. However, if we leave the call blank, PharmCAT may attempt to call the gene itself. Typically, this is not a major issue because I would expect PharmCAT to also fail in most instances. However, there are situations where PharmCAT will instead report something else that is incorrect, leading to an incorrect final report as well.

  • Please tell us about your environment:

    • PharmCAT Version: 2.15.2
    • JDK Version: [ JDK8 | OpenJDK | etc ]
    • Environment: Docker
  • Other information (e.g. detailed explanation, stacktraces, related issues, suggestions how to fix, links for us to have context, e.g. stackoverflow, gitter, etc.)

Happy to provide any further details,
Matt

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant