FHIR Chat · Connectathon 24 · genomics

Stream: genomics

Topic: Connectathon 24


view this post on Zulip Jamie Jones (May 12 2020 at 19:42):

Hi all, we will place important links and updates in this stream. Stay tuned!

view this post on Zulip Jamie Jones (May 13 2020 at 15:29):

We've got a google sheet with helpful links we'll update for those taking part in the genomics track here https://docs.google.com/spreadsheets/d/1ahPqAtcv8Kwfwwkeoulhi4HUilUPneXRi3pnD2fRPG4/
It has a tab "Participants" where everyone should write in their info and goals and a tab for "Attendance" outlining a few points when we're planning on widely meeting, including a "kick-off" meeting tomorrow at 9:30AM ET.

view this post on Zulip Patrick Werner (May 14 2020 at 11:24):

thanks. Added links to the molit testserver and our variant-viewer preview.

view this post on Zulip Kevin Power (May 14 2020 at 13:15):

Hello all Genomic Track connectathon attendees. We will be having our own kick off call in 15 minutes! Please see the spreadsheet on the Helpful Links tab for our Zoom room:
https://docs.google.com/spreadsheets/d/1ahPqAtcv8Kwfwwkeoulhi4HUilUPneXRi3pnD2fRPG4/

There is also a Participants tab for anyone planning on attending our track. So far I see @Jamie Jones @Bob Dolin @Patrick Werner @Alexander Mankovich signed up.

Talk soon!

view this post on Zulip Jamie Jones (May 14 2020 at 13:25):

@Patrick Werner Your server doesn't seem to support transaction bundles... what's the workaround for this? (i'm used to the examples in our build)

view this post on Zulip Patrick Werner (May 14 2020 at 13:26):

It does. How did you try? What was the error?

view this post on Zulip Patrick Werner (May 14 2020 at 13:27):

used transaction bundles against it yesterday

view this post on Zulip Jamie Jones (May 14 2020 at 13:27):

i may be a goof have the wrong headers/endpoint, "Unable to store a Bundle resource on this server with a Bundle.type value of: transaction"

view this post on Zulip Patrick Werner (May 14 2020 at 13:27):

ahhh! you want to persist a bundle?

view this post on Zulip Patrick Werner (May 14 2020 at 13:28):

to process transaction bundles you have to send it against the server base, in this case: https://fhir.molit.eu/fhir

view this post on Zulip Jamie Jones (May 14 2020 at 13:28):

Thanks! just want to save the entries :innocent:

view this post on Zulip Patrick Werner (May 14 2020 at 13:29):

ok, try it against base (thats why sending them to /bundle is disabled, to prevent unexpected behavior when trying to process bundles)

view this post on Zulip Patrick Werner (May 14 2020 at 13:30):

im already waiting for the zoom host :-)

view this post on Zulip Jamie Jones (May 14 2020 at 14:06):

(deleted)

view this post on Zulip Jamie Jones (May 14 2020 at 14:09):

(brief breakout for IM group at https://zoom.us/j/2980068716)

view this post on Zulip Bob Dolin (May 14 2020 at 14:22):

@Kevin Power @Jamie Jones I can open back up the connectathon zoom if someone could send me the credentials?

view this post on Zulip Bob Dolin (May 14 2020 at 14:38):

I added a couple tabs to spreadsheet

view this post on Zulip Bob Dolin (May 14 2020 at 14:38):

List of 300 patients in GACS server, including family relationships: https://docs.google.com/spreadsheets/d/1ahPqAtcv8Kwfwwkeoulhi4HUilUPneXRi3pnD2fRPG4/edit#gid=706561726

view this post on Zulip Bob Dolin (May 14 2020 at 14:39):

These are WGS data from 1000 Genomes, all public data.

view this post on Zulip Bob Dolin (May 14 2020 at 14:39):

and here's a list of LDLR pathogenic variants which can be used for ACMG screening: https://docs.google.com/spreadsheets/d/1ahPqAtcv8Kwfwwkeoulhi4HUilUPneXRi3pnD2fRPG4/edit#gid=1504996970

view this post on Zulip Kevin Power (May 14 2020 at 14:40):

Bob Dolin said:

Kevin Power Jamie Jones I can open back up the connectathon zoom if someone could send me the credentials?

Sent via email

view this post on Zulip Arthur Hermann (May 14 2020 at 15:02):

@Bret H I only see a few people signed up on the participants tab - I am registered as an observer... do you want everyone participating today to add their name to that participants tab.?
.. because few have

view this post on Zulip Jamie Jones (May 14 2020 at 15:04):

please do! helps to state goals. the line is open again now, we'll try to keep it open as much as possible

view this post on Zulip Bob Dolin (May 14 2020 at 15:04):

@Bret H Here is the call that lets you see our supported RefSeqs: https://api-gacs.elimuinformatics.com/gacs/refSeq/?build=37

view this post on Zulip Arthur Hermann (May 14 2020 at 15:05):

@Jamie Jones - which line do you mean a zoom line? if so - sorry can you put the link here (again)?

view this post on Zulip Jamie Jones (May 14 2020 at 15:06):

https://zoom.us/j/3176111369

view this post on Zulip Bret H (May 14 2020 at 15:08):

Bob Dolin said:

Bret H Here is the call that lets you see our supported RefSeqs: https://api-gacs.elimuinformatics.com/gacs/refSeq/?build=37

given a build get back which refseqs are supported by the server. very useful in carrying out FindSubject variant operation

view this post on Zulip Kevin Power (May 14 2020 at 15:24):

For anyone wanting to watch other tracks, see here:
https://confluence.hl7.org/display/FHIR/2020-05+Zoom+Info+for+Each+Track

view this post on Zulip Jamie Jones (May 14 2020 at 15:32):

and for anyone interested in a very dodgy and barebones ACMG screening result report, https://fhir.molit.eu/fhir/DiagnosticReport?_id=278783&_pretty=true was generated from https://api-gacs.elimuinformatics.com/gacs/refSeq/?build=37

view this post on Zulip Bret H (May 14 2020 at 15:33):

@Arthur Hermann Here's an example from NCBI of getting a Gene's position Gene: LDLR
URL: https://www.ncbi.nlm.nih.gov/gene/3949
Look for this information to see the Build 37 reference and position for querying LDLR variants GRCh37.p13 (GCF_000001405.25) 19 NC_000019.9 (11200037..11244506)

view this post on Zulip Bret H (May 14 2020 at 15:33):

this could also be done programmatically

view this post on Zulip Bob Dolin (May 14 2020 at 15:40):

@Arthur Hermann Here is the query we just ran: https://api-gacs.elimuinformatics.com/gacs/variants/HG00403/?start=100000&end=200000&refSeq=NC_000001.10

view this post on Zulip Kevin Power (May 14 2020 at 15:46):

@Patrick Werner -- Wow. I just looked at our qa file in the current build, and we only have 3 errors! Did you fix all the LOINC errors in the current build as well?

view this post on Zulip Patrick Werner (May 14 2020 at 15:46):

nopes (wish it had been me)

view this post on Zulip Patrick Werner (May 14 2020 at 15:49):

i think this was caused by the continous improvement of the validator?

view this post on Zulip Kevin Power (May 14 2020 at 15:51):

You should have totally taken credit for it :slight_smile:

view this post on Zulip Jamie Jones (May 14 2020 at 15:51):

i think he did log the request on their end :blush:

view this post on Zulip Bret H (May 14 2020 at 15:58):

@Arthur Hermann http://build.fhir.org/ig/HL7/genomics-reporting/find-subject-variants.html this is the findsubject operation

view this post on Zulip Bob Dolin (May 14 2020 at 16:08):

I added another tab, so that you could look up the build37 refSeq and start and end positions for your favorite gene: https://docs.google.com/spreadsheets/d/1ahPqAtcv8Kwfwwkeoulhi4HUilUPneXRi3pnD2fRPG4/edit#gid=1404529341

view this post on Zulip Jamie Jones (May 14 2020 at 16:09):

@Bob Dolin what do you think, how did my brute force query do finding the pathogenic variants planted in HG00403?

view this post on Zulip Bob Dolin (May 14 2020 at 16:11):

@Jamie Jones I can see I'm going to have to give you harder challenges next time :-)

view this post on Zulip Jamie Jones (May 14 2020 at 16:11):

@Patrick Werner !! it looks like https://fhir.molit.eu ate my extensions !?

view this post on Zulip Bob Dolin (May 14 2020 at 16:11):

maybe I should introduce an indel pathogenic variant.

view this post on Zulip Jamie Jones (May 14 2020 at 16:11):

there should be 2 related artifact instances on each implication, though it could very well be user error ;)

