The Life of Trees
(or: Still Another Phylogeny Program)

SAPP

For an example of an input file with the various sections completed see here.  For a detailed explanation of each section in the input files, see below. 

 

Note:  This page lists the most common inputs only.  SAPP also allows more advanced users to tailor more complex functions - see the Advanced Inputs page for more details.

 

/STRDATA  

This is the only required section in the input file and, as its name implies, is a list of kit numbers and the associated STR results.  STRs should be listed in Family Tree DNA order with only four values for DYS464 (i.e. no 464e/f/g).  Kit labels may be numeric or contain letters but should NOT include the characters "-' or '.'.

 

Beyond these restrictions the program is very forgiving; you can separate the STR results onto different lines or include multi-copy marker designations like "8-10" or "15-16-16-17" and SAPP will correctly interpret the line.  

 

/SNPDATA

This optional section gives the SNP results for each kit.  There should be one line per kit of the format "Kit  (SNP1+ SNP2- SNP3?...)"  where the special characters indicate whether those kits are positive (+), negative(-), or unknown(?) for that SNP. The parentheses are optional if all SNP labels fit on the same line after the kit name.  SNPs without a special character mark are assumed to be positive.  Any SNPs NOT included in the input file are assumed to be unknown.

 

Besides marking a SNP as positive (+), negative (-) or unknown (?), you can also mark it with an asterisk (*). This indicates that the kit was positive for that SNP but negative for ALL known SNPs below it (meaning that SNP is currently that kit's "terminal SNP").

 

If the SNP has no official label you can create your own with the position reference like "UN16345607" or any other label that makes sense to you.  Do NOT use the format "16345607C-G" as a label since that contains the "-" special character and SAPP will interpret it incorrectly.

 

You do not need to list ALL SNPs tested for particular kits or SNPs for EVERY kit.   SAPP will try to map every SNP you list but the only ones that really matter here are SNPs shared by some in the group and not others since those help define which kits are more closely related than others.  Private SNPs (only found in one kit) or SNPs shared by ALL in the group are not particularly useful in re-creating the connections between group members.

 

Note that SAPP has an internal representation of certain major haplogroups for the known Y-SNP tree (as of this writing, mainly R1b-U106, R1b-L2, and R1b-L21) and will use it to fill in any un-indicated references - for instance a kit marked "+" for DF21 would by definition be L513-, and so on.   It will however only recognize these shared SNPs if you use their traditional SNP label (some regular synonyms are also recognized).

 

/GENDATA

This optional section indicates shared ancestors between kits in the group.  There should be one line per ancestor with the format "AncestorLabel  (kit1+ kit2- kit3?)", where "AncestorLabel" is any meaningful label for that ancestor and the "+", "-", and "?" characters indicate whether those kits are descendants, NOT descendants, or unknown for that ancestor.  Kits without a special character are assumed to be positive.  Any kits not included are assumed to be NOT descendants.

 

You can also use this section to check what happens to the tree if certain groups are more closely related than others.  For example, you could put all the kits for a certain surname under one "ancestor" (like: "Smiths (kit1 kit2 kit3...)" ).  If you did that without any kits marked as ?, however, remember that you're telling SAPP that no other kits could be NPEs off the Smith families.

 

/MODAL

Use this optional section to designate a starting Modal haplotype different from the Group Modal that SAPP calculates from the most frequent values in the STR input.   Since the Modal is the starting point at the highest point of the tree, selecting the right values can significantly change the evolution of STRs down the various branches.  

 

/IGNORE 

Use this optional section to indicate STRs for SAPP to skip when building the tree and calculating genetic distances.  You might typically want to do this for fast-mutating STRs like 464 or CDY where their multiple variations may be confusing.  Specify any STRs to skip on one line with spaces in between; you can use either their full names ("DYS464a") or short-hand designations ("464a", etc).   However if you want to skip multi-copy markers, please indicate ALL the associated STR marker names (to skip 464 for instance put "464a 464b 464c 464d").  

 

/INFO 

Use this optional section to put additional information within each kit's box. For instance if your kits are labeled by their reference id, you could list surnames here or project group information. The field will wrap in the box but too much information may become unreadable or overlap with other text. The format is simply "kit text" each on one line where kit is the kit id used in the other sections and "text" can be any text including spaces. You can also put text in node (branching) boxes by using a node's number in place of "kit".  

 

/GROUPS 

Another optional section to show information against various kits and nodes (branches), this one is used to attach common labels to groups of kits or nodes. These labels are not used in building the tree but can be useful reference information. The format here is "Group Text (kit1 kit2 kit3)" where "Group Text" is the label (with spaces as desired) and "kit1 kit2 kit3" are any number of kits (or node numbers) to label. The labels will appear above the boxes in red text (or just in red text in the text output)  

 

/OPTIONS 

This section can be used to override certain normal behaviors in SAPP. At this time the available settings are listed below. Each of these one-word options should be specified on its own line, with no other parameters on that line. 

 

TEXTOUT      This parameter causes SAPP to produce the phylogenetic tree in a text-based (HTML) format rather than as a PNG image.

NOTMRCAS      This parameter suppresses the reporting of estimated TMRCAs on the output image or text tree.

SHOWMODALS    This parameter causes SAPP to additionally report (in the table of kit data) the calculated haplotypes for all nodes with SNP or Genealogy labels.

OFFRIGHT      This parameter moves the reported STR mutations to the right of each node, so they don't cover the kit or node information if they run long.

NODBTREE      This parameter suppresses the use of SAPP's internal SNP tree. Use only as an advanced option if you want SAPP to rely ONLY on the /SNPTREE section you entered.

 

Comments

Any line that starts with an asterisk (*) is interpreted by the program as a comment line and ignored.   Apart from allowing you to annotate your input file, this also allows you to "turn off and on" certain sections between runs by "commenting them out" - i.e. if you add an asterisk at the start of each line of that section you can run SAPP without that section, then add it back in for the next run by taking out the asterisks.  This allows you to quickly change input without losing the sections.  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Inputs