FHIR Chat · STU2 Theme: Uncallable subregions in a region studied · genomics

Stream: genomics

Topic: STU2 Theme: Uncallable subregions in a region studied


view this post on Zulip Bob Dolin (Dec 10 2019 at 00:51):

Hi @Kevin Power, @Jamie Jones , there seemed to be some interest in this topic on the call today, so I thought I'd post something. We've been experimenting with a new component 'no call region', on the region-studied profile. With this component, in response to a query for variants in a given region, a server can provide a report that also enumerates non-callable subregions, potentially enabling one to differentiate non-callable vs. true negatives. The main use case we based this on was the need to include wildtype variant calls for PharmGKB's PharmCAT (https://github.com/PharmGKB/PharmCAT) software.

The example is a set of variants found for 1000 Genomes patient HG00403, that also include non-callable subregions. (It's based on a slightly outdated pre-publication version of the IG).

view this post on Zulip Bob Dolin (Dec 10 2019 at 00:52):

HG00403_NC_000001.10_1000000_1100000_includeNotCallableRegions.json.txt

view this post on Zulip Bob Dolin (Dec 10 2019 at 23:23):

(entered in Jira as https://jira.hl7.org/browse/FHIR-25296)

view this post on Zulip Jamie Jones (Dec 10 2019 at 23:26):

Linking out of JIRA is a bit funny, looks like it was entered at https://jira.hl7.org/browse/FHIR-25296, looks good, thanks!

view this post on Zulip Bob Dolin (Dec 10 2019 at 23:27):

thanks Jamie

view this post on Zulip Jamie Jones (Jan 03 2020 at 17:14):

Left a follow-up on the tracker, copying here in case anyone else wants to weigh in:

I love the idea and think this could be a great extension to the region-studied profile as a DiagnosticReport result.

To clarify, the proposal is to add an optional, repeatable component to RegionStudied with a new placeholder code. The value for the component would be a range, using the same coordinate system as the rest of the profile (from LOINC Answer List LL5323-2). Text for this requirement should be added to the element's definition.

To complete the proposal, we will need text for the new concept on http://hl7.org/fhir/uv/genomics-reporting/tbd-codes.html, including "Display", "Code", and "Definition".

An alternative proposal (that I am not making at this time) would be to represent this information on Variant itself, or in a separate related Observation profile that directly references Variants, as it is related to confirmation status.

view this post on Zulip Bob Dolin (Jan 03 2020 at 23:44):

Thanks Jamie. Here's a draft: Code='non-callable-region'; Display='non-callable-region'; Definition:

'A non-callable region is a subregion within an observation:region-studied profile that represents a range for which variants are unable to be called. Generally, a region is non-callable due to technical issues surrounding the test. Multiple non-callable regions may be contained within a region studied.

In many cases, a recipient of a FHIR Genomics report may only be interested in identified variants, in which case non-callable regions may not be of use. In some cases however, such as where there is a desire to infer the presence of a wild-type allele at a particular position, it can be useful to know that not only were no variants reported at a position, but also that the position was not deemed non-callable'.

view this post on Zulip Jamie Jones (Jan 04 2020 at 00:01):

Thanks for the proposal!

It seems you could pretty easily use this approach to approximate the contents of a gVCF file, which may be of interest to some of our research-focused members.

My only reservation with encouraging calculating wild types is that it implies all non-callable regions are represented here, so we may want to draw attention to that, particularly as multiple region-studied instances may be included with a single report and folks may arbitrarily split up region descriptions.

view this post on Zulip Jamie Jones (Jan 14 2020 at 20:59):

To extend this thought, it may be useful to have a "wildtype block" profile/guidance for Variant. Using the current profile, one could provide a block of contiguous wild type calls with respect to a given reference sequence in a single Observation. You only need to populate the reference sequence, start, end, and set dna-chg-type=SO:0002073/no_sequence_alteration ("WildType"). Mirroring gVCF, you could use using the minimum allelic-read-depth value within the range along with Observation.method to provide more information.

view this post on Zulip Bret H (Mar 31 2020 at 13:34):

Looks promising.

view this post on Zulip Jamie Jones (Aug 24 2020 at 16:08):

A bit of pushback today on call to nail this down to a component. Need more homework to identify and describe use cases for sending callability of specific regions in reports. Modeling this as an extension instead was brought up as the expected stakeholders may be low.

view this post on Zulip Bob Dolin (Aug 25 2020 at 02:23):

@Jamie Jones At some point, once we resolve how we want to do this, I'd like to propose adding this component/extension into the $find-subject-variant operation. Here is an example use case:

view this post on Zulip Bob Dolin (Aug 25 2020 at 02:24):

Imagine these scenarios, where the top blue line is the region you are querying, the middle purple line is the region studied, and the bottom pink lines are uncallable regions:

view this post on Zulip Bob Dolin (Aug 25 2020 at 02:24):

image.png

view this post on Zulip Bob Dolin (Aug 25 2020 at 02:25):

My use case is that I want to know the genotype for SNPs 1-5

view this post on Zulip Bob Dolin (Aug 25 2020 at 02:27):

If we have an explicit uncallable region (either as a component or extension), I can differentiate, in each of the above cases, whether or not I can infer wildtype (reference base) in the absence of variant call at SNP 1-5

view this post on Zulip Liz Amos (Aug 25 2020 at 13:48):

@Bob Dolin I apologize for my ignorance... what is the difference between what we're trying to flesh out with "uncallable region" and genetic sequencing coverage? I was digging through some old files and realized that Clem/you had proposed a new LOINC code that never made it to being submitted. I've attached the write up as well as an info sheet from Illumnia. With this proposal we are requesting a specific number vs. codifying something as "uncallable" or "low coverage" (if I'm understanding correctly). Sequencing-Coverage-for-NGS-Experiments.pdf New-LOINC-term-and-observation-component-for-Region-of-interest.docx

view this post on Zulip Bob Dolin (Aug 25 2020 at 14:12):

Hi @Liz Amos . I think they are closely related, in that depth of coverage is a major determinant of whether or not a region is deemed callable. My understanding is that different labs may have different parameters for determining when a region is callable, not solely based on depth of coverage. Also, while, for instance 30x-50x coverage is good for WGS, it might be considered inadequate for WES or targeted gene sequencing - so depth of coverage in and of itself doesn't directly equate with callability.

view this post on Zulip Liz Amos (Aug 25 2020 at 14:47):

Thanks, @Bob Dolin . I'm assuming we still need the Gene Coverage term/component? I can try to circulate the proposal again so it actually moves forward this time.

view this post on Zulip Jamie Jones (Nov 17 2020 at 17:34):

Reviewing this older proposal, it still seems hard to rely on the uncallable component for computing wild types. How would we want folks to report 'no uncallable subregions' in their profile? Perhaps the flag structure (or 2 mirrored profiles) would be required... what do you think? Could suggest they enter an uncallable subregion of length 0 but it doesn't seem intuitive.

Bob Dolin said:

Thanks Jamie. Here's a draft: Code='non-callable-region'; Display='non-callable-region'; Definition:

'A non-callable region is a subregion within an observation:region-studied profile that represents a range for which variants are unable to be called. Generally, a region is non-callable due to technical issues surrounding the test. Multiple non-callable regions may be contained within a region studied.

In many cases, a recipient of a FHIR Genomics report may only be interested in identified variants, in which case non-callable regions may not be of use. In some cases however, such as where there is a desire to infer the presence of a wild-type allele at a particular position, it can be useful to know that not only were no variants reported at a position, but also that the position was not deemed non-callable'.

view this post on Zulip Bob Dolin (Nov 17 2020 at 19:43):

Hmmm, good question. In addition to 'no uncallable subregions' is the case 'there were some, which I'm not bothering to report'. So perhaps some indication that they are / are not included?

view this post on Zulip Bob Dolin (Nov 24 2020 at 18:12):

@Jamie Jones I'm thinking that it might be better to propose this as an extension until we see if it gains any traction. My primary use case is to add it as an optional component into the $find-subject-variants operation. Your point about the need to represent 'no uncallable subregions' could be addressed by another field.

What do you think of something like this, an optional (0..1) extension, added to the region-studied profile:

0..1 observation-uncallableRegions (complex)
-- 1..1 includedInReport: boolean
-- 0..* uncallableRange: integer range

view this post on Zulip Bob Dolin (Feb 08 2021 at 18:04):

@Jamie Jones Jamie, I added tracker https://jira.hl7.org/browse/FHIR-31022 to change cardinality of region-studied's ranges-examined and uncallable-regions components. Hopefully I entered the tracker correctly...

view this post on Zulip Patrick Werner (Feb 09 2021 at 12:58):

looking good!

view this post on Zulip Bret H (Mar 02 2021 at 16:15):

Would it make sense to create branches for trackers like the above that can be merged immediately upon voting?

view this post on Zulip Bob Dolin (Mar 17 2021 at 22:14):

@Jamie Jones Jamie, I added tracker https://jira.hl7.org/browse/FHIR-31565 to add an uncallableRegion parameter to the find-subject-variants operation.

view this post on Zulip Bob Dolin (Apr 19 2021 at 14:32):

@Jamie Jones Jamie, what do you think about using the uncallable-regions 'dataAbsentReason' field where you want to explicitly say you don't have that information?


Last updated: Apr 12 2022 at 19:14 UTC