The current default weights in filter_ped.py likely undervalue pedigree parents. The defaults were set fairly arbitrarily so are probably a good target for refinement anyway, but now have a clear case of where the current values may be suboptimal.
Example: Imagine cryptic relatedness between IIDs A1 and B3/B4 in the following pedigree:
FID IID Mat Pat Pheno
A A1 0 0 1
A A2 0 0 1
A A3 A1 A2 2
B B3 B1 B2 -9
B B4 B1 B2 -9
Default weights then give:
A1: 2 (con) + 5 (fam-case) - 20 (2 cross-fid) = -13
A2: 2 (con) + 5 (fam-case) = 7
A3: 5 (case) + 4 (2 fam-con) = 9
B3: 1 (miss) + 1 (fam-miss) - 10 (1 cross-fid) = -8
B4: 1 (miss) + 1 (fam-miss) - 10 (1 cross-fid) = -8
which would result in suggesting A1 be removed. Clearly though A1 is much more informative (as a control, and as part of a trio) than B3 and B4.
Solution
Likely avenues to consider for addressing this:
- adjust value of individuals with missing phenotypes
- add weight for being a parent (possibly varying with child phenotype)
- let weight for cross-fid relationship vary with other IIDs phenotype
The current default weights in
filter_ped.pylikely undervalue pedigree parents. The defaults were set fairly arbitrarily so are probably a good target for refinement anyway, but now have a clear case of where the current values may be suboptimal.Example: Imagine cryptic relatedness between IIDs A1 and B3/B4 in the following pedigree:
Default weights then give:
which would result in suggesting A1 be removed. Clearly though A1 is much more informative (as a control, and as part of a trio) than B3 and B4.
Solution
Likely avenues to consider for addressing this: