FHIR Chat · R4 MolecularSequence composite search params · genomics

Stream: genomics

Topic: R4 MolecularSequence composite search params


view this post on Zulip Michael Calderero (Nov 15 2018 at 08:31):

Hi,

I'm looking at MolecularSequence composite search parameters i.e. referenceseqid-coordinate and chromosome-coordinate. Taking an example for chromosome-coordinate (excerpt only):

        <code value="chromosome-coordinate"/>
        <base value="MolecularSequence"/>
        <type value="composite"/>
        <expression value="MolecularSequence"/>
        <component>
          <definition value="http://hl7.org/fhir/SearchParameter/MolecularSequence-chromosome"/>
          <expression value="referenceSeq.chromosome"/>
        </component>
        <component>
          <definition value="http://hl7.org/fhir/SearchParameter/MolecularSequence-start"/>
          <expression value="variant.start"/>
        </component>
        <component>
          <definition value="http://hl7.org/fhir/SearchParameter/MolecularSequence-end"/>
          <expression value="variant.end"/>
        </component>

Since MolecularSequence.variant's cardinality allows it to appear more than once in the resource, I would think the aforementioned search parameter will allow the following search [baseurl]/MolecularSequence?chromosome-coordinate=X$0$3 to match the resource below:

MolecularSequence:
  referenceSeq:
    chromosome:
      system: whatever-system
      code: X
  variant:
    start: 0
    end: 1
  variant:
    start: 2
    end: 3

i.e. start:0 is in the first variant property while end:3 is in the second variant property.

Is that the expected behavior or is my understanding of composite search parameters incorrect?

view this post on Zulip Michael Calderero (Nov 15 2018 at 08:40):

My assumption for this search parameter is that it would not match the resource above but would match this one instead (i.e. start:0 and end:3 are within the same variant property):

MolecularSequence:
  referenceSeq:
    chromosome:
      system: whatever-system
      code: X
  variant:
    start: 0
    end: 3
  variant:
    start: 5
    end: 6

view this post on Zulip Kevin Power (Nov 15 2018 at 15:15):

I agree with your assessment. You can do range searches on start/end if needed.

view this post on Zulip Michael Calderero (Nov 16 2018 at 02:37):

Sorry I'm still confused. What's the expected behavior of this search parameter? Is it expected to match the first example or the second one?

If the second example, then I would think the search parameter definition needs to be changed to:

        <code value="chromosome-coordinate"/>
        <base value="MolecularSequence"/>
        <type value="composite"/>
        <expression value="MolecularSequence.variant"/>
        <component>
          <definition value="http://hl7.org/fhir/SearchParameter/MolecularSequence-chromosome"/>
          <expression value="%resource.referenceSeq.chromosome"/>
        </component>
        <component>
          <definition value="http://hl7.org/fhir/SearchParameter/MolecularSequence-start"/>
          <expression value="start"/>
        </component>
        <component>
          <definition value="http://hl7.org/fhir/SearchParameter/MolecularSequence-end"/>
          <expression value="end"/>
        </component>

i.e. which is what this definition was in STU3.

view this post on Zulip Kevin Power (Nov 16 2018 at 03:05):

When I said I agree with your assessment, the intention is to match when a variant instance matches both the start and end criteria. I do remember that when I was adding the second composite search param, I was getting some build issues. I need to do some research into how to structure this search param.

view this post on Zulip Kevin Power (Nov 16 2018 at 22:34):

I have created a pull request with a fix, and have asked if it is possible to get the fix merged in. While looking at the fix, I have made some additional changes as well.
See the pull request 286
I created some new search params, and tried to make it clear how to search for sequences for given "windows", and also for sequences with variants at given locations. I welcome comments/questions/concerns.
@Patrick Werner @James Jones @ Bob Milius @Gil Alterovitz @Michael Calderero

view this post on Zulip Jamie Jones (Nov 20 2018 at 14:57):

@Kevin Power The changes look right and good to me from how I understand the composite searches :thumbs_up:

view this post on Zulip Kevin Power (Nov 20 2018 at 14:58):

Many thanks @James Jones

view this post on Zulip Patrick Werner (Nov 20 2018 at 15:01):

looks good to me as well. I'm currently trying to get the Resources into hapi to be able to test it

view this post on Zulip Kevin Power (Nov 20 2018 at 15:18):

Thanks @Patrick Werner - Keep us updated on your progress with HAPI.

view this post on Zulip Kevin Power (Nov 26 2018 at 12:38):

FYI - Grahame merged the MolecularSequence search param changes. If anyone reviews the changes and has questions please respond here. @Michael Calderero

view this post on Zulip Michael Calderero (Nov 27 2018 at 06:42):

I checked the updated definitions from build.fhir.org and I see the following:

1. http://hl7.org/fhir/SearchParameter/MolecularSequence-chromosome-window-coordinate composite

        <expression value="MolecularSequence.referenceSeq"/>
        <xpathUsage value="normal"/>
        <multipleOr value="false"/>
        <multipleAnd value="true"/>
        <modifier value="missing"/>
        <component>
          <definition value="http://hl7.org/fhir/SearchParameter/MolecularSequence-chromosome"/>
          <expression value="chromosome"/>
        </component>
        <component>
          <definition value="http://hl7.org/fhir/SearchParameter/MolecularSequence-window-start"/>
          <expression value="start"/>
        </component>
        <component>
          <definition value="http://hl7.org/fhir/SearchParameter/MolecularSequence-window-end"/>
          <expression value="end"/>
        </component>

but MolecularSequence.referenceSeq doesn't have start and end properties. Perhaps the windowStart and windowEnd should have been used instead?

2. http://hl7.org/fhir/SearchParameter/MolecularSequence-referenceseqid-window-coordinate

        <expression value="MolecularSequence.referenceSeq"/>
        <xpathUsage value="normal"/>
        <multipleOr value="false"/>
        <multipleAnd value="true"/>
        <modifier value="missing"/>
        <component>
          <definition value="http://hl7.org/fhir/SearchParameter/MolecularSequence-referenceseqid"/>
          <expression value="referenceSeqId"/>
        </component>
        <component>
          <definition value="http://hl7.org/fhir/SearchParameter/MolecularSequence-window-start"/>
          <expression value="start"/>
        </component>
        <component>
          <definition value="http://hl7.org/fhir/SearchParameter/MolecularSequence-window-end"/>
          <expression value="end"/>
        </component>

Same as number 1 (i.e. I think windowStart and windowEnd should have been used instead).

@Kevin Power

view this post on Zulip Kevin Power (Nov 27 2018 at 12:45):

You are right, both should use window start and end. Let me take a look later today.

view this post on Zulip Kevin Power (Nov 27 2018 at 18:42):

https://github.com/HL7/fhir/pull/306

view this post on Zulip Michael Calderero (Nov 27 2018 at 21:10):

@Kevin Power the update looks fine to me now. Thank you.

view this post on Zulip Kevin Power (Nov 27 2018 at 21:14):

Great, thanks. Sorry for taking an extra step on it - I missed the issue.


Last updated: Apr 12 2022 at 19:14 UTC