Can I run NicheCompass with zebrafish Visium data?

In the paper, I remember it saying that NicheCompass can be applied to spatial transcriptomics data at both single cell resolution and spot resolution. However, I think it was not tested with Visium data. Is it possible to use it with Visium data? I have both unannotated and unprocessed Visium data as well as Visium data after applying cell2location and deconvolution. Should I use the annotated and deconvolved data? Or is there another requirement for using spot resolution data? Because even after deconvolution, the structure looks significantly different. There aren't single cells in the adata.obs rows. There are only spots. And the spots have cell abundances in adata.obsm but it of course does not say which cell belongs to which cell type.
Lastly, the provided data only includes human_mouse_gene_orthologs.csv, mouse networks, and mouse metabolite enzymes & sensors. Do you have a suggestion about where to find the zebrafish versions?
Many thanks in advance!

Hi @hkeremcil,
Yes, it is also possible to use it with Visium data. We have tested it with Visium data as well, and, in the manuscript, we use a multimodal dataset that also has spot-level resolution. You just need to be aware that in the downstream analyses (e.g. when you create the cell-cell communication networks), you can't interpret it as networks of cells but rather networks of spots.
For the mapping of orthologs, you can use Ensembl and follow this documentation.

Hello @sebastianbirk,
Thank you very much for your response. This is insightful and it is good to know that it will work with Visium data. However, a very obvious problem emerges when we use spot-resolution data. The rows in adata.obs do not have cell types because they are not cells but instead spots. But the code requires a 'Main_molecular_cell_type' column in adata.obs, specifically in this part:
"""
cell_type_colors = create_new_color_dict(
adata=adata,
cat_key=cell_type_key)
"""
It gives an error if that column is missing. Spots cannot have cell types, as far as I know, since they contain multiple cells. How did you solve this issue when you used that multimodal dataset with spot-level resolution? Do I need to change the source code or are there different functions for data with spot-level resolution?
Since I applied the cell2location pipeline, I have cell type abundance values for each spot and cell type. I can use the most abundant cell types in each spot to fill the "Main_molecular_cell_type" column, but that eliminates most of the cell types, especially the immune cells we are interested in, and it only leaves a few abundant cell types. So, I am assuming there must be a different solution.
Thanks so much for your attention and support!

This code is not part of the model training workflow, so you could just skip it. To train NicheCompass, no labels are required. If you want to visualize the data (for which this code snippet is meant), then you would have to create some labels on spot level. This could be the majority cell type or also some more fine-grained label that you retrieve based on the spot's cell type abundance. Hope that helps.

Thank you very much @sebastianbirk, I hadn't realized that it wasn't required for the training. That solves the problem! However, I do have another problem about using zebrafish data. I have the zebrafish versions of the gene orthologs file as well as metabolite_enzymes and metabolite_sensors files. But it still does not let me use any species other than human and mouse.
# Retrieve MEBOCOST GPs (source: enzyme genes; target: sensor genes)
mebocost_gp_dict = extract_gp_dict_from_mebocost_es_interactions(
    dir_path=mebocost_enzyme_sensor_interactions_folder_path,
    species=species,
    plot_gp_gene_count_distributions=True)

This code gives:
ValueError: Species should be either human or mouse.
Changing the source code to make the function accept other species results in errors in the following code snippets. Since I have the zebrafish versions of everything, I thought it could work if I just kept the species as 'mouse' and renamed everything accordingly while keeping the genes in those files as zebrafish genes.
But that still gives me nichenet_lr_network_v2_mouse.csv and nichenet_ligand_target_matrix_v2_mouse.csv files that contain mouse genes, not zebrafish. Assuming I cannot readily find and download the zebrafish versions of these files, can I generate them myself? Would that work or would I still encounter errors due to using incompatible data in the later steps?
Thank you very much in advance! I genuinely appreciate the support and guidance. NicheCompass is a wonderful pipeline and I really hope I can make it work.


[BUG] Push tag events trigger two workflows simultaneously

Describe the bug
Both the "main" and "tag" workflows are triggered when I pushed a new tag.
To Reproduce
Steps to reproduce the behavior:

git tag v0.3.0
git push --tags
Observe the GHA page, two workflows triggered at the same time

