Browse Source

broken upload

cjs3
Stephen Lorenz 3 years ago
parent
commit
df09f68d92
  1. 0
      cjs/__init__.py
  2. 174
      cjs/automate.py
  3. 64
      cjs/cjs.py
  4. 0
      cjs/core/__init__.py
  5. 98
      cjs/core/automate.py
  6. 0
      cjs/data/comparison_profiles/non_contributors/jfs2003id-african_americans.csv
  7. 0
      cjs/data/comparison_profiles/non_contributors/jfs2003id-caucasians.csv
  8. 0
      cjs/data/comparison_profiles/non_contributors/jfs2003id-hispanics.csv
  9. 0
      cjs/data/jfs2003id.json
  10. 0
      cjs/data/mailer.json
  11. 0
      cjs/data/reqbt-fps.json
  12. 0
      cjs/data/settings.json
  13. 0
      cjs/data/tutorialdata/FreqDatabases/ESX17_Norway.csv
  14. 0
      cjs/data/tutorialdata/FreqDatabases/Fusion 6C_Norway.csv
  15. 0
      cjs/data/tutorialdata/FreqDatabases/Identifiler_Caucasian.csv
  16. 0
      cjs/data/tutorialdata/FreqDatabases/Identifiler_NIST.csv
  17. 0
      cjs/data/tutorialdata/FreqDatabases/NGM_Holland.csv
  18. 0
      cjs/data/tutorialdata/FreqDatabases/SGMPlus_Norway.csv
  19. 0
      cjs/data/tutorialdata/FreqDatabases/SGMPlus_UK.csv
  20. 0
      cjs/data/tutorialdata/databaseESX17.txt
  21. 0
      cjs/data/tutorialdata/my_project_file.Rdata
  22. 0
      cjs/data/tutorialdata/refs.csv
  23. 0
      cjs/data/tutorialdata/stain.txt
  24. 0
      cjs/models/__init__.py
  25. 0
      cjs/models/automate.py
  26. 20
      cjs/setup.py
  27. BIN
      cjsd/.app/database/q/database.db
  28. 1
      cjsd/.app/database/q/input/BC11352.json
  29. 1
      cjsd/.app/database/q/input/GA05070.json
  30. 1
      cjsd/.app/database/q/input/GA05071.json
  31. 1
      cjsd/.app/database/q/input/GC03394.json
  32. 1
      cjsd/.app/database/q/input/GT36864.json
  33. 1
      cjsd/.app/database/q/input/GT36865.json
  34. 1
      cjsd/.app/database/q/input/GT36866.json
  35. 1
      cjsd/.app/database/q/input/GT36868.json
  36. 1
      cjsd/.app/database/q/input/GT36869.json
  37. 1
      cjsd/.app/database/q/input/GT36875.json
  38. 1
      cjsd/.app/database/q/input/GT36877.json
  39. 1
      cjsd/.app/database/q/input/GT36878.json
  40. 1
      cjsd/.app/database/q/input/GT36880.json
  41. 1
      cjsd/.app/database/q/input/GT36884.json
  42. 1
      cjsd/.app/database/q/input/GT36885.json
  43. 1
      cjsd/.app/database/q/input/GT36886.json
  44. 1
      cjsd/.app/database/q/input/GT37019.json
  45. 1
      cjsd/.app/database/q/input/GT37020.json
  46. 1
      cjsd/.app/database/q/input/GT37026.json
  47. 1
      cjsd/.app/database/q/input/GT37027.json
  48. 1
      cjsd/.app/database/q/input/GT37032.json
  49. 1
      cjsd/.app/database/q/input/GT37047.json
  50. 1
      cjsd/.app/database/q/input/GT37166.json
  51. 1
      cjsd/.app/database/q/input/GT37168.json
  52. 1
      cjsd/.app/database/q/input/GT37169.json
  53. 1
      cjsd/.app/database/q/input/GT37170.json
  54. 1
      cjsd/.app/database/q/input/GT37171.json
  55. 1
      cjsd/.app/database/q/input/GT37173.json
  56. 1
      cjsd/.app/database/q/input/GT37175.json
  57. 1
      cjsd/.app/database/q/input/GT37178.json
  58. 1
      cjsd/.app/database/q/input/GT37179.json
  59. 1
      cjsd/.app/database/q/input/GT37184.json
  60. 1
      cjsd/.app/database/q/input/GT37190.json
  61. 1
      cjsd/.app/database/q/input/GT37306.json
  62. 1
      cjsd/.app/database/q/input/GT37312.json
  63. 1
      cjsd/.app/database/q/input/GT37349.json
  64. 1
      cjsd/.app/database/q/input/GT37351.json
  65. 1
      cjsd/.app/database/q/input/GT37402.json
  66. 1
      cjsd/.app/database/q/input/GT37420.json
  67. 1
      cjsd/.app/database/q/input/GT37463.json
  68. 1
      cjsd/.app/database/q/input/GT37483.json
  69. 1
      cjsd/.app/database/q/input/GT37542.json
  70. 1
      cjsd/.app/database/q/input/GT37590.json
  71. 1
      cjsd/.app/database/q/input/GT37607.json
  72. 1
      cjsd/.app/database/q/input/GT37692.json
  73. 1
      cjsd/.app/database/q/input/GT37700.json
  74. 1
      cjsd/.app/database/q/input/GT37713.json
  75. 1
      cjsd/.app/database/q/input/GT37732.json
  76. 1
      cjsd/.app/database/q/input/GT37765.json
  77. 1
      cjsd/.app/database/q/input/GT37767.json
  78. 1
      cjsd/.app/database/q/input/GT37778.json
  79. 1
      cjsd/.app/database/q/input/GT37812.json
  80. 1
      cjsd/.app/database/q/input/GT37828.json
  81. 1
      cjsd/.app/database/q/input/GT37853.json
  82. 1
      cjsd/.app/database/q/input/GT37862.json
  83. 1
      cjsd/.app/database/q/input/GT37864.json
  84. 1
      cjsd/.app/database/q/input/GT37869.json
  85. 1
      cjsd/.app/database/q/input/GT37888.json
  86. 1
      cjsd/.app/database/q/input/GT37900.json
  87. 1
      cjsd/.app/database/q/input/GT37913.json
  88. 1
      cjsd/.app/database/q/input/GT38065.json
  89. 1
      cjsd/.app/database/q/input/GT38066.json
  90. 1
      cjsd/.app/database/q/input/GT38067.json
  91. 1
      cjsd/.app/database/q/input/GT38069.json
  92. 1
      cjsd/.app/database/q/input/GT38070.json
  93. 1
      cjsd/.app/database/q/input/GT38072.json
  94. 1
      cjsd/.app/database/q/input/GT38073.json
  95. 1
      cjsd/.app/database/q/input/GT38075.json
  96. 1
      cjsd/.app/database/q/input/GT38076.json
  97. 1
      cjsd/.app/database/q/input/GT38078.json
  98. 1
      cjsd/.app/database/q/input/GT38081.json
  99. 1
      cjsd/.app/database/q/input/GT38083.json
  100. 1
      cjsd/.app/database/q/input/GT38086.json