view this post on Zulip Bob Dolin (May 14 2020 at 16:13):

You won't necessarily be able to directly compare an indel against ClinVar without some type of normalization.

view this post on Zulip Jamie Jones (May 14 2020 at 16:13):

i would 100% miss those :)

view this post on Zulip Kevin Power (May 14 2020 at 16:17):

I have started a barebones report out slide deck. As everyone does their thing, it might be good to collect some thoughts and evidence here:
https://docs.google.com/presentation/d/1FuuYfZEQNSnXYhf-bnnuYEpap4vMaPfzApbxBafZ6jk/edit?usp=sharing

view this post on Zulip Bob Dolin (May 14 2020 at 16:18):

@Jamie Jones Have you played around with NCBI SPDI services? https://api.ncbi.nlm.nih.gov/variation/v0/

view this post on Zulip Bob Dolin (May 14 2020 at 16:18):

I haven't felt the need to add a SPDI component into the IG (yet another representation of a variant), but I do find it to be a very useful normalization format.

view this post on Zulip Jamie Jones (May 14 2020 at 16:23):

I like SPDI, wonder if we could use it in component:variation-code (system ~ SPDI) it seems just as calculable as HGVS to me

view this post on Zulip Patrick Werner (May 14 2020 at 16:24):

Jamie Jones said:

Patrick Werner !! it looks like https://fhir.molit.eu ate my extensions !?

really?

view this post on Zulip Jamie Jones (May 14 2020 at 16:24):

my python spaghetti-code probably formulated them wrong, inspecting the output json...

view this post on Zulip Sandy Vance (May 14 2020 at 16:25):

Kevin Power said:

I have started a barebones report out slide deck. As everyone does their thing, it might be good to collect some thoughts and evidence here:
https://docs.google.com/presentation/d/1FuuYfZEQNSnXYhf-bnnuYEpap4vMaPfzApbxBafZ6jk/edit?usp=sharing

Be sure to also fill out your track report here: https://docs.google.com/document/d/1B6FvP5IP83tuUPvOMQjZIR5jYyw4OSbahgRqnbkPZZ8/edit

view this post on Zulip Bret H (May 14 2020 at 16:25):

technically, SPDI could go into variation-code. The calling out of HGVS is historical and due to common use. ... perhaps we should open the HGVS compoenents to SPDI. But aren't SPDI expressed as HGVS just HGVS?

view this post on Zulip Patrick Werner (May 14 2020 at 16:28):

i would put all syntax based codings in one comonent, having a seperate one variants defined by ID

view this post on Zulip Bret H (May 14 2020 at 16:29):

As long as there is a code system

view this post on Zulip Patrick Werner (May 14 2020 at 16:29):

technically this would mean a VS constiting of HGVS, SPDI and maybe ISCN

view this post on Zulip Jamie Jones (May 14 2020 at 16:29):

could that even BE a VS though?

view this post on Zulip Kevin Power (May 14 2020 at 16:29):

We were just talking about this on the call :slight_smile: and I agree with @Patrick Werner

view this post on Zulip Patrick Werner (May 14 2020 at 16:30):

Jamie Jones said:

could that even BE a VS though?

BE ? (sorry for my ignorance)

view this post on Zulip Bret H (May 14 2020 at 16:30):

ISCN Is a special use case

view this post on Zulip Patrick Werner (May 14 2020 at 16:30):

ah

view this post on Zulip Patrick Werner (May 14 2020 at 16:30):

be like beeing, thought thats another CS :D

view this post on Zulip Patrick Werner (May 14 2020 at 16:31):

Jamie Jones said:

could that even BE a VS though?