Expected behavior
Pushing tags should only trigger the "tag" GHA workflow.
Screenshots

Additional context
N/A

It's just a false alarm. We hadn't noticed such a situation for a while.


Job stats bug

These are the logs from one job in Pachyderm 1.6.3:
"started": "2017-10-30T15:27:50.073855757Z",   "finished": "2017-10-30T16:10:57.077443322Z",   "outputCommit": {     "repo": {       "name": "outputcommit"     },     "id": "3ab40acbb8c543ffa1b5ce4bc39898ec"   },   "state": "JOB_SUCCESS",   "outputRepo": {     "name": "outputrepo"   },   "outputBranch": "master",   "dataProcessed": "25",   "dataTotal": "25",   "stats": {     "downloadTime": "113.759952525s",     "processTime": "7156.397069079s",     "uploadTime": "28.758669872s",     "downloadBytes": "1896638187",     "uploadBytes": "25625050"   },
Note that the sum of downloadTime+processTime+uploadTime does not match with the real total duration of the job, which can be deduced from the started and finished values. What seems to be happening is that the stats data is accumulating after reprocessing a pipeline using update-pipeline --reprocess, despite a separate independent job is created.

Interesting. Thanks for reporting @jonandernovella. @jdoliner thoughts here?

downloadTime+processTime+uploadTime does not match with the real total duration of the job

They shouldn't match, a lot more goes into a job than download, process, upload. Other sources of latency are:

waiting for k8s to schedule the pods
master election of the pods
reading and merging output trees
network latency all over the place

Most of these things are hard to measure and will have very little meaning to users so we don't include more fine grained measurements of them.

Solved. I was not aware about the parallelism. The total processing time in this case to the sum of all nodes.


Comment:Step-Basic-About-Hooks-2

Comment:Step-Basic-About-Hooks-2
Need more code samples than images

Go to the API section, core, common hooks. There's an example for every hook.


[BUG] Unable to expand original note when replying

Describe the bug
As per subject, the "Show more" button does nothing or is absent.

App Version 0.92.1

I was about to open an issue about this, haha, Thanks.

For anyone willing to look at this: the problem is in ui/actions/NewPostView.kt line 361. The row which contains the original note has a height constrain of 200 dp, solutions might be:

Add a verticalScroll to this row
Remove the height constrain
Add a paramether to NoteCompose to specify the note height when collapsed (when the "show more" button is visible)

The new post screen has had so many bugs with dynamic content that we had to fix it to 200.dp to solve some of them.
The video below demonstrates some of this. The massive black space between the buttons and the keyboard randomly appears and the randomness seems to get worse when the replying post's content is bigger.
I have looked at this code for so long (months) and I can't find the culprit.
The black box is also not always the same size, which is very triggering.
Screen_recording_20241010_132222.webm

We could try to convert it to a route to see if it improves.

I am starting to hate these popup-based designs. (old stuff)

Sure it would be more appropriate, it's a bit too crowded for a popup. I will update here if I implement something.

@vitorpamplona if you have problems with the current components, a good and simple alternative is to have first the compose area, that expands itself as the user add more lines, and below put the full original note. This way with a simple scroll up the user can review the original note, and then scrolling down go back to composing. And this happens only if needed, without always wasting top screen valuable space.
I would also move the submit as floating button to the bottom-right; having the original note at the bottom it never covers the user's text.

I made the changes to make NewPostScreen route based, seems to solve the issue and I haven't found any bug. Had to change other files to fix the imports, as other components used some in the NewPostView (which I moved to screen>loggedIn, maybe common components should be put in another file?). I will make a pull request now but it should be tested some more.

This is already fixed and can be closed, right?

Not released yet. You may want to wait closing it until you have verified the fix?

Not released yet. You may want to wait closing it until you have verified the fix?

I installed with Obtainium, so I verified.

Feel free to close!


Roc mb-5846 edit authorized weight

Description
Changes update move order handler to be able to edit the authorized weight
Reviewer Notes

Had to convert the update move order service to be a transaction because it seems like ValidateAndUpdate only updates associations if you are assigning new associations not changing columns of an association

Setup
make server_run
make server_test
Code Review Verification Steps

[ ] Request review from a member of a different team.
[ ] Have the Jira acceptance criteria been met for this change?