0
cjsd/tools/analyze → cjs/__init__.py

174
cjs/automate.py

@ -0,0 +1,174 @@
#!/usr/bin/env python3
# standard library
import time
import signal
# pip
import click
# local
import core.automate
from core.automate import generic_worker
from core.automate import spawn_workers
from core.automate import run_process
from core.automate import send_error
from core.automate import AutomateStatus
import core.database
from core.database import database_location
from core.database import pending_jobs
from core.database import current_batch
from core.database import insert_result
from core.database import next_job
from core.database import set_job_status
import utils.io
from utils.io import write_csv
from utils.io import read_json
from utils.io import write_json
import tools.efm
from tools.efm import reqbt_to_evidence
from tools.efm import reqbt_to_comparison
from tools.efm import reqbt_to_settings
# BEGIN: Command-line interface wrapper
# Main-entry point to the automate interface
@click.group()
@click.option('--num_workers',
type=int, default=1,
help='Set the number of worker threads.')
@click.pass_context
def automate(ctx, num_workers):
'''Bulk test systems.'''
ctx.obj['num_workers'] = num_workers
# Main-entry point to the EuroForMix subcommand
@automate.command()
@click.argument('database_name')
@click.pass_context
def efm(ctx, database_name):
'''Run multisampleUsage.R.\f'''
# initialize a profile that will be used for each worker
base_profile = {
'resource_dir': ctx.obj['resource_dir'],
'worker_name': None,
'database_name': database_name,
'working_dir': database_location(database_name),
'batch_dir': current_batch(database_name).name,
'global_lock': None,
'global_status': AutomateStatus()
}
try:
# pull all pending jobs from the database
#job_list = pending_jobs(database_name)
#print('hi')
# spawn a size num_workers worker cluster of efm workers
spawn_workers(database_name,
efm_worker,
base_profile,
ctx.obj['num_workers'])
except Exception as e:
raise
# TODO: find a better way around passing profile - possibly object decorator?
@generic_worker
def efm_worker(profile, job):
# start time to calculate average runtime
start_time = time.time()
# extract the evidence and comparison table from the job
job_id, table_list = job
evidence_table, comparison_table = table_list
lock = profile['global_lock']
lock.acquire()
try:
set_job_status(profile['database_name'], job_id, 2)
except Exception as e:
print(e)
finally:
lock.release()
# load job data
evidence_data = read_json(evidence_table.path)
comparison_data = read_json(comparison_table.path)
# convert job data to euroformix input format
evidence_tsv = reqbt_to_evidence(evidence_data)
comparison_csv = reqbt_to_comparison(comparison_data)
# determine where to save the input files
working_dir = profile['working_dir']
tmp_dir = '%s/tmp' % working_dir
# determine filenames
evidence_file = '%s/%s.tsv' % (tmp_dir, evidence_table.name)
comparison_file = '%s/%s.csv' % (tmp_dir, comparison_table.name)
# write input file to tmp
write_csv(evidence_file, evidence_tsv, delimiter='\t')
write_csv(comparison_file, comparison_csv, delimiter=',')
test_settings = {
'resource_dir': profile['resource_dir'],
'working_dir': working_dir,
'batch_dir': profile['batch_dir'],
'evidence_file': evidence_file,
'comparison_file': comparison_file,
**reqbt_to_settings(evidence_data, comparison_data)
}
# determine test filename
test_file = '%s/%s-settings.json' % (tmp_dir, comparison_table.name)
# write settings file to tmp
write_json(test_file, test_settings)
click.echo('* Starting %s and %s' % (evidence_table.name, comparison_table.name))
try:
out, err = run_process(['../euroformix.headless/R/lrmix.R', test_file], 1800) # 300 seconds = 5 minute timeout
decoded_output = out[0].decode('utf-8')
#click.echo(decoded_output)
if err:
send_error('%s: R Error' % profile['worker_name'],
'Hi,\n\nAn R error occurred:\n %s\n\nSorry about that.\n\nSincerely,\n%s' % (decoded_output, profile['worker_name']))
lock.acquire()
try:
set_job_status(profile['database_name'], job_id, 4)
finally:
lock.release()
else:
end_time = time.time()
elapsed = end_time-start_time
# TODO: replace this a state database, it is much better and more robust
lock.acquire()
try:
status = profile['global_status']
average_runtime = status.update_status(elapsed)
set_job_status(profile['database_name'], job_id, 3)
click.echo('Average Runtime: %f\n' % average_runtime)
except Exception as e:
print(e)
finally:
lock.release()
except Exception as e:
name = profile['worker_name']
send_error('%s: Exception' % profile['worker_name'],
'Hi,\n\nAn unexpected error occurred:\n %s\n\nSorry about that.\n\nSincerely,\n%s' % (e, profile['worker_name']))
lock.acquire()
try:
set_job_status(profile['database_name'], job_id, 4)
finally:
lock.release()
raise

