Examples
BoneJ Module
1import numpy as np
2import nrrd
3import os
4import subprocess
5import tempfile
6import sys
7import matplotlib.pyplot as plt
8import tifffile as tiff
9from contextlib import contextmanager
10import sys, os
11
12from BoneJ_Module import Thickness
13from BoneJ_Module import Spacing
14from BoneJ_Module import Area_VolumeFraction
15from BoneJ_Module import Connectivity
16from BoneJ_Module import Anisotropy
17from BoneJ_Module import Ellipsoid_Factor
18
19array,array1header = nrrd.read(volume)
20voxel_size = [51.29980, 51.29980, 51.29980] #microns
21fiji_path = "~/Fiji.app/ImageJ-linux64"
22
23if __name__ == "__main__":
24 Thickness_result = Thickness(array,voxel_size,fiji_path,showMaps = True, maskArtefacts = True)
25 Spacing_result = Spacing(array,voxel_size,fiji_path,showMaps = True, maskArtefacts = True)
26 Area_VolumeFraction_result = Area_VolumeFraction(array,voxel_size,fiji_path)
27 Connectivity_result = Connectivity(array,voxel_size,fiji_path)
28 Anisotropy_result = Anisotropy(array,voxel_size,fiji_path,NDirs = 2000, nLines = 10000, samplingincrement = 1.73,
29 radii = False, eigens = False)
30 Ellipsoid_Factor(array, voxel_size, fiji_path,nVectors = 100,vectorIncrement =.435,skipRatio =1,contactSensitivity = 1
31 ,maxIterations = 100,maxDrift = .4,runs = 1,seedOnDistanceRidge = True,distanceThreshold = .6,seedOnTopologyPreserving = True
32 ,showFlinnPlots = True,showConvergence = True,showSecondaryImages = True,showMaps = True)
BoneJ Secondary Module
1import numpy as np
2import nrrd
3import csv
4import os
5import subprocess
6from glob import glob
7import tempfile
8import sys
9import matplotlib.pyplot as plt
10import tifffile as tiff
11from contextlib import contextmanager
12import sys, os
13
14from BoneJ_Module import Fractal_Dimension
15from BoneJ_Module import Surface_Area
16from BoneJ_Module import Analyze_Skeleton
17from BoneJ_Module import Intertrabecular_Angles
18from BoneJ_Module import Skeletonise
19
20array,array1header = nrrd.read(volume)
21voxel_size = [51.29980, 51.29980, 51.29980] #microns
22fiji_path = "~/Fiji.app/ImageJ-linux64"
23
24if __name__ == "__main__":
25 Fractal_Dimension_Results = Fractal_Dimension(array,voxel_size,fiji_path,startBoxSize=48,smallestBoxSize=6,scaleFactor=1.2,autoParam=False)
26 Surface_Area_Result= Surface_Area(array,voxel_size,fiji_path)
27 Analzye_Skeleton_Result = Analyze_Skeleton(array,voxel_size,fiji_path,pruneCycleMethod=None,pruneEnds=True,excludeRoi=False,calculateShortestPaths=True,verbose=True,displaySkeletons=True)
28 Intertrabecular_Angles_Result = Intertrabecular_Angles(array,voxel_size,fiji_path,minimumValence=3,maximumValence=50,marginCutOff=10,minimumTrabecularLength=0,iteratePruning=False,printCentroids=False,useClusters=False,printCulledEdgePercentages=False)
29 Skeletonise_Result=Skeletonise(array,voxel_size,fiji_path)
Anisotropy Parameter Convergence
1import numpy as np
2import nrrd
3import csv
4import os
5import subprocess
6from glob import glob
7import tempfile
8import sys
9import matplotlib.pyplot as plt
10from contextlib import contextmanager
11import sys, os
12
13
14array,array1header = nrrd.read(volume) # should be a numpy array
15voxel_size = [51.29980, 51.29980, 51.29980] #microns
16fiji_path = "~/Fiji.app/ImageJ-linux64"
17
18
19# feed in numpy array
20
21nLines_list = [1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384]
22NDirs_list = [16,32,64,128,256,512,1024,2048,4096,8192]
23csv_dir = "/BoneJ_Headless/Anisotropy_Convergence_Test.csv" #location of csv file storing anisotropy convergence measurements
24from Anisotropy_Parameter_Convergence import Anisotropy_Convergence
25
26if __name__ == "__main__":
27 Anisotropy_convergence_result=Anisotropy_Convergence(array,voxel_size,fiji_path,NDirs=NDirs_list, nLines=nLines_list, samplingincrement=1.73, radii=False, eigens=False,csv_dir=csv_dir)
Ellipsoid Factor Convergence
1import numpy as np
2import nrrd
3import csv
4import os
5import subprocess
6from glob import glob
7import tempfile
8import sys
9import matplotlib.pyplot as plt
10from contextlib import contextmanager
11import sys, os
12
13
14array,array1header = nrrd.read(volume) # should be a numpy array
15voxel_size = [51.29980, 51.29980, 51.29980] #microns
16fiji_path = "~/Fiji.app/ImageJ-linux64"
17
18
19# feed in numpy array
20
21nLines_list = [1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384]
22NDirs_list = [16,32,64,128,256,512,1024,2048,4096,8192]
23csv_dir = "/BoneJ_Headless/Ellipsoid_Factor_Convergence_Test.csv" #location of csv file storing anisotropy convergence measurements
24
25from Ellipsoid_Factor_Convergence import Ellipsoid_Factor_Convergence
26
27if __name__ == "__main__":
28 Ellipsoid_Factor_result = Ellipsoid_Factor_Convergence(array,voxel_size,fiji_path,csv_dir=csv_dir,nVectors = nVectors_list,
29 vectorIncrement = VectorIncrement_list,
30 skipRatio = skipRatio_list,
31 contactSensitivity = contactSensitivity_list,
32 maxIterations = maxIterations_list,
33 maxDrift = maxDrift_list,
34 runs = 1,
35 seedOnDistanceRidge = True,
36 distanceThreshold = .8,
37 seedOnTopologyPreserving = True,
38 showFlinnPlots = False,
39 showConvergence = False)