# How do you construct a self-similar binary structured-tree?

Please excuse me if this question somehow looks trivial or not really interesting, but I recently have a hard time to convince someone else that my algorithm for constructing a self-similar binary structured-tree (read more here: https://doi.org/10.1002/cnm.3229) is correct. So, the algorithm is summarized in these 4 steps:

1. Get root and threshold radii marked as $$r_{\text{root}}$$ and $$r_{\text{threshold}}$$ respectively.
2. Scale parent radius ($$r_{p}$$) with $$\alpha$$ and $$\beta$$ and define daughters radii as:

$$r_{\text{left}} = \alpha r_{p}$$

$$r_{\text{right}} = \beta r_{p}$$

1. From Ma et. al. paper (https://doi.org/10.1002/cnm.3229):

The bifurcating procedure halts if the radius of the current vessel is less than $$r_{\text{threshold}}$$ and it is set as a terminal branch.

My problem is that based on my understanding the above algorithm works like this:

• When I stand at $$r_{p}$$ and I want to decide if should I bifurcate or not, I calculate $$r_{\text{left}}$$ and $$r_{\text{right}}$$ based on step 2 in the above procedure.
• Then I compare $$r_{\text{left}}$$ and $$r_{\text{right}}$$ with $$r_{\text{threshold}}$$ and if they are greater than $$r_{\text{threshold}}$$, I insert left and right nodes in my structured-tree.

But I have a lengthy discussion with someone else that argues that I need to only compare $$r_{p}$$ with $$r_{\text{threshold}}$$ not $$r_{\text{left}}$$ and $$r_{\text{right}}$$ and in the original paper the purpose of authors from current vessel is $$r_{p}$$. In my understanding it doesn't make sense because in the original paper referenced here (https://doi.org/10.1002/cnm.3229) authors calculate $$r_{\text{left}}$$ and $$r_{\text{right}}$$ at step 2 and then decide to bifurcate or not, but if they want to decide to bifurcate solely based on $$r_{p}$$ so why even step 2 is there cause in that situation we don't need $$r_{\text{left}}$$ and $$r_{\text{right}}$$ to decide to bifurcate or not. Any idea or suggestion is appreciated here.

The other person's argument sounds to me like a reorganization of your algorithm. It will produce slightly different results, but in the end achieve the same goal. Let me demonstrate with a simple tree of one parent of radius 1, two children of radii (alpha=)0.3 and (beta=)0.7 against a threshold of 0.5.

Your suggestion would produce the tree below

     1
Null_|_0.7
Null_|_Null


Their suggestion would produce a slightly different tree

                 1
0.3________|________0.7
Null_|_Null      0.21____|____0.49
Null_|_Null  Null_|_Null


I am putting Null because I am not exactly sure how you handle your data structures, maybe you don't create the leaves at all. In that case, visualization would be different.

The main point is that the first tree is a subtree of the second tree. Hence, this becomes a philosophical problem. Which one of the trees describes the phenomenon better? I would argue that your interpretation is the correct one, because I don't agree with creating children which are below the prescribed threshold, since they will not survive. But the argument "the parents who are below the threshold cannot produce off-springs" is equally valid.

The citation you pulled

The bifurcating procedure halts if the radius of the current vessel is less than threshold and it is set as a terminal branch.

seems to agree with the second interpretation, e.g. "the parents who are below the threshold cannot produce off-spring."

Looking at the algorithm, they definitely compute radii of the children before they talk about the stopping criteria. It may be bad writing but definitely supports your interpretation.

The problem is we can not know what they actually did in their research without access to their codes and they don't seem to provide it. How do you feel about reaching out to them and requesting some of their codes? In my experience, many researchers are happy to share their code -unless it is proprietary or poorly written research software, e.g. the incurable plague of academia- as it is a way to get some exposure.

• For many journals the authors agree to release code as part of the publication agreement, though they sometimes violate that agreement later. Jul 26 '20 at 14:21