64
cjs/cjs.py

@ -0,0 +1,64 @@
#!/usr/bin/env python3
import click
# TODO: replace with plugin manager
from database import database
from automate import automate
from reqbt import reqbt
from graphs import graphs
from convert import convert
_commands = [
database,
automate,
reqbt,
graphs,
convert
]
# main-entry point to the entire command-line interface
@click.group()
@click.option('-v', '--verbose',
help='Print additional information.',
is_flag=True)
@click.option('--data_dir',
help='Set the application data directory.',
type=click.Path(),
default='.app')
@click.option('--resource_dir',
help='Set the resource data directory.',
type=click.Path(),
default='resources')
@click.pass_context
def cli(ctx, data_dir, resource_dir, verbose):
"""
A command-line interface wrapper to the Criminal Justice Software toolchain.\f
Args:
ctx: Click command-line interface context.
verbose: Flag to enable additional prints.
database: Path to a SQLite3 database.
"""
ctx.ensure_object(dict)
# determine project working directory
project_dir = '/home/csguest/Desktop/cjs2/cjs' # '/home/dev/cjs2/cjs'
project_path = lambda path: '%s/%s' % (project_dir, path)
# initialize context object
# store non-click information
# TODO: replace hard coded path with a more cross-platform method
ctx.obj['data_dir'] = project_path(data_dir)
ctx.obj['resource_dir'] = project_path(resource_dir)
# store click-related information
# global flags
ctx.obj['verbose'] = verbose
# load external modules into cli
for cmd in _commands:
cli.add_command(cmd)
if __name__ == '__main__':
cli()