References

Jira story for this change

Warnings

:warning:
Please add the JIRA issue key to the PR title (e.g. MB-123)

  Generated by :no_entry_sign: dangerJS against 5731b9851f61aa7038e814ae54c6bec7da231dfa

@duncan-truss I fixed all the error handling stuff and had one last question on the entitlement payload comment


Upgrade all deps

Our package-lock.json Is a bit out of date and there are some security issues in lodash that are being automatically detected by github even though they don't apply to us. Any lodash issue do not apply because they would only affect developers in the compilation phase and we already run plenty of arbitrary code.
That said it's good to keep our dependencies up to date and this PR accomplishes that.
this PR also bumps us to playwright version 1.11.0

:broken_heart: Tests Failed

the below badges are clickable and redirect to their specific view in the CI or DOCS

Expand to view the summary

Build stats

Build Cause: Pull request #279 opened

Start Time: 2021-05-14T13:47:00.497+0000

Duration: 8 min 42 sec

Commit: 17b49d86fb455699954e0fa0d78c875beb133f6c

Test stats :test_tube:

Test
Results

Failed
1

Passed
82

Skipped
0

Total
83

Trends :test_tube:

Test errors
Expand to view the tests failures
Test / network timings for aborted requests – network timings for aborted requests

no error details
Expand to view the stacktrace
 Error: expect(received).toBe(expected) // Object.is equality

Expected: 2
Received: 1
    at Object.<anonymous> (/var/lib/jenkins/workspace/nt-rum_elastic-synthetics_PR-279/src/github.com/elastic/synthetics/__tests__/plugins/network.test.ts:134:28)

Steps errors
Expand to view the steps failures

Runs the tests

Took 0 min 25 sec . View more details on here
Description: ./node_modules/.bin/jest --ci --reporters=default --reporters=jest-junit

Log output
Expand to view the last 100 lines of log output

