if [ -z "$1" ] || [ "$1" = "-h" ]
then
echo "joinped.sh: Takes table of genotypes sent from Genotyper and"
echo " joins it to a pedigree file. The personal IDs must "
echo " all be unique."
echo " Outputs joinped.ped, and two list of loci, locus_list,"
echo " and skel_job."
echo "usage: joinped.sh |clean."
exit
elif [ "$1" = "clean" ]
then
test -f joinped.ped && rm -f joinped.ped
test -f master_id && rm -f master_id
test -f locus_list && rm -f locus_list
test -f datafile && rm -f datafile
test -f skel_job && rm -f skel_job
exit
elif [ ! -f $1 ] || [ ! -f $2 ]
then
echo "need to specify pedigree file and genotypes file"
echo "try joinped.sh -h"
exit
fi
AWK=/usr/bin/awk
test -f joinped.ped && rm -f joinped.ped
test -f master_id && rm -f master_id
test -f locus_list && rm -f locus_list
test -f datafile && rm -f datafile
test -f skel_job && rm -f skel_job
$AWK '
$1 !~ /[#!]/ { printf $2 " " $1
for(i=3;i<=NF;i++) {
printf " " $i
}
printf "\n"
}' $1 | sort -k1,1 -k2,2 > key$$.ped
#
# File contains ID locus_name All_1 All_2
#
sort -k2,2 -k1,1 $2 | \
$AWK '
BEGIN { locus="dummy"
G1=3; G2=4
}
NF>1 { if ($2!=locus) {
close(locus)
locus=$2
print locus > "locus_list"
}
print $1 > "master_id"
print $1,$(G1),$(G2) > locus
}'
sort -u < master_id > tmp$$; mv -f tmp$$ master_id
cp master_id datafile
for i in `cat locus_list`
do
join -a 1 -a 2 -o 2.2,2.3 -e "x" master_id $i > tmp$$; mv -f tmp$$ $i
paste -d" " datafile $i > tmp$$; mv -f tmp$$ datafile
rm -f $i
done
gawk '{print "set loc " $1 " mar"}' locus_list > skel_job
join -a1 key$$.ped datafile > tmp$$
pad tmp$$ | sort -k2,2 -k1,1 | $AWK '
{ printf $2 " " $1
for(i=3;i<=NF;i++) {
printf " " $i
}
printf "\n"
}' | bester > joinped.ped
rm -f tmp$$ key$$.ped datafile master_id