Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1127 commits
Select commit Hold shift + click to select a range
2b7535f
hot fix is latest roots
sdorkenw Jun 3, 2021
2577ed6
middle auth upgrade
sdorkenw Jun 4, 2021
ef85b39
updated middle auth
sdorkenw Jun 4, 2021
d818590
Use get_activated_edges in undo operation (#315)
kaikue Jun 4, 2021
01cffca
middle auth client version change
sdorkenw Jun 4, 2021
aa5e3a3
added root timestamp endpoint
sdorkenw Jun 10, 2021
675cdaa
Root timestamp endpoint for pcg v2 (#322)
sdorkenw Jun 10, 2021
459f89f
Merge branch 'akhilesh-unit-tests' of https://github.com/seung-lab/Py…
sdorkenw Jun 10, 2021
e4a7caf
bug fix in get_root_timestamp
sdorkenw Jun 10, 2021
0ae9b6b
bug fix in is_latest_roots
sdorkenw Jun 10, 2021
dc57db9
updated middle auth client req and uwsgi processes
sdorkenw Jun 17, 2021
8650499
Virtual tables timestamp ceiling (#327)
fcollman Jun 18, 2021
ace52bf
Don't include undone operations in all_user_operations (#324)
kaikue Jun 21, 2021
25cef6e
fix: remove faulty chunk bounds calculation
akhileshh Jun 22, 2021
d06dd14
adding AUTH_SERVICE_NAMESPACE (#329)
fcollman Jun 24, 2021
6d4a096
port history changes from v1 to v2 (#326)
akhileshh Jun 24, 2021
c27c2de
fixing handle_root_timestamps (#334)
fcollman Jun 24, 2021
bafdaf1
bumping middle auth client (#331)
fcollman Jun 24, 2021
3ee0028
adding delta roots endpoint (#325)
fcollman Jun 24, 2021
fd41785
fix: missing history changes
akhileshh Jul 1, 2021
edf93b8
fix: missing history changes (#337)
akhileshh Jul 6, 2021
1ec94f4
Remap public fixes (#336)
fcollman Jul 8, 2021
d8551a0
added dataframes to json encoder
sdorkenw Jul 9, 2021
46cea44
import fix
sdorkenw Jul 9, 2021
3e23ad8
Merge branch 'akhilesh-unit-tests' of https://github.com/seung-lab/Py…
akhileshh Jul 12, 2021
d755684
fix: return value already converted with node_link_data (#339)
akhileshh Jul 15, 2021
bb30f91
implemented multi endpoint for lineage graph (#340)
sdorkenw Jul 16, 2021
578278c
updated middle auth client 3.6.4 (terms of service)
chrisj Jul 16, 2021
e0b6c9e
fix: get_subgraph_nodes for supervoxel (#342)
manuel-castro Jul 19, 2021
d915671
fix operation status and exception in log entries for undo and redo o…
kaikue Aug 17, 2021
178b2d7
port supervoxel id lookup (#344)
akhileshh Aug 17, 2021
493580a
making change log public (#343)
fcollman Aug 17, 2021
3cb9a4e
fixing mesh directory to be read from custom_data (#347)
fcollman Aug 22, 2021
5d429ec
fix: ignore supervoxels in sv lookup (#349)
akhileshh Aug 23, 2021
82ae75c
fix partial split undo precondition check (#350)
kaikue Sep 1, 2021
6e17143
remesh pubsub v2 (#353)
akhileshh Sep 29, 2021
59d43f5
fix: formatting changed the data type (#356)
akhileshh Sep 29, 2021
b55fd03
run gc collect after each job v2
akhileshh Sep 29, 2021
7426bcf
add skip_operation_ids parameter to rollback, also fix missing is_pri…
kaikue Oct 1, 2021
61fc6bd
run gc collect after each job v2 (#357)
akhileshh Oct 1, 2021
db88954
pinning json schema (#359)
fcollman Oct 1, 2021
d4eb766
Merge branch 'pcgv2' of https://github.com/seung-lab/PyChunkedGraph i…
akhileshh Oct 1, 2021
dff8afb
fix: install from pypi (#365)
akhileshh Oct 13, 2021
bec2a88
add include_partial_splits and include_errored flags for all_user_ope…
kaikue Oct 14, 2021
5b61a3f
adding filll_missing to watershed download (#366)
fcollman Oct 19, 2021
98c11a7
Pcg low priority (#369)
fcollman Oct 27, 2021
bd9fafb
fix: remove gc rule (#367)
akhileshh Oct 29, 2021
5aee8ff
Initial documentation
sdorkenw Nov 6, 2021
a2c114e
Update storage.md
sdorkenw Nov 8, 2021
b94579d
Update segmentation_preprocessing.md
sdorkenw Nov 8, 2021
93b93e4
Update segmentation_preprocessing.md
sdorkenw Nov 8, 2021
eef01e3
bumped messaging client
sdorkenw Nov 8, 2021
ac133c1
minor bug fix in history module
sdorkenw Nov 9, 2021
4d344a7
unpinned messaginclient
sdorkenw Nov 9, 2021
570a21c
adding docker hub push (#375)
fcollman Nov 11, 2021
ab063b7
feat: publish all edit info to exchange v2
akhileshh Nov 17, 2021
540b440
feat: publish all edit info to exchange v2 (#378)
akhileshh Nov 17, 2021
1518c2c
updated bumpversion
sdorkenw Nov 17, 2021
f7be77e
Bump version: 2.0.0 → 2.0.1
sdorkenw Nov 17, 2021
a095fd0
Merge branch 'pcgv2' of https://github.com/seung-lab/PyChunkedGraph i…
akhileshh Nov 17, 2021
f1513b8
pinned importlib-metadata version
sdorkenw Nov 17, 2021
0712dcc
Bump version: 2.0.1 → 2.0.2
sdorkenw Nov 17, 2021
c1144ad
Merge branch 'pcgv2' of https://github.com/seung-lab/PyChunkedGraph i…
akhileshh Nov 17, 2021
4f757fa
mesh worker fix (#379)
akhileshh Nov 18, 2021
b6719bb
Bump version: 2.0.2 → 2.0.3
sdorkenw Nov 18, 2021
a99ba18
Merge branch 'pcgv2' of https://github.com/seung-lab/PyChunkedGraph i…
akhileshh Nov 18, 2021
9b38ca6
import fix (#380)
akhileshh Nov 18, 2021
31de096
Bump version: 2.0.3 → 2.0.4
fcollman Nov 18, 2021
afdcdf8
Merge branch 'pcgv2' of https://github.com/seung-lab/PyChunkedGraph i…
akhileshh Nov 18, 2021
67cb045
fix: import pickle (#381)
akhileshh Nov 18, 2021
8a4c171
Bump version: 2.0.4 → 2.0.5
fcollman Nov 18, 2021
5b19038
minor bug fix in history module
sdorkenw Nov 18, 2021
0610cd1
Bump version: 2.0.5 → 2.0.6
sdorkenw Nov 18, 2021
1a38164
minor bug fix in history summary
sdorkenw Nov 19, 2021
10c1a4e
Bump version: 2.0.6 → 2.0.7
sdorkenw Nov 19, 2021
d4b174f
fixing dracopy version due to upcoming major update
sdorkenw Dec 14, 2021
71fcfcf
Update requirements.txt
sdorkenw Dec 14, 2021
fb152ce
Update requirements.txt
sdorkenw Dec 14, 2021
9bac00d
Update .coveragerc
sdorkenw Dec 14, 2021
b8f21ba
add optional timestamp_end parameter to tabular_change_log_recent (#385)
kaikue Jan 6, 2022
7bd1e47
Bump version: 2.0.7 → 2.1.0
sdorkenw Jan 7, 2022
cc5a736
fixing reqs
sdorkenw Jan 13, 2022
2534f49
Bump version: 2.1.0 → 2.1.1
sdorkenw Jan 13, 2022
03ede1f
Update README.md
sdorkenw Feb 3, 2022
88bde0a
Update README.md
sdorkenw Feb 3, 2022
a82f297
Update README.md
sdorkenw Feb 3, 2022
8cddbb1
fixing empty delta roots (#398)
fcollman Apr 6, 2022
de22fc8
Bump version: 2.1.1 → 2.1.2
fcollman Apr 6, 2022
5c2897c
Pcgv2 user edit query (#390)
fcollman Apr 6, 2022
9b5621c
Bump version: 2.1.2 → 2.2.0
fcollman Apr 6, 2022
1828172
added endpoint features (#393)
sdorkenw Apr 9, 2022
658f607
Bump version: 2.2.0 → 2.3.0
sdorkenw Apr 9, 2022
3cb1dd9
updated middle auth client (#400)
chrisj Apr 12, 2022
89dcdc4
Bump version: 2.3.0 → 2.3.1
fcollman Apr 12, 2022
1ffc1c8
fixing requests import
fcollman Apr 26, 2022
fd7989e
fixing request import...really
fcollman Apr 26, 2022
24403d7
Bump version: 2.3.1 → 2.3.2
fcollman Apr 26, 2022
d4a641b
Pcgv2 ingest improvements (#388)
akhileshh Jun 17, 2022
9520487
setup unit test workflow
akhileshh Jun 17, 2022
391567a
feat: add retry option (#407)
akhileshh Jul 4, 2022
539cf2a
fix: cli manual queue chunk, ignore nosuchjoberror
akhileshh Jul 9, 2022
5cd0933
feat: add cli for ingesting a given layer (#408)
akhileshh Jul 11, 2022
eacdfe0
fix: remove tuple created by formatter
akhileshh Jul 11, 2022
6a95790
fix: wrong property name
akhileshh Jul 11, 2022
8cdb026
fix: queue name
akhileshh Jul 11, 2022
cfe63d0
Bump version: 2.3.2 → 2.3.3
sdorkenw Jul 19, 2022
1a4584e
fix: reduce memory usage when queing jobs (#410)
akhileshh Aug 9, 2022
a771680
fixed case where there had not been any edits to a neuron (#413)
sdorkenw Aug 11, 2022
0b56cb8
Bump version: 2.3.3 → 2.3.4
sdorkenw Aug 11, 2022
0eaf71c
Bump version: 2.3.4 → 2.3.5
sdorkenw Aug 16, 2022
1d1d5aa
updates requirements.txt
sdorkenw Aug 18, 2022
ff41e41
Bump version: 2.3.5 → 2.3.6
sdorkenw Aug 18, 2022
bad33da
fixing latest root to return False for non-existing roots (#411)
sdorkenw Aug 18, 2022
80cd421
Update main.yml (#415)
akhileshh Aug 18, 2022
555aa03
Bump version: 2.3.6 → 2.4.0
sdorkenw Aug 18, 2022
d253913
fix: queue remaining jobs
akhileshh Sep 11, 2022
7d38836
fix: dont use fail_to_zero for ingest (#416)
akhileshh Sep 13, 2022
2727bfd
Split logic specifies all source/target pairs (#417)
ceesem Sep 14, 2022
e591408
Bump version: 2.4.0 → 2.5.0
sdorkenw Sep 14, 2022
6513d65
fix: remove old method that is still being used
akhileshh Sep 17, 2022
cf45f8a
fix: print chunk count
akhileshh Sep 17, 2022
2b3434a
feat: get_roots fail_to_zero param (#418)
akhileshh Sep 20, 2022
62767b9
fix: ignore chunks outside boundary (#419)
akhileshh Sep 20, 2022
dbf7aab
Bump version: 2.5.0 → 2.5.1
sdorkenw Sep 20, 2022
9d1fbb7
fix: improve error messages (#420)
akhileshh Sep 25, 2022
ef4e12b
fix: use vectorized function to get chunk coordinates (#421)
akhileshh Sep 26, 2022
91417db
feat: add support for arbitrary bbox for each chunkedgraph (#422)
akhileshh Sep 30, 2022
138bf17
Add is_merge to tabular_change_log_recent (pcgv2) (#423)
kaikue Sep 30, 2022
09f88ec
Bump version: 2.5.1 → 2.6.0
sdorkenw Sep 30, 2022
465721d
fix: use fail_to_zero=True in for initial meshing (#424)
akhileshh Oct 3, 2022
819c41a
Bump version: 2.6.0 → 2.6.1
sdorkenw Oct 3, 2022
59147c3
ingest faster automatic enqueuing (#428)
akhileshh Nov 30, 2022
7624d0d
Add public neurons (#426)
fcollman Nov 30, 2022
869ef35
fixing fail_to_zero (#429)
fcollman Dec 4, 2022
4e6f08e
fix: use fail_to_zero=True for remesh jobs (#430)
akhileshh Dec 5, 2022
7fcf696
Bump version: 2.6.1 → 2.7.0
fcollman Dec 5, 2022
1d515ce
Fix 3d error (#431)
fcollman Jan 3, 2023
9c2aae3
fix(ingest): Ignore missing edges from empty chunks (#409)
nkemnitz Jan 3, 2023
7da8206
fixes and speedups (#425)
akhileshh Jan 3, 2023
6c3a3a4
allowing valid nodes timestamp to be None (#402)
fcollman Jan 3, 2023
9c8c090
Bump version: 2.7.0 → 2.8.0
fcollman Jan 3, 2023
7f4e60e
Better skip connections fix (#433)
fcollman Jan 4, 2023
0437256
Bump version: 2.8.0 → 2.8.1
fcollman Jan 4, 2023
2f8dc34
fix: missing fake edge entries (#434)
akhileshh Jan 6, 2023
3d1c687
Bump version: 2.8.1 → 2.8.2
fcollman Jan 6, 2023
eeb6cbe
feat: repair operations module
akhileshh Jan 10, 2023
8f0f2a3
fix: assert error handling
akhileshh Jan 11, 2023
999d92a
fix: make overwrite optional, remove assert (#436)
akhileshh Jan 12, 2023
4dbf42b
ingest: use range reads for efficiency (#438)
akhileshh Jan 27, 2023
c7c167c
Metrics logging (#440)
akhileshh Feb 23, 2023
db41db2
Bump version: 2.8.2 → 2.9.0
sdorkenw Feb 23, 2023
40cbfc6
Bump version: 2.9.0 → 2.9.1
sdorkenw Feb 23, 2023
ac509f5
make logging more configurable (#441)
akhileshh Mar 1, 2023
c04ae28
Bump version: 2.9.1 → 2.9.2
sdorkenw Mar 1, 2023
34197a6
fix: handle k8s env behavior (#442)
akhileshh Mar 1, 2023
dbccf87
Bump version: 2.9.2 → 2.9.3
sdorkenw Mar 1, 2023
01445d0
feat: manifest fragments redis cache (#445)
akhileshh Mar 15, 2023
704c1ff
Bump version: 2.9.3 → 2.10.0
sdorkenw Mar 15, 2023
bb959f3
fix: don't cache dynamic nonexisting fragments (#447)
akhileshh Mar 21, 2023
8be41fd
Bump version: 2.10.0 → 2.10.1
fcollman Mar 21, 2023
4e5b2b2
fix: pass root chunk flag (#448)
akhileshh Mar 26, 2023
c03be72
profile bigtable reads (#446)
akhileshh May 3, 2023
36e928b
fix: remove references to deprecated Storage (#450)
akhileshh May 3, 2023
b36b69a
Bump version: 2.10.1 → 2.11.0
sdorkenw May 3, 2023
e81d485
feat: log request endpoint method (#444)
akhileshh May 8, 2023
4f9102c
fix: when mesh metadata is missing (#451)
fcollman Jul 5, 2023
995af12
feat: granular subgraph logs (#455)
akhileshh Aug 9, 2023
e9e9492
Bump version: 2.11.0 → 2.12.0
sdorkenw Aug 9, 2023
68bb4ca
Edges: avoid duplicate affinity/area initialization
nkemnitz Sep 3, 2023
82b0e9c
Edges: avoid copies
nkemnitz Sep 3, 2023
6484f41
Merge pull request #458 from ZettaAI/zetta-avoid-copy
akhileshh Sep 5, 2023
cd5ef56
Bump version: 2.12.0 → 2.13.0
fcollman Sep 19, 2023
fa9110a
bumping cloud-files
fcollman Sep 19, 2023
1230155
Bump version: 2.13.0 → 2.13.1
fcollman Sep 19, 2023
9df61ac
fix: multithreaded decompression for larger chunk files
akhileshh Aug 31, 2023
a7d257a
fix: changes for multi_decompress_to_buffer api
akhileshh Sep 1, 2023
8a16c14
fix: avoid bytes conversion; use as many cpus as available
akhileshh Sep 2, 2023
68c1612
fix: upgrade protobuf to support buffer input
akhileshh Sep 3, 2023
8ac1ff7
fix: add env for num threads
akhileshh Sep 15, 2023
f256c5c
fix: wrap with try except
akhileshh Sep 15, 2023
dd547f8
Bump version: 2.13.1 → 2.13.2
fcollman Sep 20, 2023
d159d2d
fix: explicit memoryview for protobuf
akhileshh Sep 25, 2023
c6b6c8b
Bump version: 2.13.2 → 2.13.3
fcollman Sep 28, 2023
3b608a1
return response
bdpedigo Oct 5, 2023
2cad302
Bump version: 2.13.3 → 2.13.4
fcollman Oct 6, 2023
6327bd7
fix: reduce root lookups to find inactive edges (#475)
akhileshh Nov 1, 2023
f5c8503
Bump version: 2.13.4 → 2.13.5
sdorkenw Nov 1, 2023
f445849
fix(ingest): handle empty input to parse_edges
akhileshh Nov 21, 2023
c6947a9
Merge pull request #477 from seung-lab/ingest-handle-empty-input
akhileshh Nov 21, 2023
c60147d
fix: fallback for when multi decompress fails
akhileshh Nov 22, 2023
40df69d
Merge pull request #478 from seung-lab/multi-decompress-fallback
akhileshh Nov 22, 2023
aeef4c6
Bump version: 2.13.5 → 2.13.6
akhileshh Nov 22, 2023
0773e7e
Merge branch 'main' of https://github.com/seung-lab/PyChunkedGraph in…
akhileshh Nov 22, 2023
53eb720
python 3.11 (#462)
fcollman Jan 9, 2024
2a5df98
build(deps): bump werkzeug from 2.3.7 to 2.3.8 (#479)
dependabot[bot] Jan 9, 2024
f9f480c
adjusted lookup radius to be multiples of the base resolution
sdorkenw Jan 11, 2024
784f5b1
formatting error
sdorkenw Jan 11, 2024
a434335
Merge pull request #481 from seung-lab/svenmd-fix-svcoordlookup
akhileshh Jan 11, 2024
1ba755a
build(deps): bump jinja2 from 3.1.2 to 3.1.3 (#480)
dependabot[bot] Jan 11, 2024
111c6ff
Bump version: 2.13.6 → 2.14.0
sdorkenw Jan 11, 2024
74eee90
prototype implementation
bdpedigo Mar 5, 2024
6f96ceb
small refactor
bdpedigo Mar 5, 2024
8584042
fix induced subgraph behavior
bdpedigo Mar 8, 2024
40d2d54
refactor
bdpedigo Mar 11, 2024
840cc6c
add a pseudo-api version thing
bdpedigo Mar 11, 2024
4a1966a
Bump version: 2.14.0 → 2.15.0
fcollman Mar 11, 2024
1a98ba2
protect emptry
bdpedigo Mar 11, 2024
2e9ead5
Bump version: 2.15.0 → 2.15.1
fcollman Mar 11, 2024
3305c7f
feat(mesh): clear manifest endpoint (#485)
akhileshh Apr 2, 2024
afc750c
add version endpoint
bdpedigo Mar 28, 2024
c177c2e
Bump version: 2.15.1 → 2.16.0
fcollman Apr 8, 2024
799565a
cloudbuild: update kaniko cache config
akhileshh Apr 21, 2024
cbfbda2
faster docker build (#494)
akhileshh Apr 22, 2024
f1e048c
copy source to docker
akhileshh Apr 22, 2024
0f3b0c7
Merge pull request #495 from CAVEconnectome/docker-copy-patch
akhileshh Apr 22, 2024
c1b7740
handle key error and ignore message
akhileshh May 24, 2024
8ae9409
feat: default mesh dynamic dir; chebyshev query param (#504)
akhileshh Aug 15, 2024
7abeb9b
Bump version: 2.16.0 → 2.16.1
sdorkenw Aug 15, 2024
8a3bad8
adds latest flag to get timestamps when roots expire (#500)
akhileshh Aug 16, 2024
7582f72
Bump version: 2.16.1 → 2.16.2
akhileshh Aug 16, 2024
2ec01fa
Bump version: 2.16.2 → 2.17.0
fcollman Aug 16, 2024
2ec5d96
Bump version: 2.17.0 → 2.17.1
fcollman Aug 16, 2024
d1080c8
fix: include end timestamp in filter, handle empty concat (#505)
akhileshh Aug 29, 2024
432ca3c
Bump version: 2.17.1 → 2.17.2
sdorkenw Aug 29, 2024
cfc8505
cached cv info for distributed workers (#506)
akhileshh Sep 3, 2024
0bc47bb
fix: improve timestamp used in repair operation (#507)
akhileshh Sep 13, 2024
c45c88e
fix(builds): remove kaniko and gcr push reference
akhileshh Nov 21, 2024
cdfb823
v0 of find_minimal_coverage
fcollman Dec 3, 2024
cf5a23a
fixing minimal_covering_nodes
fcollman Dec 4, 2024
7f20c67
Bump version: 2.17.1 → 2.18.0
fcollman Dec 4, 2024
d721a11
removing print statements
fcollman Dec 4, 2024
4f89c18
Bump version: 2.18.0 → 2.18.1
fcollman Dec 4, 2024
07b78dd
remove gcr.io name
fcollman Dec 4, 2024
7b0b223
Bump version: 2.18.1 → 2.18.2
fcollman Dec 4, 2024
1ef03bd
removing print
fcollman Dec 4, 2024
ec2333f
update base docker image
akhileshh Dec 4, 2024
696925e
reverting dockerfile base image
fcollman Dec 5, 2024
6001c2d
Bump version: 2.17.2 → 2.17.3
fcollman Dec 5, 2024
3d30372
Merge branch 'main' of github.com:seung-lab/PyChunkedGraph
fcollman Dec 5, 2024
0a3232a
Bump version: 2.18.2 → 2.18.3
fcollman Dec 5, 2024
eeb8874
feat: sv_loopkup endpoint, remesh query param, reuse initial meshes f…
akhileshh Mar 6, 2025
f4aa0b0
adding uwsgi stats
fcollman Mar 5, 2025
5e60051
trying to add uwsgi stats
fcollman Mar 6, 2025
508d062
Bump version: 2.18.3 → 2.19.0
fcollman Mar 7, 2025
0cbc461
Update Readme.md (#518)
ChrisRaven Apr 12, 2025
2293440
fix(app): handle latest roots 0 timestamp issue (#520)
akhileshh May 1, 2025
ba5ed42
Bump version: 2.19.0 → 2.19.1
akhileshh May 1, 2025
dce8be8
fix(lineage_graph): missing edges from overwritten operation dict (#521)
akhileshh May 27, 2025
e04588b
Bump version: 2.19.1 → 2.19.2
akhileshh May 28, 2025
2b82b7a
fix(manifest): allow overriding start layer using query parameter sin…
chrisj Jun 18, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 1 addition & 6 deletions .bumpversion.cfg
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@
[bumpversion]
current_version = 0.1.113
current_version = 2.19.2
commit = True
tag = True

[bumpversion:file:pychunkedgraph/__init__.py]

[bumpversion:file:pychunkedgraph/app/cg_app_blueprint.py]

[bumpversion:file:pychunkedgraph/app/meshing_app_blueprint.py]

1 change: 0 additions & 1 deletion .coveragerc
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# .coveragerc to control coverage.py
[run]
branch = True
concurrency = "multiprocessing"
source = pychunkedgraph
omit =
*test*
Expand Down
131 changes: 121 additions & 10 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,13 +1,124 @@
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

build
dist
__pycache__
.pytest_cache
.tox
*.egg-info
*.egg/
*.pyc
*.swp
# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg
.idea/*

# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.vscode
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*,cover
.hypothesis/
.pytest_cache/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
target/

# Jupyter Notebook
.ipynb_checkpoints

# pyenv
.python-version

# celery beat schedule file
celerybeat-schedule

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/

# Visual Code
.vscode/

# terraform
.terraform/
*.lock.hcl
*.tfstate
*.tfstate.*


# local dev stuff
.devcontainer/
*.ipynb
*.rdb
/protobuf*

# Git
.git/
22 changes: 22 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: PyChunkedGraph

on:
push:
branches:
- "main"
pull_request:
branches:
- "main"

jobs:
unit-tests:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v2

- name: Build image and run tests
run: |
docker build --tag seunglab/pychunkedgraph:$GITHUB_SHA .
docker run --rm seunglab/pychunkedgraph:$GITHUB_SHA /bin/sh -c "pytest --cov-config .coveragerc --cov=pychunkedgraph ./pychunkedgraph/tests && codecov"

14 changes: 11 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
.idea/*

# PyInstaller
Expand Down Expand Up @@ -108,7 +107,16 @@ venv.bak/
# Visual Code
.vscode/

# terraform
.terraform/
*.lock.hcl
*.tfstate
*.tfstate.*


# local dev stuff
output.txt
src/
.devcontainer/
*.ipynb
*.rdb
/protobuf*
.DS_Store
9 changes: 9 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@ sudo: true
services:
docker

env:
global:
- CLOUDSDK_CORE_DISABLE_PROMPTS=1

stages:
- test
- name: merge-deploy
Expand All @@ -21,6 +25,11 @@ jobs:
- ci_env=`bash <(curl -s https://codecov.io/env)`

script:
- openssl aes-256-cbc -K $encrypted_506e835c2891_key -iv $encrypted_506e835c2891_iv -in key.json.enc -out key.json -d
- curl https://sdk.cloud.google.com | bash > /dev/null
- source "$HOME/google-cloud-sdk/path.bash.inc"
- gcloud auth activate-service-account --key-file=key.json
- gcloud auth configure-docker
- docker build --tag seunglab/pychunkedgraph:$TRAVIS_BRANCH . || travis_terminate 1
- docker run $ci_env --rm seunglab/pychunkedgraph:$TRAVIS_BRANCH /bin/sh -c "tox -v -- --cov-config .coveragerc --cov=pychunkedgraph && codecov"

Expand Down
65 changes: 7 additions & 58 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,62 +1,11 @@
FROM tiangolo/uwsgi-nginx-flask:python3.6

FROM caveconnectome/pychunkedgraph:base_042124
ENV VIRTUAL_ENV=/app/venv
ENV PATH="$VIRTUAL_ENV/bin:$PATH"

COPY override/gcloud /app/venv/bin/gcloud
COPY override/timeout.conf /etc/nginx/conf.d/timeout.conf
COPY override/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
COPY requirements.txt /app
RUN mkdir -p /home/nginx/.cloudvolume/secrets \
&& chown -R nginx /home/nginx \
&& usermod -d /home/nginx -s /bin/bash nginx \
&& apt-get update \
&& apt-get install -y \
# Boost and g++ for compiling DracoPy and graph_tool
build-essential \
libboost-dev \
# Required for adding graph-tools and cloud-sdk to the apt source list
lsb-release \
curl \
apt-transport-https \
# GOOGLE-CLOUD-SDK
&& pip install --no-cache-dir --upgrade crcmod \
&& echo "deb https://packages.cloud.google.com/apt cloud-sdk-$(lsb_release -c -s) main" > /etc/apt/sources.list.d/google-cloud-sdk.list \
&& curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - \
&& apt-get update \
&& apt-get install -y google-cloud-sdk google-cloud-sdk-bigtable-emulator \
# PYTHON-GRAPH-TOOL
# WARNING: This is ugly, graph-tools will use Debian's Python version and install as dist-util,
# but all our packages use the site-util Python version - we just create a sym_link,
# because it _seems_ to work and saves 80 minutes compilation time ...
&& echo "deb http://downloads.skewed.de/apt/$(lsb_release -s -c) $(lsb_release -s -c) main" > /etc/apt/sources.list.d/graph-tool.list \
&& echo "deb-src http://downloads.skewed.de/apt/$(lsb_release -s -c) $(lsb_release -s -c) main" >> /etc/apt/sources.list.d/graph-tool.list \
&& apt-key adv --no-tty --keyserver hkp://keyserver.ubuntu.com --recv-key 612DEFB798507F25 \
&& apt-get update \
&& apt-get install -y python3-graph-tool \
&& ln -s /usr/lib/python3/dist-packages/graph_tool /usr/local/lib/python3.6/site-packages/graph_tool \
&& pip install --no-cache-dir --upgrade scipy \
# PYCHUNKEDGRAPH
# Need pip 18.1 for process-dependency-links flag support
&& pip install --no-cache-dir pip==18.1 \
# Need numpy to prevent install issue with cloud-volume / fpzip
&& pip install --no-cache-dir --upgrade numpy \
&& pip install --no-cache-dir --upgrade --process-dependency-links -r requirements.txt \
# Tests
&& pip install tox codecov \
# CLEANUP
# libboost-dev and build-essentials will be required by tox to build python dependencies
&& apt-get remove --purge -y lsb-release curl \
&& apt-get autoremove --purge -y \
&& rm -rf /var/lib/apt/lists/* \
&& find /usr/local/lib/python3* -depth \
\( \
\( -type d -a \( -name __pycache__ \) \) \
-o \
\( -type f -a \( -name '*.pyc' -o -name '*.pyo' \) \) \
\) -exec rm -rf '{}' + \
&& find /usr/lib/python3* -depth \
\( \
\( -type d -a \( -name __pycache__ \) \) \
-o \
\( -type f -a \( -name '*.pyc' -o -name '*.pyo' \) \) \
\) -exec rm -rf '{}' +

COPY . /app
COPY requirements.txt .
RUN pip install --upgrade -r requirements.txt
COPY . /app
49 changes: 38 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,27 +4,54 @@
[![Build Status](https://travis-ci.org/seung-lab/PyChunkedGraph.svg?branch=master)](https://travis-ci.org/seung-lab/PyChunkedGraph)
[![codecov](https://codecov.io/gh/seung-lab/PyChunkedGraph/branch/master/graph/badge.svg)](https://codecov.io/gh/seung-lab/PyChunkedGraph)

The PyChunkedGraph is a proofreading and segmentation data management backend with (not limited to) the following features:
- Concurrent proofreading by multiple users without restrictions on the workflow
- Continuous versioning of proofreading edits
- Making changes visible to all users immediately
- Local mincut computations
The PyChunkedGraph is a proofreading and segmentation data management backend powering FlyWire and other proofreading platforms. It builds on an initial agglomeration of supervoxels and facilitates fast and parallel editing of connected components in the agglomeration graph by many users.

## Scaling to large datasets
## PyChunkedGraph versions

The main branch represents the second version (v2) of the PyChunkedGraph implementation. The first version (v1) is still maintained and can be found under `pcgv1`. The v2 implementation resolved data storage concerns and removed some scaling bottlenecks in the implementation. Any new dataset should use the v2.

## Deployment
## Using the PyChunkedGraph

While the PyChunkedGraph can be deployed as a stand-alone entity, we deploy it within our [annotation infrastructure](https://github.com/seung-lab/AnnotationPipelineOverview) which uses a CI Kubernetes deployment. We will make instructions and scripts for a mostly automated deployment to Google Cloud available soon.
The ChunkedGraph is built on Google Cloud BigTable. A BigTable instance is required to use this ChunkedGraph implementation.

## Building your own PyChunkedGraph
### Environmental Variables
There are three environmental variables that need to be set
to connect to a chunkgraph:

- `GOOGLE_APPLICATION_CREDENTIALS`: Location of the google-secret.json file.
- `BIGTABLE_PROJECT`: Name of the Google Cloud project name.
- `BIGTABLE_INSTANCE`: Name of the Bigtable Instance ID. (Default is 'pychunkedgraph')

### Ingest

`/ingest` provides examples for ingest scripts. The ingestion pipeline designed to use the output of the seunglab's agglomeration pipeline but can be adjusted to use alternative data sources.

### Deployment / Import

The PyChunkedGraph can be locally deployed (`run_dev.py`), imported in a python script (`from pychunkedgraph.backend import chunkedgraph`) or deployed on a kubernetes server. Deployment code for a kubernetes server on Google Cloud is not included in this repository. Please feel free to reach out if you are interested in that.

## System Design

As a backend the PyChunkedGraph can be combined with any frontend that adheres to its API. We use an adapted version of [neuroglancer](https://github.com/seung-lab/neuroglancer/tree/nkem-multicut) which is publicly available.


[system_design]: https://github.com/seung-lab/PyChunkedGraph/blob/master/ProofreadingDiagram.png "System Design"
![alt text][system_design]
## Publication

When using or referencing the PyChunkedGraph, please use the citation below. The FlyWire paper described and published the PyChunkedGraph v1.

[FlyWire: Online community for whole-brain connectomics](https://www.nature.com/articles/s41592-021-01330-0)
```
@article{FlyWire2021,
doi = {10.1038/s41592-021-01330-0},
url = {https://doi.org/10.1038/s41592-021-01330-0},
year = {2021},
month = dec,
publisher = {Springer Science and Business Media {LLC}},
volume = {19},
number = {1},
pages = {119--128},
author = {Sven Dorkenwald and Claire E. McKellar and Thomas Macrina and Nico Kemnitz and Kisuk Lee and Ran Lu and Jingpeng Wu and Sergiy Popovych and Eric Mitchell and Barak Nehoran and Zhen Jia and J. Alexander Bae and Shang Mu and Dodam Ih and Manuel Castro and Oluwaseun Ogedengbe and Akhilesh Halageri and Kai Kuehner and Amy R. Sterling and Zoe Ashwood and Jonathan Zung and Derrick Brittain and Forrest Collman and Casey Schneider-Mizell and Chris Jordan and William Silversmith and Christa Baker and David Deutsch and Lucas Encarnacion-Rivera and Sandeep Kumar and Austin Burke and Doug Bland and Jay Gager and James Hebditch and Selden Koolman and Merlin Moore and Sarah Morejohn and Ben Silverman and Kyle Willie and Ryan Willie and Szi-chieh Yu and Mala Murthy and H. Sebastian Seung},
title = {{FlyWire}: online community for whole-brain connectomics},
journal = {Nature Methods}
}
```
Loading