Browse Source

refactoring codebase

cjs3
Stephen Lorenz 3 years ago
parent
commit
2b9d610b08
  1. 8
      .gitignore
  2. 13
      bak/conf/wsgi.ini
  3. 3
      bak/conf/wsgi.py
  4. 0
      bin/euroformix_quantitative.R
  5. 0
      cjs/LICENSE
  6. 2
      cjs/README.md
  7. 40
      cjs/app.py
  8. 14
      cjs/cjs/app.py
  9. 6
      cjs/cjs/automate.py
  10. 0
      cjs/cjs/convert.py
  11. 0
      cjs/cjs/core/__init__.py
  12. 10
      cjs/cjs/core/automate.py
  13. 11
      cjs/cjs/core/state.py
  14. 48
      cjs/cjs/core/web.py
  15. 0
      cjs/cjs/database.py
  16. 0
      cjs/cjs/fmt/__init__.py
  17. 0
      cjs/cjs/fmt/efm.py
  18. 46
      cjs/cjs/main.py
  19. 217
      cjs/fmt/efm.py
  20. 35
      cjs/setup.py
  21. BIN
      cjsd/.app/database/debug/database.db
  22. BIN
      cjsd/.app/database/steve/database.db
  23. 1
      cjsd/.app/database/steve/input/BC11352.json
  24. 1
      cjsd/.app/database/steve/input/GA05070.json
  25. 1
      cjsd/.app/database/steve/input/GA05071.json
  26. 1
      cjsd/.app/database/steve/input/GC03394.json
  27. 1
      cjsd/.app/database/steve/input/GT36864.json
  28. 1
      cjsd/.app/database/steve/input/GT36865.json
  29. 1
      cjsd/.app/database/steve/input/GT36866.json
  30. 1
      cjsd/.app/database/steve/input/GT36868.json
  31. 1
      cjsd/.app/database/steve/input/GT36869.json
  32. 1
      cjsd/.app/database/steve/input/GT36875.json
  33. 1
      cjsd/.app/database/steve/input/GT36877.json
  34. 1
      cjsd/.app/database/steve/input/GT36878.json
  35. 1
      cjsd/.app/database/steve/input/GT36880.json
  36. 1
      cjsd/.app/database/steve/input/GT36884.json
  37. 1
      cjsd/.app/database/steve/input/GT36885.json
  38. 1
      cjsd/.app/database/steve/input/GT36886.json
  39. 1
      cjsd/.app/database/steve/input/GT37019.json
  40. 1
      cjsd/.app/database/steve/input/GT37020.json
  41. 1
      cjsd/.app/database/steve/input/GT37026.json
  42. 1
      cjsd/.app/database/steve/input/GT37027.json
  43. 1
      cjsd/.app/database/steve/input/GT37032.json
  44. 1
      cjsd/.app/database/steve/input/GT37047.json
  45. 1
      cjsd/.app/database/steve/input/GT37166.json
  46. 1
      cjsd/.app/database/steve/input/GT37168.json
  47. 1
      cjsd/.app/database/steve/input/GT37169.json
  48. 1
      cjsd/.app/database/steve/input/GT37170.json
  49. 1
      cjsd/.app/database/steve/input/GT37171.json
  50. 1
      cjsd/.app/database/steve/input/GT37173.json
  51. 1
      cjsd/.app/database/steve/input/GT37175.json
  52. 1
      cjsd/.app/database/steve/input/GT37178.json
  53. 1
      cjsd/.app/database/steve/input/GT37179.json
  54. 1
      cjsd/.app/database/steve/input/GT37184.json
  55. 1
      cjsd/.app/database/steve/input/GT37190.json
  56. 1
      cjsd/.app/database/steve/input/GT37306.json
  57. 1
      cjsd/.app/database/steve/input/GT37312.json
  58. 1
      cjsd/.app/database/steve/input/GT37349.json
  59. 1
      cjsd/.app/database/steve/input/GT37351.json
  60. 1
      cjsd/.app/database/steve/input/GT37402.json
  61. 1
      cjsd/.app/database/steve/input/GT37420.json
  62. 1
      cjsd/.app/database/steve/input/GT37463.json
  63. 1
      cjsd/.app/database/steve/input/GT37483.json
  64. 1
      cjsd/.app/database/steve/input/GT37542.json
  65. 1
      cjsd/.app/database/steve/input/GT37590.json
  66. 1
      cjsd/.app/database/steve/input/GT37607.json
  67. 1
      cjsd/.app/database/steve/input/GT37692.json
  68. 1
      cjsd/.app/database/steve/input/GT37700.json
  69. 1
      cjsd/.app/database/steve/input/GT37713.json
  70. 1
      cjsd/.app/database/steve/input/GT37732.json
  71. 1
      cjsd/.app/database/steve/input/GT37765.json
  72. 1
      cjsd/.app/database/steve/input/GT37767.json
  73. 1
      cjsd/.app/database/steve/input/GT37778.json
  74. 1
      cjsd/.app/database/steve/input/GT37812.json
  75. 1
      cjsd/.app/database/steve/input/GT37828.json
  76. 1
      cjsd/.app/database/steve/input/GT37853.json
  77. 1
      cjsd/.app/database/steve/input/GT37862.json
  78. 1
      cjsd/.app/database/steve/input/GT37864.json
  79. 1
      cjsd/.app/database/steve/input/GT37869.json
  80. 1
      cjsd/.app/database/steve/input/GT37888.json
  81. 1
      cjsd/.app/database/steve/input/GT37900.json
  82. 1
      cjsd/.app/database/steve/input/GT37913.json
  83. 1
      cjsd/.app/database/steve/input/GT38065.json
  84. 1
      cjsd/.app/database/steve/input/GT38066.json
  85. 1
      cjsd/.app/database/steve/input/GT38067.json
  86. 1
      cjsd/.app/database/steve/input/GT38069.json
  87. 1
      cjsd/.app/database/steve/input/GT38070.json
  88. 1
      cjsd/.app/database/steve/input/GT38072.json
  89. 1
      cjsd/.app/database/steve/input/GT38073.json
  90. 1
      cjsd/.app/database/steve/input/GT38075.json
  91. 1
      cjsd/.app/database/steve/input/GT38076.json
  92. 1
      cjsd/.app/database/steve/input/GT38078.json
  93. 1
      cjsd/.app/database/steve/input/GT38081.json
  94. 1
      cjsd/.app/database/steve/input/GT38083.json
  95. 1
      cjsd/.app/database/steve/input/GT38086.json
  96. 1
      cjsd/.app/database/steve/input/GT38087.json
  97. 1
      cjsd/.app/database/steve/input/GT38089.json
  98. 1
      cjsd/.app/database/steve/input/GT38091.json
  99. 1
      cjsd/.app/database/steve/input/GT38092.json
  100. 1
      cjsd/.app/database/steve/input/GT38093.json

8
.gitignore

@ -1,3 +1,9 @@
# cjs
cjs/data
# cjsd
cjsd/cjsd/.app
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
@ -101,4 +107,4 @@ venv.bak/
/site
# mypy
.mypy_cache/
.mypy_cache/

13
bak/conf/wsgi.ini

@ -1,13 +0,0 @@
[uwsgi]
master = 1
vacuum = true
http = 127.0.0.1:8080
enable-threads = true
thunder-lock = true
threads = 2
processes = 2
virtualenv = /home/csguest/Desktop/cjs2/cjsd/.venv
wsgi-file = /home/csguest/Desktop/cjs2/cjsd/wsgi.py
chdir = /home/csguest/Desktop/cjs2/cjsd
uid = cjsd-runner
gid = cjsd-runner

3
bak/conf/wsgi.py

@ -1,3 +0,0 @@
import app
application = app.create_api()

0
euroformix.headless/R/lrmix.R → bin/euroformix_quantitative.R

0
LICENSE → cjs/LICENSE

2
cjs/README.md

@ -0,0 +1,2 @@
# cjs
A command-line interface client to the cjsd backend.

40
cjs/app.py

@ -1,40 +0,0 @@
#!/usr/bin/env python3
import os
import click
# TODO: replace with plugin manager if possible
import cjs
from cjs import database
from cjs import automate
COMMAND_LIST = [
database.cli,
automate.cli
]
# main-entry point to the entire command-line interface
@click.group()
@click.option('--host',
help='Set the CJS served to be used.',
default='http://127.0.0.1:8000')
@click.pass_context
def cli(ctx, host):
"""
A command-line interface to the Criminal Justice Software toolchain.\f
Args:
ctx: Click command-line interface context.
"""
# initialize context object as a dictionary
ctx.ensure_object(dict)
# store arguments/options into the context dictionary
ctx.obj['host'] = host
# add modules into cli the click group defined above
for c in COMMAND_LIST:
cli.add_command(c)
if __name__ == '__main__':
cli()

14
cjs/cjs/app.py

@ -0,0 +1,14 @@
#!/usr/bin/env python3
import pathlib
class AppState:
def __init__(self, address, port, working_dir):
self.address = address
self.port = port
self.working_dir = working_dir

6
cjs/automate.py → cjs/cjs/automate.py

