Standardizes QSM variable names and ordering across different QSM software
Details
Renames supported QSM software output columns to be consistent. All names are lower case and underscore delimited. See the dictionary vignette for a detailed description of column names. A consistent QSM format ensures maximum compatibility when analyzing QSMs made with different software. This function can be run either before or after the update_cylinders function has been run, or at any stage.
Examples
## TreeQSM Processing Chain
file <- system.file("extdata/QSM.mat", package = "rTwig")
qsm <- import_qsm(file)
#> Importing TreeQSM .mat
cylinder <- qsm$cylinder
cylinder <- standardize_qsm(cylinder)
#> Updating Cylinder Ordering
#> Calculating Total Children
#> Building Cylinder Network
#> Verifying Topology
#> Calculating Growth Length
#> Calculating Reverse Branch Order
#> Calculating Branch Segments
#> Calculating Alternate Branch Numbers
#> Calculating Distance From Base
#> Calculating Average Distance To Twigs
str(cylinder)
#> Classes ‘tidytable’, ‘tbl’, ‘data.table’ and 'data.frame': 1136 obs. of 25 variables:
#> $ start_x : num 0.768 0.768 0.768 0.769 0.769 ...
#> $ start_y : num -16.4 -16.4 -16.4 -16.3 -16.3 ...
#> $ start_z : num 254 254 254 254 254 ...
#> $ axis_x : num 0.00995 -0.0111 0.01364 0.01571 0.01449 ...
#> $ axis_y : num 0.0912 0.0391 0.0367 0.0271 0.0267 ...
#> $ axis_z : num 0.996 0.999 0.999 1 1 ...
#> $ end_x : num 0.769 0.768 0.769 0.769 0.77 ...
#> $ end_y : num -16.4 -16.4 -16.3 -16.3 -16.3 ...
#> $ end_z : num 254 254 254 254 254 ...
#> $ id : int 1 2 3 4 5 6 7 8 9 10 ...
#> $ parent : num 0 1 2 3 4 5 6 7 8 9 ...
#> $ radius : num 0.0465 0.0454 0.0442 0.0437 0.0429 ...
#> $ raw_radius : num 0.0465 0.0454 0.0442 0.0437 0.0429 ...
#> $ length : num 0.09392 0.07216 0.06654 0.00938 0.06795 ...
#> $ branch : int 1 1 1 1 1 1 1 1 1 1 ...
#> $ branch_position: int 1 2 3 4 5 6 7 8 9 10 ...
#> $ branch_order : int 0 0 0 0 0 0 0 0 0 0 ...
#> $ reverse_order : num 20 20 20 20 20 20 20 20 20 20 ...
#> $ branch_alt : int 0 0 0 0 0 0 0 0 0 0 ...
#> $ segment : int 1 1 1 1 1 1 1 1 1 1 ...
#> $ parent_segment : int 0 0 0 0 0 0 0 0 0 0 ...
#> $ total_children : int 1 1 1 1 1 1 1 1 1 1 ...
#> $ growth_length : num 32.8 32.7 32.6 32.6 32.6 ...
#> $ base_distance : num 0.0939 0.1661 0.2326 0.242 0.31 ...
#> $ twig_distance : num 3.4 3.31 3.24 3.17 3.16 ...
#> - attr(*, ".internal.selfref")=<externalptr>
## SimpleForest Processing Chain
file <- system.file("extdata/QSM.csv", package = "rTwig")
cylinder <- read.csv(file)
cylinder <- standardize_qsm(cylinder)
#> Updating Branch Ordering
#> Calculating Total Children
#> Building Cylinder Network
#> Verifying Topology
#> Calculating Distance From Base
#> Calculating Average Distance To Twigs
str(cylinder)
#> Classes ‘tidytable’, ‘tbl’, ‘data.table’ and 'data.frame': 1149 obs. of 25 variables:
#> $ start_x : num 0.761 0.759 0.771 0.768 0.765 ...
#> $ start_y : num -16.4 -16.4 -16.4 -16.3 -16.4 ...
#> $ start_z : num 254 254 254 254 254 ...
#> $ axis_x : num -0.0286 0.2148 -0.0473 -0.0498 0.0678 ...
#> $ axis_y : num -0.078889 0.163918 0.03933 -0.011114 -0.000265 ...
#> $ axis_z : num 0.996 0.963 0.998 0.999 0.998 ...
#> $ end_x : num 0.759 0.771 0.768 0.765 0.769 ...
#> $ end_y : num -16.4 -16.4 -16.3 -16.4 -16.4 ...
#> $ end_z : num 254 254 254 254 254 ...
#> $ id : int 1 2 3 4 5 6 7 8 9 10 ...
#> $ parent : num 0 1 2 3 4 5 6 7 8 9 ...
#> $ radius : num 0.0472 0.0479 0.0469 0.0467 0.0453 ...
#> $ raw_radius : num 0.0472 0.0479 0.0469 0.0467 0.0453 ...
#> $ length : num 0.0497 0.0529 0.0535 0.0525 0.0528 ...
#> $ branch : int 1 1 1 1 1 1 1 1 1 1 ...
#> $ branch_position: int 1 2 3 4 5 6 7 8 9 10 ...
#> $ branch_order : int 0 0 0 0 0 0 0 0 0 0 ...
#> $ reverse_order : int 18 18 18 18 18 18 18 18 18 18 ...
#> $ branch_alt : num 0 0 0 0 0 0 0 0 0 0 ...
#> $ segment : num 1 1 1 1 1 1 1 1 1 1 ...
#> $ parent_segment : num 0 0 0 0 0 0 0 0 0 0 ...
#> $ total_children : int 1 1 1 1 1 1 1 1 1 1 ...
#> $ growth_length : num 31.4 31.4 31.3 31.3 31.2 ...
#> $ base_distance : num 0.0497 0.1027 0.1562 0.2086 0.2614 ...
#> $ twig_distance : num 3.43 3.38 3.33 3.27 3.22 ...
#> - attr(*, ".internal.selfref")=<externalptr>