Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.1%) to scientific vocabulary
Last synced: 7 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: bostongfx
  • License: mit
  • Language: Jupyter Notebook
  • Default Branch: master
  • Size: 24.6 MB
Statistics
  • Stars: 7
  • Watchers: 6
  • Forks: 6
  • Open Issues: 4
  • Releases: 1
Created over 6 years ago · Last pushed about 1 year ago
Metadata Files
Readme License Citation

README.md

TRAKO

Trako compresses DTI streamlines from .vtp to smaller .tko files!

Installation as PyPI package (recommended, preferably in a virtualenv)

pip install trako

Usage

./trakofy -i DATA/example.vtp -o /tmp/test.tko ./untrakofy -i /tmp/test.tko -o /tmp/restored.vtp ./tkompare -a DATA/example.vtp -b /tmp/restored.vtp

Diffusion Tensor Imaging (DTI) allows to estimate the brain's white matter tracts. Fiber tracking methods then produce clusters of streamlines that are 3D fiber bundles. Each fiber in these bundles is a line with X,Y,Z coordinates (floats) but researchers may attach many different scalars to each coordinate (per-vertex). Each scalar can be of arbitrary dimension, size, and data type. Researchers may also attach many different property values to individual streamlines (per-fiber). Adding scalars and properties can result in large streamline files.

Trako is a new file format that stores streamlines and associated per-vertex and per-fiber data as glTF containers with compression. We use the Draco algorithm to compress X,Y,Z coordinates, scalars, and properties.

Custom parameters

Trako allows a detailed configuration of encoding parameters. Customizations can be configured in a JSON file to specify different parameters for different attributes.

We include an example configuration DATA/test.conf. ``` {

'POSITION': { 'position':True, 'sequential':True, 'quantizationbits':14, 'compressionlevel':1, 'quantizationrange':-1, 'quantizationorigin':None }, 'INDICES': { 'position':False, 'sequential':True, 'quantizationbits':14, 'compressionlevel':1, 'quantizationrange':-1, 'quantizationorigin':None }, 'RTOP2': { # configure custom settings per attribute name 'position':False, 'sequential':True, 'quantizationbits':20, 'compressionlevel':1, 'quantizationrange':-1, 'quantizationorigin':None }

} ```

This configuration configures a scalar named RTOP2 with a higher bitrate than other attributes. It is also possible to use a generic configuration (for example to reduce the quantization bitrate for all attributes) as follows:

``` {

'*': { 'position':False, 'sequential':True, 'quantizationbits':11, 'compressionlevel':1, 'quantizationrange':-1, 'quantizationorigin':None }

} ```

The configuration is only relevant during compression and can be used as follows:

./trakofy -i DATA/example.vtp -o /tmp/test.tko -c DATA/test.conf

Experiments

We compared Trako and common streamline file formats (VTK, TrackVis) on data of two subjects with 800 fiber clusters each. The data includes multiple per-fiber and per-vertex scalar values. Trako yields an average compression ratio of 3.2 and reduces the data size from 2974 Megabytes to 941 Megabytes.

We also used Trako to compress a single whole brain tractography dataset with 153,537 streamlines. Trako reduces the data size from 543 Megabytes to 267 Megabytes (compression factor 2.02).

With default parameters, Trako uses lossy compression for position data and per-vertex/per-fiber scalar values with a mean relative loss of less than 0.0001 (besides RGB values as EmbeddingColor). We show the relative information loss for two subjects with 800 fiber clusters each on the left, and the relative information loss for a single whole brain tractography dataset on the right.

Visualization using WebGL

We provide JavaScript parsers to visualize Trako (.TKO) files with Three.js, Vtk.js, and XTK.

And, SliceDrop supports Trako too! Just drag'n'drop the .TKO files in the browser to view them.

Developer installation (comes with test data)

Please follow these steps with Miniconda or Anaconda installed:

```

create environment

conda create --name TRAKO python=3.6 conda activate TRAKO

get TRAKO

git clone git@github.com:haehn/TRAKO.git cd TRAKO

python setup.py install ```

Trako @ MICCAI 2020

