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)