tff_generate_trx_from_scratch.py1
Generate a trx file from csv, txt or npy files
Overview
usage: tff_generate_trx_from_scratch.py [-h] [--positions POSITIONS]
- [--offsets OFFSETS]
-
[--positions_csv POSITIONS] [--space {RASMM,VOXMM,VOX}] [--origin {NIFTI,TRACKVIS}] [--positions_dtype {float16,float32,float64}] [--offsets_dtype {uint32,uint64}] [--dpv FILE DTYPE] [--dps FILE DTYPE] [--groups FILE DTYPE] [--dpg GROUP FILE DTYPE] [--verify_invalid] [-f] reference OUT_TRACTOGRAM
Generate TRX file from a collection of CSV, TXT or NPY files by individually specifying positions, offsets, data_per_vertex, data_per_streamlines, groups and data_per_group. Each file must have its data type specified by the users.
A reference file must be provided (NIFTI) and the option --verify_invalid will remove invalid streamlines (outside of the bounding box in VOX space).
All dimensions (nbr_vertices and nbr_streamlines) and groups/dpg must match otherwise the script will (likely) crash.
Each instance of --dps, --dpv, --groups require 2 arguments (FILE, DTYPE). --dpg requires 3 arguments (GROUP, FILE, DTYPE). The choice of DTYPE are:
-
- (u)int8, (u)int16, (u)int32, (u)int64 - float16, float32, float64 - bool
Example command: tff_generate_trx_from_scratch.py fa.nii.gz generated.trx -f --positions test_npy/positions.npy --positions_dtype float16 --offsets test_npy/offsets.npy --offsets_dtype uint32 --dpv test_npy/dpv_cx.npy uint8 --dpv test_npy/dpv_cy.npy uint8 --dpv test_npy/dpv_cz.npy uint8 --dps test_npy/dps_algo.npy uint8 --dps test_npy/dps_cw.npy float64 --groups test_npy/g_AF_L.npy int32 --groups test_npy/g_AF_R.npy int32 --dpg g_AF_L test_npy/dpg_AF_L_mean_fa.npy float32 --dpg g_AF_R test_npy/dpg_AF_R_mean_fa.npy float32 --dpg g_AF_L test_npy/dpg_AF_L_volume.npy float32
positional arguments:
- reference
-
Reference anatomy for tck/vtk/fib/dpy file support (.nii or .nii.gz).
- OUT_TRACTOGRAM
-
Output filename. Format must be one of trk, tck, vtk, fib, dpy, trx.
options:
-
-h, --help -
show this help message and exit
-
--verify_invalid -
Verify that the positions are all valid. None outside of the bounding box in VOX space. Requires Dipy (due to use of SFT).
-
-f -
Force overwriting of the output files.
Positions options:
-
--positions POSITIONS -
Binary file containing the streamlines coordinates. Must be Nx3 (.npy)
-
--offsets OFFSETS -
Binary file containing the streamlines offsets (.npy)
-
--positions_csv POSITIONS -
CSV file containing the streamlines coordinates. Rows for each streamlines organized as x1,y1,z1, x2,y2,z2,...,xN,yN,zN
-
--space {RASMM,VOXMM,VOX} -
Space in which the coordinates are declared.[RASMM] Non-default option requires Dipy.
-
--origin {NIFTI,TRACKVIS} -
Origin in which the coordinates are declared. [NIFTI] Non-default option requires Dipy.
Data type options:
-
--positions_dtype {float16,float32,float64} -
Specify the datatype for positions for trx. [float32]
-
--offsets_dtype {uint32,uint64} -
Specify the datatype for offsets for trx. [uint64]
Streamlines metadata options:
--dpvFILE DTYPE-
Binary file containing data_per_vertex. Must haveNB_VERTICES as first dimension (.npy)
--dpsFILE DTYPE-
Binary file containing data_per_vertex. Must haveNB_STREAMLINES as first dimension (.npy)
--groupsFILE DTYPE-
Binary file containing a sparse group (indices). Indices should be lower than NB_STREAMLINES (.npy)
--dpgGROUP FILE DTYPE-
Binary file containing data_per_group.
-
Must have(1,) as first dimension (.npy)