0
cjsd/tools/convert.py → cjs/core/__init__.py

98
cjs/core/automate.py

@ -0,0 +1,98 @@
#!/usr/bin/env python3
# standard library
import threading
import queue
import math
import subprocess
from subprocess import TimeoutExpired
# pip
import click
# local
from core.database import fill_job_queue
import utils.io
from utils.io import read_json
import utils.net
from utils.net import send_email
class AutomateStatus:
def __init__(self):
self.completed_jobs = 0
self.runtimes = []
self.runtime = 0
def update_status(self, runtime):
self.runtimes.append(runtime)
self.completed_jobs = len(self.runtimes)
self.runtime = math.fsum(self.runtimes)/self.completed_jobs
return self.runtime
def send_error(subject, message):
send_email('resources/mailer.json',
'cucjsoftware@gmail.com',
subject, message)
def run_process(command, timeout):
# modified from https://docs.python.org/3/library/subprocess.html#subprocess.Popen.communicate
proc = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
try:
out = proc.communicate(timeout=timeout)
except subprocess.TimeoutExpired:
proc.kill()
out = proc.communicate()
return out, proc.returncode
def generic_worker(fn):
# modified from https://docs.python.org/3.7/library/queue.html?highlight=queue#queue.Queue.join
def wrapper(my_profile, job_queue, *args, **kwargs):
while True:
job = job_queue.get() # get next job
if job is None: # is this the end of the queue?
break
result = fn(my_profile, job, *args, **kwargs) # run routine
job_queue.task_done() # signal that the job was completed
return result
return wrapper
def spawn_workers(database_name, target_fn, base_profile, num_threads, *args, **kwargs):
# modified from https://docs.python.org/3.7/library/queue.html?highlight=queue#queue.Queue.join
# initialize thread-safe queue
job_queue = queue.Queue()
# initialize a universal lock for all the workers
base_profile['global_lock'] = threading.Lock()
# initialize thread list
threads = []
for i in range(num_threads):
my_profile = dict(base_profile)
my_profile['worker_name'] = 'Worker %d' % (i+1)
t = threading.Thread(target=target_fn,
args=(my_profile, job_queue, *args),
kwargs={**kwargs})
t.start() # begin worker thread
threads.append(t) # store thread object
# insert jobs into queue
fill_job_queue(database_name, job_queue)
'''
# insert jobs into queue
for job in job_list:
job_queue.put(job)
'''
# block until all tasks are done
job_queue.join()
# stop workers
for i in range(num_threads):
job_queue.put(None)
for t in threads:
t.join()

0
cjsd/resources/comparison_profiles/non_contributors/jfs2003id-african_americans.csv → cjs/data/comparison_profiles/non_contributors/jfs2003id-african_americans.csv