Please cite TRAKO as follows: @inproceedings{haehn2020trako, title={TRAKO: Efficient Transmission of Tractography Data for Visualization}, author={Haehn, Daniel and Franke, Loraine and Zhang, Fan and Karayumak, Suheyla Cetin and Pieper, Steve and O'Donnell, Lauren and Rathi, Yogesh}, abstract={Fiber tracking produces large tractography datasets that are tens of gigabytes in size consisting of millions of streamlines. Such vast amounts of data require formats that allow for efficient storage, transfer, and visualization. We present TRAKO, a new data format based on the Graphics Layer Transmission Format (glTF) that enables immediate graphical and hardware-accelerated processing. We integrate a state-of-the-art compression technique for vertices, streamlines, and attached scalar and property data. We then compare TRAKO to existing tractography storage methods and provide a detailed evaluation on eight datasets. TRAKO can achieve data reductions of over 28x without loss of statistical significance when used to replicate analysis from previously published studies. }, booktitle={Medical Image Computing and Computer-Assisted Intervention (MICCAI)}, pages={XXX--XXX}, year={2020}, supplemental={http://danielhaehn.com/papers/haehn2020trako_supplemental.pdf}, organization={Springer, Cham}, code={https://github.com/bostongfx/TRAKO/}, data={https://github.com/bostongfx/TRAKO/}, website={https://pypi.org/project/trako/} } And here is the preprint: https://danielhaehn.com/papers/?haehn2020trako

Owner

  • Name: BostonGFX
  • Login: bostongfx
  • Kind: organization
  • Location: Boston, MA

Graphics For Everybody! (#GFX4ALL)

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
  - family-names: "Haehn"
    given-names: "Daniel"
  - family-names: "Franke"
    given-names: "Loraine"
  - family-names: "Zhang"
    given-names: "Fan"
  - family-names: "Karayumak"
    given-names: "Suheyla Cetin"
  - family-names: "Pieper"
    given-names: "Steve"
  - family-names: "O'Donnell"
    given-names: "Lauren"
  - family-names: "Rathi"
    given-names: "Yogesh"
title: "TRAKO: Efficient Transmission of Tractography Data for Visualization"
date-released: 2020-10-01
url: "https://github.com/bostongfx/TRAKO/"
doi: "10.1007/978-3-030-59728-3_32"

GitHub Events

Total
  • Watch event: 1
  • Push event: 1
  • Fork event: 2
Last Year
  • Watch event: 1
  • Push event: 1
  • Fork event: 2

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 10
  • Total pull requests: 6
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 7 days
  • Total issue authors: 3
  • Total pull request authors: 3
  • Average comments per issue: 9.3
  • Average comments per pull request: 0.33
  • Merged pull requests: 6
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • tashrifbillah (7)
  • pieper (2)
  • zhangfanmark (1)
Pull Request Authors
  • pieper (3)
  • gaiborjosue (2)
  • lorifranke (1)
Top Labels
Issue Labels
Pull Request Labels

Dependencies

EXTRAS/node_modules/ansi-regex/package.json npm
  • ava ^2.4.0 development
  • tsd ^0.9.0 development
  • xo ^0.25.3 development
EXTRAS/node_modules/ansi-styles/package.json npm
  • @types/color-convert ^1.9.0 development
  • ava ^2.3.0 development
  • svg-term-cli ^2.1.1 development
  • tsd ^0.11.0 development
  • xo ^0.25.3 development
  • @types/color-name ^1.1.1
  • color-convert ^2.0.1
EXTRAS/node_modules/bluebird/package.json npm
  • acorn ^6.0.2 development
  • acorn-walk ^6.1.0 development
  • baconjs ^0.7.43 development
  • bluebird ^2.9.2 development
  • body-parser ^1.10.2 development
  • browserify ^8.1.1 development
  • cli-table ~0.3.1 development
  • co ^4.2.0 development
  • cross-spawn ^0.2.3 development
  • glob ^4.3.2 development
  • grunt-saucelabs ~8.4.1 development
  • highland ^2.3.0 development
  • istanbul ^0.3.5 development
  • jshint ^2.6.0 development
  • jshint-stylish ~0.2.0 development
  • kefir ^2.4.1 development
  • mkdirp ~0.5.0 development
  • mocha ~2.1 development
  • open ~0.0.5 development
  • optimist ~0.6.1 development
  • rimraf ~2.2.6 development
  • rx ^2.3.25 development
  • serve-static ^1.7.1 development
  • sinon ~1.7.3 development
  • uglify-js ~2.4.16 development
EXTRAS/node_modules/camelcase/package.json npm
  • ava ^1.4.1 development
  • tsd ^0.7.1 development
  • xo ^0.24.0 development
EXTRAS/node_modules/cesium/package.json npm
  • aws-sdk ^2.531.0 development
  • bluebird ^3.4.6 development
  • cloc ^2.3.3 development
  • compression ^1.6.2 development
  • eslint ^6.4.0 development
  • eslint-plugin-html ^6.0.0 development
  • express ^4.15.0 development
  • globby ^11.0.0 development
  • glsl-strip-comments ^1.0.0 development
  • gulp ^4.0.0 development
  • gulp-clean-css ^4.2.0 development
  • gulp-insert ^0.5.0 development
  • gulp-rename ^2.0.0 development
  • gulp-replace ^1.0.0 development
  • gulp-tap ^2.0.0 development
  • gulp-uglify ^3.0.0 development
  • gulp-zip ^5.0.0 development
  • jasmine-core ^3.3.0 development
  • jsdoc ^3.4.3 development
  • karma ^4.0.0 development
  • karma-chrome-launcher ^3.1.0 development
  • karma-coverage ^2.0.1 development
  • karma-coverage-istanbul-instrumenter ^1.0.1 development
  • karma-detect-browsers ^2.2.3 development
  • karma-edge-launcher ^0.4.2 development
  • karma-firefox-launcher ^1.0.0 development
  • karma-ie-launcher ^1.0.0 development
  • karma-jasmine ^3.1.1 development
  • karma-longest-reporter ^1.1.0 development
  • karma-safari-launcher ^1.0.0 development
  • karma-spec-reporter ^0.0.32 development
  • merge-stream ^2.0.0 development
  • mime ^2.0.3 development
  • mkdirp ^1.0.0 development
  • open ^7.0.0 development
  • request ^2.79.0 development
  • rimraf ^3.0.0 development
  • rollup ^1.21.4 development
  • rollup-plugin-external-globals ^0.5.0 development
  • rollup-plugin-strip-pragma ^1.0.0 development
  • rollup-plugin-uglify ^6.0.3 development
  • stream-to-promise ^2.2.0 development
  • yargs ^15.0.1 development
  • esm ^3.2.25
EXTRAS/node_modules/cliui/package.json npm
  • chai ^4.2.0 development
  • chalk ^3.0.0 development
  • coveralls ^3.0.3 development
  • mocha ^6.2.2 development
  • nyc ^14.1.1 development
  • standard ^12.0.1 development
  • string-width ^4.2.0
  • strip-ansi ^6.0.0
  • wrap-ansi ^6.2.0
EXTRAS/node_modules/color-convert/package.json npm
  • chalk ^2.4.2 development
  • xo ^0.24.0 development
  • color-name ~1.1.4
EXTRAS/node_modules/decamelize/package.json npm
  • ava * development
  • xo * development
EXTRAS/node_modules/emoji-regex/package.json npm
  • @babel/cli ^7.2.3 development
  • @babel/core ^7.3.4 development
  • @babel/plugin-proposal-unicode-property-regex ^7.2.0 development
  • @babel/preset-env ^7.3.4 development
  • mocha ^6.0.2 development
  • regexgen ^1.3.0 development
  • unicode-12.0.0 ^0.7.9 development
EXTRAS/node_modules/find-up/package.json npm
  • ava ^2.1.0 development
  • is-path-inside ^2.1.0 development
  • tempy ^0.3.0 development
  • tsd ^0.7.3 development
  • xo ^0.24.0 development
  • locate-path ^5.0.0
  • path-exists ^4.0.0
EXTRAS/node_modules/fs-extra/package.json npm
  • coveralls ^3.0.0 development
  • istanbul ^0.4.5 development
  • klaw ^2.1.1 development
  • klaw-sync ^3.0.2 development
  • minimist ^1.1.1 development
  • mocha ^5.0.5 development
  • proxyquire ^2.0.1 development
  • read-dir-files ^0.1.1 development
  • semver ^5.3.0 development
  • standard ^12.0.1 development
  • graceful-fs ^4.2.0
  • jsonfile ^4.0.0
  • universalify ^0.1.0
EXTRAS/node_modules/get-caller-file/package.json npm
  • @types/chai ^4.1.7 development
  • @types/ensure-posix-path ^1.0.0 development
  • @types/mocha ^5.2.6 development
  • @types/node ^11.10.5 development
  • chai ^4.1.2 development
  • ensure-posix-path ^1.0.1 development
  • mocha ^5.2.0 development
  • typescript ^3.3.3333 development
EXTRAS/node_modules/gltf-pipeline/package.json npm
  • cloc ^2.5.1 development
  • coveralls ^3.0.9 development
  • dependency-tree ^7.2.0 development
  • eslint ^6.8.0 development
  • eslint-config-cesium ^8.0.1 development
  • gulp ^4.0.2 development
  • jasmine ^3.5.0 development
  • jasmine-spec-reporter ^4.2.1 development
  • jsdoc ^3.6.3 development
  • nyc ^15.0.0 development
  • open ^7.0.2 development
  • bluebird ^3.7.2
  • cesium ^1.66.0
  • draco3d ^1.3.4
  • fs-extra ^8.1.0
  • mime ^2.4.4
  • object-hash ^2.0.1
  • yargs ^15.1.0
EXTRAS/node_modules/graceful-fs/package.json npm
  • import-fresh ^2.0.0 development
  • mkdirp ^0.5.0 development
  • rimraf ^2.2.8 development
  • tap ^12.7.0 development
EXTRAS/node_modules/is-fullwidth-code-point/package.json npm
  • ava ^1.3.1 development
  • tsd-check ^0.5.0 development
  • xo ^0.24.0 development
EXTRAS/node_modules/jsonfile/package.json npm
  • mocha 2.x development
  • rimraf ^2.4.0 development
  • standard ^10.0.3 development
  • graceful-fs ^4.1.6
EXTRAS/node_modules/locate-path/package.json npm
  • ava ^1.4.1 development
  • tsd ^0.7.2 development
  • xo ^0.24.0 development
  • p-locate ^4.1.0
EXTRAS/node_modules/mime/package.json npm
  • benchmark * development
  • chalk * development
  • eslint * development
  • mime-db 1.40.0 development
  • mime-score * development
  • mime-types 2.1.24 development
  • mocha 6.1.4 development
  • runmd * development
  • standard-version 6.0.1 development
EXTRAS/node_modules/object-hash/package.json npm
  • browserify ^16.2.3 development
  • gulp ^4.0.0 development
  • gulp-browserify ^0.5.1 development
  • gulp-coveralls ^0.1.4 development
  • gulp-exec ^3.0.1 development
  • gulp-istanbul ^1.1.3 development
  • gulp-jshint ^2.0.0 development
  • gulp-mocha ^5.0.0 development
  • gulp-rename ^1.2.0 development
  • gulp-replace ^1.0.0 development
  • gulp-uglify ^3.0.0 development
  • jshint ^2.8.0 development
  • jshint-stylish ^2.1.0 development
  • karma ^4.2.0 development
  • karma-chrome-launcher ^2.2.0 development
  • karma-mocha ^1.3.0 development
  • mocha ^6.2.0 development
EXTRAS/node_modules/p-limit/package.json npm
  • ava ^1.2.1 development
  • delay ^4.1.0 development
  • in-range ^1.0.0 development
  • random-int ^1.0.0 development
  • time-span ^2.0.0 development
  • tsd-check ^0.3.0 development
  • xo ^0.24.0 development
  • p-try ^2.0.0
EXTRAS/node_modules/p-locate/package.json npm
  • ava ^1.4.1 development
  • delay ^4.1.0 development
  • in-range ^1.0.0 development
  • time-span ^3.0.0 development
  • tsd ^0.7.2 development
  • xo ^0.24.0 development
  • p-limit ^2.2.0
EXTRAS/node_modules/p-try/package.json npm
  • ava ^1.4.1 development
  • tsd ^0.7.1 development
  • xo ^0.24.0 development
EXTRAS/node_modules/path-exists/package.json npm
  • ava ^1.4.1 development
  • tsd ^0.7.2 development
  • xo ^0.24.0 development
EXTRAS/node_modules/require-directory/package.json npm
  • jshint ^2.6.0 development
  • mocha ^2.1.0 development
EXTRAS/node_modules/require-main-filename/package.json npm
  • chai ^4.0.0 development
  • standard ^10.0.3 development
  • standard-version ^4.0.0 development
  • tap ^11.0.0 development
EXTRAS/node_modules/set-blocking/package.json npm
  • chai ^3.5.0 development
  • coveralls ^2.11.9 development
  • mocha ^2.4.5 development
  • nyc ^6.4.4 development
  • standard ^7.0.1 development
  • standard-version ^2.2.1 development
EXTRAS/node_modules/string-width/package.json npm
  • ava ^1.4.1 development
  • tsd ^0.7.1 development
  • xo ^0.24.0 development
  • emoji-regex ^8.0.0
  • is-fullwidth-code-point ^3.0.0
  • strip-ansi ^6.0.0
EXTRAS/node_modules/strip-ansi/package.json npm
  • ava ^2.4.0 development
  • tsd ^0.10.0 development
  • xo ^0.25.3 development
  • ansi-regex ^5.0.0
EXTRAS/node_modules/universalify/package.json npm
  • colortape ^0.1.2 development
  • coveralls ^3.0.1 development
  • nyc ^10.2.0 development
  • standard ^10.0.1 development
  • tape ^4.6.3 development
EXTRAS/node_modules/which-module/package.json npm
  • ava ^0.19.1 development
  • coveralls ^2.13.1 development
  • nyc ^10.3.0 development
  • standard ^10.0.2 development
  • standard-version ^4.0.0 development
EXTRAS/node_modules/wrap-ansi/package.json npm
  • ava ^2.1.0 development
  • chalk ^2.4.2 development
  • coveralls ^3.0.3 development
  • has-ansi ^3.0.0 development
  • nyc ^14.1.1 development
  • xo ^0.24.0 development
  • ansi-styles ^4.0.0
  • string-width ^4.1.0
  • strip-ansi ^6.0.0
EXTRAS/node_modules/y18n/package.json npm
  • chai ^4.0.1 development
  • coveralls ^3.0.0 development
  • mocha ^4.0.1 development
  • nyc ^11.0.1 development
  • rimraf ^2.5.0 development
  • standard ^10.0.0-beta.0 development
  • standard-version ^4.2.0 development
EXTRAS/node_modules/yargs/package.json npm
  • c8 ^7.0.0 development
  • chai ^4.2.0 development
  • chalk ^3.0.0 development
  • coveralls ^3.0.9 development
  • cpr ^3.0.1 development
  • cross-spawn ^7.0.0 development
  • es6-promise ^4.2.5 development
  • hashish 0.0.4 development
  • mocha ^7.0.0 development
  • rimraf ^3.0.0 development
  • standard ^14.0.0 development
  • which ^2.0.0 development
  • yargs-test-extends ^1.0.1 development
  • cliui ^6.0.0
  • decamelize ^1.2.0
  • find-up ^4.1.0
  • get-caller-file ^2.0.1
  • require-directory ^2.1.1
  • require-main-filename ^2.0.0
  • set-blocking ^2.0.0
  • string-width ^4.2.0
  • which-module ^2.0.0
  • y18n ^4.0.0
  • yargs-parser ^18.1.1
EXTRAS/node_modules/yargs-parser/package.json npm
  • c8 ^7.0.1 development
  • chai ^4.2.0 development
  • mocha ^7.0.0 development
  • standard ^14.3.1 development
  • camelcase ^5.0.0
  • decamelize ^1.2.0
EXTRAS/package-lock.json npm
  • @types/color-name 1.1.1
  • ansi-regex 5.0.0
  • ansi-styles 4.2.1
  • bluebird 3.7.2
  • camelcase 5.3.1
  • cesium 1.67.0
  • cliui 6.0.0
  • color-convert 2.0.1
  • color-name 1.1.4
  • decamelize 1.2.0
  • draco3d 1.3.6
  • emoji-regex 8.0.0
  • esm 3.2.25
  • find-up 4.1.0
  • fs-extra 8.1.0
  • get-caller-file 2.0.5
  • gltf-pipeline 2.1.8
  • graceful-fs 4.2.3
  • is-fullwidth-code-point 3.0.0
  • jsonfile 4.0.0
  • locate-path 5.0.0
  • mime 2.4.4
  • object-hash 2.0.3
  • p-limit 2.2.2
  • p-locate 4.1.0
  • p-try 2.2.0
  • path-exists 4.0.0
  • require-directory 2.1.1
  • require-main-filename 2.0.0
  • set-blocking 2.0.0
  • string-width 4.2.0
  • strip-ansi 6.0.0
  • universalify 0.1.2
  • which-module 2.0.0
  • wrap-ansi 6.2.0
  • y18n 4.0.0
  • yargs 15.3.1
  • yargs-parser 18.1.1
EXTRAS/node_modules/require-main-filename/LICENSE.txt pypi
  • ARISINGOUTOFORINCONNECTIONWITHTHEUSEORPERFORMANCEOFTHISSOFTWARE. *
  • Copyright *
  • LIABLEFORANYSPECIAL ,DIRECT,INDIRECT,ORCONSEQUENTIALDAMAGES
  • OFMERCHANTABILITYANDFITNESS.INNOEVENTSHALLTHEAUTHORBE *
  • ORANYDAMAGESWHATSOEVERRESULTINGFROMLOSSOFUSE ,DATAORPROFITS,
  • Permissiontouse ,copy,modify,and
  • THESOFTWAREISPROVIDED *
  • WHETHERINANACTIONOFCONTRACT ,NEGLIGENCEOROTHERTORTIOUSACTION,
  • WITHREGARDTOTHISSOFTWAREINCLUDINGALLIMPLIEDWARRANTIES *
  • appearinallcopies. *
  • foranypurposewithorwithoutfeeisherebygranted ,provided
  • thattheabovecopyrightnoticeandthispermissionnotice *
setup.py pypi
  • TrakoDracoPy *
  • cycler >=0.10.0
  • dataclasses >=0.6
  • dataclasses-json >=0.3.6
  • kiwisolver >=1.1.0
  • marshmallow >=3.2.2
  • marshmallow-enum >=1.5.1
  • matplotlib >=3.1.1
  • mypy-extensions >=0.4.3
  • numpy >=1.17.4
  • packaging >=19.2
  • prettytable >=0.7.2
  • pygltflib >=1.11.10
  • pyparsing >=2.4.5
  • python-dateutil >=2.8.1
  • six >=1.13.0
  • stringcase >=1.2.0
  • typing-extensions >=3.7.4.1
  • typing-inspect >=0.5.0
  • vtk >=8.1.2
EXTRAS/node_modules/@types/color-name/package.json npm
EXTRAS/node_modules/color-name/package.json npm
EXTRAS/node_modules/draco3d/package.json npm
EXTRAS/node_modules/esm/package.json npm
requirements.txt pypi
environment.yml pypi
  • dataclasses ==0.8
  • dataclasses-json ==0.5.2
  • deprecated ==1.2.10
  • marshmallow ==3.9.1
  • marshmallow-enum ==1.5.1
  • mypy-extensions ==0.4.3
  • prettytable ==2.0.0
  • pygltflib ==1.13.7
  • stringcase ==1.2.0
  • typing-extensions ==3.7.4.3
  • typing-inspect ==0.6.0
  • wcwidth ==0.2.5
  • wrapt ==1.12.1