- small fix for connectivity queries when
filtered=True
in the public dataset - queries against Github (for hierarchical annotations) will now use personal access token defined
in
GITHUB_PAT
if present; this avoids issues with rate limits
- (hierarchical) annotations can now be loaded from a specific (or just the latest) commit
- re-enabled synapse queries against the raw (
filtered=False
) synapse table for the public dataset
- fixed a bug when querying connectivity against live materialization
- fixed bugs in
get_somas
andis_valid_root
- make
is_proofread
play nicely with the public dataset (uses a different table for proofread neuron IDs) - add option to
get_cave_table
to fill in user info (name + affiliation) - bug fixes in
get_somas
,find_mat_version
,is_latest_root
andis_valid_root
Fixes a bug in search_annotations
when there are no cached versions.
Small bug fix release.
- We now prevent searches against live materialization in the public dataset.
- Make get
get_user_information
robust against missing IDs.
The default dataset is now the "public" dataset!
This release allows you to work with annotations (classes, types, etc) instead of
having to shuttle root IDs in and out of fafbseg
functions.
Annotation queries will download (and cache) data from https://github.com/flyconnectome/flywire_annotations which is currently principally based on Schlegel et al. (2023). We are planning to keep updating these annotations in the future.
We also renamed a bunch of functions to make things more consistent (see section on Breaking changes).
With this version, fafbseg
introduces a NeuronCriteria
class. It works
similar to that in neuprint-python
and can be passed to many functions that
previously only accepted root IDs:
>>> from fafbseg import flywire
>>> NC = flywire.NeuronCriteria
>>> flywire.search_annotations(NC(type='ps009', side='left'))
supervoxel_id root_id ... side nerve
0 78886867319895457 720575940620322497 ... left CV
>>> flywire.get_connectivity(NC(type='ps009', side='left'))
pre post weight
0 720575940635179359 720575940620322497 181
1 720575940631446855 720575940620322497 125
2 720575940608118283 720575940620322497 109
Please see the updated annotation tutorial for details.
- prior to version
3.0.0
, some functions accepted a materialization version asmat
and some asmaterialization
argument; with this version this argument is consistently namedmaterialization
; this mostly affects connectivity-related functions - the following functions have been renamed to avoid confusion:
list_annotation_tables()
->list_cave_tables()
get_annotations()
->get_cave_table()
create_annotation_table()
->create_cave_table()
get_annotation_table_info()
->get_cave_table_info()
- the following function have been renamed for consistency:
fetch_synapses()
->get_synapses()
fetch_adjacency()
->get_adjacency()
fetch_connectivity()
->get_connectivity()
synapse_counts()
->get_synapse_counts()
predict_transmitter()
->get_transmitter_predictions
fetch_leaderboard()
->get_leaderboard()
fetch_edit_history()
->get_edit_history()
l2_graph
->get_l2_graph
l2_skeleton
->get_l2_skeleton
l2_dotprops
->get_l2_dotprops
l2_info
->get_l2_info
- you can now query the flat
783
segmentation by usingdataset="flat_783"
- precomputed high-res skeletons for
783
have been made available; seeflywire.get_skeletons
One fix, one improvement:
flywire.fetch_connectivity
now allowsneuropils=True
to return edges broken down by neuropils- fix
flywire.predict_neuropils
withsingle_pred=True
Various fixes and improvements:
flywire.get_mesh_neuron
ignorelod
parameter if not applicableflywire.get_skeletons
now correctly loads radii information (requires up-to-date version ofnavis
)flywire.update_ids
is now much faster iftimestamp
is provided- fix live connectivity queries
- improved error messages for connectivity queries
Minor fixes and improvements:
- better handling of the CAVE secret
- improve
flywire.search_annotations
This is a major release with lots of under-the-hood reworks to accompany the public release of FlyWire.
With the publication of the two FlyWire papers on bioRxiv everyone access has to the
publicly released data - currently this corresponds to materialization version 630
.
Previously, many fafbseg.flywire
functions already had a dataset
parameter
that accepted either "production" or "sandbox". As of version 2.0.0
"public"
is also an accepted value:
>>> from fafbseg import flywire
>>> flywire.fetch_connectivity(720575940622670174, dataset='public')
Using materialization version 630
pre post weight
0 720575940622670174 720575940626637002 65
1 720575940626637002 720575940622670174 60
2 720575940628529896 720575940622670174 41
3 720575940622670174 720575940631383400 41
4 720575940622670174 720575940620266689 39
... ... ... ...
3453 720575940622670174 720575940547279839 1
3454 720575940622670174 720575940547426271 1
3455 720575940622670174 720575940547445727 1
3456 720575940622670174 720575940548226581 1
3457 720575940622670174 720575940538297971 1
The default for dataset
is still "production" but this can be changed by either
calling flywire.set_default_dataset
at the beginning of a session...
>>> flywire.set_default_dataset('public')
... or by setting an environment variable FLYWIRE_DEFAULT_DATASET="public"
.
The public data has a few idiosyncrasies, most of which we tried to abstract away. Some, however, remain: for example synapse/connectivity queries are more limited against the public data stack (see below).
Prior to v2.0.0
synapses and connectivity were fetched by querying the full
CAVE synapse table. For connectivity analyses in the FlyWire papers,
Sven Dorkenwald generated a synapse table (technically a "view") where he
deduplicated synapses and applied a higher confidence (cleft) score threshold of 50.
See here
for a full explanation (requires login with FlyWire account).
Corresponding functions such as flywire.fetch_synapses
have had their defaults
changed to filtered=True
and min_score=None
which makes it so that this
filtered synapse table is queried by default. We recommend sticking to these defaults.
Importantly, querying the originally full synapse table requires access to the production dataset and will not work with the "public" release version.
flywire.get_skeletons
downloads skeletons precomputed for the public (v630) release- added functions to query the hierarchical annotations (Classification column in Codex):
flywire.search_annotations
andflywire.get_hierarchical_annotations
- added function to query the community annotations:
flywire.search_community_annotations
flywire.get_annotation_tables
has been renamed toflywire.list_annotation_tables
- neuropils returned by synapse queries had their side (
_L
/_R
) flipped to compensate for the inversion during image acquisition of the FAFB volume and now refer to the correct side from the flies perspective flywire.encode_url
has been reworked and some of the parameters have been renamed