Find the ID of subjects in a pedigree iteratively, as anyone who is not available and does not have an available descendant by successively removing unavailable terminal nodes. pedigree.trim carries out the removal of the subjects identified by findUnavailable.
findUnavailable(ped, avail)
pedigree.trim(removeID, ped)
findUnavailable returns a vector of subject ids for who can be removed. pedigree.trim returns a trimmed pedigree object.
A pedigree object with an id, findex, mindex, sex, plus other optional items
Logical vector of availability status (e.g., genotyped) 0/1 or TRUE/FALSE
vector of subject ids of persons to trim from a pedigree
relation matrix from pedigree.trim is trimmed of any special relations that include the subjects to trim.
Originally written as pedTrim by Steve Iturria, modified by Dan Schaid
2007, and now split into the two separate functions: findUnavailable()
,
and pedigree.trim()
to do the tasks separately. findUnavailable()
calls excludeStrayMarryin
to find stray
available marry-ins who are isolated after trimming their unavailable
offspring, and excludeUnavailFounders.
If the subject ids are character, make sure none of the characters
in the ids is a colon (":"), which is a special character used to
concatenate and split subjects within the utlity.
pedigree.shrink
,