sure. Add it here: http://build.fhir.org/ig/HL7/genomics-reporting/valueset-hgvs.html

view this post on Zulip Patrick Werner (May 14 2020 at 16:31):

(and rename the VS ofc)

view this post on Zulip Bret H (May 14 2020 at 16:31):

but yeah, i agree that ISCN is another 'syntactic based coding'...oh and GLstrings got placed into component:variation-code by Bob M I think

view this post on Zulip Patrick Werner (May 14 2020 at 16:32):

@ Bob Milius had to do it that way because the other is required bound to hgvs only atm

view this post on Zulip Bret H (May 14 2020 at 16:33):

so we're talking about removing the limitation on the HGVS component. Which does make sense. However, LOINC Is historic

view this post on Zulip Patrick Werner (May 14 2020 at 16:33):

Bret H said:

ISCN Is a special use case

i agree, but we are only having a single variant profile (which i like), so enabling special use-cases should be on our agenda

view this post on Zulip Bret H (May 14 2020 at 16:34):

and was precoordinated with HGVS

view this post on Zulip Kevin Power (May 14 2020 at 16:35):

Grouping all the HGVS's and even extending it to be 'syntax representations' would need a new LOINC code.

view this post on Zulip Kevin Power (May 14 2020 at 16:35):

However, on the call, @Bob Dolin had some interesting points that he will be weighing in with shortly.

view this post on Zulip Kevin Power (May 14 2020 at 16:48):

RE: Connectathon report out. I have removed the slides presentation I referred to earlier, and will now refer everyone to this page, which seems to be the document for the entire Connectathon:
https://docs.google.com/document/d/1B6FvP5IP83tuUPvOMQjZIR5jYyw4OSbahgRqnbkPZZ8/edit

view this post on Zulip Kevin Power (May 14 2020 at 16:49):

Ha, and now I see @Sandra Vance referred to this above (sorry, am getting swamped in all the Zulip updates :slight_smile:)

view this post on Zulip Jamie Jones (May 14 2020 at 17:01):

@Patrick Werner issue was my end with the polymorphic types--i supplied the relatedArtifacts as 'value' instead of valueRelatedArtifact. Is there any way to update the instances through base? (or do I have to go through /Observation?)

view this post on Zulip Patrick Werner (May 14 2020 at 17:03):

easiest would be to just reapply a bundle

view this post on Zulip Patrick Werner (May 14 2020 at 17:03):

which results in a new DR

view this post on Zulip Jamie Jones (May 14 2020 at 17:04):

...but then my mistakes will be immortalized...

view this post on Zulip Patrick Werner (May 14 2020 at 17:04):

or you have to (conditionallly) update the resources (in a update transaction bundle)

view this post on Zulip Patrick Werner (May 14 2020 at 17:05):

you can delete the obsolete DR? To cover up your mistake alittle

view this post on Zulip Kevin Power (May 14 2020 at 17:07):

I think Patrick could just:

drop database;
commit;

:slight_smile:

view this post on Zulip Patrick Werner (May 14 2020 at 17:13):

no i can't, then i would have to reupload everything :explosion:

view this post on Zulip Kevin Power (May 14 2020 at 17:14):

heh heh, yea, snarky comment withdrawn :slight_smile:

view this post on Zulip Patrick Werner (May 14 2020 at 17:14):

loinc alone took ages to process (to be fair it is all of loinc, with every conceptmap and anwer VS)

view this post on Zulip Patrick Werner (May 14 2020 at 17:14):

:party_ball:

view this post on Zulip Kevin Power (May 14 2020 at 17:16):

RE: report out - Here is a link to the skeleton about the Genomics track: https://docs.google.com/document/d/1B6FvP5IP83tuUPvOMQjZIR5jYyw4OSbahgRqnbkPZZ8/edit#heading=h.21khfxwu0l6n

view this post on Zulip Jamie Jones (May 14 2020 at 17:19):

@Patrick Werner
I'm getting
{ "severity": "error", "code": "processing", "diagnostics": "The Extension 'http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/RelatedArtifact' definition is for a simple extension, so it must contain a value, not extensions", "location": [ "Bundle.entry[0].resource.extension[0][url='http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/RelatedArtifact']", "Line 1, Col 223" ] }, { "severity": "error", "code": "processing", "diagnostics": "ext-1: Must have either extensions or value[x], not both [extension.exists() != value.exists()]", "location": [ "Bundle.entry[0].resource.extension[0]", "Line 1, Col 223" ] },
for
{ "url": "http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/RelatedArtifact", "valueRelatedArtifact": { "type": "citation", "url": "https://www.ncbi.nlm.nih.gov/medgen/C2713442" } }
Any thoughts?

view this post on Zulip Patrick Werner (May 14 2020 at 17:22):

looks good to me..

view this post on Zulip Patrick Werner (May 14 2020 at 17:24):

do you have multiple extensions wrapping each other? thats what the error suggests

view this post on Zulip Jamie Jones (May 14 2020 at 17:24):

"resource": { "id": "ebc4f401-5754-4da3-a1f8-99a4beac954a", "extension": [ { "url": "http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/RelatedArtifact", "valueRelatedArtifact": { "type": "citation", "url": "https://www.ncbi.nlm.nih.gov/medgen/C2713442" } }, { "url": "http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/RelatedArtifact", "valueRelatedArtifact": { "type": "derived-from", "url": "https://www.ncbi.nlm.nih.gov/clinvar/variation/265415" } } ], "code": { "coding": [ { "code": "diagnostic-implication", "system": "http://hl7.org/fhir/uv/genomics-reporting/CodeSystem/tbd-codes" } ] }, "component": [ { "code": { "coding": [ { "code": "93044-6", "system": "http://loinc.org" } ] }, "valueCodeableConcept": { "text": "criteria provided, single submitter" } }, { "code": { "coding": [ { "code": "53037-8", "system": "http://loinc.org" } ] }, "valueCodeableConcept": { "coding": [ { "code": "LA26332-9", "display": "Likely pathogenic", "system": "http://loinc.org" } ] } }, { "code": { "coding": [ { "code": "81259-4", "system": "http://loinc.org" } ] }, "valueCodeableConcept": { "coding": [ { "code": "175100", "display": "Adenomatous polyposis coli ", "system": "http://omim.org" } ] } }, { "code": { "coding": [ { "code": "79742-3", "system": "http://loinc.org" } ] }, "valueCodeableConcept": { "coding": [ { "code": "LA24640-7", "display": "Autosomal dominant", "system": "http://loinc.org" } ] } } ], "derivedFrom": [ { "reference": "Observation/0fd6858a-b97c-43ba-9d25-5338ad732380" } ], "status": "final", "subject": { "reference": "Patient/388fe40d-f37a-457e-bbc1-a3e4f385c578" }, "resourceType": "Observation" } }