0
cjsd/resources/comparison_profiles/non_contributors/jfs2003id-caucasians.csv → cjs/data/comparison_profiles/non_contributors/jfs2003id-caucasians.csv

0
cjsd/resources/comparison_profiles/non_contributors/jfs2003id-hispanics.csv → cjs/data/comparison_profiles/non_contributors/jfs2003id-hispanics.csv

0
cjsd/resources/jfs2003id.json → cjs/data/jfs2003id.json

0
cjsd/resources/mailer.json → cjs/data/mailer.json

0
cjsd/resources/reqbt-fps.json → cjs/data/reqbt-fps.json

0
cjsd/resources/settings.json → cjs/data/settings.json

0
cjsd/resources/tutorialdata/FreqDatabases/ESX17_Norway.csv → cjs/data/tutorialdata/FreqDatabases/ESX17_Norway.csv

0
cjsd/resources/tutorialdata/FreqDatabases/Fusion 6C_Norway.csv → cjs/data/tutorialdata/FreqDatabases/Fusion 6C_Norway.csv

0
cjsd/resources/tutorialdata/FreqDatabases/Identifiler_Caucasian.csv → cjs/data/tutorialdata/FreqDatabases/Identifiler_Caucasian.csv

0
cjsd/resources/tutorialdata/FreqDatabases/Identifiler_NIST.csv → cjs/data/tutorialdata/FreqDatabases/Identifiler_NIST.csv

0
cjsd/resources/tutorialdata/FreqDatabases/NGM_Holland.csv → cjs/data/tutorialdata/FreqDatabases/NGM_Holland.csv

0
cjsd/resources/tutorialdata/FreqDatabases/SGMPlus_Norway.csv → cjs/data/tutorialdata/FreqDatabases/SGMPlus_Norway.csv

0
cjsd/resources/tutorialdata/FreqDatabases/SGMPlus_UK.csv → cjs/data/tutorialdata/FreqDatabases/SGMPlus_UK.csv

0
cjsd/resources/tutorialdata/databaseESX17.txt → cjs/data/tutorialdata/databaseESX17.txt

0
cjsd/resources/tutorialdata/my_project_file.Rdata → cjs/data/tutorialdata/my_project_file.Rdata

0
cjsd/resources/tutorialdata/refs.csv → cjs/data/tutorialdata/refs.csv

0
cjsd/resources/tutorialdata/stain.txt → cjs/data/tutorialdata/stain.txt

0
cjsd/tools/fst.py → cjs/models/__init__.py

0
cjs/models/automate.py

20
cjs/setup.py

@ -0,0 +1,20 @@
#!/usr/bin/env python3
from setuptools import setup
setup(
name='cjs',
version='3.0.0',
py_modules=['cjs'],
install_requires=[
'click',
'marshmallow',
'sqlalchemy',
'matplotlib',
'falcon'
],
entry_points='''
[console_scripts]
cjs=cjs:cli
''',
)

BIN
cjsd/.app/database/q/database.db

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

