Ancestry ThruLines type of graphical view

I am looking to be able to produce the type of descendant tree that you get with Ancestries ThruLines which lead down to DNA matches in my case indicated by a tag which would then allow the exporting of this data to a new much simplified GRAMPS Tree. This would then give a quick comparator against the rubbish that Ancestry produces by the inclusion of incorrect trees.
Anybody got any ideas please.

GRAMPS: 5.1.6
Python: 3.10.12 (main, Nov 20 2023, 15:14:05) [G…
BSDDB: 6.2.9 (5, 3, 28)
sqlite: 3.37.2 (2.6.0)
LANG: en_GB.UTF-8
OS: Linux
Distribution: 6.5.0-28-generic

First create a custom filter using the rule “People with the <tag>”, and then create another filter using the first filter as input to the rule “Relationship path between <person> and people matching <filter>”, where you are the <person> and the <filter> is the first custom filter. Use that second custom filter to export the people.

Thanks George I had already done exactly that but there seems to be an
issue with this Rule in that I have 4,5,6 th cousins with DNA Matches
and Common Ancestors and Relationships proved with the Relationship Tool
who simply do not appear.
Sometimes the Common Ancestor is not picked up, sometimes a Common
Ancestor is picked up but not the spouse who is also a common ancestor.

I am a little bit baffled as to the cause it does not seem to relate to
how many generations back, or status of a relationship married,unknown etc

At this stage I just know the Rule does not work in all cases and will
continue to establish why because if it did it would solve my problem.
phil

GRAMPS: 5.1.6
Python: 3.10.12 (main, Nov 20 2023, 15:14:05) [G…
sqlite: 3.37.2 (2.6.0)
LANG: en_GB.UTF-8
OS: Linux
Distribution: 6.5.0-28-generic

So found this which I am hoping is the correct Rule for
“Relationship path between and people matching ”

First question where does “N” come from
Second question where does “N” get used

In Preferences " Max generations for relationships" is set to 15

class RelationshipPathBetween(Rule):
“”“Rule that checks for a person that is a descendant of a
specified person
not more than N generations away”“”

 labels = [ _('ID:'), _('ID:') ]
 name = _("Relationship path between <persons>")
 category = _('Relationship filters')
 description = _("Matches the ancestors of two persons back "
                 "to a common ancestor, producing the relationship "
                 "path between two persons.")

phil

Increased Max generations to 25 made no difference
1 down several more possible to look at
phil

No, the one you found is for the relationship path between two specific people. Here’s the one you’re looking for:
/gramps/gen/filters/rules/person/_deeprelationshippathbetween.py

I think I have found one problem on the one family line I have looked at
so far the common match with me and all the DNA matches is 8 generations
prior to me, and that relationship is being established by the filter
and the relationship tool, however when the filter is run it only
presents the names of people back 7 generations the earliest ones do not
appear as part of the filter output.
phil

Thanks George
sort of figured I was looking at the wrong thing, however my last
communication gives a better description of what is happening in practice.

Below from the Rule might give someone the clue because it is gobbly-
gook to me. Is this saying Python cannot handle all the loops to enable
this to work and another method has been employed which is obviously not
storing the 8th generation as per my example.
? what is an “ordered dict” and how do I get to modify it so it stores
the crucial last link in the chain of names

Just proved it constructed dummy parents for 8th generation and then
created another line down to a DNA match and now the 8th generation
appear in the filtered list of names something fundamental wrong with
the rule

Will try to work out how to phrase a “bug report”

" def find_deep_relations(db, user, person, target_people):
“”" This explores all possible paths between a person and one or
more targets. The algorithm processes paths in a breadth first wave, one
remove at a time. The first path that reaches a target causes the target
to be marked complete and the path to be stored in the return_paths set.
By processing in wave, the return path should be a shortest path.
The function stores to do data and intermediate results in an ordered
dict,rather than using a recursive algorithm becasue some trees have
been found that exceed the standard python recursive depth. “”" "

phil

That’s just how it stores a relationship path. Let’s say a given path goes from person1 to person2 to person3, who have the handles handle1, handle2, and handle3 (handles are different from Gramps IDs). The ordered dict would look something like:
{ ‘handle1’ = None, ‘handle2’ = ‘handle1’, ‘handle3’ = ‘handle2’ }
(well, probably not exactly like that; apologies to readers who actually know python).

But it looks like it will skip people once they’ve already been added to a path (see lines 120-121). That’s probably a good thing, but I wonder if it means your problem might be due to some relationships in your tree that are causing it to encounter the same person multiple times. Are there cases where the path between you and one of your tagged people includes other tagged people? Or any circular relationships among people along the path? Not sure if either of those would cause it.

Keep in mind also that the relationship paths found by this filter rule are not limited to biological relationship paths (which are the only ones you want for DNA matches). If it’s the case that, within your tree, there’s a non-biological connection between you and one of your matches, and the filter rule finds that path first, you might not get the results that you want.

George

It must encounter the 8th gen this is the nature of the beast ie “Common
Ancestor”
Let me describe John is Gen 8
He has 4 sons John, George, William, Henry making up gen 7
There are maybe 10 matches going upto George including me and 2 or 3
each going to the other brothers.
These multiple matches going to all 4 siblings are all there it is just
the connections via the 4 brothers to gen 8 that vanishes.
So whilst I believe my tree is correct I will look again and try to look
at another similar grouping to prove the point.
I can understand how each unique family node can only appear once but in
this case it will be found 4 times and 3 of them are duplicates and can
be ignored.
phil

Given your explanation, I think the result makes sense. The four sons (and their wives) are the nearest common ancestors for you and your matches; John and his wife are not. (Yes, the four sons got their DNA from John and his wife, but they in turn got it from their parents and so on. I don’t know if you have generations 9-10-11-etc. in your tree but you shouldn’t expect to see them in the result either.)

I read your explanation again and I have to amend my reply. It sounds like George and his wife are the nearest common ancestors for you and 10 of your matches. For the 2 or 3 matches going to the other brothers, the nearest common ancestors would be John and his wife.

However, if I understand it, the filter rule doesn’t look for nearest common ancestors, it looks for a relationship path, which it seems to have found through the brothers.

George
There is no relationship path between the 4 brothers other than via
their parents so I am descended from George my relationship to the DNA
Matches who are descended from George’s siblings must be through the
parents.
Please note you can forget DNA as such these are only People with Tags
that say “DNA Match” and the first Rule is used to find the Tags. I am
not using any Paternal/Maternal Line following system.
There are no further generations back because I have found none in 20
years of searching but I can cure the problem by creating dummy parents
for the mother and father of the 4 brothers.
I need to find a part of my tree where this is not an issue which could
take some time being that are 128 pairs of individuals to look at at
this level of Ancestor.
Thanks for your thoughts and time
phil

I finally realised that the design of the
Relationship path… and people matching
did not in fact go back to the most distant ancestor but stopped after so many iterations.
However at this point I remembered I had started tagging (for other reasons) some of my Most Distant Ancestors including these in the filter fixed the problem so I then added this tag to all my Ancestral Lines and I now have exactly what I require
Thanks George


This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.