One Approach to Using TNG-DNA with a DNA Project and DNA-PAT

            The TNG software is fantastic at tracking family trees.  While the standard version is primarily made to handle a single family tree with many individual branches, TNG-DNA has been modified to better support the fact that DNA projects handle many unrelated trees with many related branches.  Here is how I use TNG to support the Williams DNA Project.  It’s not the only way to use the software but it sure works well for us!! As a note, this first posting will deal only with separate trees for each project participant.  Having a common tree with participants as branches is a bit more complex and I will go into that in the next posting!

Decisions, Decisions

            One thing that was decided from the get go was that only DNA project participants could have trees in the database and upload GEDCOM’s to those trees.  In order to do this, and keep non-participants from uploading information, I setup the system so that a potential user has to complete an account request form.  This form includes basic information about themselves as well as very specific information about their kit and lineage.  They have to list their kit number and the name, birthdate (or ca.) and origin of their earliest known ancestor. This information then gets packed up in an email and set to the email address indicated as the lineage coordinator for the project.  For example, in my project, I had to solicit a volunteer to take care of the nearly 400 lineages in the project.  So, in a file called dna_config.php in the TNG-DNA code, there is a field that I have listed as Linage Coordinator Email Address.  Whatever email address is in this field is who will receive the email generated from the new user request form. (For the sake of ease in the rest of this how-to, I will refer to myself as the lineage coordinator.) Additionally, once this email is sent, a new user account is created and put into a “pending approval” status.  They cannot use it yet, but it exists and only awaits the admin to approve it. If the admin denies the request, the account is destroyed.

            Once that email is received, the very first thing I do is open DNA-PAT and check to verify that the kit number provided is indeed in the project, keeping inline with the project policy that only participants can put information into the TNG database.  Once I have confirmed the kit number, I then go to the TNG administrator menu.  There, I click on the “Trees” button which takes me to a section containing both the ability to create new trees as well as view/edit existing trees in the database. 

Defining Your Trees

            The first thing you have to decide is how to identify your trees. Every tree in the database must have a unique identifier.  Since each participant has a unique kit number…and these trees are for each participant, it only made sense to me to assign the kit number as the Tree ID.  That way, you should never have any duplicity between trees. Next, you have to name the tree.  This is what the general public will see for a name, so in an effort to make it more descriptive, I name trees using the information from the account request form and in this format:  Kit #### - Ancestor – Origin – Birthdate.  So for an example, my own tree name is:  Kit 7014 – Roger Williams – VA – ca. 1650.  This way, someone perusing the list of available trees in the database can tell at a glance what the ancestor information is for that participant.  And, it will come in handy later to have the tree named very clearly. Additionally, there is a Description field with the tree.  This is an excellent place to add additional information about the tree, especially to give much greater detail about the lineage over the years.  Here is the snapshot of my own Tree information:

http://williams.genealogy.fm/TNG_DNA/showtree.php?tree=7104

            When you look at this, you will notice that the description is prefixed with [Group 7].  This is in an effort to again give folks a clear idea of which lineage they are looking at and where this lineage exists in the project.  What I do when entering this description (which the user can also modify themselves) is that I go to the project and find where this kit number is.  If it is in a matched group, then I list that group number, otherwise I indicate [no match] or [results pending]. Additionally, if you were to browse thru all the trees in the database, you’d notice that some of these prefixes are in bold type, while others are in regular type.  Why?  Well, this is a little trick I use to help me keep up with which kits are indicated in PAT as having a tree in TNG.  Since I haven’t yet automated this process, putting a participant’s tree information into PAT is a manual thing and one that I usually wait to do until they have uploaded their GEDCOM.  I can look thru the trees with uploaded data and when I see one that has a non-bold prefix, I know that I need to add that person’s information into PAT.  Once I have added their Tree information to their participant record in PAT, I go back to TNG and add the <strong></strong> html tags to that prefix.  This will bold face the prefix and let me know that I have added it to PAT. 

User Accounts

            Once I have this information in the Tree creation page, I’ll submit it and the tree is created in the database.  This will take me back to the main administrator page where I will now select the Users button. In this section, there are three areas…one for new user creation, one for pending user approvals and finally existing users.  We are interested in the pending approvals.  You should see there the user account that has been requested.  Click on the green icon under the Action column to edit the user account.

            The first major section here is the particulars about the user, their address, website, etc.  Below this is what we are primarily interested in.  The first section is called “Rights”.  Here, I generally put a checkmark in the first, second, fourth, sixth and seventh boxes (edit, add, delete, download and LDS).  This will allow users to take care of anything they need to do to their tree.  The next section is the really important piece of the puzzle.  Remember that tree we just created for this user?  Now, you will click on the “Restrict access to the following” option.  This will make a dropdown box visible that has all of the trees in your database, listed by their tree name (e.g. Kit 7014 – Roger Williams – VA – ca. 1650.)  Simply scroll down and click on the one you just made for this user.  Now, you will see why it is handy to include this information in the tree name as it takes the guess work out of trying to figure out which tree they need to be attached to. Leave the branch information set to “no branch” and make sure the “notify user” box is checked and then click on Save Changes. This will do a number of things.  First, it will activate the users account and will attach him very specifically to that tree.  He can only access that tree and no one else’s.  And, as a benefit, the user will be sent an email automatically, letting them know that their account has been activated and they can login to upload their information.

            Now, the next step is up to them…they need to upload their GEDCOM file to the database. When they login to TNG, they will have a link on the left menu to “Upload GEDCOM”.  This will take them to a page that will prompt them for the location of their GEDCOM file.  The nice thing about this setup, since you’ve assigned them to a specific tree, the system will only upload data to that tree.  The participant doesn’t have to do anything special and neither do you.  The system keeps up with it all. Another link on the menu is called “My Account”.  This gives the user access to make any necessary changes to their account information as well as their tree.  They can go in and change their tree description, the tree name and can even purge their tree if they like (something that happens to get used quite often as people find mistakes in their GEDCOMs).  This amount of user control is also unique to TNG-DNA as in the standard version, you must be an administrator to make these kinds of changes. 