@ -33,10 +33,6 @@ from cjs.fmt.efm import reqbt_to_settings
type=click.INT,
default=1,
help='Set the number of worker threads.')
@click.option('--data_dir',
type=click.STRING,
default='data1',
help='Set the working directory.')
@click.option('--resource_dir',
type=click.STRING,
default='.app',
@ -93,7 +89,7 @@ def efm_qualitative(state, job):
test_settings = {
'working_dir': '.',
'output_dir': state.output_dir
'output_dir': state.output_dir,
'evidence_file': evidence_file,
'comparison_file': comparison_file,
'resource_dir': '/home/csguest/Desktop/cjs3/cjs/data',

0
cjs/convert.py → cjs/cjs/convert.py

0
cjs/core/__init__.py → cjs/cjs/core/__init__.py

10
cjs/core/automate.py → cjs/cjs/core/automate.py

@ -27,8 +27,7 @@ from utils.fs import create_dir
import utils.net
from utils.net import send_email
import utils.http
from utils.http import rest_post
import web
class FileSystemScanner(PatternMatchingEventHandler):
patterns = ["*.csv"]
@ -75,12 +74,13 @@ def run_process(command_list, timeout=None):
)
return output
def poll_queue(queue_obj, item_fn):
def poll_queue(queue_obj, item_func):
try:
while True:
item = queue_obj.get(block=False)
item_fn(item, *args, **kwargs)
state.output_queue.task_done()
if item:
item_func(item, *args, **kwargs)
queue_obj.task_done()
except queue.Empty as e:
pass
except Exception as e:

11
cjs/cjs/core/state.py

@ -0,0 +1,11 @@
#!/usr/bin/env python3
import pathlib
class AppState:
def __init__(self, address, port, working_dir):
self.address = address
self.port = port
self.working_dir = working_dir

48
cjs/cjs/core/web.py

@ -0,0 +1,48 @@
#!/usr/bin/env python3
import json
import utils.http
from utils.http import rest_post
from utils.http import rest_get
class WebInterface:
def __init__(self, address, port):
# TODO: add hostname and port validation
# TODO: find a better way to format them
self.address = 'http://%s:%s' % (address, port)
# a decorator that concatenates the host and route for simplicity
def resolve_route(func):
def wrapper(self, route, *args, **kwargs):
route = self.host + route
return func(self, route, *args, **kwargs)
return wrapper
@resolve_route
def post(self, route, payload):
# TODO: find a better way to format them
response = rest_post(route, payload)
content = response.content.decode('utf-8')
data = json.loads(content)
return data
@resolve_route
def get(self, route):
response = rest_get(route)
content = response.content.decode('utf-8')
data = json.loads(content)
return data
class AutomateInterface(WebInterface):
def current_batch(self, database):
payload = {'database': database}
data = self.post('/automate/current_batch', payload)
return data
def next_job(self, database):
payload = {'database': database}
data = self.post('/automate/next_job', payload)
return data

0
cjs/database.py → cjs/cjs/database.py

0
cjs/fmt/__init__.py → cjs/cjs/fmt/__init__.py

0
cjs/core/efm.py → cjs/cjs/fmt/efm.py

46
cjs/cjs/main.py

@ -0,0 +1,46 @@
#!/usr/bin/env python3
import os
import click
# TODO: replace with plugin manager if possible
from . import database
from . import automate
COMMAND_LIST = [
database.cli,
automate.cli
]
# main-entry point to the entire command-line interface
@click.group()
@click.option(
'--address',
default='127.0.0.1',
help='Set the address of cjs daemon'
)
@click.option(
'--port',
default='8000',
help='Set the port of the cjs daemon'
)
@click.pass_context
def cli(ctx, address, port):
"""
A command-line interface to Clarkson University's Criminal Justice Software toolchain.\f
Args:
ctx: :mod:`click` application context.
"""
# enforce that the context object is a dictionary
ctx.ensure_object(dict)
# store necessary arguments and options into the dictionary
# register each module in the COMMAND_LIST to cli's click group
for command in COMMAND_LIST:
cli.add_command(command)
if __name__ == '__main__':
cli()

217
cjs/fmt/efm.py

@ -1,217 +0,0 @@
#!/usr/bin/env python3
# initialize header for a euroformix input file
# euroformix evidence files are tab (\t) delimited
evidence_header = [
'Sample Name', # human-readable name - e.g. reqbt-1
'Marker', # loci - e.g. vWA
# 'Allele 1', # value - e.g. 12.3
# 'Allele 2',
# 'Allele 3',
# 'Allele 4',
# 'Allele 5',
# 'Allele 6',
# 'Height 1', # peak height (rfu) - e.g. 200
# 'Height 2',
# 'Height 3',
# 'Height 4',
# 'Height 5',
# 'Height 6',
'ADO', # ?
'UD1', # ?
'' # tab at the end
]
reqbt_loci = {
'D8S1179',
'D21S11',
'D7S820',
'CSF1PO',
'D3S1358',
'TH01',
'D13S317',
'D16S539',
'D2S1338',
'D19S433',
'vWA',
'TPOX',
'D18S51',
'D5S818',
'FGA'
}
# initialize header for euroformix comparison
# euroformix comparison files are comma (,) delimited
comparison_header = [
'SampleName', # human-readable name - e.g. reqbt-1-1
'Marker', # loci - e.g. vWA
'Allele1', # value - e.g. 12.3
'Allele2'
]
# initialize loci supported by euroformix's evidence files
# NOTE: this is in the order they are seen in stain.txt
# NOTE: because I am unsure if order matters, there is comparison_loci as well
evidence_loci = [
'AMEL',
'D3S1358',
'TH01',
'D21S11',
'D18S51',
'D10S1248',
'D1S1656',
'D2S1338',
'D16S539',
'D22S1045',
'vWA',
'D8S1179',
'FGA',
'D2S441',
'D12S391',
'D19S433',
'SE33'
]
# initialize loci supported by euroformix's comparison files
# NOTE: this is in the order they are seen in refs.csv
# NOTE: because I am unsure if order matters, there is evidence_loci as well
comparison_loci = [
'D3S1358',
'TH01',
'D21S11',
'D18S51',
'D10S1248',
'D1S1656',
'D2S1338',
'D16S539',
'D22S1045',
'VWA', # NOTE: caps?
'D8S1179',
'FGA',
'D2S441',
'D12S391',
'D19S433',
'SE33'
]
def any_bad_values(values):
bad_values = ['NEG', 'INC']
if any(bad_value in values for bad_value in bad_values):
return True
else:
return False
def reqbt_to_settings(evidence_json, comparison_json):
settings = {
'test_name': comparison_json['name'],
'evidence_name': evidence_json['name'],
'comparison_name': comparison_json['name'],
'num_contributors': evidence_json['contributors'],
'num_replicates': len(evidence_json['replicates'])
}
return settings
def reqbt_to_evidence(evidence_json):
# initialize list to store data in tsv format
evidence_tsv = []
# initialize some variables to reduce magic numbers
max_alleles = 0
# initialize name from json data
i = 1
name = evidence_json['name']
for replicate in evidence_json['replicates']:
for locus in reqbt_loci: # TODO: merge evidence_loci. this was formerly evidence_loci
# initialize temporary row to append to replicate_tv
row = []
# add 'Sample Name'
row.append('%s_%d' % (name, i))
# add 'Marker'
row.append(locus)
try:
# try to see if locus exists in the reqbt data
# if not, jump to except KeyError
values = replicate[locus]
# calculate how many allele headers we will need (for the longest values)
if any_bad_values(values):
continue
len_values = len(values)
if max_alleles < len_values:
max_alleles = len_values
# we will zip this loop with a range of 6 to ENSURE
# only 6 values are added as the loop will end on 6
# iterations
row.extend(values)
except KeyError: # locus didn't exist, skip it
pass
except Exception as e: # something went seriously wrong
print('Error: An unexepected error occurred: %s' % e)
raise
# finally, add row to replicate_tsv
evidence_tsv.append(row)
i += 1
# now we must generate our dynamic header
allele_section = ['Allele %d' % (i+1) for i in range(max_alleles)]
dynamic_header = list(evidence_header)
dynamic_header[2:2] = allele_section # insert header element starting at index 2
# we must fill any empty/missing columns with tabs (''):
for row in evidence_tsv:
while len(row) < len(dynamic_header):
row.append('')
row[-3] = 'false'
# finally, insert the header at the beginning
evidence_tsv.insert(0, dynamic_header)
return evidence_tsv # TODO: make run more than 1 replicate
def reqbt_to_comparison(comparison_json):
# initialize list to store data in tsv format
comparison_csv = []
# initialize some variables to reduce magic numbers
max_alleles = 2
# initialize name form json data
name = comparison_json['name']
for locus in reqbt_loci:
# initialize temporary row to append to replicate_tv
row = []
# add 'Sample Name'
row.append(name)
# add 'Marker'
row.append(locus)
try:
# for some reason vWA is capitalized differently, so..
# TODO: is there a better way?
if locus == 'VWA':
locus = 'vWA' # fix it
# try to see if locus exists in the reqbt data
# if not, jump to except KeyError
values = comparison_json[locus] # NOTE: use uppercase here
if any_bad_values(values):
continue
row.extend(values)
except KeyError: # locus didn't exist, skip it
pass
except Exception as e: # something went seriously wrong
print('Error: An unexepected error occurred: %s' % e)
raise
# we must fill any empty/missing columns with tabs (''):
while len(row) < len(comparison_header):
row.append('')
# finally, add row to replicate_tsv
comparison_csv.append(row)
# finally, insert the header at the beginning
comparison_csv.insert(0, comparison_header)
return comparison_csv

35
cjs/setup.py

@ -0,0 +1,35 @@
#!/usr/bin/env python3
import setuptools
from setuptools import setup
from setuptools import find_packages
with open('README.md', 'r') as fh:
long_description = fh.read()
setup(
name='cjs',
version='1.0.0',
author='Stephen Lorenz',
author_email='lorenzsj@clarkson.edu',
description='A client to the cjsd backend.',
long_description=long_description,
long_description_content_type='text/markdown',
url='https://github.com/lorenzsj/cjs',
packages=find_packages(),
install_requires=[
'click',
'watchdog',
'requests',
],
entry_points={
'console_scripts': [
'cjs = cjs.app:cli',
]
},
classifiers=[
'Programming Language :: Python :: 3',
'License :: OSI Approved :: MIT License',
'Operating System :: OS Independent'
]
)

BIN
cjsd/.app/database/debug/database.db

BIN
cjsd/.app/database/steve/database.db

1
cjsd/.app/database/steve/input/BC11352.json

@ -1 +0,0 @@
{"name": "BC11352", "D8S1179": ["13", "14"], "D21S11": ["28", "30"], "D7S820": ["10", "12"], "CSF1PO": ["11", "13"], "D3S1358": ["14", "17"], "TH01": ["6", "9.3"], "D13S317": ["13", "13"], "D16S539": ["8", "12"], "D2S1338": ["17", "20"], "D19S433": ["13", "13"], "vWA": ["17", "17"], "TPOX": ["8", "8"], "D18S51": ["13", "15"], "AMEL": ["X", "Y"], "D5S818": ["10", "11"], "FGA": ["24", "24"]}

1
cjsd/.app/database/steve/input/GA05070.json

@ -1 +0,0 @@
{"name": "GA05070", "D8S1179": ["10", "13"], "D21S11": ["30", "33.2"], "D7S820": ["10", "13"], "CSF1PO": ["10", "12"], "D3S1358": ["16", "18"], "TH01": ["7", "9"], "D13S317": ["10", "11"], "D16S539": ["10", "10"], "D2S1338": ["19", "23"], "D19S433": ["14.2", "15"], "vWA": ["14", "19"], "TPOX": ["8", "12"], "D18S51": ["16", "18"], "AMEL": ["X", "Y"], "D5S818": ["11", "12"], "FGA": ["25", "26"]}

1
cjsd/.app/database/steve/input/GA05071.json

@ -1 +0,0 @@
{"name": "GA05071", "D8S1179": ["13", "14"], "D21S11": ["30.2", "32.2"], "D7S820": ["7", "10"], "CSF1PO": ["11", "15"], "D3S1358": ["14", "17"], "TH01": ["7", "9.3"], "D13S317": ["11", "12"], "D16S539": ["12", "12"], "D2S1338": ["17", "17"], "D19S433": ["13", "13"], "vWA": ["16", "17"], "TPOX": ["8", "11"], "D18S51": ["17", "17"], "AMEL": ["X", "Y"], "D5S818": ["11", "12"], "FGA": ["23", "25"]}

1
cjsd/.app/database/steve/input/GC03394.json

@ -1 +0,0 @@
{"name": "GC03394", "D8S1179": ["12", "12"], "D21S11": ["30", "31"], "D7S820": ["11", "12"], "CSF1PO": ["10", "12"], "D3S1358": ["15", "18"], "TH01": ["6", "7"], "D13S317": ["11", "11"], "D16S539": ["12", "13"], "D2S1338": ["17", "20"], "D19S433": ["14", "15"], "vWA": ["17", "18"], "TPOX": ["8", "8"], "D18S51": ["15", "17"], "AMEL": ["X", "Y"], "D5S818": ["11", "12"], "FGA": ["21", "21"]}

1
cjsd/.app/database/steve/input/GT36864.json

@ -1 +0,0 @@
{"name": "GT36864", "D8S1179": ["13", "13"], "D21S11": ["31.2", "32.2"], "D7S820": ["8", "12"], "CSF1PO": ["10", "12"], "D3S1358": ["15", "16"], "TH01": ["7", "9.3"], "D13S317": ["11", "11"], "D16S539": ["11", "12"], "D2S1338": ["19", "19"], "D19S433": ["13", "14"], "vWA": ["16", "18"], "TPOX": ["9", "11"], "D18S51": ["14", "19"], "AMEL": ["X", "Y"], "D5S818": ["9", "12"], "FGA": ["19", "21"]}

1
cjsd/.app/database/steve/input/GT36865.json

@ -1 +0,0 @@
{"name": "GT36865", "D8S1179": ["13", "14"], "D21S11": ["30", "30"], "D7S820": ["7", "11"], "CSF1PO": ["10", "12"], "D3S1358": ["17", "17"], "TH01": ["6", "7"], "D13S317": ["11", "12"], "D16S539": ["9", "13"], "D2S1338": ["19", "24"], "D19S433": ["14", "15"], "vWA": ["14", "16"], "TPOX": ["8", "11"], "D18S51": ["13", "16"], "AMEL": ["X", "X"], "D5S818": ["9", "12"], "FGA": ["22", "22"]}

1
cjsd/.app/database/steve/input/GT36866.json

@ -1 +0,0 @@
{"name": "GT36866", "D8S1179": ["10", "10"], "D21S11": ["31.2", "32.2"], "D7S820": ["10", "10"], "CSF1PO": ["11", "11"], "D3S1358": ["16", "17"], "TH01": ["6", "9.3"], "D13S317": ["11", "12"], "D16S539": ["11", "13"], "D2S1338": ["18", "20"], "D19S433": ["12", "14"], "vWA": ["16", "17"], "TPOX": ["8", "8"], "D18S51": ["13", "15"], "AMEL": ["X", "Y"], "D5S818": ["11", "13"], "FGA": ["21", "21"]}

1
cjsd/.app/database/steve/input/GT36868.json

@ -1 +0,0 @@
{"name": "GT36868", "D8S1179": ["11", "14"], "D21S11": ["28", "32.2"], "D7S820": ["11", "12"], "CSF1PO": ["11", "11"], "D3S1358": ["14", "18"], "TH01": ["6", "7"], "D13S317": ["8", "11"], "D16S539": ["9", "11"], "D2S1338": ["18", "18"], "D19S433": ["13", "16.2"], "vWA": ["14", "18"], "TPOX": ["8", "8"], "D18S51": ["16", "18"], "AMEL": ["X", "X"], "D5S818": ["11", "12"], "FGA": ["20", "26"]}

1
cjsd/.app/database/steve/input/GT36869.json

@ -1 +0,0 @@
{"name": "GT36869", "D8S1179": ["14", "14"], "D21S11": ["30", "30"], "D7S820": ["8", "14"], "CSF1PO": ["11", "12"], "D3S1358": ["16", "17"], "TH01": ["7", "9.3"], "D13S317": ["11", "11"], "D16S539": ["11", "11"], "D2S1338": ["18", "20"], "D19S433": ["13", "13"], "vWA": ["15", "16"], "TPOX": ["8", "10"], "D18S51": ["12", "13"], "AMEL": ["X", "X"], "D5S818": ["9", "11"], "FGA": ["20", "25"]}

1
cjsd/.app/database/steve/input/GT36875.json

@ -1 +0,0 @@
{"name": "GT36875", "D8S1179": ["12", "13"], "D21S11": ["28", "28"], "D7S820": ["10", "11"], "CSF1PO": ["11", "11"], "D3S1358": ["14", "16"], "TH01": ["8", "9.3"], "D13S317": ["11", "12"], "D16S539": ["11", "13"], "D2S1338": ["24", "25"], "D19S433": ["12", "14"], "vWA": ["16", "19"], "TPOX": ["8", "8"], "D18S51": ["14", "17"], "AMEL": ["X", "Y"], "D5S818": ["12", "13"], "FGA": ["20", "24"]}

1
cjsd/.app/database/steve/input/GT36877.json

@ -1 +0,0 @@
{"name": "GT36877", "D8S1179": ["12", "15"], "D21S11": ["28", "30"], "D7S820": ["9", "9"], "CSF1PO": ["11", "11"], "D3S1358": ["15", "18"], "TH01": ["6", "8"], "D13S317": ["11", "11"], "D16S539": ["9", "11"], "D2S1338": ["18", "22"], "D19S433": ["13", "16.2"], "vWA": ["15", "17"], "TPOX": ["8", "11"], "D18S51": ["16", "18"], "AMEL": ["X", "Y"], "D5S818": ["11", "13"], "FGA": ["20", "26"]}

1
cjsd/.app/database/steve/input/GT36878.json

@ -1 +0,0 @@
{"name": "GT36878", "D8S1179": ["11", "13"], "D21S11": ["30", "32.2"], "D7S820": ["9", "12"], "CSF1PO": ["10", "12"], "D3S1358": ["15", "18"], "TH01": ["9.3", "9.3"], "D13S317": ["11", "13"], "D16S539": ["8", "11"], "D2S1338": ["17", "18"], "D19S433": ["13", "15"], "vWA": ["16", "19"], "TPOX": ["8", "11"], "D18S51": ["13", "17"], "AMEL": ["X", "Y"], "D5S818": ["9", "11"], "FGA": ["19", "23"]}

1
cjsd/.app/database/steve/input/GT36880.json

@ -1 +0,0 @@
{"name": "GT36880", "D8S1179": ["14", "15"], "D21S11": ["29", "30.2"], "D7S820": ["10", "12"], "CSF1PO": ["10", "12"], "D3S1358": ["16", "17"], "TH01": ["6", "9"], "D13S317": ["11", "12"], "D16S539": ["10", "13"], "D2S1338": ["19", "23"], "D19S433": ["13", "17"], "vWA": ["16", "17"], "TPOX": ["11", "11"], "D18S51": ["12", "14"], "AMEL": ["X", "X"], "D5S818": ["12", "12"], "FGA": ["20", "20"]}

1
cjsd/.app/database/steve/input/GT36884.json

@ -1 +0,0 @@
{"name": "GT36884", "D8S1179": ["11", "11"], "D21S11": ["28", "30"], "D7S820": ["8", "10"], "CSF1PO": ["10", "11"], "D3S1358": ["14", "16"], "TH01": ["7", "9.3"], "D13S317": ["11", "11"], "D16S539": ["8", "12"], "D2S1338": ["17", "24"], "D19S433": ["12", "15"], "vWA": ["17", "18"], "TPOX": ["8", "11"], "D18S51": ["14", "15"], "AMEL": ["X", "Y"], "D5S818": ["11", "12"], "FGA": ["23", "24"]}

1
cjsd/.app/database/steve/input/GT36885.json

@ -1 +0,0 @@
{"name": "GT36885", "D8S1179": ["11", "13"], "D21S11": ["28", "29"], "D7S820": ["8", "9"], "CSF1PO": ["10", "11"], "D3S1358": ["18", "18"], "TH01": ["6", "7"], "D13S317": ["11", "12"], "D16S539": ["11", "13"], "D2S1338": ["23", "23"], "D19S433": ["13", "13"], "vWA": ["18", "19"], "TPOX": ["8", "11"], "D18S51": ["14", "17"], "AMEL": ["X", "Y"], "D5S818": ["11", "12"], "FGA": ["19", "21"]}

1
cjsd/.app/database/steve/input/GT36886.json

@ -1 +0,0 @@
{"name": "GT36886", "D8S1179": ["13", "14"], "D21S11": ["29", "30"], "D7S820": ["10", "11"], "CSF1PO": ["10", "11"], "D3S1358": ["15", "15"], "TH01": ["8", "9.3"], "D13S317": ["11", "14"], "D16S539": ["10", "12"], "D2S1338": ["17", "22"], "D19S433": ["13", "15"], "vWA": ["15", "19"], "TPOX": ["8", "10"], "D18S51": ["15", "17"], "AMEL": ["X", "Y"], "D5S818": ["12", "12"], "FGA": ["23", "26"]}

1
cjsd/.app/database/steve/input/GT37019.json

@ -1 +0,0 @@
{"name": "GT37019", "D8S1179": ["14", "15"], "D21S11": ["28", "30"], "D7S820": ["10", "11"], "CSF1PO": ["11", "12"], "D3S1358": ["16", "16"], "TH01": ["6", "7"], "D13S317": ["11", "12"], "D16S539": ["11", "11"], "D2S1338": ["16", "17"], "D19S433": ["14", "14"], "vWA": ["17", "17"], "TPOX": ["8", "9"], "D18S51": ["17", "18"], "AMEL": ["X", "Y"], "D5S818": ["11", "12"], "FGA": ["23", "24"]}

1
cjsd/.app/database/steve/input/GT37020.json

@ -1 +0,0 @@
{"name": "GT37020", "D8S1179": ["12", "14"], "D21S11": ["28", "28"], "D7S820": ["9", "11"], "CSF1PO": ["9", "11"], "D3S1358": ["15", "15"], "TH01": ["7", "9"], "D13S317": ["11", "13"], "D16S539": ["11", "12"], "D2S1338": ["19", "26"], "D19S433": ["11", "15"], "vWA": ["16", "16"], "TPOX": ["8", "8"], "D18S51": ["16", "16"], "AMEL": ["X", "Y"], "D5S818": ["12", "12"], "FGA": ["21", "22"]}

1
cjsd/.app/database/steve/input/GT37026.json

@ -1 +0,0 @@
{"name": "GT37026", "D8S1179": ["15", "15"], "D21S11": ["28", "28"], "D7S820": ["9", "10"], "CSF1PO": ["10", "12"], "D3S1358": ["16", "17"], "TH01": ["7", "9.3"], "D13S317": ["12", "12"], "D16S539": ["11", "12"], "D2S1338": ["17", "21"], "D19S433": ["13", "13.2"], "vWA": ["16", "17"], "TPOX": ["8", "8"], "D18S51": ["12", "17"], "AMEL": ["X", "Y"], "D5S818": ["12", "12"], "FGA": ["22.3", "25"]}

1
cjsd/.app/database/steve/input/GT37027.json

@ -1 +0,0 @@
{"name": "GT37027", "D8S1179": ["13", "15"], "D21S11": ["29", "31"], "D7S820": ["8", "10"], "CSF1PO": ["11", "12"], "D3S1358": ["15", "15"], "TH01": ["7", "7"], "D13S317": ["12", "13"], "D16S539": ["9", "12"], "D2S1338": ["17", "20"], "D19S433": ["14", "16.2"], "vWA": ["17", "18"], "TPOX": ["8", "8"], "D18S51": ["15", "17"], "AMEL": ["X", "Y"], "D5S818": ["12", "12"], "FGA": ["22", "23"]}

1
cjsd/.app/database/steve/input/GT37032.json

@ -1 +0,0 @@
{"name": "GT37032", "D8S1179": ["14", "14"], "D21S11": ["29", "31"], "D7S820": ["8", "8"], "CSF1PO": ["8", "12"], "D3S1358": ["15", "17"], "TH01": ["7", "8"], "D13S317": ["11", "12"], "D16S539": ["9", "11"], "D2S1338": ["20", "22"], "D19S433": ["14", "14.2"], "vWA": ["15", "16"], "TPOX": ["8", "9"], "D18S51": ["17", "19"], "AMEL": ["X", "Y"], "D5S818": ["11", "12"], "FGA": ["24", "25"]}

1
cjsd/.app/database/steve/input/GT37047.json

@ -1 +0,0 @@
{"name": "GT37047", "D8S1179": ["13", "14"], "D21S11": ["29", "30"], "D7S820": ["10", "11"], "CSF1PO": ["12", "12"], "D3S1358": ["15", "15"], "TH01": ["6", "9"], "D13S317": ["11", "13"], "D16S539": ["11", "12"], "D2S1338": ["21", "24"], "D19S433": ["14", "15"], "vWA": ["15", "16"], "TPOX": ["7", "8"], "D18S51": ["15", "16"], "AMEL": ["X", "Y"], "D5S818": ["11", "13"], "FGA": ["23", "27"]}

1
cjsd/.app/database/steve/input/GT37166.json

@ -1 +0,0 @@
{"name": "GT37166", "D8S1179": ["11", "12"], "D21S11": ["29", "29"], "D7S820": ["8", "9"], "CSF1PO": ["11", "12"], "D3S1358": ["15", "17"], "TH01": ["7", "8"], "D13S317": ["13", "13"], "D16S539": ["9", "9"], "D2S1338": ["24", "24"], "D19S433": ["11", "14"], "vWA": ["14", "18"], "TPOX": ["8", "11"], "D18S51": ["9", "17"], "AMEL": ["X", "Y"], "D5S818": ["12", "12"], "FGA": ["22", "23"]}

1
cjsd/.app/database/steve/input/GT37168.json

@ -1 +0,0 @@
{"name": "GT37168", "D8S1179": ["12", "14"], "D21S11": ["28", "35"], "D7S820": ["10", "13"], "CSF1PO": ["10", "12"], "D3S1358": ["15", "17"], "TH01": ["7", "9"], "D13S317": ["12", "13"], "D16S539": ["9", "14"], "D2S1338": ["21", "21"], "D19S433": ["13", "13.2"], "vWA": ["15", "17"], "TPOX": ["8", "11"], "D18S51": ["18", "20"], "AMEL": ["X", "Y"], "D5S818": ["12", "12"], "FGA": ["19", "25"]}

1
cjsd/.app/database/steve/input/GT37169.json

@ -1 +0,0 @@
{"name": "GT37169", "D8S1179": ["14", "16"], "D21S11": ["29", "32.2"], "D7S820": ["10", "10"], "CSF1PO": ["7", "11"], "D3S1358": ["16", "17"], "TH01": ["7", "8"], "D13S317": ["12", "12"], "D16S539": ["9", "11"], "D2S1338": ["19", "20"], "D19S433": ["14.2", "15"], "vWA": ["14", "15"], "TPOX": ["6", "8"], "D18S51": ["14", "18"], "AMEL": ["X", "Y"], "D5S818": ["12", "13"], "FGA": ["23", "26"]}

1
cjsd/.app/database/steve/input/GT37170.json

@ -1 +0,0 @@
{"name": "GT37170", "D8S1179": ["14", "15"], "D21S11": ["28", "28"], "D7S820": ["10", "11"], "CSF1PO": ["12", "14"], "D3S1358": ["15", "16"], "TH01": ["8", "9.3"], "D13S317": ["11", "11"], "D16S539": ["11", "11"], "D2S1338": ["22", "25"], "D19S433": ["13", "14"], "vWA": ["15", "19"], "TPOX": ["6", "6"], "D18S51": ["12", "18"], "AMEL": ["X", "Y"], "D5S818": ["11", "12"], "FGA": ["22", "23"]}

1
cjsd/.app/database/steve/input/GT37171.json

@ -1 +0,0 @@
{"name": "GT37171", "D8S1179": ["12", "13"], "D21S11": ["28", "29"], "D7S820": ["8", "10"], "CSF1PO": ["7", "10"], "D3S1358": ["15", "18"], "TH01": ["7", "9"], "D13S317": ["11", "12"], "D16S539": ["11", "13"], "D2S1338": ["20", "22"], "D19S433": ["13", "15"], "vWA": ["18", "19"], "TPOX": ["9", "11"], "D18S51": ["16", "16"], "AMEL": ["X", "Y"], "D5S818": ["11", "11"], "FGA": ["21", "21"]}

1
cjsd/.app/database/steve/input/GT37173.json

@ -1 +0,0 @@
{"name": "GT37173", "D8S1179": ["10", "14"], "D21S11": ["28", "29"], "D7S820": ["10", "11"], "CSF1PO": ["10", "12"], "D3S1358": ["15", "16"], "TH01": ["6", "6"], "D13S317": ["11", "12"], "D16S539": ["11", "11"], "D2S1338": ["20", "24"], "D19S433": ["13", "14"], "vWA": ["15", "16"], "TPOX": ["8", "10"], "D18S51": ["10", "21"], "AMEL": ["X", "Y"], "D5S818": ["10", "12"], "FGA": ["20", "26"]}

1
cjsd/.app/database/steve/input/GT37175.json

@ -1 +0,0 @@
{"name": "GT37175", "D8S1179": ["15", "15"], "D21S11": ["28", "31"], "D7S820": ["8", "8"], "CSF1PO": ["8", "12"], "D3S1358": ["15", "16"], "TH01": ["8", "8"], "D13S317": ["12", "13"], "D16S539": ["11", "12"], "D2S1338": ["21", "25"], "D19S433": ["14.2", "15.2"], "vWA": ["15", "16"], "TPOX": ["8", "11"], "D18S51": ["18", "18"], "AMEL": ["X", "Y"], "D5S818": ["10", "12"], "FGA": ["24", "26"]}

1
cjsd/.app/database/steve/input/GT37178.json

@ -1 +0,0 @@
{"name": "GT37178", "D8S1179": ["12", "12"], "D21S11": ["27", "28"], "D7S820": ["8", "9"], "CSF1PO": ["11", "13"], "D3S1358": ["16", "18"], "TH01": ["6", "7"], "D13S317": ["12", "12"], "D16S539": ["10", "13"], "D2S1338": ["21", "25"], "D19S433": ["14.2", "16.2"], "vWA": ["15", "17"], "TPOX": ["9", "11"], "D18S51": ["14", "17"], "AMEL": ["Y", "Y"], "D5S818": ["11", "12"], "FGA": ["21", "23"]}

1
cjsd/.app/database/steve/input/GT37179.json

@ -1 +0,0 @@
{"name": "GT37179", "D8S1179": ["10", "14"], "D21S11": ["27", "29"], "D7S820": ["7", "10"], "CSF1PO": ["10", "12"], "D3S1358": ["17", "17"], "TH01": ["7", "9.3"], "D13S317": ["12", "12"], "D16S539": ["12", "12"], "D2S1338": ["17", "21"], "D19S433": ["13", "13"], "vWA": ["14", "15"], "TPOX": ["11", "11"], "D18S51": ["19", "19"], "AMEL": ["X", "Y"], "D5S818": ["12", "12"], "FGA": ["21", "22"]}

1
cjsd/.app/database/steve/input/GT37184.json

@ -1 +0,0 @@
{"name": "GT37184", "D8S1179": ["12", "15"], "D21S11": ["27", "29"], "D7S820": ["11", "12"], "CSF1PO": ["9", "11"], "D3S1358": ["16", "17"], "TH01": ["7", "8"], "D13S317": ["12", "14"], "D16S539": ["9", "10"], "D2S1338": ["21", "22"], "D19S433": ["13", "15"], "vWA": ["17", "19"], "TPOX": ["9", "11"], "D18S51": ["19", "22"], "AMEL": ["X", "Y"], "D5S818": ["11", "11"], "FGA": ["21", "26"]}

1
cjsd/.app/database/steve/input/GT37190.json

@ -1 +0,0 @@
{"name": "GT37190", "D8S1179": ["12", "14"], "D21S11": ["29", "29"], "D7S820": ["10", "10"], "CSF1PO": ["10", "12"], "D3S1358": ["14", "15"], "TH01": ["8", "9"], "D13S317": ["11", "13"], "D16S539": ["9", "9"], "D2S1338": ["18", "25"], "D19S433": ["12", "13"], "vWA": ["15", "17"], "TPOX": ["8", "8"], "D18S51": ["18", "18"], "AMEL": ["X", "Y"], "D5S818": ["11", "12"], "FGA": ["18.2", "21"]}

1
cjsd/.app/database/steve/input/GT37306.json

@ -1 +0,0 @@
{"name": "GT37306", "D8S1179": ["13", "14"], "D21S11": ["31", "31.2"], "D7S820": ["10", "11"], "CSF1PO": ["11", "12"], "D3S1358": ["15", "16"], "TH01": ["7", "9.3"], "D13S317": ["9", "12"], "D16S539": ["11", "11"], "D2S1338": ["17", "17"], "D19S433": ["13", "15.2"], "vWA": ["14", "15"], "TPOX": ["11", "11"], "D18S51": ["14", "16"], "AMEL": ["X", "Y"], "D5S818": ["9", "13"], "FGA": ["21", "23"]}

1
cjsd/.app/database/steve/input/GT37312.json

@ -1 +0,0 @@
{"name": "GT37312", "D8S1179": ["13", "14"], "D21S11": ["29", "30"], "D7S820": ["10", "10"], "CSF1PO": ["12", "12"], "D3S1358": ["16", "18"], "TH01": ["7", "7"], "D13S317": ["8", "9"], "D16S539": ["11", "13"], "D2S1338": ["19", "19"], "D19S433": ["14", "15"], "vWA": ["15", "16"], "TPOX": ["8", "9"], "D18S51": ["14", "17"], "AMEL": ["X", "Y"], "D5S818": ["7", "13"], "FGA": ["25", "25"]}

1
cjsd/.app/database/steve/input/GT37349.json

@ -1 +0,0 @@
{"name": "GT37349", "D8S1179": ["13", "14"], "D21S11": ["30", "31"], "D7S820": ["10", "12"], "CSF1PO": ["11", "12"], "D3S1358": ["15", "17"], "TH01": ["6", "7"], "D13S317": ["10", "11"], "D16S539": ["10", "12"], "D2S1338": ["19", "20"], "D19S433": ["14", "14"], "vWA": ["16", "18"], "TPOX": ["11", "12"], "D18S51": ["12", "17"], "AMEL": ["X", "Y"], "D5S818": ["12", "13"], "FGA": ["24", "25"]}

1
cjsd/.app/database/steve/input/GT37351.json

@ -1 +0,0 @@
{"name": "GT37351", "D8S1179": ["10", "12"], "D21S11": ["28", "29"], "D7S820": ["10", "11"], "CSF1PO": ["12", "12"], "D3S1358": ["14", "17"], "TH01": ["9", "9.3"], "D13S317": ["9", "11"], "D16S539": ["11", "12"], "D2S1338": ["22", "24"], "D19S433": ["13.2", "14"], "vWA": ["16", "18"], "TPOX": ["8", "9"], "D18S51": ["13", "14"], "AMEL": ["X", "Y"], "D5S818": ["11", "12"], "FGA": ["22", "24"]}

1
cjsd/.app/database/steve/input/GT37402.json

@ -1 +0,0 @@
{"name": "GT37402", "D8S1179": ["11", "13"], "D21S11": ["30", "32.2"], "D7S820": ["11", "12"], "CSF1PO": ["12", "12"], "D3S1358": ["14", "15"], "TH01": ["7", "9.3"], "D13S317": ["9", "12"], "D16S539": ["10", "11"], "D2S1338": ["23", "24"], "D19S433": ["13.2", "14"], "vWA": ["16", "16"], "TPOX": ["7", "12"], "D18S51": ["16", "17"], "AMEL": ["X", "Y"], "D5S818": ["11", "11"], "FGA": ["21", "27"]}

1
cjsd/.app/database/steve/input/GT37420.json

@ -1 +0,0 @@
{"name": "GT37420", "D8S1179": ["11", "13"], "D21S11": ["29", "30"], "D7S820": ["10", "11"], "CSF1PO": ["11", "13"], "D3S1358": ["15", "17"], "TH01": ["9", "9.3"], "D13S317": ["8", "11"], "D16S539": ["10", "12"], "D2S1338": ["18", "25"], "D19S433": ["14", "14"], "vWA": ["17", "20"], "TPOX": ["8", "11"], "D18S51": ["15", "19"], "AMEL": ["X", "Y"], "D5S818": ["9", "12"], "FGA": ["21", "22"]}

1
cjsd/.app/database/steve/input/GT37463.json

@ -1 +0,0 @@
{"name": "GT37463", "D8S1179": ["15", "15"], "D21S11": ["28", "29"], "D7S820": ["11", "12"], "CSF1PO": ["10", "11"], "D3S1358": ["15", "17"], "TH01": ["6", "9.3"], "D13S317": ["11", "11"], "D16S539": ["10", "11"], "D2S1338": ["17", "19"], "D19S433": ["13", "15"], "vWA": ["16", "17"], "TPOX": ["8", "11"], "D18S51": ["15", "20"], "AMEL": ["X", "Y"], "D5S818": ["9", "13"], "FGA": ["24", "27"]}

1
cjsd/.app/database/steve/input/GT37483.json

@ -1 +0,0 @@
{"name": "GT37483", "D8S1179": ["10", "14"], "D21S11": ["27", "31"], "D7S820": ["10", "11"], "CSF1PO": ["10", "11"], "D3S1358": ["15", "18"], "TH01": ["6", "9"], "D13S317": ["13", "14"], "D16S539": ["11", "12"], "D2S1338": ["20", "24"], "D19S433": ["13", "14.2"], "vWA": ["14", "16"], "TPOX": ["8", "8"], "D18S51": ["13", "13"], "AMEL": ["X", "Y"], "D5S818": ["12", "12"], "FGA": ["18", "22"]}

1
cjsd/.app/database/steve/input/GT37542.json

@ -1 +0,0 @@
{"name": "GT37542", "D8S1179": ["9", "14"], "D21S11": ["29", "30"], "D7S820": ["10", "12"], "CSF1PO": ["10", "10"], "D3S1358": ["16", "17"], "TH01": ["6", "7"], "D13S317": ["8", "10"], "D16S539": ["11", "12"], "D2S1338": ["19", "23"], "D19S433": ["13", "14"], "vWA": ["16", "18"], "TPOX": ["8", "8"], "D18S51": ["14", "16"], "AMEL": ["X", "Y"], "D5S818": ["9", "12"], "FGA": ["22", "25"]}

1
cjsd/.app/database/steve/input/GT37590.json

@ -1 +0,0 @@
{"name": "GT37590", "D8S1179": ["14", "15"], "D21S11": ["27", "30"], "D7S820": ["9", "12"], "CSF1PO": ["12", "12"], "D3S1358": ["16", "16"], "TH01": ["6", "8"], "D13S317": ["10", "13"], "D16S539": ["10", "12"], "D2S1338": ["19", "19"], "D19S433": ["14", "15.2"], "vWA": ["16", "16"], "TPOX": ["8", "11"], "D18S51": ["13", "14"], "AMEL": ["X", "Y"], "D5S818": ["7", "12"], "FGA": ["22", "25"]}

1
cjsd/.app/database/steve/input/GT37607.json

@ -1 +0,0 @@
{"name": "GT37607", "D8S1179": ["12", "12"], "D21S11": ["29", "31"], "D7S820": ["11", "13"], "CSF1PO": ["11", "13"], "D3S1358": ["15", "15"], "TH01": ["7", "9.3"], "D13S317": ["9", "10"], "D16S539": ["9", "10"], "D2S1338": ["19", "20"], "D19S433": ["13", "14"], "vWA": ["17", "17"], "TPOX": ["8", "12"], "D18S51": ["15", "20"], "AMEL": ["X", "Y"], "D5S818": ["11", "13"], "FGA": ["20", "22"]}

1
cjsd/.app/database/steve/input/GT37692.json

@ -1 +0,0 @@
{"name": "GT37692", "D8S1179": ["13", "14"], "D21S11": ["29", "31"], "D7S820": ["8", "10"], "CSF1PO": ["10", "11"], "D3S1358": ["15", "17"], "TH01": ["7", "7"], "D13S317": ["9", "12"], "D16S539": ["13", "13"], "D2S1338": ["17", "20"], "D19S433": ["13", "14"], "vWA": ["16", "17"], "TPOX": ["9", "11"], "D18S51": ["12", "16"], "AMEL": ["X", "Y"], "D5S818": ["9", "11"], "FGA": ["21", "24"]}

1
cjsd/.app/database/steve/input/GT37700.json

@ -1 +0,0 @@
{"name": "GT37700", "D8S1179": ["14", "14"], "D21S11": ["29", "32.2"], "D7S820": ["9", "11"], "CSF1PO": ["9", "12"], "D3S1358": ["15", "15"], "TH01": ["6", "6"], "D13S317": ["9", "13"], "D16S539": ["12", "12"], "D2S1338": ["19", "24"], "D19S433": ["13", "15"], "vWA": ["16", "17"], "TPOX": ["8", "11"], "D18S51": ["15", "16"], "AMEL": ["X", "Y"], "D5S818": ["11", "12"], "FGA": ["20", "24"]}

1
cjsd/.app/database/steve/input/GT37713.json

@ -1 +0,0 @@
{"name": "GT37713", "D8S1179": ["8", "13"], "D21S11": ["29", "32.2"], "D7S820": ["9", "10"], "CSF1PO": ["11", "11"], "D3S1358": ["15", "16"], "TH01": ["9", "9"], "D13S317": ["10", "10"], "D16S539": ["11", "12"], "D2S1338": ["17", "19"], "D19S433": ["12.2", "16.2"], "vWA": ["17", "17"], "TPOX": ["8", "8"], "D18S51": ["15", "15"], "AMEL": ["X", "Y"], "D5S818": ["9", "12"], "FGA": ["22", "25"]}

1
cjsd/.app/database/steve/input/GT37732.json

@ -1 +0,0 @@
{"name": "GT37732", "D8S1179": ["12", "15"], "D21S11": ["31", "31.2"], "D7S820": ["11", "12"], "CSF1PO": ["11", "11"], "D3S1358": ["15", "17"], "TH01": ["6", "6"], "D13S317": ["11", "12"], "D16S539": ["10", "12"], "D2S1338": ["17", "20"], "D19S433": ["13.2", "15"], "vWA": ["16", "17"], "TPOX": ["8", "8"], "D18S51": ["14", "16"], "AMEL": ["X", "Y"], "D5S818": ["10", "13"], "FGA": ["20", "21"]}

1
cjsd/.app/database/steve/input/GT37765.json

@ -1 +0,0 @@
{"name": "GT37765", "D8S1179": ["13", "14"], "D21S11": ["31.2", "32.2"], "D7S820": ["8", "12"], "CSF1PO": ["11", "12"], "D3S1358": ["15", "16"], "TH01": ["6", "7"], "D13S317": ["10", "11"], "D16S539": ["10", "12"], "D2S1338": ["19", "22"], "D19S433": ["13.2", "15.2"], "vWA": ["16", "16"], "TPOX": ["8", "8"], "D18S51": ["13", "19"], "AMEL": ["X", "Y"], "D5S818": ["11", "12"], "FGA": ["25", "26"]}

1
cjsd/.app/database/steve/input/GT37767.json

@ -1 +0,0 @@
{"name": "GT37767", "D8S1179": ["13", "14"], "D21S11": ["28", "30"], "D7S820": ["10", "11"], "CSF1PO": ["11", "12"], "D3S1358": ["15", "15"], "TH01": ["6", "7"], "D13S317": ["12", "13"], "D16S539": ["11", "12"], "D2S1338": ["20", "23"], "D19S433": ["13", "13"], "vWA": ["17", "17"], "TPOX": ["8", "11"], "D18S51": ["13", "16"], "AMEL": ["X", "Y"], "D5S818": ["11", "12"], "FGA": ["20", "25"]}

1
cjsd/.app/database/steve/input/GT37778.json

@ -1 +0,0 @@
{"name": "GT37778", "D8S1179": ["14", "14"], "D21S11": ["28", "30"], "D7S820": ["9", "12"], "CSF1PO": ["10", "12"], "D3S1358": ["17", "18"], "TH01": ["7", "7"], "D13S317": ["9", "13"], "D16S539": ["10", "12"], "D2S1338": ["23", "23"], "D19S433": ["14", "14"], "vWA": ["15", "17"], "TPOX": ["9", "11"], "D18S51": ["14", "20"], "AMEL": ["X", "Y"], "D5S818": ["11", "11"], "FGA": ["23", "24"]}

1
cjsd/.app/database/steve/input/GT37812.json

@ -1 +0,0 @@
{"name": "GT37812", "D8S1179": ["13", "13"], "D21S11": ["29", "32.2"], "D7S820": ["8", "12"], "CSF1PO": ["12", "13"], "D3S1358": ["14", "15"], "TH01": ["6", "9.3"], "D13S317": ["12", "13"], "D16S539": ["11", "13"], "D2S1338": ["16", "17"], "D19S433": ["13", "13"], "vWA": ["15", "16"], "TPOX": ["11", "11"], "D18S51": ["15", "15"], "AMEL": ["X", "Y"], "D5S818": ["14", "14"], "FGA": ["22", "22"]}

1
cjsd/.app/database/steve/input/GT37828.json

@ -1 +0,0 @@
{"name": "GT37828", "D8S1179": ["10", "15"], "D21S11": ["31.2", "31.2"], "D7S820": ["11", "12"], "CSF1PO": ["10", "10"], "D3S1358": ["15", "16"], "TH01": ["7", "7"], "D13S317": ["9", "14"], "D16S539": ["9", "11"], "D2S1338": ["18", "25"], "D19S433": ["12", "13"], "vWA": ["16", "18"], "TPOX": ["8", "8"], "D18S51": ["14", "17"], "AMEL": ["X", "Y"], "D5S818": ["11", "12"], "FGA": ["22", "23"]}

1
cjsd/.app/database/steve/input/GT37853.json

@ -1 +0,0 @@
{"name": "GT37853", "D8S1179": ["10", "12"], "D21S11": ["24.2", "28"], "D7S820": ["8", "11"], "CSF1PO": ["10", "12"], "D3S1358": ["14", "17"], "TH01": ["6", "9.3"], "D13S317": ["8", "13"], "D16S539": ["11", "11"], "D2S1338": ["19", "20"], "D19S433": ["13", "14"], "vWA": ["14", "19"], "TPOX": ["8", "8"], "D18S51": ["12", "14"], "AMEL": ["X", "Y"], "D5S818": ["11", "12"], "FGA": ["18", "20"]}

1
cjsd/.app/database/steve/input/GT37862.json

@ -1 +0,0 @@
{"name": "GT37862", "D8S1179": ["15", "16"], "D21S11": ["29", "29"], "D7S820": ["9", "11"], "CSF1PO": ["10", "11"], "D3S1358": ["16", "17"], "TH01": ["6", "7"], "D13S317": ["8", "12"], "D16S539": ["10", "11"], "D2S1338": ["19", "19"], "D19S433": ["14", "16"], "vWA": ["15", "17"], "TPOX": ["8", "12"], "D18S51": ["11", "15"], "AMEL": ["X", "Y"], "D5S818": ["9", "11"], "FGA": ["19", "22"]}

1
cjsd/.app/database/steve/input/GT37864.json

@ -1 +0,0 @@
{"name": "GT37864", "D8S1179": ["12", "13"], "D21S11": ["29", "29"], "D7S820": ["9", "12"], "CSF1PO": ["12", "12"], "D3S1358": ["15", "16"], "TH01": ["7", "7"], "D13S317": ["9", "11"], "D16S539": ["10", "12"], "D2S1338": ["19", "20"], "D19S433": ["14", "15.2"], "vWA": ["16", "16"], "TPOX": ["8", "8"], "D18S51": ["13", "15"], "AMEL": ["X", "Y"], "D5S818": ["11", "12"], "FGA": ["19", "19"]}

1
cjsd/.app/database/steve/input/GT37869.json

@ -1 +0,0 @@
{"name": "GT37869", "D8S1179": ["13", "13"], "D21S11": ["30", "31.2"], "D7S820": ["10", "11"], "CSF1PO": ["10", "11"], "D3S1358": ["16", "17"], "TH01": ["6", "7"], "D13S317": ["11", "12"], "D16S539": ["9", "12"], "D2S1338": ["17", "18"], "D19S433": ["14.2", "15.2"], "vWA": ["15", "15"], "TPOX": ["8", "11"], "D18S51": ["15", "16"], "AMEL": ["X", "Y"], "D5S818": ["7", "12"], "FGA": ["24", "25"]}

1
cjsd/.app/database/steve/input/GT37888.json

@ -1 +0,0 @@
{"name": "GT37888", "D8S1179": ["14", "15"], "D21S11": ["30", "30.2"], "D7S820": ["10", "11"], "CSF1PO": ["10", "12"], "D3S1358": ["13", "15"], "TH01": ["7", "9"], "D13S317": ["11", "12"], "D16S539": ["9", "13"], "D2S1338": ["19", "22"], "D19S433": ["14", "14"], "vWA": ["15", "17"], "TPOX": ["8", "8"], "D18S51": ["17", "19"], "AMEL": ["X", "Y"], "D5S818": ["12", "12"], "FGA": ["23", "25"]}

1
cjsd/.app/database/steve/input/GT37900.json

@ -1 +0,0 @@
{"name": "GT37900", "D8S1179": ["13", "14"], "D21S11": ["29", "31.2"], "D7S820": ["9", "11"], "CSF1PO": ["11", "12"], "D3S1358": ["14", "17"], "TH01": ["6", "7"], "D13S317": ["11", "12"], "D16S539": ["10", "12"], "D2S1338": ["19", "24"], "D19S433": ["13", "14"], "vWA": ["17", "19"], "TPOX": ["11", "11"], "D18S51": ["12", "13"], "AMEL": ["X", "Y"], "D5S818": ["11", "11"], "FGA": ["23", "26"]}

1
cjsd/.app/database/steve/input/GT37913.json

@ -1 +0,0 @@
{"name": "GT37913", "D8S1179": ["12", "13"], "D21S11": ["29", "31"], "D7S820": ["10", "13"], "CSF1PO": ["11", "12"], "D3S1358": ["16", "17"], "TH01": ["6", "9.3"], "D13S317": ["11", "11"], "D16S539": ["11", "11"], "D2S1338": ["24", "25"], "D19S433": ["14", "16.2"], "vWA": ["16", "17"], "TPOX": ["8", "11"], "D18S51": ["13", "15"], "AMEL": ["X", "Y"], "D5S818": ["7", "11"], "FGA": ["19", "22"]}

1
cjsd/.app/database/steve/input/GT38065.json

@ -1 +0,0 @@
{"name": "GT38065", "D8S1179": ["13", "13"], "D21S11": ["29", "31.2"], "D7S820": ["12", "12"], "CSF1PO": ["10", "12"], "D3S1358": ["14", "16"], "TH01": ["7", "9.3"], "D13S317": ["11", "14"], "D16S539": ["11", "14"], "D2S1338": ["19", "25"], "D19S433": ["14", "14"], "vWA": ["14", "17"], "TPOX": ["8", "8"], "D18S51": ["15", "16"], "AMEL": ["X", "Y"], "D5S818": ["11", "13"], "FGA": ["22", "23"]}

1
cjsd/.app/database/steve/input/GT38066.json

@ -1 +0,0 @@
{"name": "GT38066", "D8S1179": ["13", "13"], "D21S11": ["30", "30"], "D7S820": ["10", "12"], "CSF1PO": ["12", "13"], "D3S1358": ["16", "18"], "TH01": ["9", "9"], "D13S317": ["8", "8"], "D16S539": ["10", "11"], "D2S1338": ["16", "25"], "D19S433": ["12", "14"], "vWA": ["17", "17"], "TPOX": ["8", "9"], "D18S51": ["13", "15"], "AMEL": ["X", "Y"], "D5S818": ["9", "12"], "FGA": ["21", "24"]}

1
cjsd/.app/database/steve/input/GT38067.json

@ -1 +0,0 @@
{"name": "GT38067", "D8S1179": ["11", "11"], "D21S11": ["29", "30"], "D7S820": ["9", "10"], "CSF1PO": ["12", "13"], "D3S1358": ["16", "18"], "TH01": ["7", "9.3"], "D13S317": ["11", "12"], "D16S539": ["8", "14"], "D2S1338": ["23", "26"], "D19S433": ["13", "14"], "vWA": ["15", "16"], "TPOX": ["8", "8"], "D18S51": ["18", "18"], "AMEL": ["X", "Y"], "D5S818": ["11", "12"], "FGA": ["22", "24"]}

1
cjsd/.app/database/steve/input/GT38069.json

@ -1 +0,0 @@
{"name": "GT38069", "D8S1179": ["13", "15"], "D21S11": ["28", "30"], "D7S820": ["8", "9"], "CSF1PO": ["12", "12"], "D3S1358": ["15", "19"], "TH01": ["9.3", "9.3"], "D13S317": ["8", "13"], "D16S539": ["13", "13"], "D2S1338": ["19", "21"], "D19S433": ["14", "15"], "vWA": ["17", "17"], "TPOX": ["8", "11"], "D18S51": ["12", "15"], "AMEL": ["X", "Y"], "D5S818": ["11", "12"], "FGA": ["20", "22"]}

1
cjsd/.app/database/steve/input/GT38070.json

@ -1 +0,0 @@
{"name": "GT38070", "D8S1179": ["12", "14"], "D21S11": ["30", "31.2"], "D7S820": ["10", "13"], "CSF1PO": ["12", "13"], "D3S1358": ["16", "18"], "TH01": ["9.3", "9.3"], "D13S317": ["13", "14"], "D16S539": ["12", "13"], "D2S1338": ["18", "20"], "D19S433": ["12", "13"], "vWA": ["17", "18"], "TPOX": ["8", "8"], "D18S51": ["13", "15"], "AMEL": ["X", "Y"], "D5S818": ["11", "13"], "FGA": ["20", "21"]}

1
cjsd/.app/database/steve/input/GT38072.json

@ -1 +0,0 @@
{"name": "GT38072", "D8S1179": ["12", "12"], "D21S11": ["28", "29"], "D7S820": ["11", "13"], "CSF1PO": ["10", "11"], "D3S1358": ["16", "18"], "TH01": ["6", "7"], "D13S317": ["10", "11"], "D16S539": ["12", "12"], "D2S1338": ["19", "24"], "D19S433": ["13", "14"], "vWA": ["15", "15"], "TPOX": ["8", "8"], "D18S51": ["15", "16"], "AMEL": ["X", "Y"], "D5S818": ["12", "13"], "FGA": ["22", "23"]}

1
cjsd/.app/database/steve/input/GT38073.json

@ -1 +0,0 @@
{"name": "GT38073", "D8S1179": ["13", "15"], "D21S11": ["28", "32.2"], "D7S820": ["10", "11"], "CSF1PO": ["12", "12"], "D3S1358": ["16", "18"], "TH01": ["9.3", "9.3"], "D13S317": ["12", "13"], "D16S539": ["10", "12"], "D2S1338": ["17", "18"], "D19S433": ["12", "14"], "vWA": ["14", "21"], "TPOX": ["11", "11"], "D18S51": ["15", "17"], "AMEL": ["X", "Y"], "D5S818": ["11", "11"], "FGA": ["21", "22"]}

1
cjsd/.app/database/steve/input/GT38075.json

@ -1 +0,0 @@
{"name": "GT38075", "D8S1179": ["10", "14"], "D21S11": ["30", "30"], "D7S820": ["10", "13"], "CSF1PO": ["12", "12"], "D3S1358": ["16", "17"], "TH01": ["6", "9.3"], "D13S317": ["11", "11"], "D16S539": ["11", "11"], "D2S1338": ["19", "21"], "D19S433": ["15", "16.2"], "vWA": ["15", "17"], "TPOX": ["8", "8"], "D18S51": ["12", "14"], "AMEL": ["X", "Y"], "D5S818": ["12", "13"], "FGA": ["22", "23"]}

1
cjsd/.app/database/steve/input/GT38076.json

@ -1 +0,0 @@
{"name": "GT38076", "D8S1179": ["13", "15"], "D21S11": ["32.2", "32.2"], "D7S820": ["8", "10"], "CSF1PO": ["9", "11"], "D3S1358": ["14", "15"], "TH01": ["6", "9"], "D13S317": ["8", "12"], "D16S539": ["11", "11"], "D2S1338": ["23", "25"], "D19S433": ["13", "15.2"], "vWA": ["15", "18"], "TPOX": ["8", "11"], "D18S51": ["13", "13"], "AMEL": ["X", "Y"], "D5S818": ["11", "12"], "FGA": ["20", "22"]}

1
cjsd/.app/database/steve/input/GT38078.json

@ -1 +0,0 @@
{"name": "GT38078", "D8S1179": ["13", "14"], "D21S11": ["29", "31.2"], "D7S820": ["9", "10"], "CSF1PO": ["11", "11"], "D3S1358": ["14", "17"], "TH01": ["7", "8"], "D13S317": ["8", "13"], "D16S539": ["11", "11"], "D2S1338": ["24", "25"], "D19S433": ["12", "15"], "vWA": ["17", "18"], "TPOX": ["8", "11"], "D18S51": ["11", "14"], "AMEL": ["X", "Y"], "D5S818": ["13", "13"], "FGA": ["21", "24"]}

1
cjsd/.app/database/steve/input/GT38081.json

@ -1 +0,0 @@
{"name": "GT38081", "D8S1179": ["10", "10"], "D21S11": ["28", "31.2"], "D7S820": ["9", "12"], "CSF1PO": ["12", "13"], "D3S1358": ["15", "16"], "TH01": ["6", "6"], "D13S317": ["11", "11"], "D16S539": ["12", "12"], "D2S1338": ["23", "23"], "D19S433": ["14", "14"], "vWA": ["16", "17"], "TPOX": ["8", "11"], "D18S51": ["14", "17"], "AMEL": ["X", "Y"], "D5S818": ["12", "13"], "FGA": ["23", "24"]}

1
cjsd/.app/database/steve/input/GT38083.json

@ -1 +0,0 @@
{"name": "GT38083", "D8S1179": ["10", "15"], "D21S11": ["28", "30"], "D7S820": ["8", "9"], "CSF1PO": ["10", "12"], "D3S1358": ["15", "17"], "TH01": ["9.3", "9.3"], "D13S317": ["9", "13"], "D16S539": ["8", "13"], "D2S1338": ["18", "25"], "D19S433": ["13.2", "14"], "vWA": ["17", "19"], "TPOX": ["8", "9"], "D18S51": ["14", "17"], "AMEL": ["X", "Y"], "D5S818": ["11", "12"], "FGA": ["20", "24"]}

1
cjsd/.app/database/steve/input/GT38086.json

@ -1 +0,0 @@
{"name": "GT38086", "D8S1179": ["12", "13"], "D21S11": ["29", "31"], "D7S820": ["12", "12"], "CSF1PO": ["10", "12"], "D3S1358": ["16", "17"], "TH01": ["6", "7"], "D13S317": ["12", "12"], "D16S539": ["9", "11"], "D2S1338": ["20", "24"], "D19S433": ["13", "14"], "vWA": ["14", "15"], "TPOX": ["8", "10"], "D18S51": ["11", "15"], "AMEL": ["X", "Y"], "D5S818": ["9", "12"], "FGA": ["19", "20"]}

1
cjsd/.app/database/steve/input/GT38087.json

@ -1 +0,0 @@
{"name": "GT38087", "D8S1179": ["11", "13"], "D21S11": ["29", "29"], "D7S820": ["9", "10"], "CSF1PO": ["10", "12"], "D3S1358": ["17", "18"], "TH01": ["9.3", "9.3"], "D13S317": ["8", "12"], "D16S539": ["10", "12"], "D2S1338": ["20", "24"], "D19S433": ["13", "14"], "vWA": ["17", "19"], "TPOX": ["8", "10"], "D18S51": ["13", "19"], "AMEL": ["X", "Y"], "D5S818": ["12", "12"], "FGA": ["22", "22.2"]}

1
cjsd/.app/database/steve/input/GT38089.json

@ -1 +0,0 @@
{"name": "GT38089", "D8S1179": ["13", "13"], "D21S11": ["29", "31.2"], "D7S820": ["9", "10"], "CSF1PO": ["10", "11"], "D3S1358": ["16", "18"], "TH01": ["7", "9.3"], "D13S317": ["11", "12"], "D16S539": ["11", "13"], "D2S1338": ["17", "23"], "D19S433": ["13", "15"], "vWA": ["14", "16"], "TPOX": ["8", "9"], "D18S51": ["14", "15"], "AMEL": ["X", "Y"], "D5S818": ["11", "12"], "FGA": ["21", "22"]}

1
cjsd/.app/database/steve/input/GT38091.json

@ -1 +0,0 @@
{"name": "GT38091", "D8S1179": ["12", "13"], "D21S11": ["30", "31"], "D7S820": ["8", "10"], "CSF1PO": ["11", "12"], "D3S1358": ["17", "17"], "TH01": ["7", "8"], "D13S317": ["11", "11"], "D16S539": ["11", "12"], "D2S1338": ["18", "20"], "D19S433": ["13", "14"], "vWA": ["17", "17"], "TPOX": ["9", "12"], "D18S51": ["15", "18"], "AMEL": ["X", "Y"], "D5S818": ["12", "12"], "FGA": ["21", "24"]}

1
cjsd/.app/database/steve/input/GT38092.json

@ -1 +0,0 @@
{"name": "GT38092", "D8S1179": ["12", "13"], "D21S11": ["29", "31"], "D7S820": ["9", "12"], "CSF1PO": ["11", "12"], "D3S1358": ["15", "16"], "TH01": ["9", "9.3"], "D13S317": ["9", "11"], "D16S539": ["10", "11"], "D2S1338": ["17", "19"], "D19S433": ["13", "14"], "vWA": ["15", "16"], "TPOX": ["8", "8"], "D18S51": ["13", "16"], "AMEL": ["X", "Y"], "D5S818": ["10", "13"], "FGA": ["18", "23"]}

1
cjsd/.app/database/steve/input/GT38093.json

@ -1 +0,0 @@
{"name": "GT38093", "D8S1179": ["13", "13"], "D21S11": ["30", "32.2"], "D7S820": ["8", "10"], "CSF1PO": ["11", "12"], "D3S1358": ["15", "17"], "TH01": ["6", "7"], "D13S317": ["11", "12"], "D16S539": ["11", "11"], "D2S1338": ["20", "23"], "D19S433": ["14", "14"], "vWA": ["16", "17"], "TPOX": ["8", "8"], "D18S51": ["15", "18"], "AMEL": ["X", "Y"], "D5S818": ["9", "12"], "FGA": ["20", "24"]}

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save