view this post on Zulip Jamie Jones (May 14 2020 at 17:28):

do you have any examples on there with extensions implemented?

view this post on Zulip Patrick Werner (May 14 2020 at 17:29):

nope

view this post on Zulip Patrick Werner (May 14 2020 at 17:29):

you are missing "resourceType" : "Observation" in the entry, right?

view this post on Zulip Patrick Werner (May 14 2020 at 17:29):

ah no, at the bottom

view this post on Zulip Jamie Jones (May 14 2020 at 17:30):

no, it was fine with it coming at the end. we resolved the reference issues, last on my list is extension.value

view this post on Zulip Jamie Jones (May 14 2020 at 17:30):

i wonder if it still wants .value instead of .valueRelatedArtifact

view this post on Zulip Bret H (May 14 2020 at 17:30):

"The Extension 'http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/RelatedArtifact' definition is for a simple extension, so it must contain a value, not extensions""

view this post on Zulip Bret H (May 14 2020 at 17:31):

what does the definition say?

view this post on Zulip Bret H (May 14 2020 at 17:31):

@Patrick Werner @Jamie Jones notice that it points to UV genomics

view this post on Zulip Bret H (May 14 2020 at 17:31):

is that correct?

view this post on Zulip Patrick Werner (May 14 2020 at 17:32):

yeah sure. The extension profile is fine, it is a simple Extension, Jamie is using it as a simple extension

view this post on Zulip Patrick Werner (May 14 2020 at 17:32):

Success...validating /Users/patrickwerner/Downloads/testrr.json:  error:0 warn:1 info:1
  Information @ Observation.component[2].value.ofType(CodeableConcept).coding[0] (line 71, col14) : Code System URI "http://omim.org" is unknown so the code cannot be validated
  Warning @ Observation.component[2].value.ofType(CodeableConcept).coding[0].display (line 73, col56) : value should not start or finish with whitespace

view this post on Zulip Patrick Werner (May 14 2020 at 17:32):

did a local validation with the java validator against our ig

view this post on Zulip Jamie Jones (May 14 2020 at 17:33):

no issue on the extensions there, right? might be a hapi bug

view this post on Zulip Jamie Jones (May 14 2020 at 17:33):

let me try forcing in '.value'

view this post on Zulip Patrick Werner (May 14 2020 at 17:33):

hapi 5.0.0 was released yesterday, this is still a hapi 2.4 server (previous version) wich uses an older validator version

view this post on Zulip Jamie Jones (May 14 2020 at 17:35):

"Unrecognised property '@value'", so not that... (same for '.value[x]')

view this post on Zulip Patrick Werner (May 14 2020 at 17:35):

https://chat.fhir.org/#narrow/stream/179252-IG-creation/topic/Issue.20with.20extension.20differentials.20and.20rendering

view this post on Zulip Patrick Werner (May 14 2020 at 17:36):

Grahame Grieve21:59
as for

The Extension 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-race' definition is for a simple extension, so it must contain a value, not extensions

I could revise that, since it's extension specific logic, but what should that code do when the extension definition allows for both value[x] and extension? How does that code decide what you actually mean? The base extension allows both, and says, choose one. That means you actually have to choose, and you do that by setting the cardinality one of them to 0. All the extension processing logic works that way. So just set it to 0.

As for where this is documented.... I don't know. It's obvious to me. But I'm ok to make it explicit somewhere if you can identify the most logical place

view this post on Zulip Patrick Werner (May 14 2020 at 17:36):

checking right now

view this post on Zulip Patrick Werner (May 14 2020 at 17:39):

where is this extension defined? :)

view this post on Zulip Kevin Power (May 14 2020 at 17:40):

http://build.fhir.org/ig/HL7/genomics-reporting/extension-RelatedArtifact.html

view this post on Zulip Jamie Jones (May 14 2020 at 17:41):

we may be declaring it incorrectly in the spreadsheet, there was some ambiguity when they introduced polymorphic types, and some artifacts may have been missed

view this post on Zulip Kevin Power (May 14 2020 at 17:42):

Yup, thinking the same thing.

view this post on Zulip Jamie Jones (May 14 2020 at 17:42):

yay testing!

view this post on Zulip Kevin Power (May 14 2020 at 17:42):

What a CRAZY concept

view this post on Zulip Patrick Werner (May 14 2020 at 17:43):

its in the DiagnosticReport Spreadsheet ok

view this post on Zulip Jamie Jones (May 14 2020 at 17:44):

the obs spreadsheet has a seemingly correct representation of the polymorphic values

view this post on Zulip Patrick Werner (May 14 2020 at 17:44):

looking good. Probably a validator bug which was resolved since

view this post on Zulip Jamie Jones (May 14 2020 at 17:46):

the updated validator passing it does seem to imply that...

view this post on Zulip Kevin Power (May 14 2020 at 17:47):

Wait, what? I am only 1/2 following along here, but if this is a bug that 'was resolved since' - what is causing the error?

view this post on Zulip Jamie Jones (May 14 2020 at 17:49):

Patrick Werner said:

hapi 5.0.0 was released yesterday, this is still a hapi 2.4 server (previous version) wich uses an older validator version

view this post on Zulip Kevin Power (May 14 2020 at 17:51):

Anything we can do to make it work now and in the future? I hate being tied to new versions of things like HAPI if there is some way we can fix this within our IG.

view this post on Zulip Patrick Werner (May 14 2020 at 17:55):

I don't think we can fix something in the IG. The issue is in the validator and already resolved (in the current validator)

