2
$\begingroup$

There are $83294$ entity in anatomical data

enter image description here

How to find a number of anatomical entity which are able to obtain a 3D model?

for instance, I tried:

enter image description here

$\endgroup$
1
  • 1
    $\begingroup$ This would take a lot of computation time with how slow entities are, but I think it would be the number of entities that return Missing[NotAvailable] when you evaluate something like EntityValue[Entity["AnatomicalStructure", "SetOfAccessoryNerves"],EntityProperty["AnatomicalStructure", "Graphics3D"]], with the EntityProperty["AnatomicalStructure", "Graphics3D"] property $\endgroup$
    – ktm
    Sep 30, 2016 at 21:55

1 Answer 1

4
$\begingroup$

I think that this will be slow unless WRI makes a class of “graphable” entities.

Further, many of these will never have graphs (e.g. “peripharyngeal space”).

Anyways, …

So here’s the answer I got to work:

(* get 20 random entities*)
RandomEntity["AnatomicalStructure", 20]

(* extract the names out of the entities *)
#[[2]] & /@ %

(* find out if any have property Graphics3DPrimities != _Missing *)
Entity["AnatomicalStructure", #]["Graphics3DPrimitives"] & /@ %

And here is how I derived that answer:

(* find all of the properties possible for this entity type *)
EntityProperties["AnatomicalStructure"]

(* eyeball the result…coming to rest on “3D graphic” and “3D graphics primitives” *)

(* use InputForm[] to understand how the Entity[] looks inside *)
(* then strip out the internal property name *)
[[2]] & /@ %

(* the corresponding names are Graphics3D and Graphics3DPrimitives *)
(* almost home…of course no journey is complete without an unfruitful detour *)
(* maybe there is a class for this entity comprising graphable entities, haha *)
EntityClassList["AnatomicalStructure"]

(* so after looking at the help (ref/AnatomyPlot3D), I tried a couple more tests *)

Entity["AnatomicalStructure", "LeftFemur"]["Graphics3DPrimitives"]
Grphics3D@%

Entity["AnatomicalStructure", “RightFemur"]["Graphics3DPrimitives"]
Grphics3D@%

Entity["AnatomicalStructure", “Stomach”][“Graphics3DPrimitives"]
Grphics3D@%

(* Finally, it becomes a relatively simply matter to get 20 items *)
RandomEntity["AnatomicalStructure", 20]

(* strip out the internal names *)
#[[2]] & /@ %

(* dump that property for each one  *)
Entity["AnatomicalStructure", #]["Graphics3DPrimitives"] & /@ %

HTH.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.