-
Notifications
You must be signed in to change notification settings - Fork 63
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
Add sequence track for both read and reference genome in the "Linear read vs ref" comparison #1699
Conversation
708de07
to
1883cc1
Compare
Now automatically opens both the reference genome's sequence track and the "read sequence" track, which was quite helpful for properly visualizing the comparison...this also uncovered a bug in the read vs ref (ebcbfa6) that was missed before...quite helpful to see the underlying sequence |
Codecov Report
@@ Coverage Diff @@
## master #1699 +/- ##
==========================================
- Coverage 59.18% 59.02% -0.17%
==========================================
Files 446 446
Lines 20480 20535 +55
Branches 4832 4851 +19
==========================================
- Hits 12121 12120 -1
- Misses 8059 8115 +56
Partials 300 300
Continue to review full report at Codecov.
|
9d10e1b
to
31f7313
Compare
Wow this is a considerable improvement I think |
adc2e6b
to
20f9575
Compare
@elliothershberg thanks i think there is a real need to visualize insertions. even this current strategy isn't that great since it is only 1-read-at-a-time but this information about insertions is otherwise totally hidden from users without being able to see the sequence |
Adding sequence track of course can help things besides insertions but insertions can really benefit...can possibly see things like (tri-nucleotide)repeat expansion |
b225f76
to
22e1fda
Compare
The concerns mentioned in the original post have been solved using some various techniques It continues to elaborate the concept of the "view assembly" which exists outside of the assembly manager So now we have these things: a) the code does a redispatch request to find the primary alignment if the user had selected the supplementary part of a split alignment |
dbe1533
to
07d4907
Compare
I marked this as ready for review. I think probably the most notable review point would be the continued usage of viewAssemblyConfigs instead of assemblyManager This is a method for the "read vs ref" to have a "read assembly" Any concerns about this? |
Possible alternative approach to the viewAssemblyConfigs:
xref #1445 |
After doing the rubber duck debugging in the above post and considering the options that I listed kind of were not going anywhere, I went "full sessionAssemblies" and so now the read vs ref comparison performs session.addAssembly and when the view is destroyed it performs a session.removeAssembly. |
Also removed the notion of the assemblyManager.addAssembly allowing SnapshotOrInstance (changed to Instance) |
….addAssembly can take a snapshot
4e978d6
to
2542959
Compare
In general I've avoided having the assemblyManager have a handle on the session to tried and keep it a bit more independent of an entity, but I guess that not totally necessary. As long as it handles switching from a session with a session assembly to one without and vice versa, it should be fine. Another option could be to use an ephemeral assembly config, xref #1647 |
I think I actually want the assembly to be persisted and not ephemeral though, so that a read vs ref can be shared |
plugins/config/src/FromConfigAdapter/FromConfigSequenceAdapter.ts
Outdated
Show resolved
Hide resolved
plugins/linear-comparative-view/src/LinearComparativeView/model.ts
Outdated
Show resolved
Hide resolved
beforeDestroy() { | ||
const session = getSession(self) | ||
self.assemblyNames.forEach(name => { | ||
if (name.endsWith('-temp')) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i think use something more specific than '-temp' in case other views are doing the same thing, so you don't delete their temp assemblies.
actually probably need to use this view's unique id to establish ownership so you don't delete temp assemblies from other instances of LinearComparativeView
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the -temp concept is created before the view is created so no view.id available, also only looks in the view's assemblies so the "damage" should be minimal
plugins/linear-genome-view/src/LinearGenomeView/components/SequenceDialog.tsx
Outdated
Show resolved
Hide resolved
plugins/linear-genome-view/src/LinearGenomeView/components/SequenceDialog.tsx
Outdated
Show resolved
Hide resolved
good to merge when those little comments are addressed |
e169160
to
d9641b0
Compare
2c018ab
to
1e0643b
Compare
1e0643b
to
f65b2b0
Compare
The FromConfigSequenceAdapter now makes no attempt to combine multiple features from the config when doing requests. Rather than try to do this somewhat complicated behavior it just tries to do it in a more simple manner....this then returns a single feature that has the feat.get('seq') match the region being requested @elliothershberg @garrettjstevens |
if that behavior is needed we can add it and refine tests for it, i think the existing code was incomplete for that case |
This adds a sequence track to read vs ref comparisons, which I thought could help detailed investigations (like seeing a repeat expansion, or similar)
Note 1: This may need qualification because it can only be done on the primary alignment, which could be obtained via redispatching or just made a qualification of this
Note 2: Get sequence on this sequence track produces error "failed to find assembly..." because the "read assembly" is not formally added to the assembly manager, which could be something to reconsider possibly
Note 3: Sort of similar 2, but this was sort of difficult to debug because assemblyManager produced an infinite wait on not found assemblyName instead of any error