view this post on Zulip Patrick Werner (May 14 2020 at 17:56):

but yes, validation is painful a lot of times, the good thing is that i have the impression that things are getting more and more stable in the validator

view this post on Zulip Kevin Power (May 14 2020 at 17:58):

Yup, figured that was the answer. But wanted to double check.

view this post on Zulip Patrick Werner (May 14 2020 at 17:58):

i just uploaded the whole IG to: http://hapi.fhir.org/baseR4 which runs hapi 5.0.0

view this post on Zulip Patrick Werner (May 14 2020 at 17:58):

@Jamie Jones can you check against that server?

view this post on Zulip Bret H (May 14 2020 at 17:59):

again does the difference between http://build.fhir.org/ig/HL7/genomics-reporting/extension-RelatedArtifact.html AND "url": "http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/RelatedArtifact" declared in the profile matter?

view this post on Zulip Patrick Werner (May 14 2020 at 18:02):

the url for the extension is: http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/RelatedArtifact

view this post on Zulip Patrick Werner (May 14 2020 at 18:03):

ah in the profile!

view this post on Zulip Bret H (May 14 2020 at 18:03):

yep. image.png

view this post on Zulip Patrick Werner (May 14 2020 at 18:03):

ah ok. No the canonical url is always: http://hl7.org/fhir/uv/genomics-reporting/StructureDefinition/RelatedArtifact

view this post on Zulip Bret H (May 14 2020 at 18:04):

got. it so as long as the server loaded the extension with that url then use of the extension with that url declared as the url should validate. right?

view this post on Zulip Patrick Werner (May 14 2020 at 18:04):

http://build.fhir.org/ig/HL7/genomics-reporting/extension-RelatedArtifact.html is the url to the place in our IG (current build) on which also the correct canonical is declared.

view this post on Zulip Kevin Power (May 14 2020 at 18:05):

I wish all canonical's resolved :frown:

view this post on Zulip Bob Dolin (May 14 2020 at 18:08):

sorry, I had to step away a bit. Wanted to get back to SPDI - for me, SPDI is not the same as, say, a ClinVar ID, so we wouldn't want to mix those both into one component. But beyond that, I wonder if we really want to even add a component for SPDI. I mean, I use it all the time, it's a great normalization syntax. But do we want to allow for yet another way to represent variants in the IG? At least perhaps we might wait until someone comes along who thinks they need it?

view this post on Zulip Patrick Werner (May 14 2020 at 18:08):

agree. Should ask Grahame, its an easy forward

view this post on Zulip Patrick Werner (May 14 2020 at 18:10):

@Bob Dolin i think it is a design decision at the moment. Do we want to have one component for grammar based identification (hgvs, spdi, iscn) and one for a id based identification.

view this post on Zulip Patrick Werner (May 14 2020 at 18:11):

Or do we want a component for hgvs, one for spdi, one for ......

view this post on Zulip Patrick Werner (May 14 2020 at 18:13):

the first approach would be more stable. If a new syntax/idSystem has to be added. We just extend the VS which is used in the component. All codes and uris stay the same.

view this post on Zulip Patrick Werner (May 14 2020 at 18:15):

one component per CodeSystem would introduce more components with new codes over time (which is still backwards compatible i just realised)

view this post on Zulip Jamie Jones (May 14 2020 at 18:16):

if a system is hardcoded to expect a certain nomenclature on one component and the VS is extended to send another, is that not "breaking?"

view this post on Zulip Kevin Power (May 14 2020 at 18:17):

Our one component per CodeSystem is as much about validation of instances as anything else. A more generic component wouldn't actually how a real instance looks, it would just make it more difficult to do really good validation. I think.

view this post on Zulip Bret H (May 14 2020 at 18:17):

Yep. However, need to make it really clear to the community where/how to find/query for HGVS. The other soft point is 'are all syntax based nomenclatures equal?' that is do they convey the same information or is it buyer beware. For example, a dbSNP id and a clinvar id have different levels of specificity for variant change.

view this post on Zulip Bret H (May 14 2020 at 18:17):

by precoordinating HGVS to the component, the recipient can be terminologically lazy

view this post on Zulip Jamie Jones (May 14 2020 at 18:18):

as far as i can tell, spdi and hgvs are equivalent except for edge cases... would love an enumeration of where they differ

view this post on Zulip Bret H (May 14 2020 at 18:18):

or to put it another way, a stronger dependency on terminology resolutions moves complexity to the recipient system

view this post on Zulip Patrick Werner (May 14 2020 at 18:18):

Jamie Jones said:

if a system is hardcoded to expect a certain nomenclature on one component and the VS is extended to send another, is that not "breaking?"

it is, but only in one direction. But the same as separate component.

view this post on Zulip Patrick Werner (May 14 2020 at 18:20):

Kevin Power said:

Our one component per CodeSystem is as much about validation of instances as anything else. A more generic component wouldn't actually how a real instance looks, it would just make it more difficult to do really good validation. I think.

It will still validate the same. Downstream usecases can restrict the VS narrower for their specific use-case/implementation

view this post on Zulip Bret H (May 14 2020 at 18:21):

more generic components mean that the recipient must work harder to use the component, as the recipient will need to understand what to do with the codesystem. I.e. the codesystem is part of the context of the meaning of the value

view this post on Zulip Bret H (May 14 2020 at 18:21):

this is not a problem

view this post on Zulip Bret H (May 14 2020 at 18:21):

just a comment

view this post on Zulip Kevin Power (May 14 2020 at 18:22):

Patrick Werner said:

Kevin Power said:

Our one component per CodeSystem is as much about validation of instances as anything else. A more generic component wouldn't actually how a real instance looks, it would just make it more difficult to do really good validation. I think.

It will still validate the same. Downstream usecases can restrict the VS narrower for their specific use-case/implementation

How can it validate the same? If we do a single component, can we define a rule which says 'component[].code' must be from 1 of X CodeSystems' ?

view this post on Zulip Patrick Werner (May 14 2020 at 18:22):

Bret H said:

just a comment

a good one! But yes if this will introduce a problem in your IT system, derive a narrower profile for the single CS you need.

view this post on Zulip Kevin Power (May 14 2020 at 18:23):