Bringing it Together in PAT

            Once the user uploads their GEDCOM file, their tree will be listed in the Browse All Trees area of the module (accessible from the front page).  This is where using the bold and regular text in the Tree Description comes in handy.  If you see someone listed with the prefix is regular text, you can tell instantly that person has uploaded their tree and you can make note of this in their participant record.  But what do you indicate exactly?  There are two pieces.  First, go to this link to see my earliest proven ancestor:

http://williams.genealogy.fm/TNG_DNA/getperson.php?personID=I00549&tree=7104

Now, in DNA-PAT, under the configure current project screen, is a field for “TNG Pedigrees:” and in this field you will need to have the program call that pulls up a persons tree from TNG.  It will consist of the TNG path (where you have TNG loaded) and the actual program call.  From the earlier link, you will see that my TNG lives in a directory on my website called /TNG_DNA/.  That is part of what needs to go in this field.  The other part of this field is this “getperson.php?” (yes, including the question mark)…so in all, you’d have “TNG_DNA/getperson.php?” in that field.  Let’s say that you have TNG loaded in the root directory of your website…then in this field you’d simply need to put the “getperson.php?” value. 

Now, notice the second part of that link…the personID=(number)&tree=(number)…this is the key piece of information.  That identifies exactly which person in the entire database you want to display.  This leads to a choice for your project…when you link a participant to a pedigree, or in this case a specific person in his/her tree, do you link to that participant or that participant’s earliest known ancestor?  The choice is really yours and there’s not a known impact in choosing one option over the other.  The above link takes you to my earliest known ancestor, Roger Williams. If you decided to link participants results page record to their earliest known ancestor, then in DNA-PAT, under my participant record, in the field “Pedigree Link/File” you’d put this second part “personID=I00549&tree=7014”. When you save this, a hidden flag field in the database is set to indicate that you have saved a TNG pedigree…you don’t have to do anything special, PAT automatically recognizes when you save a TNG address.  This comes into play in the results pages.

When the results pages are generated, a bit of magic happens.  First, before the user sees a thing on their screen, there’s a lot of action happening.  The results page is hitting the database to get all of the appropriate data to put into the page that the user sees. As a part of this, when it’s generating the results table, it’s checking to see if each participant has a pedigree indicated.  If the participant does, then it checks the aforementioned flag to see if it’s a TNG pedigree or not.  Then, the page pulls three different pieces of information together….first, it gets the main website URL from the database (in my case, http://williams.genealogy.fm/), then it checks to see what the TNG Pedigree Path is from the project configuration (in my case, /TNG_DNA/getperson.php?) and finally it pulls that participants pedigree link/filename from the database (in my case, personID=I00549&tree=7014).  Then, when it adds that participants name and results data to the page, it creates a link for that person’s name back to that persons pedigree but putting the all those data pieces together.  So, for example, on the Williams page, if you were to look at my own link (under group 7), you’d find my name “Adrian” underlined and if you were to click on that link, you’d end up being taken to http://williams.genealogy.fm/TNG_DNA/ getperson.php?personID=I00549&tree=7104 which is a “concatenation” of those three data values that were pulled from the database. 

Finishing Steps!

Now that you have the participants account and tree created in TNG, their pedigree is uploaded and you have linked their DNA-PAT record to their pedigree, what’s left?  There’s one more step to do…remember the bold text on the tree description that is my cheater method of telling when someone has loaded their tree and I need to add it to their PAT record?  You need to apply the bold face to their tree description prefix. Simply login to TNG as the administrator, go to the Administration panel and select Trees.  Then, looking in the lower section of that screen, find the persons tree in the list and click on the green “edit” icon. This will bring up their tree information and you can modify their description here.  Simply put the needed html tags here.  Here’s how.

The html tags for bold print are <strong> and </strong>.  The first one is what’s called the “opening” tag.  You’d put this before whatever text you want to have bold.  The other is the “closing” tag and it needs to go immediately after whatever you want to be bold.  So here, you would need to put the opening tag before the “[Group ##]” part of the description and the closing tag right after it.  So you’d have:

<strong>[Group ##]</strong> or possibly <strong>[No Match]</strong>

Save this and you should be done!  You’ve now successfully cross-indexed the project participant with their pedigree…and you’re done! There are probably a dozen different approaches to handling project pedigrees using TNG-DNA. This is what has proven to be successful for the Williams project.  If you have another approach, please write about it and add it to the Forums!

-- Adrian