Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 02:41

    cmdcolin on fix_hot_reload

    (compare)

  • 02:41

    cmdcolin on main

    Fix hot reload using yarn resol… (compare)

  • 02:41
    cmdcolin closed #2657
  • 02:41
    cmdcolin closed #2656
  • 02:37

    cmdcolin on main

    [update docs] Add link to youtu… (compare)

  • 02:37
    cmdcolin closed #2655
  • 02:32
    codecov[bot] commented #2657
  • 02:23
    cmdcolin labeled #2657
  • 02:23
    cmdcolin unlabeled #2657
  • 02:20
    github-actions[bot] labeled #2657
  • 02:20
    cmdcolin opened #2657
  • 02:18

    cmdcolin on fix_hot_reload

    Fix hot reload using yarn resol… (compare)

  • 01:18
    cmdcolin commented #2656
  • 01:02
    cmdcolin commented #2656
  • 01:02
    cmdcolin opened #2656
  • 01:02
    cmdcolin labeled #2656
  • 00:14
    codecov[bot] commented #2571
  • 00:03
    codecov[bot] commented #2571
  • 00:03
    cmdcolin synchronize #2571
  • 00:03

    cmdcolin on 607_stats_estimation_v3

    Minor fixes Misc (compare)

Robert Buels
@rbuels
Oh that’s cool, you gonna go?
Colin Diesh
@cmdcolin
perhaps:)
it's free so why not
Robert Buels
@rbuels
Wonder if we can find some synergies between that working with crazy rearrangements
Colin Diesh
@cmdcolin
surely. even "non crazy"stuff benefits
bbimber
@bbimber
Hello - I'm hoping to get some advice. We're trying to make a plugin that filters variants in a VCF track based on whether specific samples are non-wild type. The logic is not hard (make sure the genotype of samples !== '"./." or "0/0"); however, has ~2500 samples. At least how we're doing this makes a very noticeable lag in loading. I experimented with pre-computing an array of the non-WT samples in the getFeatures() method of a custom VcfTabixAdapter; however, this code is called repeatedly whenever any rendering happens. Is there a place I could hook into the processing of VCF features that would let me efficiently pre-compute some information, and let that information persist? Alternately, is there another way I should think about approaching this problem?
Robert Buels
@rbuels
@bbimber I think a custom adapter is a good approach. What would probably help the performance of this a lot would be adding a cache of the features that your custom adapter is creating, so that the calls to getFeatures don't repeat the fetch/parse/filter steps
that cache would be in the custom adapter
bbimber
@bbimber
are there any existing examples of such a cache?
Robert Buels
@rbuels
i did some looking around just now, i don't see any good examples to template from
i can write an implementation sketch of it quickly, just a seec
bbimber
@bbimber
ok, thanks. is there anything particularly react or mobx-specific to this, vs. generic JS?
Robert Buels
@rbuels
no it's pretty generic js
38 replies
bbimber
@bbimber
@cmdcolin on #2554 you said something interesting I hope you could expand on here. you mention lazy parsing of genotypes. As noted above, we have a VCF with ~2400 samples. We previously never had code that did anything with samples until the details panel was opened. We are trying to implement code that lets the user filter sites based on specific samples having non-WT genotypes, and so we're starting to access genotype data much earlier and do this for all variants. What governs whether genotypes are parsed or not?
Colin Diesh
@cmdcolin
in the current code, the genotypes are always parsed and serialized to json, which is fairly slow
with #2554 , if you were accessing the genotypes for filtering, it would parse the genotypes but would not necessarily serialize to json
bbimber
@bbimber
ok
Colin Diesh
@cmdcolin
in some cases it could also (not implemented now, but if and when) only parse a specific genotype column perhaps
Colin Diesh
@cmdcolin
at some point might be interesting to make a bcf adapter too...
(binary vcf format)
bbimber
@bbimber
One more VCF question: in JBrowse 1 we could look up the VCF header, which is useful since it can translate from the INFO field keys into their labels. Can one do this in JB2? If so, is there by chance an example?
Garrett Stevens
@garrettjstevens
@bbimber if you have the adapter config, you can get the raw header string with our "CoreGetInfo" RPC call, example here: https://github.com/GMOD/jbrowse-components/blob/1d22d290b8974ad21f7ddf8787db10f631d05d8f/packages/core/ui/AboutDialog.tsx#L48-L51. A feature will also have the VCF header data stored in it that you can access, example for INFO here: https://github.com/GMOD/jbrowse-components/blob/00c4e05cca8d054ab3456423b43e1bbd0e24be8c/plugins/variants/src/StructuralVariantChordRenderer/ReactComponent.js#L32-L36
bbimber
@bbimber
Another possibly dumb question: when making a plugin/widget, the component is rendered as a modal. Can I call something to close that window? if the user clicks off the modal it closes, but I dont see how to close it with code
Colin Diesh
@cmdcolin
possibly something like getSession(widgetModel).hideWidget(widgetModel.id)
bbimber
@bbimber
hideWidget(model) works, rather than model.id
Scott Cain
@scottcain
@rbuels @hawrobin @cmdcolin : outreach call? I’m in google hangout
Robert Buels
@rbuels
yep coming
Robin Haw
@hawrobin
Sorry I have a clash today!
Scott Cain
@scottcain
@rbuels @cmdcolin are we really having an outreach call Monday at 9:00am? It’s in my calendar, but I am doubting it.
Robert Buels
@rbuels
Hmm no I don’t know how that got on there
I’ll delete it
Scott Cain
@scottcain
👍
Colin Diesh
@cmdcolin
spotted a jb2 svg export in the wild https://twitter.com/ilyavkirov/status/1467854553563512847
bbimber
@bbimber
Hey - i have a question on plugin config. We have a plugin that lets a user choose a custom coloring scheme. This include a custom renderer. By default, renders support the property 'color1', which can be JEXL to set feature color. Our custom renderer has another simple string property called 'palette'. If palette is non-null, we run code that takes that string, builds a JEXL expression, and then sets color1. This works fine if the user picks that interactively. However, I'd like to hook into somewhere such that if the initial rendererConfig JSON has 'palette', we execute code to set color1 right away. Is there a point where I can hook to add this kind of code?
4 replies
bbimber
@bbimber
Is there a way to remove a default menu item from a VCF track? we are currently adding menu items by overriding trackMenuItems() in a custom VariantDisplay class, but it's not clear whether i can remove default items
7 replies
Another question: our user base seems to have a hard time recognizing the track selector icon (we're using ReactLinearGenomeView). Has anyone encountered this and/or looked into more obvious ways to signal to users what to do? In our case, we load with one track pre-displayed, so there isnt the central 'Open Track Selector' button. For comparison, in JBrowse 1 the side panel was considerably more obvious
3 replies
Teresa Martinez
@teresam856
For anyone interested, here is a link to the jbrowse-jupyter https://github.com/GMOD/jbrowse-jupyter/tree/docs. All feedback is welcomed.
Junjun Zhang
@junjun-zhang
nice!
Robin Haw
@hawrobin
@scottcain @rbuels - do we want to do an ISMB 2022 tutorial? The deadline is monday.
Colin Diesh
@cmdcolin
rob is out on vacay right now just fyi
also, the tutorial for ismb says it's not generally used for presenting a specific software https://www.iscb.org/ismb2022-submissions/tutorials
Robin Haw
@hawrobin
opps, thx @cmdcolin. You are correct, it would be from a data viz or workflow persective. I was just looking over the tutorials from last year and they did not reflect a software demo style.
i was also surprised too see a relatively shortlist of tutorials! In previous years, their had been more.
Colin Diesh
@cmdcolin
i suppose if we want to focus more on jbrowse, probably go for a technology track like the link says
1 reply
Junjun Zhang
@junjun-zhang
anyone knows why we use a particular version of the mst library: "mobx-state-tree": "3.14.1", latest release is 5.1.0
Garrett Stevens
@garrettjstevens
I think it's because we use mobx v5, and mobx-state-tree >=v4 requires mobx v6. There are some breaking changes in mobx v6 and we haven't made it a priority to get things working with that version.
Also, we re-export mobx, mobx-state-tree, react, material-ui, and others for plugins to use, so if we upgrade them we risk breaking plugins. Those breaking changes may have to happen someday, but we'll have to plan for it.
Junjun Zhang
@junjun-zhang
thanks @garrettjstevens in terms of plugin, in the isoform inspector I am trying to use the same major versions of the main libraries as you listed, but still try to make sure it works with newer ones