Am I wrong, or do the actual instances look the same no matter what?

view this post on Zulip Bret H (May 14 2020 at 18:23):

@Kevin Power do you mean compoenent.code from a list of codes?

view this post on Zulip Bret H (May 14 2020 at 18:23):

doesn't that mean different components?

view this post on Zulip Patrick Werner (May 14 2020 at 18:23):

Kevin Power said:

Patrick Werner said:

Kevin Power said:

Our one component per CodeSystem is as much about validation of instances as anything else. A more generic component wouldn't actually how a real instance looks, it would just make it more difficult to do really good validation. I think.

It will still validate the same. Downstream usecases can restrict the VS narrower for their specific use-case/implementation

How can it validate the same? If we do a single component, can we define a rule which says 'component[].code' must be from 1 of X CodeSystems' ?

Yes. We already have a required binding to a VS. This VS points to a single CS, but can point to *. So we can say valid are these CodeSystems:

view this post on Zulip Bret H (May 14 2020 at 18:24):

you can use mapping to provide mappings of code to other codesystems but the meaning better be the same

view this post on Zulip Bret H (May 14 2020 at 18:24):

@Patrick Werner i think he is talking about .code not value

view this post on Zulip Patrick Werner (May 14 2020 at 18:24):

Kevin Power said:

Am I wrong, or do the actual instances look the same no matter what?

In a Instance you use the system.uri of a CS, so they look different (Coding.system is different)

view this post on Zulip Kevin Power (May 14 2020 at 18:25):

Patrick Werner said:

Kevin Power said:

Am I wrong, or do the actual instances look the same no matter what?

In a Instance you use the system.uri of a CS, so they look different (Coding.system is different)

OK, I guess I need some lunch or something - I don't get that :slight_smile:

view this post on Zulip Patrick Werner (May 14 2020 at 18:27):

Hmm potential problem (might want to ask vocab here):

Best Practice Note: Mixing definitional systems offers the potential for confusing, overlapping, and inconsistent definitions. Creating value sets that cross code systems should be done with care to avoid creating definitional confusion.

Value sets should only include well differentiated concepts, but many value sets and code systems do not have well differentiated concepts because of various real world constraints.

view this post on Zulip Kevin Power (May 14 2020 at 18:27):

I am going to get my lunch, and will restart our connectathon zoom call for anyone who wants to join. Give me about 10 mins.

view this post on Zulip Bret H (May 14 2020 at 18:27):

Patrick Werner said:

Bret H said:

just a comment

a good one! But yes if this will introduce a problem in your IT system, derive a narrower profile for the single CS you need.

AND define it on your server's conformance statement! maybe even as an IG

view this post on Zulip Patrick Werner (May 14 2020 at 18:28):

Kevin Power said:

I am going to get my lunch, and will restart our connectathon zoom call for anyone who wants to join. Give me about 10 mins.

can join a little later. Dinner is ready.

view this post on Zulip Bret H (May 14 2020 at 18:32):

but the question remains, if the codesystems which can be used for the value of a component are wildly different meanings should that be allowed. That is if identifiers in one system convey only partial information compared to another code system are the messages safe? Again, you could specify that your hospital system only accepts specific codesystems to help ensure consistency in the information conveyed by the code. As we go down this route be careful not to have have the extreme of ONE component for everything - where the codesystem becomes the only way to understand the component. The components should have some level of specific meaning to be reliable. @Patrick Werner @Kevin Power @Jamie Jones

view this post on Zulip Bret H (May 14 2020 at 18:36):

(deleted)

view this post on Zulip Kevin Power (May 14 2020 at 18:45):

OK - Zoom meeting is going again for anyone who wants to join and discuss any of the great topics we are hitting on here :slight_smile:

view this post on Zulip Bob Dolin (May 14 2020 at 19:15):

Jamie Jones said:

as far as i can tell, spdi and hgvs are equivalent except for edge cases... would love an enumeration of where they differ

Jamie, the main difference I'm aware of is that SPDI is strictly limited to variants with known breakpoints, whereas that is not the case for HGVS. Presumably as a result, we can validate any SPDI, whereas not all validators will validate all possibly HGVS expressions.

view this post on Zulip Bob Dolin (May 14 2020 at 23:52):

@Bret H I added a set of BRCA1 and MYH7 pathogenic SNVs into the connectathon spreadsheet for you.

view this post on Zulip Bob Dolin (May 15 2020 at 14:27):

Based on our discussion, I added a tracker 'Clarify the representation of wild type in variant profile' https://jira.hl7.org/browse/FHIR-27137

view this post on Zulip Jamie Jones (May 15 2020 at 15:00):