[2021-05-14T13:53:26.448Z] + npm run build
[2021-05-14T13:53:26.448Z]
[2021-05-14T13:53:26.448Z] ><EMAIL_ADDRESS>build /var/lib/jenkins/workspace/nt-rum_elastic-synthetics_PR-279/src/github.com/elastic/synthetics
[2021-05-14T13:53:26.448Z] > tsc
[2021-05-14T13:53:26.448Z]
[2021-05-14T13:53:30.132Z] Timeout set to expire in 5 min 0 sec
[2021-05-14T13:53:31.056Z] Running in /var/lib/jenkins/workspace/nt-rum_elastic-synthetics_PR-279/src/github.com/elastic/synthetics
[2021-05-14T13:54:05.221Z] + set +x
[2021-05-14T13:54:05.221Z] => nvm is already installed in /var/lib/jenkins/workspace/nt-rum_elastic-synthetics_PR-279/.nvm, trying to update using git
[2021-05-14T13:54:05.794Z]
=> => Compressing and cleaning up git repository
[2021-05-14T13:54:05.794Z]
[2021-05-14T13:54:05.794Z] => Profile not found. Tried ~/.bashrc, ~/.bash_profile, ~/.zshrc, and ~/.profile.
[2021-05-14T13:54:05.794Z] => Create one of them and run this script again
[2021-05-14T13:54:05.794Z]    OR
[2021-05-14T13:54:05.794Z] => Append the following lines to the correct file yourself:
[2021-05-14T13:54:05.794Z]
[2021-05-14T13:54:05.794Z] export NVM_DIR="$HOME/.nvm"
[2021-05-14T13:54:05.794Z] [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[2021-05-14T13:54:05.794Z]
[2021-05-14T13:54:07.714Z] => Close and reopen your terminal to start using nvm or run the following to use it now:
[2021-05-14T13:54:07.714Z]
[2021-05-14T13:54:07.714Z] export NVM_DIR="$HOME/.nvm"
[2021-05-14T13:54:07.714Z] [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[2021-05-14T13:54:07.714Z] Installing latest LTS version.
[2021-05-14T13:54:07.714Z] v14.17.0 is already installed.
[2021-05-14T13:54:07.975Z] Now using node v14.17.0 (npm v6.14.13)
[2021-05-14T13:54:08.107Z] Running in /var/lib/jenkins/workspace/nt-rum_elastic-synthetics_PR-279/src/github.com/elastic/synthetics
[2021-05-14T13:54:08.450Z] + npm add --dev jest-junit
[2021-05-14T13:54:08.715Z] npm WARN install Usage of the `--dev` option is deprecated. Use `--also=dev` instead.
[2021-05-14T13:54:14.013Z] npm WARN<EMAIL_ADDRESS>No repository field.
[2021-05-14T13:54:14.014Z] npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules/fsevents):
[2021-05-14T13:54:14.014Z] npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
[2021-05-14T13:54:14.014Z]
[2021-05-14T13:54:14.014Z] +<EMAIL_ADDRESS>[2021-05-14T13:54:14.014Z] added 5 packages from 14 contributors and audited 693 packages in 4.958s
[2021-05-14T13:54:14.014Z]
[2021-05-14T13:54:14.014Z] 59 packages are looking for funding
[2021-05-14T13:54:14.014Z]   run `npm fund` for details
[2021-05-14T13:54:14.014Z]
[2021-05-14T13:54:14.014Z] found 0 vulnerabilities
[2021-05-14T13:54:14.014Z]
[2021-05-14T13:54:14.337Z] + ./node_modules/.bin/jest --ci --reporters=default --reporters=jest-junit
[2021-05-14T13:54:17.671Z]
[2021-05-14T13:54:17.671Z] Running without BrowserService
[2021-05-14T13:54:27.738Z] PASS __tests__/reporters/json.test.ts (9.636 s)
[2021-05-14T13:54:28.708Z] PASS __tests__/helper.test.ts
[2021-05-14T13:54:29.658Z] PASS __tests__/reporters/junit.test.ts
[2021-05-14T13:54:29.658Z] FAIL __tests__/plugins/network.test.ts (11.853 s)
[2021-05-14T13:54:29.658Z]   ● network › timings for aborted requests
[2021-05-14T13:54:29.658Z]
[2021-05-14T13:54:29.658Z]     expect(received).toBe(expected) // Object.is equality
[2021-05-14T13:54:29.658Z]
[2021-05-14T13:54:29.658Z]     Expected: 2
[2021-05-14T13:54:29.658Z]     Received: 1
[2021-05-14T13:54:29.658Z]
[2021-05-14T13:54:29.658Z]       132 |     await Gatherer.stop();
[2021-05-14T13:54:29.658Z]       133 |     const netinfo = await network.stop();
[2021-05-14T13:54:29.658Z]     > 134 |     expect(netinfo.length).toBe(2);
[2021-05-14T13:54:29.658Z]           |                            ^
[2021-05-14T13:54:29.658Z]       135 |     expect(netinfo[1]).toMatchObject({
[2021-05-14T13:54:29.658Z]       136 |       url: `${server.PREFIX}/delay100`,
[2021-05-14T13:54:29.658Z]       137 |       status: 0,
[2021-05-14T13:54:29.658Z]
[2021-05-14T13:54:29.658Z]       at Object.<anonymous> (__tests__/plugins/network.test.ts:134:28)
[2021-05-14T13:54:29.658Z]
[2021-05-14T13:54:31.056Z] PASS __tests__/core/index.test.ts
[2021-05-14T13:54:31.056Z] PASS __tests__/core/runner.test.ts (13.146 s)
[2021-05-14T13:54:32.018Z] PASS __tests__/reporters/base.test.ts
[2021-05-14T13:54:32.983Z] PASS __tests__/index.test.ts
[2021-05-14T13:54:33.564Z] PASS __tests__/plugins/browser-console.test.ts
[2021-05-14T13:54:34.578Z] PASS __tests__/core/gatherer.test.ts
[2021-05-14T13:54:35.152Z] PASS __tests__/plugins/performance.test.ts
[2021-05-14T13:54:36.099Z] PASS __tests__/cli.test.ts (6.538 s)
[2021-05-14T13:54:36.099Z] PASS __tests__/config.test.ts
[2021-05-14T13:54:36.360Z] PASS __tests__/plugins/tracing.test.ts
[2021-05-14T13:54:37.329Z] PASS __tests__/plugins/plugin-manager.test.ts
[2021-05-14T13:54:37.593Z] PASS __tests__/core/logger.test.ts
[2021-05-14T13:54:37.856Z] PASS __tests__/core/browser-service.test.ts
[2021-05-14T13:54:38.117Z] PASS __tests__/dsl/journey.test.ts
[2021-05-14T13:54:38.691Z] A worker process has failed to exit gracefully and has been force exited. This is likely caused by tests leaking due to improper teardown. Try running with --detectOpenHandles to find leaks.
[2021-05-14T13:54:38.691Z]
[2021-05-14T13:54:38.691Z] Test Suites: 1 failed, 17 passed, 18 total
[2021-05-14T13:54:38.691Z] Tests:       1 failed, 68 passed, 69 total
[2021-05-14T13:54:38.691Z] Snapshots:   8 passed, 8 total
[2021-05-14T13:54:38.691Z] Time:        21.09 s
[2021-05-14T13:54:38.691Z] Ran all test suites.
[2021-05-14T13:54:39.798Z] Post stage
[2021-05-14T13:54:39.831Z] Recording test results
[2021-05-14T13:54:39.924Z] [Checks API] No suitable checks publisher found.
[2021-05-14T13:54:40.141Z] Stage "E2e Test" skipped due to earlier failure(s)
[2021-05-14T13:54:40.248Z] Stage "Release" skipped due to earlier failure(s)
[2021-05-14T13:54:40.298Z] Stage "Release" skipped due to earlier failure(s)
[2021-05-14T13:54:40.405Z] Stage "Release" skipped due to earlier failure(s)
[2021-05-14T13:54:41.634Z] Running on worker-854309 in /var/lib/jenkins/workspace/nt-rum_elastic-synthetics_PR-279
[2021-05-14T13:54:41.721Z] [INFO] getVaultSecret: Getting secrets
[2021-05-14T13:54:41.781Z] Masking supported pattern matches of $VAULT_ADDR or $VAULT_ROLE_ID or $VAULT_SECRET_ID
[2021-05-14T13:54:44.039Z] + chmod 755 generate-build-data.sh
[2021-05-14T13:54:44.039Z] + ./generate-build-data.sh https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-rum/elastic-synthetics/PR-279/ https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-rum/elastic-synthetics/PR-279/runs/1 FAILURE 462111
[2021-05-14T13:54:44.039Z] INFO: curl https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-rum/elastic-synthetics/PR-279/runs/1/steps/?limit=10000 -o steps-info.json
[2021-05-14T13:54:46.321Z] INFO: curl https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-rum/elastic-synthetics/PR-279/runs/1/tests/?status=FAILED -o tests-errors.json


Added Face Recognition System project

Pull Request for PyVerse 💡
Issue Title :  Face Recognition System #119

Info about the related issue (Aim of the project) : The aim of this project is to develop a real-time face recognition attendance system that uses a combination of object detection (YOLOv8) and facial recognition technologies. The system allows for accurate identification of individuals from images and records their attendance automatically.
Name: Anirudh P S
GitHub ID: anirudh-248
Email ID<EMAIL_ADDRESS>Idenitfy yourself: (Mention in which program you are contributing in. Eg. For a WoB 2024 participant it's, WoB Participant) GSSoC Contributor / Hacktoberfest

Closes: #119
Describe the add-ons or changes you've made 📃
This project implements a face recognition-based attendance system using Python, integrating the YOLOv8 model for face detection and the face_recognition library for facial recognition. The system allows users to upload images, detects faces using the YOLOv8 model, and then compares the detected faces with a set of known face encodings to recognize individuals. Once identified, the system automatically marks attendance and records it in a CSV file, distinguishing between those present and absent.
Type of change ☑
What sort of change have you made:

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Code style update (formatting, local variables)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested? ⚙
The real-time face recognition attendance system was tested in various ways:

Unit Testing: Ensured YOLOv8 accurately detects faces and face_recognition correctly matches them with known encodings.
Integration Testing: Verified the Streamlit interface allows seamless image upload and processes results smoothly, while the CSV logs attendance accurately.
Performance Testing: Measured the system’s processing speed, confirming it works in real-time.
Edge Case Testing: Handled unknown faces and multiple people in one image effectively.
Real-World Testing: Simulated real-world scenarios (e.g., classrooms), with accurate attendance tracking.
Overall, the system performed reliably across various conditions.

Checklist: ☑

[x] My code follows the guidelines of this project.
[x] I have performed a self-review of my own code.
[x] I have commented my code, particularly wherever it was hard to understand.
[x] I have made corresponding changes to the documentation.
[x] My changes generate no new warnings.
[x] I have added things that prove my fix is effective or that my feature works.
[x] Any dependent changes have been merged and published in downstream modules.

@UTSAVS26 Please review this PR and let me know if any changes are required.

I have added the attendance feature along with the face recognition and the project can be run by providing image or video input.


F3x Crashes Players & Servers

What are the steps that lead to the bug occurring? Or, how frequently does the bug occur?
Each time we use f3x command
What would be the normally expected or desired result?
f3x
What is the actual result (the bug)?
crash
What is the impact of this bug?
no f3x
(Any additional context or information eg. in the form of error messages or screenshots.)
cats

i agreee

What are the steps that lead to the bug occurring? Or, how frequently does the bug occur?
Each time we use f3x command
What would be the normally expected or desired result?
f3x
What is the actual result (the bug)?
crash
What is the impact of this bug?
no f3x
(Any additional context or information eg. in the form of error messages or screenshots.)
cats

Can't reproduce this. Where does this occur, maybe something specific on your end causes the crash.

Can't repro


Make it work with the latest version of transformers

There are speedups and memory savings implemented in the latest version.

Done


Visibility issue fix on build process (hide-for-large helper class)

After the build process, who has the inliner task, the .hide-for-large helper doesn`t work.
This will fix this problem.

This doesn't totally work for me? I had to remove !important' from the .hide-for-large` class too.

That is a weird solution to increase thr sepcifity and not really a solution.
Also it seems there are commits which should not be in this PR and which are not related to the PR.


udpsend and udpecho, ethernet send/echo

these two performance benchmark tools can use some improvements.

first, syntax-wise, change it to use command line rather than >>. The example to use to mimic can be "iperf3". you can also look at "nping" (from nmap) and other tools.
combine the udp and ethernet tools into one command line, and use options like -udp -ethernet to separate them
printing results similar to iperf to user
should be ok to run in background, esp. the server side.
command line options for all configurations.

syntax of twiperf changed to be similar like linux iperf in following commit
https://github.com/twister2016/twister/commit/f853275a052fd81c1b15bac38739c3fe0409dd82
-u -e options implemented for udp and ethernet traffic respectively in following commit
https://github.com/twister2016/twister/commit/f9e650bb3ad3f0b7413b94f883844f67b4ef7657
printing changed to linux like iperf in following commit
https://github.com/twister2016/twister/commit/93189285a145fc47aa8d3ac706eb8308fdea5020
Applications will be able to run in background when twister daemon has been created. Twister daemon will be developed in Sprint 2.
Command line options for all configurations are enabled for supported functionalites.

Note: twudpecho, twudpsend and twetherecho are deprecated. twiperf will provide their respective functionlities.


Another analyser error.

Analyzer Feedback from IntelliJ
Version information

IDEA 183.2635.17
2.1.0-dev.5.0
WS-183.2635.17, JRE 1.8.0_152-release-1293-b10x64 JetBrains s.r.o, OS Mac OS X(x86_64) v10.13.6, screens 2560x1440, 1200x1920

Exception
Please append the contents of:
file:///private/var/folders/k3/rpf30xp576gd3b7wdpvvyg2r0000gn/T/report.txt
Dart analysis server, SDK version 2.1.0-dev.5.0, server version 1.20.5, error: Analysis failed: /Users/rayk/Projects/app/lib/src/services/state/root.dart
Exception: Element not found in summary: package:app/src/services/state/root.dart

I also got that error from Android Studio today, but build always success without any error. Everything is ok now after i do:
  -  final Completer _sinkDone = Completer();
  + final Completer<bool> _sinkDone = Completer();

Hopefully fixed by e648d63bedc2a4decb3b8cbcf0f2e1c44db960b0.  Unfortunately since we don't have a reliable repro we will have to wait and see.  I'll reopen if a similar problem is seen in a version including this commit.