Basques DNA Profile Database, full alleles , 9 loci
Basques DNA Profile Database, full alleles , 9 loci
Visual basic macros and Word macros are
between the horizontal rules.
Before going into Visual Basic Editor go into ordinary
Word and call up anything in the directory you want
the VB files to go into as this is not designated in the
following code.
Using plain text handling Notepad with no line wrap
copy to between Sub / End Sub ,Reset and Run.
Some long conditional statements may break
and would need reconcattenating before running.
If using straight VB6 then designate the directory
for files by "replace all" occurances of jun01 to
c:\vb\jun01 or whatever, also add a sound progress
indicator before the [ next x ] line
If x/1000 = Int (x/1000 ) Then Beep
before highlighting and copying.
In VB6 open New Project
In Form1 open up a Command1 button
Double click this button to open command
code window and copy and paste the 'DNA' VB code
between the Private Sub Command1_click ()
and the End Sub
Then Run/Start
Press command1
Wait until Beep/ clicks cease
' Generating 9 loci x2 profiles
' directing pairs and first divider
Dim ph(18)
Dim pb(18)
' initialising Random Number Generator - RNG
count9 = 0
count8 = 0
Randomize
a = 214013
c = 2531011
x0 = Timer
z = 2 ^ 24
' 1 file 'jun01-g' for original, un-directed pairs, source data.
' This file is necessary to check on the performance of the RNG
' when a matched pair is found then it is highly unlikely that
' both sequences as generated, before pair directing, would
' be the same - more likely a manifest of repeat within the RNG
' (reason for adopting the 214013 / 2531011 RNG )
' Use 'Word' find function on part of the sequences, including pair reversals,
' with luck would include a 'homozygotic' pair eg (3,3) say ,so no reversal
' on that pair
Open "jun01-g" For Output As #1
' outputs directed and divided by first digit
Open "jun01-0" For Output As #10
Open "jun01-1" For Output As #11
Open "jun01-2" For Output As #12
Open "jun01-3" For Output As #13
Open "jun01-4" For Output As #14
Open "jun01-5" For Output As #15
Open "jun01-6" For Output As #16
Open "jun01-7" For Output As #17
Open "jun01-8" For Output As #18
Open "jun01-9" For Output As #19
' change for different total size eg 199999 for 200,000
For x = 0 To 4999
For j = 0 To 1
' D3 ,first locus
' RNG random number generator
temp = x0 * a + c
temp = temp / z
x1 = (temp - Fix(temp)) * z
x0 = x1
phj = x1 / z
ph(j) = phj
If ph(j) < 0.002 Then ph(j) = 11
If ph(j) < 0.009 Then ph(j) = 1
If ph(j) < 0.123 Then ph(j) = 2
If ph(j) < 0.412 Then ph(j) = 3
If ph(j) < 0.609 Then ph(j) = 4
If ph(j) < 0.745 Then ph(j) = 5
If ph(j) < 0.988 Then ph(j) = 6
If ph(j) < 1 Then ph(j) = 7
If ph(j) > 10 Then ph(j) = 0
Next j
For j = 2 To 3
' FGA
' RNG
temp = x0 * a + c
temp = temp / z
x1 = (temp - Fix(temp)) * z
x0 = x1
phj = x1 / z
ph(j) = phj
If ph(j) < 0.039 Then ph(j) = 11
If ph(j) < 0.131 Then ph(j) = 1
If ph(j) < 0.306 Then ph(j) = 2
If ph(j) < 0.454 Then ph(j) = 3
If ph(j) < 0.585 Then ph(j) = 4
If ph(j) < 0.767 Then ph(j) = 5
If ph(j) < 0.871 Then ph(j) = 6
If ph(j) < 0.973 Then ph(j) = 7
If ph(j) < 0.990 Then ph(j) = 8
If ph(j) < 1 Then ph(j) = 9
If ph(j) > 10 Then ph(j) = 0
Next j
For j = 4 To 5
' D8
' RNG
temp = x0 * a + c
temp = temp / z
x1 = (temp - Fix(temp)) * z
x0 = x1
phj = x1 / z
ph(j) = phj
If ph(j) < 0.027 Then ph(j) = 11
If ph(j) < 0.046 Then ph(j) = 1
If ph(j) < 0.133 Then ph(j) = 2
If ph(j) < 0.211 Then ph(j) = 3
If ph(j) < 0.296 Then ph(j) = 4
If ph(j) < 0.568 Then ph(j) = 5
If ph(j) < 0.816 Then ph(j) = 6
If ph(j) < 0.968 Then ph(j) = 7
If ph(j) < 1 Then ph(j) = 8
If ph(j) > 10 Then ph(j) = 0
Next j
For j = 6 To 7
' D21
' RNG
temp = x0 * a + c
temp = temp / z
x1 = (temp - Fix(temp)) * z
x0 = x1
phj = x1 / z
ph(j) = phj
pb(j) = "Z"
If ph(j) < 0.024 Then ph(j) = 11
If ph(j) < 0.121 Then ph(j) = 1
If ph(j) < 0.323 Then ph(j) = 2
If ph(j) < 0.602 Then ph(j) = 3
If ph(j) < 0.655 Then ph(j) = 4
If ph(j) < 0.728 Then ph(j) = 5
If ph(j) < 0.786 Then ph(j) = 6
If ph(j) < 0.789 Then ph(j) = 7
If ph(j) < 0.944 Then ph(j) = 8
If ph(j) < 0.986 Then ph(j) = 9
If ph(j) < 1 And ph(j) >= 0.986 Then pb(j) = "A"
If ph(j) > 10 Then ph(j) = 0
If pb(j) <> "Z" Then ph(j) = pb(j)
Next j
For j = 8 To 9
' D18
' RNG
temp = x0 * a + c
temp = temp / z
x1 = (temp - Fix(temp)) * z
x0 = x1
phj = x1 / z
ph(j) = phj
pb(j) = "Z"
If ph(j) < 0.01 Then ph(j) = 11
If ph(j) < 0.041 Then ph(j) = 1
If ph(j) < 0.216 Then ph(j) = 2
If ph(j) < 0.337 Then ph(j) = 3
If ph(j) < 0.49 Then ph(j) = 4
If ph(j) < 0.675 Then ph(j) = 5
If ph(j) < 0.677 Then ph(j) = 6
If ph(j) < 0.757 Then ph(j) = 7
If ph(j) < 0.876 Then ph(j) = 8
If ph(j) < 0.915 Then ph(j) = 9
If ph(j) < 0.961 And ph(j) >= 0.915 Then pb(j) = "A"
If ph(j) < 0.985 And ph(j) >= 0.961 Then pb(j) = "B"
If ph(j) < 0.998 And ph(j) >= 0.985 Then pb(j) = "C"
If ph(j) < 1 And ph(j) >= 0.998 Then pb(j) = "D"
If ph(j) > 10 Then ph(j) = 0
If pb(j) <> "Z" Then ph(j) = pb(j)
Next j
For j = 10 To 11
' D5
' RNG
temp = x0 * a + c
temp = temp / z
x1 = (temp - Fix(temp)) * z
x0 = x1
phj = x1 / z
ph(j) = phj
If ph(j) < 0.002 Then ph(j) = 11
If ph(j) < 0.031 Then ph(j) = 1
If ph(j) < 0.147 Then ph(j) = 2
If ph(j) < 0.504 Then ph(j) = 3
If ph(j) < 0.841 Then ph(j) = 4
If ph(j) < 0.996 Then ph(j) = 5
If ph(j) < 1 Then ph(j) = 6
If ph(j) > 10 Then ph(j) = 0
Next j
For j = 12 To 13
' D13
' RNG
temp = x0 * a + c
temp = temp / z
x1 = (temp - Fix(temp)) * z
x0 = x1
phj = x1 / z
ph(j) = phj
If ph(j) < 0.197 Then ph(j) = 11
If ph(j) < 0.229 Then ph(j) = 1
If ph(j) < 0.285 Then ph(j) = 2
If ph(j) < 0.61 Then ph(j) = 3
If ph(j) < 0.877 Then ph(j) = 4
If ph(j) < 0.952 Then ph(j) = 5
If ph(j) < 0.996 Then ph(j) = 6
If ph(j) < 0.998 Then ph(j) = 7
If ph(j) < 1 Then ph(j) = 8
If ph(j) > 10 Then ph(j) = 0
Next j
For j = 14 To 15
' D7
' RNG
temp = x0 * a + c
temp = temp / z
x1 = (temp - Fix(temp)) * z
x0 = x1
phj = x1 / z
ph(j) = phj
If ph(j) < 0.015 Then ph(j) = 11
If ph(j) < 0.168 Then ph(j) = 1
If ph(j) < 0.28 Then ph(j) = 2
If ph(j) < 0.61 Then ph(j) = 3
If ph(j) < 0.826 Then ph(j) = 4
If ph(j) < 0.964 Then ph(j) = 5
If ph(j) < 0.996 Then ph(j) = 6
If ph(j) < 1 Then ph(j) = 7
If ph(j) > 10 Then ph(j) = 0
Next j
For j = 16 To 17
' D16
' RNG
temp = x0 * a + c
temp = temp / z
x1 = (temp - Fix(temp)) * z
x0 = x1
phj = x1 / z
ph(j) = phj
If ph(j) < 0.019 Then ph(j) = 11
If ph(j) < 0.114 Then ph(j) = 1
If ph(j) < 0.16 Then ph(j) = 2
If ph(j) < 0.417 Then ph(j) = 3
If ph(j) < 0.738 Then ph(j) = 4
If ph(j) < 0.976 Then ph(j) = 5
If ph(j) < 1 Then ph(j) = 6
If ph(j) > 10 Then ph(j) = 0
Next j
' output the original generated file
Write #1, ph(0) & ph(1) & ph(2) & ph(3) & ph(4) & ph(5) & ph(6) & ph(7) & ph(8) & ph(9) & ph(10) & ph(11) & ph(12) & ph(13) & ph(14) & ph(15) & ph(16) & ph(17)
' Because in real DNA profiles without further info ,no one
' knows which allele in each pair came from the mother or father
' by convention they are written smaller ,larger (or equal).
' The following directs each pair
For j = 0 To 16 Step 2
If ph(j + 1) < ph(j) Then
jjj = ph(j)
ph(j) = ph(j + 1)
ph(j + 1) = jjj
End If
Next j
' put extra conditional statements here to reduce
' the number of files or just delete some of the following
'
' dividing on first column, file by file
If ph(0) = 0 Then
Write #10, ph(0) & ph(1) & ph(2) & ph(3) & ph(4) & ph(5) & ph(6) & ph(7) & ph(8) & ph(9) & ph(10) & ph(11) & ph(12) & ph(13) & ph(14) & ph(15) & ph(16) & ph(17)
count0 = count0 + 1
End If
If ph(0) = 1 Then
Write #11, ph(0) & ph(1) & ph(2) & ph(3) & ph(4) & ph(5) & ph(6) & ph(7) & ph(8) & ph(9) & ph(10) & ph(11) & ph(12) & ph(13) & ph(14) & ph(15) & ph(16) & ph(17)
count1 = count1 + 1
End If
If ph(0) = 2 Then
Write #12, ph(0) & ph(1) & ph(2) & ph(3) & ph(4) & ph(5) & ph(6) & ph(7) & ph(8) & ph(9) & ph(10) & ph(11) & ph(12) & ph(13) & ph(14) & ph(15) & ph(16) & ph(17)
count2 = count2 + 1
End If
If ph(0) = 3 Then
Write #13, ph(0) & ph(1) & ph(2) & ph(3) & ph(4) & ph(5) & ph(6) & ph(7) & ph(8) & ph(9) & ph(10) & ph(11) & ph(12) & ph(13) & ph(14) & ph(15) & ph(16) & ph(17)
count3 = count3 + 1
End If
If ph(0) = 4 Then
Write #14, ph(0) & ph(1) & ph(2) & ph(3) & ph(4) & ph(5) & ph(6) & ph(7) & ph(8) & ph(9) & ph(10) & ph(11) & ph(12) & ph(13) & ph(14) & ph(15) & ph(16) & ph(17)
count4 = count4 + 1
End If
If ph(0) = 5 Then
Write #15, ph(0) & ph(1) & ph(2) & ph(3) & ph(4) & ph(5) & ph(6) & ph(7) & ph(8) & ph(9) & ph(10) & ph(11) & ph(12) & ph(13) & ph(14) & ph(15) & ph(16) & ph(17)
count5 = count5 + 1
End If
If ph(0) = 6 Then
Write #16, ph(0) & ph(1) & ph(2) & ph(3) & ph(4) & ph(5) & ph(6) & ph(7) & ph(8) & ph(9) & ph(10) & ph(11) & ph(12) & ph(13) & ph(14) & ph(15) & ph(16) & ph(17)
count6 = count6 + 1
End If
If ph(0) = 7 Then
Write #17, ph(0) & ph(1) & ph(2) & ph(3) & ph(4) & ph(5) & ph(6) & ph(7) & ph(8) & ph(9) & ph(10) & ph(11) & ph(12) & ph(13) & ph(14) & ph(15) & ph(16) & ph(17)
count7 = count7 + 1
End If
If ph(0) = 8 Then
Write #18, ph(0) & ph(1) & ph(2) & ph(3) & ph(4) & ph(5) & ph(6) & ph(7) & ph(8) & ph(9) & ph(10) & ph(11) & ph(12) & ph(13) & ph(14) & ph(15) & ph(16) & ph(17)
count8 = count8 + 1
End If
If ph(0) = 9 Then
Write #19, ph(0) & ph(1) & ph(2) & ph(3) & ph(4) & ph(5) & ph(6) & ph(7) & ph(8) & ph(9) & ph(10) & ph(11) & ph(12) & ph(13) & ph(14) & ph(15) & ph(16) & ph(17)
count9 = count9 + 1
End If
Next x
Close #10
Close #11
Close #12
Close #13
Close #14
Close #15
Close #16
Close #17
Close #18
Close #19
Close #1
' count file for data to fix for - next loops in sucessive dividings
Open "jun01-c" For Output As #20
Write #20, 0, count0, 1, count1, 2, count2, 3, count3, 4, count4, 5, count5, 6, count6, 7, count7, 8, count8, 9, count9
Close #20
' Dividing file into 10 by second digit
Dim ph(18)
dim ps as string
' xxxx = count size from count file
xxxx =
' input file
Open "jun01-1" For Input As #1
' 10 divided files
Open "jun01-10" For Output As #10
Open "jun01-11" For Output As #11
Open "jun01-12" For Output As #12
Open "jun01-13" For Output As #13
Open "jun01-14" For Output As #14
Open "jun01-15" For Output As #15
Open "jun01-16" For Output As #16
Open "jun01-17" For Output As #17
Open "jun01-18" For Output As #18
Open "jun01-19" For Output As #19
count9 = 0
count8 = 0
xxxx = xxxx - 1
For x = 0 To xxxx
Input #1, ps
a2$ = Mid(ps, 2, 1)
ph(1) = Val(a2$)
If ph(1) = 0 Then
Write #10, ps
count0 = count0 + 1
End If
If ph(1) = 1 Then
Write #11, ps
count1 = count1 + 1
End If
If ph(1) = 2 Then
Write #12, ps
count2 = count2 + 1
End If
If ph(1) = 3 Then
Write #13, ps
count3 = count3 + 1
End If
If ph(1) = 4 Then
Write #14, ps
count4 = count4 + 1
End If
If ph(1) = 5 Then
Write #15, ps
count5 = count5 + 1
End If
If ph(1) = 6 Then
Write #16, ps
count6 = count6 + 1
End If
If ph(1) = 7 Then
Write #17, ps
count7 = count7 + 1
End If
If ph(1) = 8 Then
Write #18, ps
count8 = count8 + 1
End If
If ph(1) = 9 Then
Write #19, ps
count9 = count9 + 1
End If
Next x
Close #1
Close #10
Close #11
Close #12
Close #13
Close #14
Close #15
Close #16
Close #17
Close #18
Close #19
' output counts
Open "jun01-1c" For Output As #20
Write #20, 0, count0, 1, count1, 2, count2, 3, count3, 4, count4, 5, count5, 6, count6, 7, count7, 8, count8, 9, count9
Close #20
' Dividing file into 10 by third digit
Dim ph(18)
dim ps as string
' enter count in xxxx
xxxx =
Open "jun01-11" For Input As #1
Open "jun01-110" For Output As #10
Open "jun01-111" For Output As #11
Open "jun01-112" For Output As #12
Open "jun01-113" For Output As #13
Open "jun01-114" For Output As #14
Open "jun01-115" For Output As #15
Open "jun01-116" For Output As #16
Open "jun01-117" For Output As #17
Open "jun01-118" For Output As #18
Open "jun01-119" For Output As #19
count9 = 0
count8 = 0
xxxx=xxxx - 1
For x = 0 To xxxx
Input #1, ps
a3$ = Mid(ps, 3, 1)
ph(2) = Val(a3$)
If ph(2) = 0 Then
Write #10, ps
count0 = count0 + 1
End If
If ph(2) = 1 Then
Write #11, ps
count1 = count1 + 1
End If
If ph(2) = 2 Then
Write #12, ps
count2 = count2 + 1
End If
If ph(2) = 3 Then
Write #13, ps
count3 = count3 + 1
End If
If ph(2) = 4 Then
Write #14, ps
count4 = count4 + 1
End If
If ph(2) = 5 Then
Write #15, ps
count5 = count5 + 1
End If
If ph(2) = 6 Then
Write #16, ps
count6 = count6 + 1
End If
If ph(2) = 7 Then
Write #17, ps
count7 = count7 + 1
End If
If ph(2) = 8 Then
Write #18, ps
count8 = count8 + 1
End If
If ph(2) = 9 Then
Write #19, ps
count9 = count9 + 1
End If
Next x
Close #1
Close #10
Close #11
Close #12
Close #13
Close #14
Close #15
Close #16
Close #17
Close #18
Close #19
Open "jun01-11c" For Output As #20
Write #20, 0, count0, 1, count1, 2, count2, 3, count3, 4, count4, 5, count5, 6, count6, 7, count7, 8, count8, 9, count9
Close #20
' Dividing file into 10 by fourth digit
Dim ph(18)
dim ps as string
' enter count in xxxx
xxxx =
Open "jun01-131" For Input As #1
Open "jun01-1310" For Output As #10
Open "jun01-1311" For Output As #11
Open "jun01-1312" For Output As #12
Open "jun01-1313" For Output As #13
Open "jun01-1314" For Output As #14
Open "jun01-1315" For Output As #15
Open "jun01-1316" For Output As #16
Open "jun01-1317" For Output As #17
Open "jun01-1318" For Output As #18
Open "jun01-1319" For Output As #19
count9 = 0
count8 = 0
xxxx=xxxx - 1
For x = 0 To xxxx
Input #1, ps
a4$ = Mid(ps, 4, 1)
ph(3) = Val(a4$)
If ph(3) = 0 Then
Write #10, ps
count0 = count0 + 1
End If
If ph(3) = 1 Then
Write #11, ps
count1 = count1 + 1
End If
If ph(3) = 2 Then
Write #12, ps
count2 = count2 + 1
End If
If ph(3) = 3 Then
Write #13, ps
count3 = count3 + 1
End If
If ph(3) = 4 Then
Write #14, ps
count4 = count4 + 1
End If
If ph(3) = 5 Then
Write #15, ps
count5 = count5 + 1
End If
If ph(3) = 6 Then
Write #16, ps
count6 = count6 + 1
End If
If ph(3) = 7 Then
Write #17, ps
count7 = count7 + 1
End If
If ph(3) = 8 Then
Write #18, ps
count8 = count8 + 1
End If
If ph(3) = 9 Then
Write #19, ps
count9 = count9 + 1
End If
Next x
Close #1
Close #10
Close #11
Close #12
Close #13
Close #14
Close #15
Close #16
Close #17
Close #18
Close #19
Open "jun01-131c" For Output As #20
Write #20, 0, count0, 1, count1, 2, count2, 3, count3, 4, count4, 5, count5, 6, count6, 7, count7, 8, count8, 9, count9
Close #20
' Find homozygosity
' xxxx is count = ????
xxxx = 5000
Dim ph(18)
Dim ps As String
count1 = 0
count2 = 0
count3 = 0
count4 = 0
count5 = 0
count6 = 0
count7 = 0
count8 = 0
count9 = 0
Open "jun01b-g.txt" For Input As #1
Open "jun01b-hz.txt" For Output As #2
xxxx = xxxx - 1
For x = 0 To xxxx
Input #1, ps
a1$ = Mid(ps, 1, 1)
a2$ = Mid(ps, 2, 1)
ph(1) = Val(a1$)
ph(2) = Val(a2$)
If ph(1) = ph(2) Then
count1 = count1 + 1
End If
a3$ = Mid(ps, 3, 1)
a4$ = Mid(ps, 4, 1)
ph(3) = Val(a3$)
ph(4) = Val(a4$)
If ph(3) = ph(4) Then
count2 = count2 + 1
End If
a5$ = Mid(ps, 5, 1)
a6$ = Mid(ps, 6, 1)
ph(5) = Val(a5$)
ph(6) = Val(a6$)
If ph(5) = ph(6) Then
count3 = count3 + 1
End If
a7$ = Mid(ps, 7, 1)
a8$ = Mid(ps, 8, 1)
ph(7) = Val(a7$)
ph(8) = Val(a8$)
If a7$ = "A" Then ph(7) = 10
If a8$ = "A" Then ph(8) = 10
If ph(7) = ph(8) Then
count4 = count4 + 1
End If
a9$ = Mid(ps, 9, 1)
a10$ = Mid(ps, 10, 1)
ph(9) = Val(a9$)
ph(10) = Val(a10$)
If a9$ = "A" Then ph(9) = 10
If a10$ = "A" Then ph(10) = 10
If a9$ = "B" Then ph(9) = 11
If a10$ = "B" Then ph(10) = 11
If a9$ = "C" Then ph(9) = 12
If a10$ = "C" Then ph(10) = 12
If a9$ = "D" Then ph(9) = 13
If a10$ = "D" Then ph(10) = 13
If ph(9) = ph(10) Then
count5 = count5 + 1
End If
a11$ = Mid(ps, 11, 1)
a12$ = Mid(ps, 12, 1)
ph(11) = Val(a11$)
ph(12) = Val(a12$)
If ph(11) = ph(12) Then
count6 = count6 + 1
End If
a13$ = Mid(ps, 13, 1)
a14$ = Mid(ps, 14, 1)
ph(13) = Val(a13$)
ph(14) = Val(a14$)
If ph(13) = ph(14) Then
count7 = count7 + 1
End If
a15$ = Mid(ps, 15, 1)
a16$ = Mid(ps, 16, 1)
ph(15) = Val(a15$)
ph(16) = Val(a16$)
If ph(15) = ph(16) Then
count8 = count8 + 1
End If
a17$ = Mid(ps, 17, 1)
a18$ = Mid(ps, 18, 1)
ph(17) = Val(a17$)
ph(18) = Val(a18$)
If ph(17) = ph(18) Then
count9 = count9 + 1
End If
Next x
countsum = count1 + count2 + count3 + count4 + count5 + count6 + count7 + count8 + count9
Write #2, "Locus 1 Homozygosity Count = ", count1, " locus 2 = ", count2, " locus 3 = ", count3, " locus 4 = ", count4, " locus 5 = ", count5, " locus 6 = ", count6, " locus 7 = ", count7, " locus 8 = ", count8, " locus 9 = ", count9, " TOTAL count = ", countsum
Close #1
Close #2
The next is sorting using Word Tables/ Sort
Before using ,make a test batch of numbers as there are various
Sort outcomes. Now I'm using string data, Text sort gave the
right form on my machine. Use Ctrl+shift+Home(or End) to
highlight text up or down .
After sort and before saving to disk press up or down
arrow to select which way the text is returned to you.
My set-up was limited to no more than 15,000. To sort
say 28,000 sort upper half ,then lower half then cut and
paste say 0 to 2 section of lower half into the top of the
top half. Re-sort the expanded 0 to 2 section then
re-sort the remainder. If say selecting 2 to 3 section then
cut and paste at the juncture of 2 and 3 in the other block
to save some repeated sorting. Other times it is quicker
to oversort then backtrack / overlap on the next sort.
Many of the subdivision files are empty because
of the directing. They consist of eg 4,4.. 4,5.... etc
never 4,0.., 4,1.. etc and a number of 8 and 9 sections
are absent back to the generator characteristics eg
only first 8 of 10 are used. When you know all files are less than
15,000, or whatever Sort limit, use the next (simply a recorded macro)
to sort 10 related files. An empty file will stop the macro so edit
out empty files before running.
'Sort 10 related files in one go
'
Documents.Open FileName:="dec14-130", ConfirmConversions:=False, ReadOnly _
:=False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate _
:="", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="" _
, Format:=wdOpenFormatAuto
Selection.Sort ExcludeHeader:=False, FieldNumber:="Paragraphs", _
SortFieldType:=wdSortFieldAlphanumeric, SortOrder:=wdSortOrderAscending, _
FieldNumber2:="", SortFieldType2:=wdSortFieldAlphanumeric, SortOrder2:= _
wdSortOrderAscending, FieldNumber3:="", SortFieldType3:= _
wdSortFieldAlphanumeric, SortOrder3:=wdSortOrderAscending, Separator:= _
wdSortSeparateByTabs, SortColumn:=False, CaseSensitive:=False, LanguageID _
:=wdLanguageNone
ActiveDocument.Save
'
Documents.Open FileName:="dec14-131", ConfirmConversions:=False, ReadOnly _
:=False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate _
:="", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="" _
, Format:=wdOpenFormatAuto
Selection.Sort ExcludeHeader:=False, FieldNumber:="Paragraphs", _
SortFieldType:=wdSortFieldAlphanumeric, SortOrder:=wdSortOrderAscending, _
FieldNumber2:="", SortFieldType2:=wdSortFieldAlphanumeric, SortOrder2:= _
wdSortOrderAscending, FieldNumber3:="", SortFieldType3:= _
wdSortFieldAlphanumeric, SortOrder3:=wdSortOrderAscending, Separator:= _
wdSortSeparateByTabs, SortColumn:=False, CaseSensitive:=False, LanguageID _
:=wdLanguageNone
ActiveDocument.Save
'
Documents.Open FileName:="dec14-132", ConfirmConversions:=False, ReadOnly _
:=False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate _
:="", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="" _
, Format:=wdOpenFormatAuto
Selection.Sort ExcludeHeader:=False, FieldNumber:="Paragraphs", _
SortFieldType:=wdSortFieldAlphanumeric, SortOrder:=wdSortOrderAscending, _
FieldNumber2:="", SortFieldType2:=wdSortFieldAlphanumeric, SortOrder2:= _
wdSortOrderAscending, FieldNumber3:="", SortFieldType3:= _
wdSortFieldAlphanumeric, SortOrder3:=wdSortOrderAscending, Separator:= _
wdSortSeparateByTabs, SortColumn:=False, CaseSensitive:=False, LanguageID _
:=wdLanguageNone
ActiveDocument.Save
'
Documents.Open FileName:="dec14-133", ConfirmConversions:=False, ReadOnly _
:=False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate _
:="", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="" _
, Format:=wdOpenFormatAuto
Selection.Sort ExcludeHeader:=False, FieldNumber:="Paragraphs", _
SortFieldType:=wdSortFieldAlphanumeric, SortOrder:=wdSortOrderAscending, _
FieldNumber2:="", SortFieldType2:=wdSortFieldAlphanumeric, SortOrder2:= _
wdSortOrderAscending, FieldNumber3:="", SortFieldType3:= _
wdSortFieldAlphanumeric, SortOrder3:=wdSortOrderAscending, Separator:= _
wdSortSeparateByTabs, SortColumn:=False, CaseSensitive:=False, LanguageID _
:=wdLanguageNone
ActiveDocument.Save
'
Documents.Open FileName:="dec14-134", ConfirmConversions:=False, ReadOnly _
:=False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate _
:="", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="" _
, Format:=wdOpenFormatAuto
Selection.Sort ExcludeHeader:=False, FieldNumber:="Paragraphs", _
SortFieldType:=wdSortFieldAlphanumeric, SortOrder:=wdSortOrderAscending, _
FieldNumber2:="", SortFieldType2:=wdSortFieldAlphanumeric, SortOrder2:= _
wdSortOrderAscending, FieldNumber3:="", SortFieldType3:= _
wdSortFieldAlphanumeric, SortOrder3:=wdSortOrderAscending, Separator:= _
wdSortSeparateByTabs, SortColumn:=False, CaseSensitive:=False, LanguageID _
:=wdLanguageNone
ActiveDocument.Save
'
Documents.Open FileName:="dec14-135", ConfirmConversions:=False, ReadOnly _
:=False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate _
:="", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="" _
, Format:=wdOpenFormatAuto
Selection.Sort ExcludeHeader:=False, FieldNumber:="Paragraphs", _
SortFieldType:=wdSortFieldAlphanumeric, SortOrder:=wdSortOrderAscending, _
FieldNumber2:="", SortFieldType2:=wdSortFieldAlphanumeric, SortOrder2:= _
wdSortOrderAscending, FieldNumber3:="", SortFieldType3:= _
wdSortFieldAlphanumeric, SortOrder3:=wdSortOrderAscending, Separator:= _
wdSortSeparateByTabs, SortColumn:=False, CaseSensitive:=False, LanguageID _
:=wdLanguageNone
ActiveDocument.Save
'
Documents.Open FileName:="dec14-136", ConfirmConversions:=False, ReadOnly _
:=False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate _
:="", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="" _
, Format:=wdOpenFormatAuto
Selection.Sort ExcludeHeader:=False, FieldNumber:="Paragraphs", _
SortFieldType:=wdSortFieldAlphanumeric, SortOrder:=wdSortOrderAscending, _
FieldNumber2:="", SortFieldType2:=wdSortFieldAlphanumeric, SortOrder2:= _
wdSortOrderAscending, FieldNumber3:="", SortFieldType3:= _
wdSortFieldAlphanumeric, SortOrder3:=wdSortOrderAscending, Separator:= _
wdSortSeparateByTabs, SortColumn:=False, CaseSensitive:=False, LanguageID _
:=wdLanguageNone
ActiveDocument.Save
'
Documents.Open FileName:="dec14-137", ConfirmConversions:=False, ReadOnly _
:=False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate _
:="", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="" _
, Format:=wdOpenFormatAuto
Selection.Sort ExcludeHeader:=False, FieldNumber:="Paragraphs", _
SortFieldType:=wdSortFieldAlphanumeric, SortOrder:=wdSortOrderAscending, _
FieldNumber2:="", SortFieldType2:=wdSortFieldAlphanumeric, SortOrder2:= _
wdSortOrderAscending, FieldNumber3:="", SortFieldType3:= _
wdSortFieldAlphanumeric, SortOrder3:=wdSortOrderAscending, Separator:= _
wdSortSeparateByTabs, SortColumn:=False, CaseSensitive:=False, LanguageID _
:=wdLanguageNone
ActiveDocument.Save
'
Documents.Open FileName:="dec14-138", ConfirmConversions:=False, ReadOnly _
:=False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate _
:="", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="" _
, Format:=wdOpenFormatAuto
Selection.Sort ExcludeHeader:=False, FieldNumber:="Paragraphs", _
SortFieldType:=wdSortFieldAlphanumeric, SortOrder:=wdSortOrderAscending, _
FieldNumber2:="", SortFieldType2:=wdSortFieldAlphanumeric, SortOrder2:= _
wdSortOrderAscending, FieldNumber3:="", SortFieldType3:= _
wdSortFieldAlphanumeric, SortOrder3:=wdSortOrderAscending, Separator:= _
wdSortSeparateByTabs, SortColumn:=False, CaseSensitive:=False, LanguageID _
:=wdLanguageNone
ActiveDocument.Save
'
Documents.Open FileName:="dec14-139", ConfirmConversions:=False, ReadOnly _
:=False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate _
:="", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="" _
, Format:=wdOpenFormatAuto
Selection.Sort ExcludeHeader:=False, FieldNumber:="Paragraphs", _
SortFieldType:=wdSortFieldAlphanumeric, SortOrder:=wdSortOrderAscending, _
FieldNumber2:="", SortFieldType2:=wdSortFieldAlphanumeric, SortOrder2:= _
wdSortOrderAscending, FieldNumber3:="", SortFieldType3:= _
wdSortFieldAlphanumeric, SortOrder3:=wdSortOrderAscending, Separator:= _
wdSortSeparateByTabs, SortColumn:=False, CaseSensitive:=False, LanguageID _
:=wdLanguageNone
ActiveDocument.Save
' empty files will append spurious carriage returns at
' head or tail of files so check for this before final match routine
' otherwise use Insert / File to merge files
' merge 10 related files back to one
' for convenience I named these re-concattenated
' files as .txt so they were obvious in listing
' compared to no suffix ones
' in windows explorer the file sizes of these .txt files
' should have the same file-size as the original
' unexpanded and unsorted file
' use "Word" find for any repeated repeatedend of line "^p^p"
'
Documents.Add Template:="", NewTemplate:=False
Selection.InsertFile FileName:="dec14-130", Range:="", ConfirmConversions _
:=False, Link:=False, Attachment:=False
Selection.InsertFile FileName:="dec14-131", Range:="", ConfirmConversions _
:=False, Link:=False, Attachment:=False
Selection.InsertFile FileName:="dec14-132", Range:="", ConfirmConversions _
:=False, Link:=False, Attachment:=False
Selection.InsertFile FileName:="dec14-133", Range:="", ConfirmConversions _
:=False, Link:=False, Attachment:=False
Selection.InsertFile FileName:="dec14-134", Range:="", ConfirmConversions _
:=False, Link:=False, Attachment:=False
Selection.InsertFile FileName:="dec14-135", Range:="", ConfirmConversions _
:=False, Link:=False, Attachment:=False
Selection.InsertFile FileName:="dec14-136", Range:="", ConfirmConversions _
:=False, Link:=False, Attachment:=False
Selection.InsertFile FileName:="dec14-137", Range:="", ConfirmConversions _
:=False, Link:=False, Attachment:=False
Selection.InsertFile FileName:="dec14-138", Range:="", ConfirmConversions _
:=False, Link:=False, Attachment:=False
Selection.InsertFile FileName:="dec14-139", Range:="", ConfirmConversions _
:=False, Link:=False, Attachment:=False
ActiveDocument.SaveAs FileName:="dec14-13.txt", FileFormat:=wdFormatText, _
LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword _
:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
False
Copy and paste all these subfiles together to
submit to the next section. The final match finding,
initially for 12 digits ,then change to 14,16,18
and finally 20 if 18 shows something. This routine
after hours of dividing/sorting/re-merging takes only seconds to complete.
' Find matching pairs in 12 digits
' xxxx is count = ????
xxxx =
b$ = "0"
Count = 0
Dim ps As String
Open "dec14-24.txt" For Input As #1
Open "dec14-24m12.txt" For Output As #2
' change the 12 in the #2 file name above and
' the Left function below to suit number of matches
xxxx = xxxx - 1
For x = 0 To xxxx
Input #1, ps
a$ = Left(ps, 12)
If a$ = b$ Then
Write #2, ps
Count = Count + 1
End If
b$ = a$
Next x
Write #2, "Count ", Count
close #1
Close #2
' Find matching triples in 12 digits
' xxxx is count from the count files
xxxx =
b$ = "0"
c$ = "0"
Count = 0
Dim ps As String
xxxx = xxxx - 1
Open "dec14-1.txt" For Input As #1
Open "dec14-1trip.txt" For Output As #2
' change the 12 in the #2 file name above and
' the Left function below to suit number of matches
For x = 0 To xxxx
Input #1, ps
a$ = Left(ps, 12)
a2$ = ps
If a$ = c$ Then
Write #2, a2$, b2$, c2$
Count = Count + 1
End If
If a$ = b$ Then
c$ = b$
c2$ = b2$
End If
b$ = a$
b2$ = a2$
Next x
Write #2, "Count ", Count
Close #1
Close #2
' Find matching quadruples in 12 digits
' xxxx is from the count files
xxxx =
b$ = "0"
c$ = "0"
Count = 0
Dim ps As String
xxxx = xxxx - 1
Open "dec14-3.txt" For Input As #1
Open "dec14-3quad.txt" For Output As #2
' change the 12 in the #2 file name above and
' the Left function below to suit number of matches
For x = 0 To xxxx
Input #1, ps
a$ = Left(ps, 12)
a2$ = ps
If a$ = d$ Then
Write #2, a2$, b2$, c2$, d2$
Count = Count + 1
End If
If a$ = c$ Then
d$ = c$
d2$ = c2$
End If
If a$ = b$ Then
c$ = b$
c2$ = b2$
End If
b$ = a$
b2$ = a2$
Next x
Write #2, "Count ", Count
Close #1
Close #2
' Find matching quintuples in 12 digits
' xxxx is from the count files
xxxx =
b$ = "0"
c$ = "0"
Count = 0
Dim ps As String
xxxx = xxxx - 1
Open "dec14-4.txt" For Input As #1
Open "dec14-4quin.txt" For Output As #2
' change the 12 in the #2 file name above and
' the Left function below to suit number of matches
For x = 0 To xxxx
Input #1, ps
a$ = Left(ps, 12)
a2$ = ps
If a$ = e$ Then
Write #2, a2$, b2$, c2$, d2$, e2$
Count = Count + 1
End If
If a$ = d$ Then
e$ = d$
e2$ = d2$
End If
If a$ = c$ Then
d$ = c$
d2$ = c2$
End If
If a$ = b$ Then
c$ = b$
c2$ = b2$
End If
b$ = a$
b2$ = a2$
Next x
Write #2, "Count ", Count
Close #1
Close #2
' Find homozygosity
' xxxx is count = ????
xxxx = 5000
Dim ph(18)
Dim ps As String
count1 = 0
count2 = 0
count3 = 0
count4 = 0
count5 = 0
count6 = 0
count7 = 0
count8 = 0
count9 = 0
Open "jun01b-g.txt" For Input As #1
Open "jun01b-hz.txt" For Output As #2
xxxx = xxxx - 1
For x = 0 To xxxx
Input #1, ps
a1$ = Mid(ps, 1, 1)
a2$ = Mid(ps, 2, 1)
ph(1) = Val(a1$)
ph(2) = Val(a2$)
If ph(1) = ph(2) Then
count1 = count1 + 1
End If
a3$ = Mid(ps, 3, 1)
a4$ = Mid(ps, 4, 1)
ph(3) = Val(a3$)
ph(4) = Val(a4$)
If ph(3) = ph(4) Then
count2 = count2 + 1
End If
a5$ = Mid(ps, 5, 1)
a6$ = Mid(ps, 6, 1)
ph(5) = Val(a5$)
ph(6) = Val(a6$)
If ph(5) = ph(6) Then
count3 = count3 + 1
End If
a7$ = Mid(ps, 7, 1)
a8$ = Mid(ps, 8, 1)
ph(7) = Val(a7$)
ph(8) = Val(a8$)
If a7$ = "A" Then ph(7) = 10
If a8$ = "A" Then ph(8) = 10
If ph(7) = ph(8) Then
count4 = count4 + 1
End If
a9$ = Mid(ps, 9, 1)
a10$ = Mid(ps, 10, 1)
ph(9) = Val(a9$)
ph(10) = Val(a10$)
If a9$ = "A" Then ph(9) = 10
If a10$ = "A" Then ph(10) = 10
If a9$ = "B" Then ph(9) = 11
If a10$ = "B" Then ph(10) = 11
If a9$ = "C" Then ph(9) = 12
If a10$ = "C" Then ph(10) = 12
If a9$ = "D" Then ph(9) = 13
If a10$ = "D" Then ph(10) = 13
If ph(9) = ph(10) Then
count5 = count5 + 1
End If
a11$ = Mid(ps, 11, 1)
a12$ = Mid(ps, 12, 1)
ph(11) = Val(a11$)
ph(12) = Val(a12$)
If ph(11) = ph(12) Then
count6 = count6 + 1
End If
a13$ = Mid(ps, 13, 1)
a14$ = Mid(ps, 14, 1)
ph(13) = Val(a13$)
ph(14) = Val(a14$)
If ph(13) = ph(14) Then
count7 = count7 + 1
End If
a15$ = Mid(ps, 15, 1)
a16$ = Mid(ps, 16, 1)
ph(15) = Val(a15$)
ph(16) = Val(a16$)
If ph(15) = ph(16) Then
count8 = count8 + 1
End If
a17$ = Mid(ps, 17, 1)
a18$ = Mid(ps, 18, 1)
ph(17) = Val(a17$)
ph(18) = Val(a18$)
If ph(17) = ph(18) Then
count9 = count9 + 1
End If
Next x
countsum = count1 + count2 + count3 + count4 + count5 + count6 + count7 + count8 + count9
Write #2, "Locus 1 Homozygosity Count = ", count1, " locus 2 = ", count2, " locus 3 = ", count3, " locus 4 = ", count4, " locus 5 = ", count5, " locus 6 = ", count6, " locus 7 = ", count7, " locus 8 = ", count8, " locus 9 = ", count9, " TOTAL count = ", countsum
Close #1
Close #2
' Add homozygosity
' xxxx is count = ????
xxxx = 5000
Dim ph(18)
Dim ps As String
Open "jun01b-g.txt" For Input As #1
Open "jun01b-g-added-hz.txt" For Output As #2
xxxx = xxxx - 1
For x = 0 To xxxx
Input #1, ps
a1$ = Mid(ps, 1, 1)
a2$ = Mid(ps, 2, 1)
a3$ = Mid(ps, 3, 1)
a4$ = Mid(ps, 4, 1)
a5$ = Mid(ps, 5, 1)
a6$ = Mid(ps, 6, 1)
a7$ = Mid(ps, 7, 1)
a8$ = Mid(ps, 8, 1)
a9$ = Mid(ps, 9, 1)
a10$ = Mid(ps, 10, 1)
a11$ = Mid(ps, 11, 1)
a12$ = Mid(ps, 12, 1)
a13$ = Mid(ps, 13, 1)
a14$ = Mid(ps, 14, 1)
a15$ = Mid(ps, 15, 1)
a16$ = Mid(ps, 16, 1)
a17$ = Mid(ps, 17, 1)
a18$ = Mid(ps, 18, 1)
ph(0) = a1$
ph(1) = a2$
ph(2) = a3$
ph(3) = a4$
ph(4) = a5$
ph(5) = a6$
ph(6) = a7$
ph(7) = a8$
ph(8) = a9$
ph(9) = a10$
ph(10) = a11$
ph(11) = a12$
ph(12) = a13$
ph(13) = a14$
ph(14) = a15$
ph(15) = a16$
ph(16) = a17$
ph(17) = a18$
rng = 18 * Rnd
If 0 <= rng And rng < 1 Then
Write #2, ph(0) & ph(0) & ph(2) & ph(3) & ph(4) & ph(5) & ph(6) & ph(7) & ph(8) & ph(9) & ph(10) & ph(11) & ph(12) & ph(13) & ph(14) & ph(15) & ph(16) & ph(17)
End If
If 1 <= rng And rng < 2 Then
Write #2, ph(0) & ph(1) & ph(2) & ph(2) & ph(4) & ph(5) & ph(6) & ph(7) & ph(8) & ph(9) & ph(10) & ph(11) & ph(12) & ph(13) & ph(14) & ph(15) & ph(16) & ph(17)
End If
If 2 <= rng And rng < 3 Then
Write #2, ph(0) & ph(1) & ph(2) & ph(3) & ph(4) & ph(4) & ph(6) & ph(7) & ph(8) & ph(9) & ph(10) & ph(11) & ph(12) & ph(13) & ph(14) & ph(15) & ph(16) & ph(17)
End If
If 3 <= rng And rng < 4 Then
Write #2, ph(0) & ph(1) & ph(2) & ph(3) & ph(4) & ph(5) & ph(6) & ph(6) & ph(8) & ph(9) & ph(10) & ph(11) & ph(12) & ph(13) & ph(14) & ph(15) & ph(16) & ph(17)
End If
If 4 <= rng And rng < 5 Then
Write #2, ph(0) & ph(1) & ph(2) & ph(3) & ph(4) & ph(5) & ph(6) & ph(7) & ph(8) & ph(8) & ph(10) & ph(11) & ph(12) & ph(13) & ph(14) & ph(15) & ph(16) & ph(17)
End If
If 5 <= rng And rng < 6 Then
Write #2, ph(0) & ph(1) & ph(2) & ph(3) & ph(4) & ph(5) & ph(6) & ph(7) & ph(8) & ph(9) & ph(10) & ph(10) & ph(12) & ph(13) & ph(14) & ph(15) & ph(16) & ph(17)
End If
If 6 <= rng And rng < 7 Then
Write #2, ph(0) & ph(1) & ph(2) & ph(3) & ph(4) & ph(5) & ph(6) & ph(7) & ph(8) & ph(9) & ph(10) & ph(11) & ph(12) & ph(12) & ph(14) & ph(15) & ph(16) & ph(17)
End If
If 7 <= rng And rng < 8 Then
Write #2, ph(0) & ph(1) & ph(2) & ph(3) & ph(4) & ph(5) & ph(6) & ph(7) & ph(8) & ph(9) & ph(10) & ph(11) & ph(12) & ph(13) & ph(14) & ph(14) & ph(16) & ph(17)
End If
If 8 <= rng And rng < 9 Then
Write #2, ph(0) & ph(1) & ph(2) & ph(3) & ph(4) & ph(5) & ph(6) & ph(7) & ph(8) & ph(9) & ph(10) & ph(11) & ph(12) & ph(13) & ph(14) & ph(15) & ph(16) & ph(16)
End If
If 9 <= rng And rng < 18 Then
Write #2, ph(0) & ph(1) & ph(2) & ph(3) & ph(4) & ph(5) & ph(6) & ph(7) & ph(8) & ph(9) & ph(10) & ph(11) & ph(12) & ph(13) & ph(14) & ph(15) & ph(16) & ph(17)
End If
Next x
Close #1
Close #2
J. Forensic Sc, Jan 2003,V 48, No 1
FSI, 115 (2001) 111-112
FSI, 119 (2001) 113-115
Basque data: all samples were from people who
had gparents with Basque birth-surnames and
born in the Basque country.
The Basque data compared to South Spain data
for the 3 principal alleles at each locus , summing
allele frequencies showed following percentages
Locus Spain Basque
D3 67 73
FGA 50 50
D5 89 85
D13 73 79
D7 68 70
D21 54 63
D18 44 51
D16 79 81
Results for simulating 9 loci,18 datapoint
for the Basques data giving 1 million profiles
Pairs of matches in first
12 digit - 11,100
14 digit - 1,004
16 digit - 76
18 digit - 9 distinct pairs all cross-checked
back to the undirected generator file and nothing
wrong with the random generator.
This square law equates with a baseline figue
of about 1 in 320,000.
Triples
12 dig - 527
14 dig - 10
16 dig - 0
Quads
12 dig - 37
14 - 1
Quins
12 dig - 4
14 dig - 0
I only added homozygosity ot the subest 3........
which had 422,260 profiles and in the original
sorted file and had 2 separate 9 locus matched pairs
8 'locus' - 9 pairs
7 'locus' - 94 pairs
6 'locus' - 1,135 pairs
At the moment I've added HZ randomly across all
loci and alleles. If the random 'adder' fell on a
HZ pair then no change.
Originally 83,816 profiles 33.... increased to
102,641 profiles 33..... [ some 34.... , 35... etc
became 33.... , the altered allele always taking
the value of the first ]
After randomly adding in 22.8 per cent excess homozygosity
these results emerged
9 locus - 1 match
8 locus - 9
7 locus - 135
6 locus - 1,520
For triplet matches in both 3..... subsets
Original , 12 dig - 4, 14 dig - 0
Added HZ, 12 dig - 65, 14 dig - 1
All very odd
Checking the 9 locus matches . The one with added HZ
was a new pair. One each of the previous pair had one
locus changed in each so destroyed the original matches.
I cannot find any errors in processing and assume this was
just one of those statistical hickups.
Hopefully if I process the remaining non-3 profiles a
different picture will emerge. Intuitively I would have
thought it made a lot off difference.
Although 9 matches in each of the 8 locus cases ,
only 4 of these 9 were the same in both sets
I only noticed yesterday that there was in fact homozygosity
figures in the highly autochthonous Basques profile table.
It is in terms of heterozygosity which is 1 - homoZ
and is not as stark as I would have thought.
D13 excess HZ 16.4%
FGA +15.2%
D5 -11.2% (observed is 11.2% less than expected)
D13 +4.6%
D7 -6.0% (less)
D8 +20.3%
D21 -0.7% (less)
D18 +9.0%
D16 -2.1% (less)
I found my mislaid Australian data FSI,129 (2002) p90-98
If anything the Australian Capital Territory/ Caucasian data
is more peaked in the modal groups of the 8 common with
the Basques set. The Basques D16 is more peaked than the
vWA Oz data for the 9th locus. So overall I would
expect with a full simulation with no adjustments for
excess HZ or dropped rare alleles then the baseline
for Australian Caucasian on NIFS 9 loci would be
a bit less than 320,000 for one match