@Patrick Werner any chance you can send the list of component.codes you are rendering? (I won't likely be able to swap from g. to c. immediately since my app is bioinformatically naive but this is a great takeaway)

view this post on Zulip Jamie Jones (May 15 2020 at 15:40):

public Hapi is fine with the extensions but throws full errors for not validating loincs (even though the build validator properly lists them as warnings now)

view this post on Zulip Jamie Jones (May 15 2020 at 15:42):

You can see e.g. http://hapi.fhir.org/baseR4/Observation/1167323 for persistent example with extensions

view this post on Zulip Kevin Power (May 15 2020 at 15:43):

:musical_notes: one step forward :music: and two steps back :musical_notes:

view this post on Zulip Jamie Jones (May 15 2020 at 15:46):

if it's an example for the IG i ought to populate coding.display, huh

view this post on Zulip Patrick Werner (May 15 2020 at 15:54):

currently extracting

view this post on Zulip Bob Dolin (May 15 2020 at 16:09):

@Jamie Jones I've created a couple PGx scenarios for you.

view this post on Zulip Bob Dolin (May 15 2020 at 16:11):

The first one is pretty easy - look to see if patient HG00403 has a pathogenic variant in CACNA1S (which affects use of halogenated anesthetics; https://www.pharmgkb.org/chemical/PA449845/guidelineAnnotation/PA166180457).

view this post on Zulip Bob Dolin (May 15 2020 at 16:11):

I added a list of pathogenic variants here: https://docs.google.com/spreadsheets/d/1ahPqAtcv8Kwfwwkeoulhi4HUilUPneXRi3pnD2fRPG4/edit#gid=660016315

view this post on Zulip Bob Dolin (May 15 2020 at 16:12):

The second scenario is a little harder, looking at CYP2C19 and determining if clopidogrel or citalopram can be prescribed or if dose should be adjusted.

view this post on Zulip Bob Dolin (May 15 2020 at 16:13):

I put a excerpt of the PharmGKB CYP2C19 core allele table here: https://docs.google.com/spreadsheets/d/1ahPqAtcv8Kwfwwkeoulhi4HUilUPneXRi3pnD2fRPG4/edit#gid=548798137

view this post on Zulip Bob Dolin (May 15 2020 at 16:14):

Three patients to look at: HG00407, HG00463, HG00559.

view this post on Zulip Bob Dolin (May 15 2020 at 16:15):

One of these patients is a normal metabolizer, can receive either drug. One patient is an intermediate metabolizer, so should not get clopidogrel. One patient is a poor metabolizer, so should not get clopidogrel and should have a citalopram dose reduction.

view this post on Zulip Patrick Werner (May 15 2020 at 16:16):

http://hapi.fhir.org/baseR4/Observation/1167323/$validate
looking good (apart from the validation errors on loinc which should be warnings) i already started this issue with grahame and mark from smile.

view this post on Zulip Patrick Werner (May 15 2020 at 16:17):

.. hotfixing the varviewer while extracting

view this post on Zulip Patrick Werner (May 15 2020 at 16:22):

@Jamie Jones
gene name (symbol not id, still need to finish the lookup in hapi): 48018-6
reference: 62374-4
type: 48019-4
source class: 48002-0
functional class: functional-annotation
dna change (c.HGVS): 48004-6
aa change: 48005-3
refseq: 51958-7
NAF: 81258-6
read depth: 82121-5

view this post on Zulip Patrick Werner (May 15 2020 at 16:23):

will redeploy in a minute

view this post on Zulip Patrick Werner (May 15 2020 at 16:29):

oh i have duplicats in the list above sorry!

view this post on Zulip Patrick Werner (May 15 2020 at 16:32):

compiling!

view this post on Zulip Patrick Werner (May 15 2020 at 17:02):

fixed another bug, compiling again..

view this post on Zulip Patrick Werner (May 15 2020 at 17:07):

https://molit.eu/variant-viewer/

view this post on Zulip Patrick Werner (May 15 2020 at 17:08):

you have to delete your browser cache

view this post on Zulip Patrick Werner (May 15 2020 at 17:08):

then the new english! version should appear :-)

view this post on Zulip Patrick Werner (May 15 2020 at 17:14):

you have to use https in the base url

view this post on Zulip Patrick Werner (May 15 2020 at 17:14):

the "ID" is the id of the DiagnosticReport

view this post on Zulip Jamie Jones (May 15 2020 at 17:19):

what would be really great is a list of all components to add instead of checkboxes ;)

view this post on Zulip Jamie Jones (May 15 2020 at 17:19):

if i want to show g.HGVS instead for example

view this post on Zulip Jamie Jones (May 15 2020 at 17:20):

submits enhancement request ticket

view this post on Zulip Patrick Werner (May 15 2020 at 17:25):

