Skip to contents

Standardizes QSM variable names and ordering across different QSM software

Usage

standardize_qsm(cylinder)

Arguments

cylinder

QSM cylinder data frame

Value

Returns a data frame

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>