Is there a way to extract simply the main descendant branch from a sublink_mdb output?
Thank you.
Dylan Nelson
22 Apr '22
The "sublink_mdb" is (supposed to be) the main descendant branch. Perhaps you can provide a specific example, or more details of what you are interested in?
Houda Haidar
23 Apr '22
Thanks for the quick reply!
Here is an example on TNG50-1 of galaxy_id =378560 at snapnum 50. Sublink_mdb seems to return many "main descendant" branches. I am not sure which one to use. As of now, I am using the first 50 entries corresponding to snapnums [50-->99] (as shown in orange). Is that correct?
Dylan Nelson
24 Apr '22
I believe you have encountered the situation described in the documentation: "(this is the single main branch only if this subhalo lies on the MPB of its z=0 descendant, otherwise it is its full descendant sub-tree containing its z=0 descendant as the first entry)".
Can you confirm, that subhalo 378560 at snapshot 50 is not on the MPB of its z=0 descendant?
It certainly looks like the orange track you have highlighted is correct, but I am not sure the first N entries are really correct. Can you double-check by explicitly following the "Descendant" links in the tree?
Houda Haidar
24 Apr '22
> Can you confirm, that subhalo 378560 at snapshot 50 is not on the MPB of its z=0 descendant?
The z=0 descendant is subhaloid = 521430. We can see from the online tree that indeed it is not on the MPB and that it merges at snap 71.
> It certainly looks like the orange track you have highlighted is correct, but I am not sure the first N entries are really correct. Can you double-check by explicitly following the "Descendant" links in the tree?
I realised that the first entries are instead for subhaloid 378559 snap50, which lies on the MPB of the z=0 descendant 521430.

I tested the last entries instead. It shows that Subfind snap50 is indeed 378560 (see green). Its branch also stops at snap 71 (see purple), as shown on the online tree.
I am not sure if taking the last entries would always work. Maybe I need to find the index position of the subhaloid in the file[‘SubfindID’] output, follow its corresponding snapnums and stop when the difference between two snapshots is greater than 1?
Dylan Nelson
24 Apr '22
I wouldn't follow entries in order, in general the MDB will be complex than that. You should follow DescendantID, you can convert this into an index in the tree by subtracting RootDescendantID (take a look at illustris_python/sublink.py for ideas).
Dear TNG team,
Is there a way to extract simply the main descendant branch from a sublink_mdb output?
Thank you.
The "sublink_mdb" is (supposed to be) the main descendant branch. Perhaps you can provide a specific example, or more details of what you are interested in?
Thanks for the quick reply!
Here is an example on TNG50-1 of galaxy_id =378560 at snapnum 50. Sublink_mdb seems to return many "main descendant" branches. I am not sure which one to use. As of now, I am using the first 50 entries corresponding to snapnums [50-->99] (as shown in orange). Is that correct?
I believe you have encountered the situation described in the documentation: "(this is the single main branch only if this subhalo lies on the MPB of its z=0 descendant, otherwise it is its full descendant sub-tree containing its z=0 descendant as the first entry)".
Can you confirm, that subhalo 378560 at snapshot 50 is not on the MPB of its z=0 descendant?
It certainly looks like the orange track you have highlighted is correct, but I am not sure the first N entries are really correct. Can you double-check by explicitly following the "Descendant" links in the tree?
> Can you confirm, that subhalo 378560 at snapshot 50 is not on the MPB of its z=0 descendant?
The z=0 descendant is subhaloid = 521430. We can see from the online tree that indeed it is not on the MPB and that it merges at snap 71.
> It certainly looks like the orange track you have highlighted is correct, but I am not sure the first N entries are really correct. Can you double-check by explicitly following the "Descendant" links in the tree?
I realised that the first entries are instead for subhaloid 378559 snap50, which lies on the MPB of the z=0 descendant 521430.

I tested the last entries instead. It shows that Subfind snap50 is indeed 378560 (see green). Its branch also stops at snap 71 (see purple), as shown on the online tree.
I am not sure if taking the last entries would always work. Maybe I need to find the index position of the subhaloid in the file[‘SubfindID’] output, follow its corresponding snapnums and stop when the difference between two snapshots is greater than 1?
I wouldn't follow entries in order, in general the MDB will be complex than that. You should follow
DescendantID
, you can convert this into an index in the tree by subtractingRootDescendantID
(take a look at illustris_python/sublink.py for ideas).