@ -0,0 +1 @@
{"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/q/input/GA05070.json

@ -0,0 +1 @@
{"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/q/input/GA05071.json

@ -0,0 +1 @@
{"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/q/input/GC03394.json

@ -0,0 +1 @@
{"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/q/input/GT36864.json

@ -0,0 +1 @@
{"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/q/input/GT36865.json

@ -0,0 +1 @@
{"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/q/input/GT36866.json

@ -0,0 +1 @@
{"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/q/input/GT36868.json

@ -0,0 +1 @@
{"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/q/input/GT36869.json

@ -0,0 +1 @@
{"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/q/input/GT36875.json

@ -0,0 +1 @@
{"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/q/input/GT36877.json

@ -0,0 +1 @@
{"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/q/input/GT36878.json

@ -0,0 +1 @@
{"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/q/input/GT36880.json

@ -0,0 +1 @@
{"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/q/input/GT36884.json

@ -0,0 +1 @@
{"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/q/input/GT36885.json

@ -0,0 +1 @@
{"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/q/input/GT36886.json

@ -0,0 +1 @@
{"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/q/input/GT37019.json

@ -0,0 +1 @@
{"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/q/input/GT37020.json

@ -0,0 +1 @@
{"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/q/input/GT37026.json

@ -0,0 +1 @@
{"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/q/input/GT37027.json

@ -0,0 +1 @@
{"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/q/input/GT37032.json

@ -0,0 +1 @@
{"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/q/input/GT37047.json

@ -0,0 +1 @@
{"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/q/input/GT37166.json

@ -0,0 +1 @@
{"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/q/input/GT37168.json

@ -0,0 +1 @@
{"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/q/input/GT37169.json

@ -0,0 +1 @@
{"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/q/input/GT37170.json

@ -0,0 +1 @@
{"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/q/input/GT37171.json

@ -0,0 +1 @@
{"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/q/input/GT37173.json

@ -0,0 +1 @@
{"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/q/input/GT37175.json

@ -0,0 +1 @@
{"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/q/input/GT37178.json

@ -0,0 +1 @@
{"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/q/input/GT37179.json

@ -0,0 +1 @@
{"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/q/input/GT37184.json

@ -0,0 +1 @@
{"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/q/input/GT37190.json

@ -0,0 +1 @@
{"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/q/input/GT37306.json

@ -0,0 +1 @@
{"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/q/input/GT37312.json

@ -0,0 +1 @@
{"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/q/input/GT37349.json

@ -0,0 +1 @@
{"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/q/input/GT37351.json

@ -0,0 +1 @@
{"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/q/input/GT37402.json

@ -0,0 +1 @@
{"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/q/input/GT37420.json

@ -0,0 +1 @@
{"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/q/input/GT37463.json

@ -0,0 +1 @@
{"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/q/input/GT37483.json

@ -0,0 +1 @@
{"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/q/input/GT37542.json

@ -0,0 +1 @@
{"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/q/input/GT37590.json

@ -0,0 +1 @@
{"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/q/input/GT37607.json

@ -0,0 +1 @@
{"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/q/input/GT37692.json

@ -0,0 +1 @@
{"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/q/input/GT37700.json

@ -0,0 +1 @@
{"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/q/input/GT37713.json

@ -0,0 +1 @@
{"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/q/input/GT37732.json

@ -0,0 +1 @@
{"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/q/input/GT37765.json

@ -0,0 +1 @@
{"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/q/input/GT37767.json

@ -0,0 +1 @@
{"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/q/input/GT37778.json

@ -0,0 +1 @@
{"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/q/input/GT37812.json

@ -0,0 +1 @@
{"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/q/input/GT37828.json

@ -0,0 +1 @@
{"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/q/input/GT37853.json

@ -0,0 +1 @@
{"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/q/input/GT37862.json

@ -0,0 +1 @@
{"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/q/input/GT37864.json

@ -0,0 +1 @@
{"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/q/input/GT37869.json

@ -0,0 +1 @@
{"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/q/input/GT37888.json

@ -0,0 +1 @@
{"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/q/input/GT37900.json

@ -0,0 +1 @@
{"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/q/input/GT37913.json

@ -0,0 +1 @@
{"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/q/input/GT38065.json

@ -0,0 +1 @@
{"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/q/input/GT38066.json

@ -0,0 +1 @@
{"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/q/input/GT38067.json

@ -0,0 +1 @@
{"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/q/input/GT38069.json

@ -0,0 +1 @@
{"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/q/input/GT38070.json

@ -0,0 +1 @@
{"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/q/input/GT38072.json

@ -0,0 +1 @@
{"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/q/input/GT38073.json

@ -0,0 +1 @@
{"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/q/input/GT38075.json

@ -0,0 +1 @@
{"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/q/input/GT38076.json

@ -0,0 +1 @@
{"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/q/input/GT38078.json

@ -0,0 +1 @@
{"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/q/input/GT38081.json

@ -0,0 +1 @@
{"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/q/input/GT38083.json

@ -0,0 +1 @@
{"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/q/input/GT38086.json

@ -0,0 +1 @@
{"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"]}

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

Loading…
Cancel
Save