just discussed that with the dev. (the project didn't get much love recently)
So this is a web-component, we will change the component to accept a list of system/code pairs to define the columns

view this post on Zulip Patrick Werner (May 15 2020 at 17:26):

even thinking about getting the column header from a terminology server

view this post on Zulip Patrick Werner (May 15 2020 at 17:28):

Having this parameterized enables you to embed it static or dynamically.

view this post on Zulip Jamie Jones (May 15 2020 at 17:30):

:>

view this post on Zulip Jamie Jones (May 15 2020 at 17:37):

I added displays for my components and a text blurb on method, so http://hapi.fhir.org/baseR4/Observation/1167450 is approaching a canonical example for http://build.fhir.org/ig/HL7/genomics-reporting/diagnostic-implication.html

view this post on Zulip Bret H (May 15 2020 at 17:43):

add information to outcomes @Kevin Power @Patrick Werner @Jamie Jones whose putting the presentation from our group together?

view this post on Zulip Kevin Power (May 15 2020 at 17:48):

If everyone adds to the spreadsheet, I will make sure to get it rolled up into the connectathon document.

view this post on Zulip Kevin Power (May 15 2020 at 18:10):

Still waiting on updates from @Patrick Werner @Bob Dolin @Alexander Mankovich

view this post on Zulip Alexander Mankovich (May 15 2020 at 18:11):

working on it... last minute validation issues (par for the course)

view this post on Zulip Alexander Mankovich (May 15 2020 at 18:12):

@Jamie Jones not sure if ill have time to run your example through before reporting

view this post on Zulip Patrick Werner (May 15 2020 at 18:16):

Had dinner :neutral:

view this post on Zulip Patrick Werner (May 15 2020 at 18:17):

Will update in a minute

view this post on Zulip Kevin Power (May 15 2020 at 18:17):

Patrick Werner said:

Had dinner :neutral:

That is acceptable :slight_smile:

view this post on Zulip Patrick Werner (May 15 2020 at 18:38):

done.

view this post on Zulip Patrick Werner (May 15 2020 at 18:38):

i think i mixed up timezones.

view this post on Zulip Jamie Jones (May 15 2020 at 19:08):

I suggest we have a bulleted list of notable achievements for the track overall rather than listing them personally. Seems to be the norm in the doc, any objections?

view this post on Zulip Alexander Mankovich (May 15 2020 at 19:15):

fine with me. wish I could add more but going to need more time to resolve validation issues.

view this post on Zulip Kevin Power (May 15 2020 at 19:23):

I have updated/tweaked our section, take a look: https://docs.google.com/document/d/1B6FvP5IP83tuUPvOMQjZIR5jYyw4OSbahgRqnbkPZZ8/edit#heading=h.lgwdpo5z3xsj

view this post on Zulip Bret H (May 15 2020 at 19:28):

thanks for that Kevin. I tried to condense. I'm a bit wordy.

view this post on Zulip Kevin Power (May 15 2020 at 19:28):

I hope I split everything up ok :slight_smile:

view this post on Zulip Patrick Werner (May 15 2020 at 19:46):

Looking great! Thanks

view this post on Zulip Jamie Jones (May 15 2020 at 20:06):

http://hapi.fhir.org/baseR4/Observation/?component-code-value-concept=http://loinc.org|81252-9$https://www.ncbi.nlm.nih.gov/clinvar|653974&_revinclude=Observation:derived-from

view this post on Zulip Jamie Jones (May 15 2020 at 20:07):

one of the ACMG clinvar variants is also a CPIC hit - this example shows both a diagnostic implication and a therapeutic implication deriving from the same variant observation

view this post on Zulip Bret H (May 15 2020 at 20:09):

Jamie Jones said:

http://hapi.fhir.org/baseR4/Observation/?component-code-value-concept=http://loinc.org|81252-9$https://www.ncbi.nlm.nih.gov/clinvar|653974&_revinclude=Observation:derived-from

This is great! A very good example of what might happen in a report where a variant has both types of implications, and use of associated phenotype. Note the use of High Risk to communicate adverse event risk. a very nice example.

view this post on Zulip Jamie Jones (May 15 2020 at 20:11):

the context for 'asssociated-phenotype' is different--on the diagnostic implication it is implying there is a familial risk of Malignant hyperthermia, but in the therapeutic case, it is stating that phenotype as a concern for giving a (class of) medication.

view this post on Zulip Kevin Power (May 15 2020 at 20:16):

Nice! So the difference in context is interesting. "It's the same ... :thinking: ... but it's different" :slight_smile:

view this post on Zulip Jamie Jones (May 15 2020 at 20:17):

a phenotype of 'familial ...' or 'predisposition for ...' may be more appropriate for diagnostic cases. (The free table I pulled just had the risky phenotypes listed so that's what the example has)

view this post on Zulip Kevin Power (May 15 2020 at 20:19):

But on the Theraputic -Could it be misinterpreted as a treatment for Malignant Hyperthermia, instead of something that the patient is at risk of by taking the medication?

view this post on Zulip Kevin Power (May 15 2020 at 20:21):

The LOINC term description is pretty vague (as we have discussed):
The possible phenotype associated with the genetic variant found in this study.

view this post on Zulip Jamie Jones (May 15 2020 at 20:23):

yes--I'd like something more explicit for therapeutic.

view this post on Zulip Bret H (May 15 2020 at 20:24):

Yes. But we do not have a construct in our IG to make it explicit. There are several options. However the HIGH RISK

view this post on Zulip Bret H (May 15 2020 at 20:24):

is supposed to convey that there is a risk

view this post on Zulip Bret H (May 15 2020 at 20:25):

there should also be a recommendatiion. I'll dig up my notes. I provided some options in the past

view this post on Zulip Bret H (May 15 2020 at 20:25):

from other WGs

view this post on Zulip Kevin Power (May 15 2020 at 20:25):

Here is a test - How would each of us word what those implications are saying in a sentence?

view this post on Zulip Jamie Jones (May 15 2020 at 20:25):

i could have used "prognosis" instead of high-risk but i don't like it

view this post on Zulip Bret H (May 15 2020 at 20:26):

Is this better to cotinue in : https://chat.fhir.org/#narrow/stream/179197-genomics/topic/Stress.20Testing.20IG.20Implications.20with.20Examples

view this post on Zulip Jamie Jones (May 15 2020 at 20:27):

folks are probably ignoring the spam we are creating in this stream, good call

view this post on Zulip Bret H (May 15 2020 at 20:29):

thx. I would not want to lose your comments Kevin and Jamie on that topic for sure!

view this post on Zulip Bob Dolin (May 15 2020 at 21:30):

@Jamie Jones @Bret H I added in a normalization scenario. If you run this query on patient HG00407 and HG00406, you'll get back two representations of the same variant:

view this post on Zulip Bob Dolin (May 15 2020 at 21:30):

https://api-gacs.elimuinformatics.com/gacs/variants/HG00406/?start=11200220&end=11200240&refSeq=NC_000019.9

view this post on Zulip Bob Dolin (May 15 2020 at 21:31):

https://api-gacs.elimuinformatics.com/gacs/variants/HG00407/?start=11200220&end=11200240&refSeq=NC_000019.9

view this post on Zulip Bob Dolin (May 15 2020 at 21:31):

You can use NCBI services to see that they both resolve to the same canonical SPDI

view this post on Zulip Jamie Jones (May 15 2020 at 21:32):

that's not even considering any differences in reference sequence!

view this post on Zulip Jamie Jones (May 15 2020 at 21:33):

(which is the only downside i view in pushing for SPDI as a variation identifier)

view this post on Zulip Bob Dolin (May 15 2020 at 21:33):

Anyhow, this is where I think SPDI really shines - normalize the variants you get back (from whatever format), before comparing them against (normalized) ClinVar variants.

view this post on Zulip Bob Dolin (May 15 2020 at 21:35):

(deleted)

view this post on Zulip Jamie Jones (May 15 2020 at 21:56):

Great work this week folks! Look forward to a jira review next week of detected issues :)

view this post on Zulip Patrick Werner (May 16 2020 at 10:34):

Bob Dolin said:

Jamie Jones Bret H I added in a normalization scenario. If you run this query on patient HG00407 and HG00406, you'll get back two representations of the same variant:

thanks! A nice example showing the normalization problem.
I think this could be added to our ig in the context of a normalization page/paragraph?

view this post on Zulip Bob Dolin (May 18 2020 at 16:40):

@Patrick Werner Should we break out the normalization topic into its own zulip thread? I'd like to help with this. In addition to variants with precise endpoints (where, for instance, we can use SPDI normalization), I think we can also describe a strategy for 'normalizing' variants with imprecise endpoints, where, rather than normalizing to a common canonical form, we normalize to criteria that subsumes the variant. For instance, we can normalize CYP2D6*5 (whole gene deletion) to:

(outer-start<NC_000022.10:42522500 AND outer-end>NC_000022.10:42526883) AND ((dna-chg-type=DEL) OR (dna-chg-type=CNV AND copy-number<2))


Last updated: Apr 12 2022 at 19:14 UTC