diff --git a/doc/CHANGELOG.md b/doc/CHANGELOG.md index 4e6e2ed7c..222816cdc 100644 --- a/doc/CHANGELOG.md +++ b/doc/CHANGELOG.md @@ -4,12 +4,70 @@ Change log for WTSI genotyping pipeline Latest version is hosted at: https://github.com/wtsi-npg/genotyping -Unreleased ----------- +Release 1.14.0: 2017-02-07 +-------------------------- + +Added: +- Gencall workflow: + - Writes Plink data and runs QC for Gencall only + - New option in ready_workflow.pl +- Replace old identity metric with new Bayesian version, which will: + - Appear in main QC output and plots + - Contribute to sample pass/fail status + +Changed: +- Extensive refactoring of Collation.pm, to make it more maintainable +and support Log4Perl. Module renamed Collator.pm and changed into a +Moose class. + +Fixed: +- Check for allowed combination of plex manifests and VCF files in +workflow arguments (Issue #434) +- Create Text::CSV objects with binary flag enabled (Issue #406) + + +Release 1.13.2: 2016-11-10 +-------------------------- + +Changed: +- Hotfix: Add cgp and ddd references to WTSI::NPG::Genotyping::QC::Identity + + +Release 1.13.1: 2016-07-28 +-------------------------- + +Changed: +- Made install.sh more transparent and portable. +- Updated WTSI-DNAP-Utilities and perl-irods-wrap versions in install.sh. + +Fixed: +- Default LSF queue for Ruby workflows + + +Release 1.13.0: 2016-06-20 +-------------------------- Added: -- Replace old identity check with new Bayesian version in "main" QC output -and plots +- install.sh script to install pipeline and its Perl dependencies +- Documentation for Bayesian identity check + +Changed: +- Modified ready_workflow.pl to better align with user SOP +- Use try/catch to handle unexpected errors in retrieving QC plex results +from iRODS +- Updated reference genome for Sequenom iRODS query +- Update perl-irods-wrap dependency to 2.4.0; removes unhelpful warning +messages to STDERR. This in turn requires baton version >= 0.16.4. + +Removed: +- Script publish_infinium_file_list.pl; superseded by other publish scripts + + +Release 1.12.1: 2016-05-13 +-------------------------- + +Fixed: +- Support repeat scans from Infinium database Release 1.13.2: 2016-11-10 diff --git a/src/bash/cpanm.sha256 b/src/bash/cpanm.sha256 new file mode 100644 index 000000000..00c309926 --- /dev/null +++ b/src/bash/cpanm.sha256 @@ -0,0 +1 @@ +9da50e155df72bce55cb69f51f1dbb4b62d23740fb99f6178bb27f22ebdf8a46 ./App-cpanminus-1.7042.tar.gz diff --git a/src/bash/install.sh b/src/bash/install.sh index 58da70547..0e891d66b 100755 --- a/src/bash/install.sh +++ b/src/bash/install.sh @@ -8,26 +8,66 @@ # similar in purpose to npg_irods/scripts/travis_install.sh +set -e # script will exit if any command has a non-zero return value + +# check for environment variables if [ -z $INSTALL_ROOT ]; then - echo "INSTALL_ROOT environment variable must specify the path to a directory for installation; exiting." >&2 + echo "Environment variable INSTALL_ROOT must specify directory path for installation; exiting." >&2 + exit 1 +fi +if [ -z $RUBY_HOME ]; then + echo "Required environment variable RUBY_HOME not set; exiting." 1>&2 + exit 1 +fi +if [ -z $GEM_PATH ]; then + echo "Required environment variable GEM_PATH not set; exiting." 1>&2 exit 1 -elif [ ! -e $INSTALL_ROOT ]; then - echo "INSTALL_ROOT environment variable path $INSTALL_ROOT does not exist; exiting." >&2 +fi +if [ -n $GEM_HOME ]; then + echo "Warning: Existing GEM_HOME variable '$GEM_HOME' will be changed to value of INSTALL_ROOT" 1>&2 +fi + +# test that INSTALL_ROOT is a writable directory +if [ ! -e $INSTALL_ROOT ]; then + echo "INSTALL_ROOT environment variable path $INSTALL_ROOT does not exist; exiting." 1>&2 exit 1 elif [ ! -d $INSTALL_ROOT ]; then - echo "INSTALL_ROOT environment variable path $INSTALL_ROOT is not a directory; exiting." >&2 + echo "INSTALL_ROOT environment variable path $INSTALL_ROOT is not a directory; exiting." 1>&2 + exit 1 +elif [ ! -w $INSTALL_ROOT ]; then + echo "INSTALL_ROOT environment variable path $INSTALL_ROOT is not writable; exiting." 1>&2 exit 1 else echo "Installing pipeline to root directory $INSTALL_ROOT" fi -WTSI_DNAP_UTILITIES_VERSION="0.5.2" +# set Ruby environment variables +export PATH=$RUBY_HOME/bin:$PATH +export MANPATH=$RUBY_HOME/share/man:$MANPATH +export GEM_HOME=$INSTALL_ROOT +# split GEM_PATH to find a bin directory +IFS=':' # IFS = Bash "Internal Field Separator" +GEM_ARRAY=($GEM_PATH) +unset IFS +GEM_BIN=${GEM_ARRAY[0]}/bin +if [ ! -e $GEM_BIN ]; then + echo "Expected Ruby script directory '$GEM_BIN' does not exist" 1>&2 + exit 1 +elif [ ! -d $GEM_BIN ]; then + echo "Expected Ruby script directory '$GEM_BIN' is not a directory" 1>&2 + exit 1 +fi +export PATH=$GEM_BIN:$PATH +# update GEM_PATH +export GEM_PATH=$INSTALL_ROOT:$GEM_PATH + +# version numbers +CPANM_VERSION="1.7042" +WTSI_DNAP_UTILITIES_VERSION="0.5.3" ML_WAREHOUSE_VERSION="2.1" ALIEN_TIDYP_VERSION="1.4.7" NPG_TRACKING_VERSION="85.3" NPG_IRODS_VERSION="2.5.0" -RUBY_VERSION="1.8.7-p330" -LIB_RUBY_VERSION="0.3.0" START_DIR=$PWD @@ -39,18 +79,46 @@ SRC_DIRS=($PERL_DIR $RUBY_DIR) for DIR in ${SRC_DIRS[@]}; do if [ ! -d $DIR ]; then echo -n "Genotyping source code directory $DIR not found; " - echo "install halted" >&2 + echo "install halted" 1>&2 exit 1 fi done +# ensure temporary directory is cleaned up (even after unexpected exit) +function finish { + cd $START_DIR + rm -Rf $TEMP +} +trap finish EXIT + # create and cd to temp directory TEMP_NAME=`mktemp -d genotyping_temp.XXXXXXXX` TEMP=`readlink -f $TEMP_NAME` # full path to temp directory -CPANM_TEMP="$TEMP/cpanm" -mkdir $CPANM_TEMP -export PERL_CPANM_HOME=$CPANM_TEMP -export PATH=$TEMP:$PATH # ensure cpanm download is on PATH +export PERL_CPANM_HOME="$TEMP/cpanm_home" +mkdir $PERL_CPANM_HOME +mkdir "$TEMP/cpanm" # cpanm installation directory +export PATH=$TEMP/cpanm/bin:$PATH # ensure cpanm download is on PATH +cd $TEMP + +# Download, verify and install cpanm +# See checksum at http://www.cpan.org/authors/id/M/MI/MIYAGAWA/CHECKSUMS +CPANM_TARFILE=App-cpanminus-$CPANM_VERSION.tar.gz +CPANM_URL=http://search.cpan.org/CPAN/authors/id/M/MI/MIYAGAWA/$CPANM_TARFILE +wget $CPANM_URL +sha256sum -c $SCRIPT_DIR/cpanm.sha256 # verify checksum of the cpanm download +tar -xzf $CPANM_TARFILE +cd App-cpanminus-$CPANM_VERSION +perl Makefile.PL INSTALL_BASE=$TEMP/cpanm +make +make test +make install +CPANM_SCRIPT=$TEMP/cpanm/bin/cpanm +if [ ! -e $CPANM_SCRIPT ]; then + echo "Cannot find cpanm script '$CPANM_SCRIPT'; install halted" 1>&2 + exit 1 +fi +echo -n "cpanm script is $CPANM_SCRIPT, version: " +$CPANM_SCRIPT --version cd $TEMP # use wget to download tarballs to install @@ -62,17 +130,9 @@ https://github.com/wtsi-npg/perl-irods-wrap/releases/download/$NPG_IRODS_VERSION for URL in ${URLS[@]}; do wget $URL - if [ $? -ne 0 ]; then - echo -n "Failed to download $URL; non-zero exit status " >&2 - echo " from wget; install halted" >&2 - exit 1 - fi done eval $(perl -Mlocal::lib=$INSTALL_ROOT) # set environment variables -# use local installation of cpanm -module load cpanm/1.7042 - # install prerequisites from tarfiles TARFILES=(WTSI-DNAP-Utilities-$WTSI_DNAP_UTILITIES_VERSION.tar.gz \ ml_warehouse-$ML_WAREHOUSE_VERSION.tar.gz \ @@ -81,67 +141,28 @@ npg-tracking-$NPG_TRACKING_VERSION.tar.gz \ WTSI-NPG-iRODS-$NPG_IRODS_VERSION.tar.gz) for FILE in ${TARFILES[@]}; do - cpanm --installdeps $FILE --self-contained --notest - if [ $? -ne 0 ]; then - echo "cpanm --installdeps failed for $FILE; install halted" >&2 - exit 1 - fi - cpanm --install $FILE --notest - if [ $? -ne 0 ]; then - echo "cpanm --install failed for $FILE; install halted" >&2 - exit 1 - fi + $CPANM_SCRIPT --installdeps $FILE --self-contained --notest + $CPANM_SCRIPT --install $FILE --notest done cd $PERL_DIR -cpanm --installdeps . --self-contained --notest -if [ $? -ne 0 ]; then - echo "cpanm --installdeps failed for genotyping; install halted" >&2 - exit 1 -fi +$CPANM_SCRIPT --installdeps . --self-contained --notest perl Build.PL ./Build install --install_base $INSTALL_ROOT -if [ $? -ne 0 ]; then - echo "Genotyping pipeline Perl installation failed; install halted " >&2 - exit 1 -fi -# now set Ruby environment variables and install -if [ -z $RUBY_HOME ]; then - export RUBY_HOME=/software/gapi/pkg/ruby/$RUBY_VERSION -fi -export PATH=$RUBY_HOME/bin:$PATH -export MANPATH=$RUBY_HOME/share/man:$MANPATH -if [ -z $GEM_HOME ]; then - export GEM_HOME=$INSTALL_ROOT -fi -if [ -z $GEM_PATH ]; then - export GEM_PATH=/software/gapi/pkg/lib-ruby/$LIB_RUBY_VERSION -fi -export GEM_PATH=$INSTALL_ROOT:$GEM_PATH -export PATH=$GEM_PATH/bin:$PATH +echo "Perl installation complete; now installing Ruby." cd $RUBY_DIR GENOTYPING_GEM=`rake gem | grep File | cut -f 4 -d " "` -if [ $? -ne 0 ]; then - echo "'rake gem' failed for genotyping; install halted" >&2 - exit 1 -fi GEM_FILE_PATH=pkg/$GENOTYPING_GEM if [ ! -f $GEM_FILE_PATH ]; then - echo "Expected gem file '$GEM_FILE_PATH' not found; install halted" >&2 + echo "Expected gem file '$GEM_FILE_PATH' not found; install halted" 1>&2 exit 1 fi gem install $GEM_FILE_PATH -if [ $? -ne 0 ]; then - echo "'gem install' failed for genotyping; install halted" >&2 - exit 1 -fi -# clean up temporary directory -cd $START_DIR -rm -Rf $TEMP +echo "Ruby installation complete." exit 0 diff --git a/src/perl/Build.PL b/src/perl/Build.PL index 469a71555..107bfb611 100644 --- a/src/perl/Build.PL +++ b/src/perl/Build.PL @@ -44,6 +44,7 @@ my $build = Build->new 'Text::CSV' => '>= 1.33', 'Try::Tiny' => '>= 0.22', 'URI' => '>= 1.67', + 'WTSI::DNAP::Utilities' => '>= 0.5.3', 'WTSI::DNAP::Warehouse::Schema' => '>= 1.1', 'WTSI::NPG::iRODS' => '>= 2.1.0' }, diff --git a/src/perl/MANIFEST b/src/perl/MANIFEST index d04269e99..34b59fb08 100644 --- a/src/perl/MANIFEST +++ b/src/perl/MANIFEST @@ -1,11 +1,10 @@ +bin/archive_fluidigm_genotypes.pl bin/check_duplicates_bed.pl -bin/check_identity_bed.pl -bin/check_identity_bed_wip.pl +bin/check_identity_bayesian.pl bin/check_xhet_gender.pl bin/collate_qc_results.pl bin/create_test_database.pl bin/filter_illuminus_output.pl -bin/find_modified_files.pl bin/gendermix_standalone.pl bin/identity_simulation.pl bin/illuminus.pl @@ -107,9 +106,11 @@ lib/WTSI/NPG/Genotyping/Database/Pipeline/Schema/Result/State.pm lib/WTSI/NPG/Genotyping/Database/Pipeline/Schema/Result/Well.pm lib/WTSI/NPG/Genotyping/Database/Sequenom.pm lib/WTSI/NPG/Genotyping/Database/SNP.pm +lib/WTSI/NPG/Genotyping/Fluidigm/Archiver.pm lib/WTSI/NPG/Genotyping/Fluidigm/AssayDataObject.pm lib/WTSI/NPG/Genotyping/Fluidigm/AssayResult.pm lib/WTSI/NPG/Genotyping/Fluidigm/AssayResultSet.pm +lib/WTSI/NPG/Genotyping/Fluidigm/Collector.pm lib/WTSI/NPG/Genotyping/Fluidigm/ExportFile.pm lib/WTSI/NPG/Genotyping/Fluidigm/Publisher.pm lib/WTSI/NPG/Genotyping/Fluidigm/ResultSet.pm @@ -123,19 +124,18 @@ lib/WTSI/NPG/Genotyping/Infinium/Publisher.pm lib/WTSI/NPG/Genotyping/Infinium/ResultSet.pm lib/WTSI/NPG/Genotyping/Infinium/SampleQuery.pm lib/WTSI/NPG/Genotyping/Plink.pm -lib/WTSI/NPG/Genotyping/QC/Collation.pm +lib/WTSI/NPG/Genotyping/QC/Collator.pm lib/WTSI/NPG/Genotyping/QC/GenderCheck.pm lib/WTSI/NPG/Genotyping/QC/GenderCheckDatabase.pm -lib/WTSI/NPG/Genotyping/QC/Identity.pm lib/WTSI/NPG/Genotyping/QC/MetricScatterplots.pm lib/WTSI/NPG/Genotyping/QC/PlinkIO.pm lib/WTSI/NPG/Genotyping/QC/QCPlotShared.pm lib/WTSI/NPG/Genotyping/QC/QCPlotTests.pm lib/WTSI/NPG/Genotyping/QC/Reports.pm lib/WTSI/NPG/Genotyping/QC/SnpID.pm -lib/WTSI/NPG/Genotyping/QC_wip/Check/Identity.pm -lib/WTSI/NPG/Genotyping/QC_wip/Check/IdentitySimulator.pm -lib/WTSI/NPG/Genotyping/QC_wip/Check/SampleIdentityBayesian.pm +lib/WTSI/NPG/Genotyping/QC/BayesianIdentity/Check.pm +lib/WTSI/NPG/Genotyping/QC/BayesianIdentity/Simulator.pm +lib/WTSI/NPG/Genotyping/QC/BayesianIdentity/SampleMetric.pm lib/WTSI/NPG/Genotyping/Reference.pm lib/WTSI/NPG/Genotyping/Sequenom/AssayDataObject.pm lib/WTSI/NPG/Genotyping/Sequenom/AssayResult.pm @@ -163,11 +163,24 @@ lib/WTSI/NPG/GenotypingReduced lib/WTSI/NPG/Publisher.pm lib/WTSI/NPG/SimplePublisher.pm lib/WTSI/NPG/Utilities.pm +lib/WTSI/NPG/Utilities/Archivable.pm +lib/WTSI/NPG/Utilities/Collector.pm lib/WTSI/NPG/Utilities/DelimitedFiles.pm MANIFEST This list of files README +t/archivable.t +t/bayesian_identity.t +t/bayesian_identity_sample.t +t/bayesian_identity_simulator.t t/call.t -t/collation.t +t/collator.t +t/collector.t +t/collector/collect_files/a/10.txt +t/collector/collect_files/a/x/1.txt +t/collector/collect_files/b/20.txt +t/collector/collect_files/b/y/2.txt +t/collector/collect_files/c/30.txt +t/collector/collect_files/c/z/3.txt t/compile_scripts.t t/critic.t t/database_infinium.t @@ -218,6 +231,12 @@ t/filter_illuminus_output.t t/filter_illuminus_output/columns.txt t/filter_illuminus_output/illuminus_genotypes_1.txt t/filter_illuminus_output/illuminus_probabilities_1.txt +t/fluidigm_archiver.t +t/fluidigm_archiver/0123456789/0123456789.csv +t/fluidigm_archiver/0123456789/Data/aramis.tif +t/fluidigm_archiver/0123456789/Data/athos.tif +t/fluidigm_archiver/0123456789/Data/porthos.tif +t/fluidigm_archiver/qc.tsv t/fluidigm_assay_data_object.t t/fluidigm_assay_data_object/1381735059/S01_1381735059.csv t/fluidigm_assay_data_object/1381735059/S02_1381735059.csv @@ -366,10 +385,6 @@ t/gender/input_xhet_large.txt t/gender_marker.t t/gender_marker_call.t t/gender_standalone.t -t/identity.t -t/identity_check_sample_wip_bayesian.t -t/identity_check_wip.t -t/identity_simulation_wip.t t/illuminus.t t/illuminus/example.json t/illuminus/example_all.iln @@ -642,13 +657,6 @@ t/update_plink_annotation/input.bim t/update_plink_annotation/input_gender.fam t/update_plink_annotation/input_placeholder.fam t/utilities.t -t/utilities/collect_files/a/10.txt -t/utilities/collect_files/a/x/1.txt -t/utilities/collect_files/b/20.txt -t/utilities/collect_files/b/y/2.txt -t/utilities/collect_files/c/30.txt -t/utilities/collect_files/c/z/3.txt -t/utilities/lorem.txt t/vcf.t t/vcf/calls_from_plink.vcf t/vcf/chromosome_lengths_GRCh37.json @@ -677,6 +685,8 @@ t/vcf/sequenom_alternate_snp_004.csv t/vcf/sequenom_inputs.txt t/vcf/W30467_snp_set_info_GRCh37.tsv t/vcf/W30467_snp_set_info_GRCh37_1.tsv +t/WTSI/NPG/ArchivableTest.pm +t/WTSI/NPG/CollectorTest.pm t/WTSI/NPG/Database/MLWarehouseTest.pm t/WTSI/NPG/Database/WarehouseTest.pm t/WTSI/NPG/DatabaseTest.pm @@ -692,6 +702,7 @@ t/WTSI/NPG/Genotyping/Database/InfiniumTest.pm t/WTSI/NPG/Genotyping/Database/PipelineTest.pm t/WTSI/NPG/Genotyping/Database/SequenomTest.pm t/WTSI/NPG/Genotyping/Database/SNPTest.pm +t/WTSI/NPG/Genotyping/Fluidigm/ArchiverTest.pm t/WTSI/NPG/Genotyping/Fluidigm/AssayDataObjectTest.pm t/WTSI/NPG/Genotyping/Fluidigm/AssayResultSetTest.pm t/WTSI/NPG/Genotyping/Fluidigm/AssayResultTest.pm @@ -707,11 +718,10 @@ t/WTSI/NPG/Genotyping/Infinium/InfiniumDataObjectTest.pm t/WTSI/NPG/Genotyping/Infinium/PublisherTest.pm t/WTSI/NPG/Genotyping/Infinium/ResultSetTest.pm t/WTSI/NPG/Genotyping/Infinium/SampleQueryTest.pm -t/WTSI/NPG/Genotyping/QC/CollationTest.pm -t/WTSI/NPG/Genotyping/QC/IdentityTest.pm -t/WTSI/NPG/Genotyping/QC_wip/Check/IdentitySimulatorTest.pm -t/WTSI/NPG/Genotyping/QC_wip/Check/IdentityTest.pm -t/WTSI/NPG/Genotyping/QC_wip/Check/SampleIdentityBayesianTest.pm +t/WTSI/NPG/Genotyping/QC/CollatorTest.pm +t/WTSI/NPG/Genotyping/QC/BayesianIdentity/SimulatorTest.pm +t/WTSI/NPG/Genotyping/QC/BayesianIdentity/CheckTest.pm +t/WTSI/NPG/Genotyping/QC/BayesianIdentity/SampleMetricTest.pm t/WTSI/NPG/Genotyping/ScriptsTest.pm t/WTSI/NPG/Genotyping/Sequenom/AssayDataObjectTest.pm t/WTSI/NPG/Genotyping/Sequenom/AssayResultSetTest.pm diff --git a/src/perl/bin/archive_fluidigm_genotypes.pl b/src/perl/bin/archive_fluidigm_genotypes.pl new file mode 100755 index 000000000..ff3dde53d --- /dev/null +++ b/src/perl/bin/archive_fluidigm_genotypes.pl @@ -0,0 +1,149 @@ +#!/usr/bin/env perl + +package main; + +use strict; +use warnings; +use Cwd qw/cwd/; +use DateTime; +use Getopt::Long; +use Log::Log4perl qw(:levels); +use Pod::Usage; +use WTSI::DNAP::Utilities::ConfigureLogger qw/log_init/; + +use WTSI::NPG::Genotyping::Fluidigm::Archiver; +use WTSI::NPG::Utilities qw(user_session_log); + +my $uid = `whoami`; +chomp($uid); +my $session_log = user_session_log($uid, 'archive_fluidigm_genotypes'); + +our $VERSION = ''; + +run() unless caller(); +sub run { + + my $days_ago; + my $debug; + my $dry_run; + my $input_dir; + my $irods_root; + my $log4perl_config; + my $output_dir; + my $output_prefix; + my $pigz_processes; + my $verbose; + + GetOptions( + 'days-ago|days_ago=i' => \$days_ago, + 'debug' => \$debug, + 'dry-run|dry_run' => \$dry_run, + 'help' => sub { pod2usage(-verbose => 2, + -exitval => 0) }, + 'input-dir|input_dir=s' => \$input_dir, + 'irods-root|irods_root=s' => \$irods_root, + 'logconf=s' => \$log4perl_config, + 'output-dir|output_dir=s' => \$output_dir, + 'output-prefix|output_prefix=s' => \$output_prefix, + 'pigz-processes|pigz_processes=i' => \$pigz_processes, + 'verbose' => \$verbose + ); + + unless ($irods_root) { + pod2usage(-msg => "An --irods-root argument is required\n", + -exitval => 2); + } + + my @log_levels; + if ($debug) { push @log_levels, $DEBUG; } + if ($verbose) { push @log_levels, $INFO; } + log_init(config => $log4perl_config, + file => $session_log, + levels => \@log_levels); + my $log = Log::Log4perl->get_logger('main'); + + $input_dir ||= cwd(); + + my %args = (irods_root => $irods_root, + target_dir => $input_dir, + ); + if ($days_ago) { $args{'days_ago'} = $days_ago; } + if ($output_dir) { $args{'output_dir'} = $output_dir; } + if ($output_prefix) { $args{'output_prefix'} = $output_prefix; } + if ($pigz_processes) { $args{'pigz_processes'} = $pigz_processes; } + my $archiver = WTSI::NPG::Genotyping::Fluidigm::Archiver->new(%args); + + my @dirs_to_archive = $archiver->find_directories_to_archive(); + $log->info("Found ", scalar(@dirs_to_archive), + " path(s) eligible for archiving"); + if (@dirs_to_archive) { + $log->info("Directory path(s) to archive: ", + join(", ", @dirs_to_archive)); + $archiver->add_to_archives(\@dirs_to_archive, $dry_run); + } +} + + +__END__ + +=head1 NAME + +archive_fluidigm_genotypes + +=head1 SYNOPSIS + + +Options: + + --days_ago Minimum time in days since last modification, for + directories to be archived. Optional, defaults to 90 days. + --dry_run Report which directories would be archived, but do not + actually archive them. + --help Display help. + --input_dir Directory to search for archivable Fluidigm data. + Optional, defaults to current working directory. + --irods_root Root path in iRODS to search for published Fluidigm + data. If a directory's publication to iRODS cannot be + confirmed, it will not be archived. Required. + --logconf A log4perl configuration file. Optional. + --output_dir Directory for output of .tar.gz files. Optional, defaults + to current working directory. + --output_prefix Prefix for output filenames, which will be of the form + [prefix]_yyyy-mm.tar.gz. Optional, defaults to 'fluidigm'. + --pigz_processes Number of processes to use for compressing/decompressing + existing archives with the pigz program. Optional, + defaults to 4. + --verbose Print messages while processing. Optional. + +=head1 DESCRIPTION + +Searches a directory recursively for Fluidigm result directories that +were last modified more than the given number of days ago. (N.B. limits +search to 1 level of directories.) Any files identified +are added to .tar.gz archives. The archive files are created on a monthly +basis, with names of the form [prefix]_yyyy-mm.tar.gz. + +=head1 METHODS + +None + +=head1 AUTHOR + +Iain Bancarz + +=head1 COPYRIGHT AND DISCLAIMER + +Copyright (C) 2016 Genome Research Limited. All Rights +Reserved. + +This program is free software: you can redistribute it and/or modify +it under the terms of the Perl Artistic License or the GNU General +Public License as published by the Free Software Foundation, either +version 3 of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +=cut diff --git a/src/perl/bin/check_duplicates_bed.pl b/src/perl/bin/check_duplicates_bed.pl index ccc6fc294..ef1ff4346 100755 --- a/src/perl/bin/check_duplicates_bed.pl +++ b/src/perl/bin/check_duplicates_bed.pl @@ -93,17 +93,17 @@ } # generate hashes of chromosome and position for each SNP in .bim file -open my $bim, "<", $bfile.".bim" or die "Unable to open $bfile.bim\n"; +open my $bim, "<", $bfile.".bim" or croak("Unable to open '$bfile.bim'"); while (<$bim>) { my ($chr, $snp, $pos) = (split)[0, 1, 3]; $chr{$snp} = $chr; $pos{$snp} = $pos; } -close $bim; +close $bim or croak("Failed to close '$bfile.bim'"); # open genotyping SNP results file (defaults to snp_cr_af.txt) and filter on MAF and CR # populate a hash %snps: Keys=chromosomes, values = lists of (snp_name, snp_position) pairs -open my $snpfile, "<", $af or die "Cannot read SNP file '$af': $!\n"; +open my $snpfile, "<", $af or croak("Cannot read SNP file '$af': $!"); while (<$snpfile>) { my ($snp, $cr, $maf) = (split)[0, 1, 5]; next unless $chr{$snp}; @@ -111,7 +111,7 @@ next if $maf < $maf_min || $maf > $maf_max; push @{$snps{$chr{$snp}}}, [ $snp, $pos{$snp} ]; } -close $snpfile or die "Failed to close $snpfile: $!\n"; +close $snpfile or croak("Failed to close $snpfile: $!"); # filter to ensure minimum distance between SNPs; generates @use_snps array foreach my $chr (keys %snps) { @@ -126,25 +126,57 @@ } } } -open my $logfile, ">", $log or die "Failed to open $log for writing: $!\n"; +open my $logfile, ">", $log or croak("Failed to open '$log' for writing: $!"); print $logfile scalar(@use_snps), " available SNPs found for duplicate check\n"; if (@use_snps > $max_snps) { @use_snps = @use_snps[0 .. $max_snps - 1]; # truncate @use_snps if too large } print $logfile "Using ", scalar(@use_snps), " SNPs\n"; -close $logfile; +close $logfile or croak("Failed to close '$log' for writing"); # write @use_snps to temp file -my $snp_file = new File::Temp; +my $snp_file = new File::Temp; $snp_file->autoflush(1); print $snp_file map { $_ . "\n" } @use_snps; -# execute binary to write pairwise concordance +# execute binary to write pairwise concordance my $full = $dir.'/duplicate_full.txt'; my $summary = $dir.'/duplicate_summary.txt'; my $cmd = "pairwise_concordance_bed -n $snp_file -f $full -m $summary $bfile"; -system($cmd) && die qq(Error running command "$cmd": $!\n); +system($cmd) && croak("Error running command '$cmd'"); # gzip pairwise output file; can be quite large, >> 1 GB $cmd = "gzip -f $full"; -system($cmd) && die qq(Error running command "$cmd": $!\n);; +system($cmd) && croak("Error running command '$cmd': $!"); + + +__END__ + +=head1 NAME + +check_duplicates_bed + +=head1 DESCRIPTION + +Compare genotype calls to check for duplicate samples + +=head1 AUTHOR + +Keith James , Iain Bancarz + +=head1 COPYRIGHT AND DISCLAIMER + +Copyright (C) 2012, 2013, 2014, 2015, 2016 Genome Research Limited. +All Rights Reserved. + +This program is free software: you can redistribute it and/or modify +it under the terms of the Perl Artistic License or the GNU General +Public License as published by the Free Software Foundation, either +version 3 of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +=cut diff --git a/src/perl/bin/check_identity_bed_wip.pl b/src/perl/bin/check_identity_bayesian.pl similarity index 86% rename from src/perl/bin/check_identity_bed_wip.pl rename to src/perl/bin/check_identity_bayesian.pl index ebc60af02..2d0972e76 100755 --- a/src/perl/bin/check_identity_bed_wip.pl +++ b/src/perl/bin/check_identity_bayesian.pl @@ -7,11 +7,11 @@ use File::Slurp qw (read_file); use Getopt::Long; use JSON; -use Log::Log4perl; -use Log::Log4perl::Level; use Pod::Usage; +use Log::Log4perl qw(:levels); +use WTSI::DNAP::Utilities::ConfigureLogger qw/log_init/; -use WTSI::NPG::Genotyping::QC_wip::Check::Identity; +use WTSI::NPG::Genotyping::QC::BayesianIdentity::Check; use WTSI::NPG::Genotyping::SNPSet; use WTSI::NPG::Genotyping::VCF::Slurper; use WTSI::NPG::iRODS; @@ -24,24 +24,6 @@ chomp($uid); my $session_log = user_session_log($uid, 'check_identity_bed_wip'); -my $embedded_conf = " - log4perl.logger.npg.genotyping.qc.identity = ERROR, A1, A2 - - log4perl.appender.A1 = Log::Log4perl::Appender::Screen - log4perl.appender.A1.utf8 = 1 - log4perl.appender.A1.layout = Log::Log4perl::Layout::PatternLayout - log4perl.appender.A1.layout.ConversionPattern = %d %p %m %n - - log4perl.appender.A2 = Log::Log4perl::Appender::File - log4perl.appender.A2.filename = $session_log - log4perl.appender.A2.utf8 = 1 - log4perl.appender.A2.layout = Log::Log4perl::Layout::PatternLayout - log4perl.appender.A2.layout.ConversionPattern = %d %p %m %n - log4perl.appender.A2.syswrite = 1 -"; - -my $log; - run() unless caller(); sub run { @@ -83,24 +65,17 @@ sub run { 'verbose' => \$verbose, 'xer=f' => \$expected_error_rate); - if ($log4perl_config) { - Log::Log4perl::init($log4perl_config); - $log = Log::Log4perl->get_logger('npg.genotyping.qc.identity'); - } - else { - Log::Log4perl::init(\$embedded_conf); - $log = Log::Log4perl->get_logger('npg.genotyping.qc.identity'); - if ($verbose) { - $log->level($INFO); - } - elsif ($debug) { - $log->level($DEBUG); - } - } + my @log_levels; + if ($debug) { push @log_levels, $DEBUG; } + if ($verbose) { push @log_levels, $INFO; } + log_init(config => $log4perl_config, + file => $session_log, + levels => \@log_levels); + my $log = Log::Log4perl->get_logger('main'); ### set up iRODS connection and make it use same logger as script ### my $irods = WTSI::NPG::iRODS->new; - $irods->logger($log); + $irods->logger(); ### read equivalent calls probability by SNP from JSON, if given my $ecp; @@ -119,6 +94,8 @@ sub run { $log->logcroak("Cannot read sample JSON path '$sample_json'"); } my $sample_data = decode_json(read_file($sample_json)); + $log->debug("Read sample JSON data for ", scalar @{$sample_data}, + " samples"); # generate a hash mapping sanger sample ID to URI foreach my $sample (@{$sample_data}) { my $ssid = $sample->{'sanger_sample_id'}; @@ -190,8 +167,7 @@ sub run { ### create identity check object ### my %args = (plink_path => $plink, - snpset => $snpset, - logger => $log); + snpset => $snpset); if (defined($swap_threshold)) {$args{'swap_threshold'} = $swap_threshold;} if (defined($pass_threshold)) {$args{'pass_threshold'} = $pass_threshold;} if (defined($ecp)) { $args{'equivalent_calls_probability'} = $ecp; } @@ -203,7 +179,8 @@ sub run { $args{'expected_error_rate'} = $expected_error_rate; } $log->debug("Creating identity check object"); - my $checker = WTSI::NPG::Genotyping::QC_wip::Check::Identity->new(%args); + my $checker = + WTSI::NPG::Genotyping::QC::BayesianIdentity::Check->new(%args); ### read QC plex calls from VCF file(s) ### my %qc_calls; @@ -235,6 +212,8 @@ sub run { my $uri = $ssid_to_uri{$ssid}; if ($uri) { push @{$qc_calls{$uri}}, @{$vcf_calls{$ssid}}; + $log->debug("Appending calls for URI '", $uri, "', SSID '", + $ssid, "'"); } else { # samples in QC plex results do not necessarily appear in # production, eg. sample exclusion in Illuminus/zCall @@ -254,11 +233,11 @@ sub run { =head1 NAME -check_identity_bed_wip +check_identity_bayesian =head1 SYNOPSIS -check_identity_bed_wip --vcf --plink +check_identity_bayesian --vcf --plink --sample_json [--plex ] [--plex-irods ] [--pass-threshold ] [--swap_threshold ] [--help] [--verbose] @@ -307,7 +286,7 @@ =head1 AUTHOR =head1 COPYRIGHT AND DISCLAIMER -Copyright (c) 2015, 2016 Genome Research Limited. All Rights Reserved. +Copyright (c) 2015, 2016, 2017 Genome Research Limited. All Rights Reserved. This program is free software: you can redistribute it and/or modify it under the terms of the Perl Artistic License or the GNU General diff --git a/src/perl/bin/check_identity_bed.pl b/src/perl/bin/check_identity_bed.pl deleted file mode 100755 index 4a73f23fd..000000000 --- a/src/perl/bin/check_identity_bed.pl +++ /dev/null @@ -1,115 +0,0 @@ -#! /software/bin/perl - -use warnings; -use strict; -use Carp; -use Cwd; -use Getopt::Long; -use WTSI::NPG::Genotyping::QC::Identity; -use WTSI::NPG::Genotyping::QC::QCPlotShared qw(readThresholds); - -our $VERSION = ''; -our $DEFAULT_INI = $ENV{HOME} . "/.npg/genotyping.ini"; - -# Check identity of genotyped data against sequenom -# Input: files of genotypes in tab-delimited format, one row per SNP - -# Author: Iain Bancarz, ib5@sanger.ac.uk (refactored edition Feb 2012, original author unknown) - -# Old version used heterozygosity mismatch rates for comparison -# Modify to use genotype mismatch rates -# Do not count "flips" and/or "swaps" as mismatches -# Flip: Reverse complement, eg. GA and TC -# Swap: Transpose major and minor alleles, eg. GA and AG -# can have both flip and swap, eg. GA ~ CT - -# IMPORTANT: Plink and Sequenom name formats may differ: -# - Plink *sample* names may be of the form PLATE_WELL_ID -# where ID is the Sequenom identifier -# - Plink *snp* names may be of the form exm-FOO -# where FOO is the Sequenom SNP name -# - Either of the above differences *may* occur, but is not guaranteed! - -my ($outDir, $dbPath, $configPath, $iniPath, $minSNPs, $minIdent, $swap, - $plink, $help); - -# TODO introduce 'quiet' mode to suppress warnings - -GetOptions("outdir=s" => \$outDir, - "db=s" => \$dbPath, - "config=s" => \$configPath, - "ini=s" => \$iniPath, - "min_snps=i" => \$minSNPs, - "min_ident=f" => \$minIdent, - "swap=f" => \$swap, - "plink=s" => \$plink, - "h|help" => \$help); - -my $swapDefault = 0.95; - -if ($help) { - print STDERR "Usage: $0 [ output file options ] PLINK_GTFILE -PLINK_GTFILE is the prefix for binary plink files (without .bed, .bim, .fam extension) -Options: ---config=PATH Config path in .json format with QC thresholds. - At least one of config or min_ident must be given. ---ini=PATH Path to .ini file with additional configuration. - Defaults to: $DEFAULT_INI ---min_snps=NUMBER Minimum number of SNPs for comparison ---min_ident=NUMBER Minimum threshold of SNP matches for identity; if given, overrides value in config file; 0 <= NUMBER <= 1 ---swap=NUMBER Minimum threshold of SNP matches to flag a failed sample - pair as a potential swap; 0 <= NUMBER <= 1. Optional, - defaults to $swapDefault. ---outdir=PATH Directory for output files. Optional, defaults to current - working directory. ---plink=PATH Prefix for a Plink binary dataset, ie. path without .bed, - .bim, .fam extension. Required. ---db=PATH Path to an SQLite pipeline database containing the QC plex calls. Required. ---help Print this help text and exit -"; - exit(0); -} - -$plink or die "Must supply a Plink binary input prefix\n"; -foreach my $part (map { $plink . $_ } qw(.bed .bim .fam)) { - -e $part or die "Prefix '$plink' is not a valid Plink binary dataset; " . - "'$part' is missing\n"; -} - -if ($outDir) { - -e $outDir or die "Output '$outDir' does not exist\n"; - -d $outDir or die "Output '$outDir' is not a directory\n"; -} - -$dbPath or die "Must supply an SQLite pipeline database path\n"; --e $dbPath or die "Database path '$dbPath' does not exist\n"; - -$outDir ||= getcwd(); -$minSNPs ||= 8; -if (!$minIdent) { - if ($configPath) { - my %thresholds = readThresholds($configPath); - $minIdent = $thresholds{'identity'}; - } else { - die "Must supply a value for either --min_ident or --config\n"; - } -} -if ($minIdent < 0 || $minIdent > 1) { - die "Minimum identity value must be a number between 0 and 1\n"; -} -if ($swap && ($swap < 0 || $swap > 1)) { - die "Swap threshold must be a number between 0 and 1\n"; -} -$swap ||= $swapDefault; - -$iniPath ||= $DEFAULT_INI; - -WTSI::NPG::Genotyping::QC::Identity->new( - db_path => $dbPath, - ini_path => $iniPath, - min_shared_snps => $minSNPs, - output_dir => $outDir, - pass_threshold => $minIdent, - plink_path => $plink, - swap_threshold => $swap -)->run_identity_check(); diff --git a/src/perl/bin/collate_qc_results.pl b/src/perl/bin/collate_qc_results.pl index 32403aab0..1f59bb0ac 100755 --- a/src/perl/bin/collate_qc_results.pl +++ b/src/perl/bin/collate_qc_results.pl @@ -1,39 +1,59 @@ #! /software/bin/perl -# Author: Iain Bancarz, ib5@sanger.ac.uk -# February 2014 - -# Collate QC metric files and merge into a single JSON file -# Optionally: -# * Apply thresholds and evaluate pass/fail status -# * Exclude failed samples in pipeline SQLite database -# Metrics appear in various formats in the QC directory - use strict; use warnings; use Carp; use Cwd qw/abs_path/; use Getopt::Long; -use WTSI::NPG::Genotyping::QC::Collation qw(collate); +use Log::Log4perl qw(:levels); +use WTSI::DNAP::Utilities::ConfigureLogger qw(log_init); +use WTSI::NPG::Genotyping::QC::Collator; +use WTSI::NPG::Utilities qw(user_session_log); our $VERSION = ''; our $DEFAULT_INI = $ENV{HOME} . "/.npg/genotyping.ini"; -my ($inputDir, $metricJson, $statusJson, $csv, $iniPath, $dbPath, $thresholds, - $config, $exclude, $help, $verbose); +my $uid = `whoami`; +chomp($uid); +my $session_log = user_session_log($uid, 'collate_qc_results'); +my $log; -GetOptions("input=s" => \$inputDir, - "dbpath=s" => \$dbPath, - "metrics=s" => \$metricJson, - "status=s" => \$statusJson, +my $config; +my $csv; +my $dbPath; +my $debug; +my $duplicates; +my $exclude; +my $help; +my $iniPath; +my $inputDir; +my $log4perl_config; +my $metricJson; +my $statusJson; +my $verbose; + +GetOptions("config=s" => \$config, "csv=s" => \$csv, - "ini=s" => \$iniPath, - "config=s" => \$config, - "thresholds=s" => \$thresholds, + "debug" => \$debug, + "duplicates=s" => \$duplicates, "exclude" => \$exclude, "help" => \$help, + "ini=s" => \$iniPath, + "input=s" => \$inputDir, + "dbpath=s" => \$dbPath, + "logconf=s" => \$log4perl_config, + "metrics=s" => \$metricJson, + "status=s" => \$statusJson, "verbose" => \$verbose, - ); + ); + +my @log_levels; +if ($debug) { push @log_levels, $DEBUG; } +if ($verbose) { push @log_levels, $INFO; } +log_init(config => $log4perl_config, + file => $session_log, + levels => \@log_levels); +$log = Log::Log4perl->get_logger('main'); my $defaultStatusJson = 'qc_results.json'; @@ -43,11 +63,11 @@ --input Directory containing input files. Defaults to current working directory. --status Path for JSON output of metric values and pass/fail status. Defaults to $defaultStatusJson in current working directory. --dbpath Path to pipeline SQLite database file. Required. +--duplicates Path for JSON output of duplicate metric details. Optional; if absent, file will not be written. --ini Path to .ini file for SQLite database. Optional, defaults to $DEFAULT_INI. --csv Path for CSV output. Optional. --metrics Path for JSON output of metric values, without pass/fail status. Optional. --config Path to JSON file containing general configuration, including input filenames. Required. ---thresholds Path to JSON file containing thresholds to determine pass/fail status for each sample. Optional; defaults to value of --config. --exclude Flag failed samples for exclusion in pipeline DB file. --verbose Print progress information to STDERR --help Print this help text and exit @@ -58,7 +78,6 @@ $inputDir ||= '.'; $statusJson ||= $defaultStatusJson; $iniPath ||= $DEFAULT_INI; -$thresholds ||= $config; $exclude ||= 0; # validate command-line arguments @@ -68,8 +87,59 @@ if (!(-r $dbPath)) { croak "Cannot read pipeline database path $dbPath"; } elsif (!(-d $inputDir)) { croak "Input $inputDir does not exist or is not a directory"; } elsif (!(-r $config)) { croak "Cannot read config path $config"; } -elsif ($thresholds && !(-r $thresholds)) { croak "Cannot read thresholds path $thresholds"; } -# assign 0 (ie. false) to the optional reference to a list of metric names -collate($inputDir, $config, $thresholds, $dbPath, $iniPath, $statusJson, - $metricJson, $csv, $exclude, 0, $verbose); +my $collator = WTSI::NPG::Genotyping::QC::Collator->new( + db_path => $dbPath, + ini_path => $iniPath, + input_dir => $inputDir, + config_path => $config, +); + +if (defined $metricJson) { + $collator->writeMetricJson($metricJson); +} +if (defined $statusJson) { + $collator->writePassFailJson($statusJson); +} +if (defined $csv) { + $collator->writeCsv($csv); +} +if (defined $duplicates) { + $collator->writeDuplicates($duplicates); +} +if ($exclude) { + $collator->excludeFailedSamples(); +} + + +__END__ + +=head1 NAME + +collate_qc_results + +=head1 DESCRIPTION + +Collate genotyping QC results into a single object. Can write JSON and +CSV output, and exclude failed samples from the pipeline database. + +=head1 AUTHOR + +Keith James , Iain Bancarz + +=head1 COPYRIGHT AND DISCLAIMER + +Copyright (C) 2014, 2015, 2016, 2017 Genome Research Limited. +All Rights Reserved. + +This program is free software: you can redistribute it and/or modify +it under the terms of the Perl Artistic License or the GNU General +Public License as published by the Free Software Foundation, either +version 3 of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +=cut diff --git a/src/perl/bin/create_test_database.pl b/src/perl/bin/create_test_database.pl index 8ae8d9408..c52e3455e 100755 --- a/src/perl/bin/create_test_database.pl +++ b/src/perl/bin/create_test_database.pl @@ -101,6 +101,7 @@ sub createDummyCalls { my ($plexPath,) = @_; my $csv = Text::CSV->new({eol => "\n", sep_char => "\t", + binary => 1, allow_whitespace => undef, quote_char => undef}); my @calls; @@ -282,3 +283,33 @@ sub addSampleGender { $db->disconnect(); +__END__ + +=head1 NAME + +create_test_database + +=head1 DESCRIPTION + +Create a test SQLite database for the genotyping pipeline + +=head1 AUTHOR + +Keith James , Iain Bancarz + +=head1 COPYRIGHT AND DISCLAIMER + +Copyright (C) 2012, 2013, 2014, 2015, 2016, 2017 Genome Research Limited. +All Rights Reserved. + +This program is free software: you can redistribute it and/or modify +it under the terms of the Perl Artistic License or the GNU General +Public License as published by the Free Software Foundation, either +version 3 of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +=cut diff --git a/src/perl/bin/filter_illuminus_output.pl b/src/perl/bin/filter_illuminus_output.pl index 65f5e1aac..254da2969 100755 --- a/src/perl/bin/filter_illuminus_output.pl +++ b/src/perl/bin/filter_illuminus_output.pl @@ -6,9 +6,11 @@ package main; use strict; use warnings; +use Carp; use Getopt::Long; -use Log::Log4perl qw(:easy); +use Log::Log4perl qw(:levels); use Pod::Usage; +use WTSI::DNAP::Utilities::ConfigureLogger qw/log_init/; use WTSI::NPG::Utilities::DelimitedFiles qw(read_fon find_column_indices @@ -17,29 +19,37 @@ package main; use WTSI::NPG::Genotyping::Illuminus qw(read_gt_column_names filter_gt_columns); -our $VERSION = ''; +use WTSI::NPG::Utilities qw(user_session_log); + +my $uid = `whoami`; +chomp($uid); +my $session_log = user_session_log($uid, 'filter_illuminus_output'); -Log::Log4perl->easy_init($ERROR); +our $VERSION = ''; run() unless caller(); sub run { my $columns; + my $debug; my $gt_input; my $gt_output; + my $log4perl_config; my $operation; my $pr_input; my $pr_output; my $verbose; - GetOptions('columns=s' => \$columns, - 'gt-input=s' => \$gt_input, + GetOptions('columns=s' => \$columns, + 'debug' => \$debug, + 'gt-input=s' => \$gt_input, 'gt-output=s' => \$gt_output, - 'help' => sub { pod2usage(-verbose => 2, -exitval => 0) }, + 'help' => sub { pod2usage(-verbose => 2, -exitval => 0) }, + 'logconf=s' => \$log4perl_config, 'operation=s' => \$operation, - 'pr-input=s' => \$pr_input, + 'pr-input=s' => \$pr_input, 'pr-output=s' => \$pr_output, - 'verbose' => \$verbose); + 'verbose' => \$verbose); unless ($gt_input) { pod2usage(-msg => "A --gt-input argument is required\n", @@ -62,6 +72,14 @@ sub run { -exitval => 2); } + my @log_levels; + if ($debug) { push @log_levels, $DEBUG; } + if ($verbose) { push @log_levels, $INFO; } + log_init(config => $log4perl_config, + file => $session_log, + levels => \@log_levels); + my $log = Log::Log4perl->get_logger('main'); + my $gt_offset = 1; # 1 leading column in genotype files my $pr_offset = 3; # 3 leading columns in probability files @@ -81,18 +99,21 @@ sub run { } open(my $col, '<', "$columns") - or die "Failed to open column file '$columns' for reading: $!\n"; + or $log->logcroak("Failed to open column file '", $columns, + "' for reading: $!"); my $column_names = read_fon($col); - close($col) or warn "Failed to close column file '$columns'\n"; + close($col) or $log->logwarn("Failed to close column file '", + $columns, "': $!"); open(my $gti, '<', "$gt_input") - or die "Failed to open genotype file '$gt_input' for reading: $!\n"; + or $log->logcroak("Failed to open genotype file '", $gt_input, + "' for reading: $!"); open(my $gto, '>', "$gt_output") - or die "Failed to open genotype file '$gt_output' for writing: $!\n"; + or $log->logcroak("Failed to open genotype file '", $gt_output, + "' for writing: $!"); my $headers = read_gt_column_names($gti); my $cols_to_use = find_column_indices($column_names, $headers); - my $num_cols = scalar @$cols_to_use; print $gto $gt_separator, join($gt_separator, filter_columns($headers, $cols_to_use, $operation)), "\n"; @@ -100,31 +121,37 @@ sub run { my $num_genotypes = filter_gt_columns($gti, $gto, $gt_separator, $gt_offset, $gt_col_group, $cols_to_use, $operation); - close($gto) or warn "Failed to close genotype file '$gt_output'\n"; - close($gti) or warn "Failed to close genotype file '$gt_input'\n"; + + close($gto) or $log->logwarn("Failed to close genotype file '", + $gt_output, "': $!"); + close($gti) or $log->logwarn("Failed to close genotype file '", + $gt_input, "': $!"); open(my $pri, '<', "$pr_input") - or die "Failed to open probability file '$pr_input' for reading: $!\n"; + or $log->logcroak("Failed to open probability file '", + $pr_input, "' for reading: $!"); open(my $pro, '>', ">pr_output") - or die "Failed to open probability file '$pr_output' for writing: $!\n"; + or $log->logcroak("Failed to open probability file '", + $pr_output, "' for writing: $!"); my $num_probs = filter_gt_columns($pri, $pro, $pr_separator, $pr_offset, $pr_col_group, $cols_to_use, $operation); - close($pro) or warn "Failed to close probability file '$pr_output'\n"; - close($pri) or warn "Failed to close probability file '$pr_input'\n"; + close($pro) or $log->logwarn("Failed to close probability file '", + $pr_output, "': $!"); + close($pri) or $log->logwarn("Failed to close probability file '", + $pr_input, "': $!"); unless ($num_genotypes == $num_probs) { - die "Number of SNP genotype records ($num_genotypes) in '$gt_input' " . - "was not equal to the number of SNP probability records ($num_probs) " . - "in '$pr_input'\n"; + $log->logcroak("Number of SNP genotype records (", $num_genotypes, + ") in '", $gt_input, "' was not equal to the number ", + "of SNP probability records (", $num_probs, + ") in '", $pr_input, "'"); } - if ($verbose) { - my $verb = $operation . "d"; - my $num_cols = scalar @$cols_to_use; - print STDERR "$verb $num_cols columns from $num_genotypes records\n"; - } + my $verb = $operation . "d"; + my $num_cols = scalar @$cols_to_use; + $log->info("$verb $num_cols columns from $num_genotypes records"); return; } @@ -173,11 +200,11 @@ =head1 METHODS =head1 AUTHOR -Keith James +Keith James , Iain Bancarz =head1 COPYRIGHT AND DISCLAIMER -Copyright (C) 2011, 2012, 2015 Genome Research Limited. All Rights +Copyright (C) 2011, 2012, 2015, 2016 Genome Research Limited. All Rights Reserved. This program is free software: you can redistribute it and/or modify diff --git a/src/perl/bin/find_modified_files.pl b/src/perl/bin/find_modified_files.pl deleted file mode 100755 index 23f685cfc..000000000 --- a/src/perl/bin/find_modified_files.pl +++ /dev/null @@ -1,169 +0,0 @@ -#!/software/bin/perl - -use utf8; - -package main; - -use strict; -use warnings; -use Cwd qw(abs_path); -use DateTime; -use File::Basename; -use File::Find; -use Getopt::Long; -use Log::Log4perl; -use Log::Log4perl::Level; -use Pod::Usage; - -use WTSI::NPG::iRODS qw(collect_files - collect_dirs - modified_between); - -my $embedded_conf = q( - log4perl.logger.npg.irods.publish = ERROR, A1 - - log4perl.appender.A1 = Log::Log4perl::Appender::Screen - log4perl.appender.A1.utf8 = 1 - log4perl.appender.A1.layout = Log::Log4perl::Layout::PatternLayout - log4perl.appender.A1.layout.ConversionPattern = %d %p %m %n -); - -our $VERSION = ''; -our $DEFAULT_DAYS = 7; - -run() unless caller(); - -sub run { - my $days; - my $days_ago; - my $debug; - my $depth; - my $log4perl_config; - my $root; - my $type; - my $verbose; - - GetOptions('days=i' => \$days, - 'days-ago=i' => \$days_ago, - 'debug' => \$debug, - 'depth=i' => \$depth, - 'help' => sub { pod2usage(-verbose => 2, -exitval => 0) }, - 'logconf=s' => \$log4perl_config, - 'root=s' => \$root, - 'type=s' => \$type, - 'verbose' => \$verbose); - - unless ($root) { - pod2usage(-msg => "A --root argument is required\n", - -exitval => 2); - } - unless ($type) { - pod2usage(-msg => "A --type argument is required\n", - -exitval => 2); - } - - $days ||= $DEFAULT_DAYS; - $days_ago ||= 0; - - my $log; - - if ($log4perl_config) { - Log::Log4perl::init($log4perl_config); - $log = Log::Log4perl->get_logger('npg.irods.publish'); - } - else { - Log::Log4perl::init(\$embedded_conf); - $log = Log::Log4perl->get_logger('npg.irods.publish'); - - if ($verbose) { - $log->level($INFO); - } - elsif ($debug) { - $log->level($DEBUG); - } - } - - my $now = DateTime->now(); - my $end; - if ($days_ago > 0) { - $end = DateTime->from_epoch - (epoch => $now->epoch())->subtract(days => $days_ago); - } - else { - $end = $now; - } - - my $begin = DateTime->from_epoch - (epoch => $end->epoch())->subtract(days => $days); - - $log->info("Finding file of type '$type' under '$root' ", - "last modified between ", $begin->iso8601, " and ", $end->iso8601); - - my $file_test = modified_between($begin->epoch(), $end->epoch()); - my $file_regex = qr{.($type)$}msxi; - my $root_dir = abs_path($root); - - my @found = collect_files($root_dir, $file_test, $depth, $file_regex); - $log->debug("Found " . scalar @found . " matching items in '$root'"); - - foreach my $file (@found) { - print "$file\n"; - } -} - - - -__END__ - -=head1 NAME - -find_modified_files - -=head1 SYNOPSIS - -find_modified_files [--days-ago ] [--days ] \ - --root --type - -Options: - - --days-ago The number of days ago that the publication window ends. - Optional, defaults to zero (the current day). - --days The number of days in the publication window, ending at - the day given by the --days-ago argument. Any sample data - modified during this period will be considered - for publication. Optional, defaults to 7 days. - --help Display help. - --logconf A log4perl configuration file. Optional. - --root The root directory to search for sample data. - --type The data type (file suffix) of file to print. - --verbose Print messages while processing. Optional. - -=head1 DESCRIPTION - -Searches a directory recursively files that have been modified within -the n days prior to a specific time and prints their path to -STDOUT. - -=head1 METHODS - -None - -=head1 AUTHOR - -Keith James - -=head1 COPYRIGHT AND DISCLAIMER - -Copyright (c) 2013 Genome Research Limited. All Rights Reserved. - -This program is free software: you can redistribute it and/or modify -it under the terms of the Perl Artistic License or the GNU General -Public License as published by the Free Software Foundation, either -version 3 of the License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -=cut diff --git a/src/perl/bin/identity_simulation.pl b/src/perl/bin/identity_simulation.pl index cd8d94823..4f49029c5 100755 --- a/src/perl/bin/identity_simulation.pl +++ b/src/perl/bin/identity_simulation.pl @@ -9,13 +9,12 @@ package main; use FindBin qw($Bin); use Getopt::Long; -use Log::Log4perl; -use Log::Log4perl::Level; +use Log::Log4perl qw(:levels); use Pod::Usage; +use WTSI::DNAP::Utilities::ConfigureLogger qw/log_init/; use WTSI::NPG::Genotyping::Call; -use WTSI::NPG::Genotyping::QC_wip::Check::IdentitySimulator; -use WTSI::NPG::Genotyping::QC_wip::Check::SampleIdentityBayesian; +use WTSI::NPG::Genotyping::QC::BayesianIdentity::Simulator; use WTSI::NPG::Genotyping::SNPSet; use WTSI::NPG::Utilities qw(user_session_log); @@ -30,25 +29,7 @@ package main; my $uid = `whoami`; chomp($uid); -my $session_log = user_session_log($uid, 'check_identity_bed_wip'); - -my $embedded_conf = " - log4perl.logger.npg.genotyping.qc.identity = ERROR, A1, A2 - - log4perl.appender.A1 = Log::Log4perl::Appender::Screen - log4perl.appender.A1.utf8 = 1 - log4perl.appender.A1.layout = Log::Log4perl::Layout::PatternLayout - log4perl.appender.A1.layout.ConversionPattern = %d %p %m %n - - log4perl.appender.A2 = Log::Log4perl::Appender::File - log4perl.appender.A2.filename = $session_log - log4perl.appender.A2.utf8 = 1 - log4perl.appender.A2.layout = Log::Log4perl::Layout::PatternLayout - log4perl.appender.A2.layout.ConversionPattern = %d %p %m %n - log4perl.appender.A2.syswrite = 1 -"; - -my $log; +my $session_log = user_session_log($uid, 'identity_simulation'); run() unless caller(); @@ -87,20 +68,13 @@ sub run { 'total=i' => \$total, 'verbose' => \$verbose); - if ($log4perl_config) { - Log::Log4perl::init($log4perl_config); - $log = Log::Log4perl->get_logger('npg.genotyping.qc.identity'); - } - else { - Log::Log4perl::init(\$embedded_conf); - $log = Log::Log4perl->get_logger('npg.genotyping.qc.identity'); - if ($verbose) { - $log->level($INFO); - } - elsif ($debug) { - $log->level($DEBUG); - } - } + my @log_levels; + if ($debug) { push @log_levels, $DEBUG; } + if ($verbose) { push @log_levels, $INFO; } + log_init(config => $log4perl_config, + file => $session_log, + levels => \@log_levels); + my $log = Log::Log4perl->get_logger('main'); my $data_path = $Bin.'/../t/qc/check/identity'; $snpset_file ||= "$data_path/W30467_snp_set_info_1000Genomes.tsv"; @@ -108,10 +82,9 @@ sub run { my $calls = generate_calls($snpset); - my $idsim = WTSI::NPG::Genotyping::QC_wip::Check::IdentitySimulator->new( + my $idsim = WTSI::NPG::Genotyping::QC::BayesianIdentity::Simulator->new( calls => $calls, - snpset => $snpset, - logger => $log, + snpset => $snpset ); my $results; diff --git a/src/perl/bin/illuminus.pl b/src/perl/bin/illuminus.pl index e390ccaad..b3c877a72 100755 --- a/src/perl/bin/illuminus.pl +++ b/src/perl/bin/illuminus.pl @@ -13,10 +13,11 @@ package main; use File::Temp qw(tempdir); use Getopt::Long; use IO::ScalarArray; -use Log::Log4perl qw(:easy); +use Log::Log4perl qw(:levels); use POSIX qw(mkfifo); use Pod::Usage; +use WTSI::DNAP::Utilities::ConfigureLogger qw(log_init); use WTSI::DNAP::Utilities::IO qw(maybe_stdin maybe_stdout); use WTSI::NPG::Genotyping qw(read_sample_json); use WTSI::NPG::Genotyping::Illuminus qw(nullify_females @@ -24,14 +25,21 @@ package main; update_it_columns write_gt_calls write_it_header); -our $VERSION = ''; +use WTSI::NPG::Utilities qw(user_session_log); + +my $uid = `whoami`; +chomp($uid); +my $session_log = user_session_log($uid, 'perl_illuminus_wrap'); +my $log; -Log::Log4perl->easy_init($ERROR); +our $VERSION = ''; my $chromosome; +my $debug; my $end; my $executable; my $input; +my $log4perl_config; my $output; my $plink; my $samples; @@ -40,9 +48,11 @@ package main; my $whole_genome_amplified; GetOptions('chr=s' => \$chromosome, + 'debug' => \$debug, 'end=i' => \$end, 'help' => sub { pod2usage(-verbose => 2, -exitval => 0) }, 'input=s' => \$input, + 'logconf=s' => \$log4perl_config, 'output=s' => \$output, 'plink' => \$plink, 'samples=s' => \$samples, @@ -75,6 +85,14 @@ package main; -exitval => 2); } +my @log_levels; +if ($debug) { push @log_levels, $DEBUG; } +if ($verbose) { push @log_levels, $INFO; } +log_init(config => $log4perl_config, + file => $session_log, + levels => \@log_levels); +$log = Log::Log4perl->get_logger('main'); + $chromosome = uc($chromosome); $executable = 'illuminus'; @@ -102,20 +120,18 @@ package main; if ($plink) { push(@command, '-b', '-out', $output); # Maybe muffle Illuminus' STDOUT chatter - unless ($verbose) { + unless ($verbose || $debug) { push(@command, "> /dev/null"); } my $command = join(" ", @command); - if ($verbose) { - print STDERR "Executing '$command'\n"; - } + $log->info("Executing '", $command, "'"); if ($chromosome eq 'Y') { nullify_females($input, $command, \@samples); } else { - system($command) == 0 or die "Failed to execute '$command'\n"; + system($command) && $log->logcroak("Failed to execute '", $command, "'"); } exit(0); @@ -135,7 +151,7 @@ package main; my $pid = fork(); if (! defined $pid) { - die "Failed to fork: $!\n"; + $log->logcroak("Failed to fork: $!"); } elsif ($pid) { my @calls; @@ -146,18 +162,20 @@ package main; # interleave reads and make this a nice stream. We have to slurp all # of one, then the other. open(my $calls, '<', "$calls_fifo") - or die "Failed to open '$calls_fifo': $!\n"; + or $log->logcroak("Failed to open FIFO '", $calls_fifo, "': $!"); while (my $line = <$calls>) { push(@calls, $line); } - close($calls) or warn "Failed to close FIFO $calls_fifo: $!\n"; + close($calls) or $log->logwarn("Failed to close FIFO '", + $calls_fifo, "': $!"); open(my $probs, '<', "$probs_fifo") - or die "Failed to open '$probs_fifo': $!\n"; + or $log->logcroak("Failed to open '", $probs_fifo, "': $!"); while (my $line = <$probs>) { push(@probs, $line); } - close($probs) or warn "Failed to close FIFO $probs_fifo: $!\n"; + close($probs) or $log->logwarn("Failed to close FIFO '", + $probs_fifo, "': $!"); # write_gt_calls requires streams, so this is a shim to pretend that # we have such @@ -171,20 +189,19 @@ package main; } else { # Maybe muffle Illuminus' STDOUT chatter - unless ($verbose) { + unless ($verbose || $debug) { push(@command, "> /dev/null"); } my $command = join(" ", @command); - if ($verbose) { - print STDERR "Executing '$command'\n"; - } + $log->info("Executing '", $command, "'"); if ($chromosome eq 'Y') { nullify_females($input, $command, \@samples, $verbose); } else { - system($command) == 0 or die "Failed to execute '$command'\n"; + system($command) && $log->logcroak("Failed to execute '", + $command, "'"); } exit; @@ -213,7 +230,7 @@ sub write_gender_codes { my ($file, $chromosome, $samples) = @_; open(my $genders, '>', "$file") - or die "Failed to open '$file' for writing: $!\n"; + or $log->logcroak("Failed to open '", $file, "' for writing: $!"); foreach my $sample (@$samples) { my $code = 0; if ($chromosome =~ m{^M}msx) { @@ -223,12 +240,14 @@ sub write_gender_codes { } unless (defined $code) { my $uri = $sample->{uri}; - die "Failed to find a gender code for sample $uri in '$file'\n"; + $log->logcroak("Failed to find a gender code for sample ", $uri, + " in '", $file, "': $!"); } print $genders "$code\n"; } - close($genders) or warn "Failed to close gender code file '$file'\n"; + close($genders) or $log->logwarn("Failed to close gender code file '", + $file, "': $!"); return $file; } @@ -236,7 +255,8 @@ sub write_gender_codes { sub make_fifo { my $filename = shift; - mkfifo($filename, '0400') or die "Failed to create FIFO '$filename': $!\n"; + mkfifo($filename, '0400') or $log->logcroak("Failed to create FIFO '", + $filename, "': $!"); return $filename; } @@ -286,11 +306,11 @@ =head1 METHODS =head1 AUTHOR -Keith James +Keith James , Iain Bancarz =head1 COPYRIGHT AND DISCLAIMER -Copyright (C) 2012, 2015 Genome Research Limited. All Rights Reserved. +Copyright (C) 2012, 2015, 2016 Genome Research Limited. All Rights Reserved. This program is free software: you can redistribute it and/or modify it under the terms of the Perl Artistic License or the GNU General diff --git a/src/perl/bin/plate_heatmap_index.pl b/src/perl/bin/plate_heatmap_index.pl index 412259f0a..fdb2d1333 100755 --- a/src/perl/bin/plate_heatmap_index.pl +++ b/src/perl/bin/plate_heatmap_index.pl @@ -9,6 +9,7 @@ use warnings; use strict; +use Carp; use CGI qw/:standard *table/; use Cwd; use File::Basename; @@ -64,10 +65,12 @@ sub getPlateInfo { my ($experiment, $plotDir, $outFileName) = @ARGV; # experiment name, input/output directory, output filename if (@ARGV!=3) { - die "Usage: $0 experiment_name input/output_directory output_filename\n"; + croak("Usage: $0 experiment_name input/output_directory ", + "output_filename\n"); } elsif (!(-e $plotDir && -d $plotDir)) { - die "Output path '$plotDir' does not exist or is not a directory\n"; -} + croak("Output path '", $plotDir, + "' does not exist or is not a directory"); +} my @refs = getPlateInfo($plotDir); my @plates = @{shift(@refs)}; my %crPlots = %{shift(@refs)}; @@ -75,7 +78,8 @@ sub getPlateInfo { my %magPlots = %{shift(@refs)}; # must write index to given plot directory -- otherwise links are broken my $outPath = $plotDir.'/'.$outFileName; -open my $out, ">", $outPath || die "Cannot open output path $outPath: $!\n"; +open my $out, ">", $outPath || croak("Cannot open output path '", + $outPath, "': $!"); print $out header(-type=>''), # create the HTTP header; content-type declaration not needed for writing to file start_html(-title=>"$experiment: Plate heatmap index", -author=>'Iain Bancarz ', @@ -100,9 +104,43 @@ sub getPlateInfo { } print $out end_table(); print $out end_html(); -close $out; +close $out || croak("Cannot close output path '", $outPath, "'");; # test output for XML validity -open my $fh, "<", $outPath; -if (WTSI::NPG::Genotyping::QC::QCPlotTests::xmlOK($fh)) { close $fh; exit(0); } # no error -else { close $fh; exit(1); } # error found +open my $fh, "<", $outPath || croak("Cannot open '", $outPath, "'"); +my $xml_ok = WTSI::NPG::Genotyping::QC::QCPlotTests::xmlOK($fh); +close $fh || croak("Cannot close '", $outPath, "'"); +unless ($xml_ok) { croak("Output '", $outPath, "' is not valid XML"); } + + + +__END__ + +=head1 NAME + +plate_heatmap_index + +=head1 DESCRIPTION + +Generate an HTML index page for plate heatmap plots + +=head1 AUTHOR + +Keith James , Iain Bancarz + +=head1 COPYRIGHT AND DISCLAIMER + +Copyright (C) 2012, 2013, 2014, 2015, 2016 Genome Research Limited. +All Rights Reserved. + +This program is free software: you can redistribute it and/or modify +it under the terms of the Perl Artistic License or the GNU General +Public License as published by the Free Software Foundation, either +version 3 of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +=cut diff --git a/src/perl/bin/plate_heatmap_plots.pl b/src/perl/bin/plate_heatmap_plots.pl index 485885d28..c7b6445d9 100755 --- a/src/perl/bin/plate_heatmap_plots.pl +++ b/src/perl/bin/plate_heatmap_plots.pl @@ -22,12 +22,12 @@ GetOptions("dbpath=s" => \$dbPath, "inipath=s" => \$iniPath, - "mode=s" => \$mode, + "mode=s" => \$mode, "out_dir=s" => \$outDir, "h|help" => \$help); if ($help) { - print STDERR "Usage: $0 [ options ] + print STDERR "Usage: $0 [ options ] Script to generate heatmap plots for each sample on a plate surface. Plots include call rate, autosome heterozygosity, and xy intensity difference. Appropriate input data must be supplied to STDIN: either sample_cr_het.txt or the *XYdiff.txt file. @@ -51,13 +51,13 @@ $outDir ||= 'platePlots'; if ((!$dbPath) && (!$iniPath)) { - die "Must supply at least one of pipeline database path and .ini path!\n"; + croak("Must supply at least one of pipeline database path and .ini path!"); } if ($dbPath && !(-r $dbPath)) { - die "Cannot read pipeline database path $dbPath\n"; + croak("Cannot read pipeline database path '", $dbPath, "'"); } if ($iniPath && !(-r $iniPath)) { - die "Cannot read .ini path $iniPath\n"; + croak("Cannot read .ini path '", $iniPath, "'"); } sub getXYdiffMinMax { @@ -86,7 +86,7 @@ sub makePlots { my $plate = $comments{'PLATE_NAME'}; # TODO fail silently for reserved filenames, eg. xydiff_boxplot.txt if (not(defined($plate))) { - print STDERR "WARNING: Cannot read plate name from $path. Skipping.\n"; + carp("Cannot read plate name from '", $path, "'. Skipping."); next; } $plate =~ s/\s+/_/msx; # get rid of spaces in plate name (if any) @@ -153,7 +153,7 @@ sub readData { } @allResults = sort {$a<=>$b} @allResults; # sort numerically if ($mode eq 'xydiff') { # special plot range for xydiff - ($plotMin, $plotMax) = getXYdiffMinMax(\@allResults); + ($plotMin, $plotMax) = getXYdiffMinMax(\@allResults); } else { # default to plot range = data range $plotMin = $allResults[0]; $plotMax = $allResults[-1]; @@ -167,14 +167,15 @@ sub readComments { # header lines of the form '# KEY VALUE' ; VALUE may contain spaces! my $inPath = shift; my %comments = (); - open my $in, "<", $inPath || die "Cannot open input path $inPath: $!\n"; + open my $in, "<", $inPath || croak("Cannot open input path '", + $inPath, "': $!"); while (<$in>) { chomp; unless (m{^\#}msx) { next; } my @words = split /\s/msx; $comments{$words[1]} = join(' ', @words[2..$#words]); # value may contain spaces! } - close $in; + close $in || croak("Cannot close input path '", $inPath, "'"); return %comments; } @@ -188,7 +189,8 @@ sub writeGrid { my $outPath = $outDir."/".$outPrefix.$plate.".txt"; my @keyList = keys(%comments); @keyList = sort(@keyList); - open my $out, ">", $outPath || die "Cannot open output path $outPath: $!\n"; + open my $out, ">", $outPath || croak("Cannot open output path '", + $outPath, "': $!"); foreach my $key (@keyList) { print $out "# $key $comments{$key}\n"; } for (my $y=1; $y<=$yMax; $y++) { # x, y counts start at 1 my @row = (); @@ -199,7 +201,7 @@ sub writeGrid { } print $out join("\t", @row)."\n"; } - close $out; + close $out || croak("Cannot close output path '", $outPath, "'"); return 1; } @@ -210,17 +212,19 @@ sub writePlateData { my ($dataRef, $prefix, $xMax, $yMax, $outDir, $min, $max) = @_; # will append plate name to prefix my %data = %$dataRef; if (not -e $outDir) { - mkdir($outDir) || die "Failed to create output directory $outDir : $!\n"; + mkdir($outDir) || croak("Failed to create output directory '", + $outDir, "'"); } - elsif (not -d $outDir) { die "$outDir is not a directory: $!\n"; } - elsif (not -w $outDir) { die "Directory $outDir is not writable: $!\n"; } - foreach my $plate (keys(%data)) { + elsif (not -d $outDir) { croak("'", $outDir, "' is not a directory"); } + elsif (not -w $outDir) { croak("Directory '", $outDir, + "' is not writable"); } + foreach my $plate (keys(%data)) { my %comments = ( PLATE_NAME => $plate, PLOT_MIN => $min, PLOT_MAX => $max, ); - writeGrid($data{$plate}, $outDir, $prefix, $xMax, $yMax, \%comments); + writeGrid($data{$plate}, $outDir, $prefix, $xMax, $yMax, \%comments); } return 1; } @@ -231,34 +235,34 @@ sub run { my $test = 1; # keep tests on by default, since they are very quick to run my %plotScripts = ( # R plotting scripts for each mode cr => 'plotCrPlate.R', - het => 'plotHetPlate.R', - xydiff => 'plotXYdiffPlate.R', + het => 'plotHetPlate.R', + xydiff => 'plotXYdiffPlate.R', magnitude => 'plotMagnitudePlate.R', ); my %index = ( # index in whitespace-separated input data for each mode cr => 1, - het => 2, - xydiff => 1, + het => 2, + xydiff => 1, magnitude => 1, ); my %minMaxArgs = ( # supply min/max arguments to R script? cr => 0, - het => 0, - xydiff => 1, + het => 0, + xydiff => 1, magnitude => 0,); - my $inputFH = \*STDIN; + my $inputFH = \*STDIN; # read data from STDIN; output data values by plate & useful stats my ($dataOK, $dataRef, $xMax, $yMax, $plotMin, $plotMax) = readData($inputFH, $index{$mode}, $mode, $dbPath, $iniPath); my $ok = 1; if ($dataOK) { - writePlateData($dataRef, $mode.'_', $xMax, $yMax, $outDir, - $plotMin, $plotMax); - $ok = makePlots($outDir, $plotScripts{$mode}, $mode."_*", - "plot_${mode}_", $minMaxArgs{$mode}, $test); + writePlateData($dataRef, $mode.'_', $xMax, $yMax, $outDir, + $plotMin, $plotMax); + $ok = makePlots($outDir, $plotScripts{$mode}, $mode."_*", + "plot_${mode}_", $minMaxArgs{$mode}, $test); } else { - print STDERR "Cannot parse plate/well locations; omitting ". - "plate heatmap plots.\n"; + carp("Cannot parse plate/well locations; omitting ", + "plate heatmap plots."); } return $ok; } @@ -266,3 +270,35 @@ sub run { my $ok = run($mode, $outDir, $dbPath, $iniPath); if ($ok) { exit(0); } else { exit(1); } + + +__END__ + +=head1 NAME + +plate_heatmap_plots + +=head1 DESCRIPTION + +Generate heatmap plots of QC metrics by plate + +=head1 AUTHOR + +Keith James , Iain Bancarz + +=head1 COPYRIGHT AND DISCLAIMER + +Copyright (C) 2012, 2013, 2015, 2016 Genome Research Limited. +All Rights Reserved. + +This program is free software: you can redistribute it and/or modify +it under the terms of the Perl Artistic License or the GNU General +Public License as published by the Free Software Foundation, either +version 3 of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +=cut diff --git a/src/perl/bin/plot_box_bean.pl b/src/perl/bin/plot_box_bean.pl index 2a50dadf4..0fb3fa644 100755 --- a/src/perl/bin/plot_box_bean.pl +++ b/src/perl/bin/plot_box_bean.pl @@ -24,7 +24,7 @@ our $VERSION = ''; Log::Log4perl->easy_init($ERROR); -my $log = Log::Log4perl->get_logger("genotyping"); +my $log = Log::Log4perl->get_logger(); my ($mode, $type, $outDir, $title, $help, $dbpath, $inipath); @@ -38,7 +38,7 @@ if ($help) { - print STDERR "Usage: $0 [ options ] + print STDERR "Usage: $0 [ options ] Script to boxplots by plate for QC metrics. Plots include call rate, autosome heterozygosity, and xy intensity difference. Appropriate input data must be supplied to STDIN: either sample_cr_het.txt or the *XYdiff.txt file. @@ -64,19 +64,19 @@ $title ||= "UNTITLED"; unless ($mode eq "cr" || $mode eq "het" || $mode eq "xydiff") { - die "Illegal mode argument: $mode: $!\n"; + $log->logcroak("Illegal mode argument: ", $mode, "': $!"); } unless ($type eq "box" || $type eq "bean" || $type eq "both") { - die "Illegal type argument: $type: $!\n"; + $log->logcroak("Illegal type argument: '", $type, "': $!"); } if ((!$dbpath) && (!$inipath)) { - die "Must supply at least one of pipeline database path and .ini path!\n"; + $log->logcroak("Must supply at least one of pipeline database path and .ini path"); } if ($dbpath && !(-r $dbpath)) { - die "Cannot read pipeline database path $dbpath\n"; + $log->logcroak("Cannot read pipeline database path '", $dbpath, "': $!"); } if ($inipath && !(-r $inipath)) { - die "Cannot read .ini path $inipath\n"; + $log->logcroak("Cannot read .ini path '", $inipath, "'"); } sub writeBoxplotInput { @@ -90,7 +90,8 @@ sub writeBoxplotInput { chomp; my @words = split; unless ($plateLocs{$words[0]}) { - die "No plate location for sample '$words[0]'; exiting\n"; + $log->logcroak("No plate location for sample '", $words[0], + "'; exiting"); } my ($plate, $addressLabel) = @{$plateLocs{$words[0]}}; if ($plate) { @@ -106,19 +107,19 @@ sub runPlotScript { my ($mode, $bean, $outDir, $title, $textPath) = @_; my %beanPlotScripts = ( # R plotting scripts for each mode cr => 'beanplotCR.R', - het => 'beanplotHet.R', + het => 'beanplotHet.R', xydiff => 'beanplotXYdiff.R', ); my %boxPlotScripts = ( # R plotting scripts for each mode cr => 'boxplotCR.R', het => 'boxplotHet.R', xydiff => 'boxplotXYdiff.R', ); my ($plotScript, $pngOutPath); - if ($bean) { - $plotScript = $beanPlotScripts{$mode}; + if ($bean) { + $plotScript = $beanPlotScripts{$mode}; $pngOutPath = $outDir."/".$mode."_beanplot.png"; } - else { - $plotScript = $boxPlotScripts{$mode}; + else { + $plotScript = $boxPlotScripts{$mode}; $pngOutPath = $outDir."/".$mode."_boxplot.png"; } my @args = ($plotScript, $textPath, $title); @@ -139,14 +140,16 @@ sub run { my ($mode, $type, $outDir, $title, $dbpath, $inipath) = @_; my %index = ( # index in whitespace-separated input data for each mode; use to write .txt input to R scripts cr => 1, - het => 2, + het => 2, xydiff => 1, ); my $input = \*STDIN; my $textOutPath = $outDir."/".$mode."_boxplot.txt"; - open my $output, ">", $textOutPath || croak "Cannot open output file: $!"; + open my $output, ">", $textOutPath || + $log->logcroak("Cannot open output file '", $textOutPath, "': $!"); my $inputOK = writeBoxplotInput($input, $output, $index{$mode}, $dbpath, $inipath); - close $output; - my $plotsOK = 0; + close $output || $log->logcroak("Cannot close output file '", + $textOutPath, "'");; + my $plotsOK = 0; if ($inputOK) { if ($type eq 'both' || $type eq 'box') { $plotsOK = runPlotScript($mode, 0, $outDir, $title, $textOutPath); # boxplot @@ -155,7 +158,7 @@ sub run { $plotsOK = runPlotScript($mode, 1, $outDir, $title, $textOutPath); # beanplot } } else { - croak "\tERROR: Cannot parse any plate names from standard input"; + $log->logcroak("Cannot parse any plate names from standard input"); } return $plotsOK; } @@ -163,3 +166,35 @@ sub run { my $ok = run($mode, $type, $outDir, $title, $dbpath, $inipath); if ($ok) { exit(0); } else { exit(1); } + + +__END__ + +=head1 NAME + +plot_box_bean + +=head1 DESCRIPTION + +Generate boxplots and beanplots of QC metrics using R + +=head1 AUTHOR + +Keith James , Iain Bancarz + +=head1 COPYRIGHT AND DISCLAIMER + +Copyright (C) 2012, 2013, 2015, 2016 Genome Research Limited. +All Rights Reserved. + +This program is free software: you can redistribute it and/or modify +it under the terms of the Perl Artistic License or the GNU General +Public License as published by the Free Software Foundation, either +version 3 of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +=cut diff --git a/src/perl/bin/plot_cr_het_density.pl b/src/perl/bin/plot_cr_het_density.pl index c5e7f7519..a141efa54 100755 --- a/src/perl/bin/plot_cr_het_density.pl +++ b/src/perl/bin/plot_cr_het_density.pl @@ -9,6 +9,7 @@ use strict; use warnings; +use Carp; use Getopt::Long; use FindBin qw($Bin); use POSIX qw(floor); @@ -76,7 +77,7 @@ sub readCrHet { my $qMax = shift; $qMax ||= 40; my $crMax = 1 - 10**(-$qMax/10); # truncate very high CR (may have CR=100% for few SNPs) - my ($crIndex, $hetIndex) = (1,2); + my ($crIndex, $hetIndex) = (1,2); my @coords = (); my ($hetMin, $hetMax) = (1, 0); while (<$input>) { @@ -85,7 +86,7 @@ sub readCrHet { my @words = split; my $cr = $words[$crIndex]; my $crScore; # convert cr to phred scale - if ($cr > $crMax) { $crScore = $qMax; } + if ($cr > $crMax) { $crScore = $qMax; } else { $crScore = -10 * (log(1 - $words[$crIndex]) / log(10)); } my $het = $words[$hetIndex]; if ($het < $hetMin) { $hetMin = $het; } @@ -108,10 +109,10 @@ sub writeTable { sub run { my $title = shift; my $outDir = shift; - my @names = ('crHetDensityHeatmap.txt', 'crHetDensityHeatmap.pdf', - 'crHetDensityHeatmap.png', + my @names = ('crHetDensityHeatmap.txt', 'crHetDensityHeatmap.pdf', + 'crHetDensityHeatmap.png', 'crHet.txt', 'crHetDensityScatter.pdf', - 'crHetDensityScatter.png', 'crHistogram.png', + 'crHetDensityScatter.png', 'crHistogram.png', 'hetHistogram.png'); my @paths = (); foreach my $name (@names) { push(@paths, $outDir.'/'.$name); } @@ -124,26 +125,59 @@ sub run { my ($xmin, $xmax, $xsteps, $ysteps) = (0, 41, 40, 40); my @counts = getBinCounts($coordsRef, $xmin, $xmax, $xsteps, $hetMin, $hetMax, $ysteps); open $output, ">", $heatText || - die "Cannot open output path $heatText: $!\n"; + croak("Cannot open output path '", $heatText, "': $!"); writeTable(\@counts, $output); - close $output; + close $output || croak("Cannot close output path '", $heatText, "'");; @args = ($heatPlotScript, $heatText, $title, $hetMin, $hetMax, $heatPdf); @outputs = ($heatPng,); my $plotsOK = WTSI::NPG::Genotyping::QC::QCPlotTests::wrapPlotCommand(\@args, \@outputs); ### do scatterplot & histograms ### if ($plotsOK) { - open $output, ">", $scatterText || - die "Cannot open output path $scatterText: $!\n"; - writeTable($coordsRef, $output); # note that CR coordinates have been transformed to phred scale - close $output; + open $output, ">", $scatterText || + croak("Cannot open output path '", $scatterText, "': $!"); + writeTable($coordsRef, $output); # note that CR coordinates have been transformed to phred scale + close $output || + croak("Cannot close output path '", $scatterText, "'"); my $scatterPlotScript = "plotCrHetDensity.R"; @args = ($scatterPlotScript, $scatterText, $title, $scatterPdf); @outputs = ($scatterPng, $crHist, $hetHist); $plotsOK = WTSI::NPG::Genotyping::QC::QCPlotTests::wrapPlotCommand(\@args, \@outputs); } - return $plotsOK; + return $plotsOK; } my $ok = run($title, $outDir, $test); if ($ok) { exit(0); } else { exit(1); } + + +__END__ + +=head1 NAME + +plot_cr_het_density + +=head1 DESCRIPTION + +Create density plots for genotype call rate and heterozygosity using R + +=head1 AUTHOR + +Keith James , Iain Bancarz + +=head1 COPYRIGHT AND DISCLAIMER + +Copyright (C) 2012, 2013, 2014, 2015, 2016 Genome Research Limited. +All Rights Reserved. + +This program is free software: you can redistribute it and/or modify +it under the terms of the Perl Artistic License or the GNU General +Public License as published by the Free Software Foundation, either +version 3 of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +=cut diff --git a/src/perl/bin/plot_fail_causes.pl b/src/perl/bin/plot_fail_causes.pl index 492c89a1a..ddb4ea68f 100755 --- a/src/perl/bin/plot_fail_causes.pl +++ b/src/perl/bin/plot_fail_causes.pl @@ -165,19 +165,19 @@ sub writeFailCounts { }; } open my $out, ">", $failText || - die "Cannot open output file $failText: $!\n"; + croak("Cannot open output file '", $failText, "': $!"); my @metrics = sort(keys(%singleFails)); foreach my $metric (@metrics) { print $out $metric."\t".$singleFails{$metric}."\n"; } - close $out; + close $out || croak("Cannot close output file '", $failText, "'"); my @failCombos = sort(keys(%combinedFails)); open $out, ">", $comboText || - die "Cannot open output file $failText: $!\n"; + croak("Cannot open output file '", $comboText, "': $!"); foreach my $combo (@failCombos) { print $out $combo."\t".$combinedFails{$combo}."\n"; } - close $out; + close $out || croak("Cannot close output file '", $comboText, "': $!"); return @failedSamples; } @@ -191,7 +191,8 @@ sub writeFailedCrHet { my @header = qw(sample cr het); my @keys = qw(duplicate gender identity magnitude); push(@header, @keys); - open my $out, ">", $outPath || die "Cannot open output path $outPath: $!\n"; + open my $out, ">", $outPath || croak("Cannot open output path '", + $outPath, "': $!"); print $out join("\t", @header)."\n"; foreach my $fieldsRef (@data) { my @fields = splice(@$fieldsRef, 0, 3); @@ -208,7 +209,7 @@ sub writeFailedCrHet { } print $out join("\t", @fields)."\n"; } - close $out; + close $out || croak("Cannot close output path '", $outPath, "': $!"); return 1; } @@ -217,7 +218,7 @@ sub run { my ($inputPath, $qcConfigPath, $outputsRef, $title, $crHetPath) = @_; my %qcResults = WTSI::NPG::Genotyping::QC::QCPlotShared::readMetricResultHash($inputPath, $qcConfigPath); unless (containsFailedSample(\%qcResults)) { - print STDERR "No samples failed QC thresholds; omitting failure plots.\n"; + carp("No samples failed QC thresholds; omitting failure plots."); return 1; } my ($failText, $comboText, $causeText, $comboPdf, $causePdf, @@ -239,7 +240,7 @@ sub run { @args = ("plotCombinedFails.R", $comboText, $title, $comboPdf); @outputs = ($comboPng,); $ok = WTSI::NPG::Genotyping::QC::QCPlotTests::wrapPlotCommand(\@args, \@outputs); - unless ($ok) { confess "Error for combined failure barplot: $!"; } + unless ($ok) { confess "Error for combined failure barplot: $!"; } my %thresholds = WTSI::NPG::Genotyping::QC::QCPlotShared::readThresholds($qcConfigPath); my ($hetMean, $hetSd) = findHetMeanSd($crHetPath); my $hetMaxDist = $hetSd * $thresholds{'heterozygosity'}; @@ -253,3 +254,35 @@ sub run { my $allPlotsOK = run($inPath, $configPath, \@outputPaths, $title, $crHetPath); if ($allPlotsOK) { exit(0); } else { exit(1); } + + +__END__ + +=head1 NAME + +plot_fail_causes + +=head1 DESCRIPTION + +Plot causes of genotyping QC failure using R + +=head1 AUTHOR + +Keith James , Iain Bancarz + +=head1 COPYRIGHT AND DISCLAIMER + +Copyright (C) 2012, 2013, 2014, 2015, 2016 Genome Research Limited. +All Rights Reserved. + +This program is free software: you can redistribute it and/or modify +it under the terms of the Perl Artistic License or the GNU General +Public License as published by the Free Software Foundation, either +version 3 of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +=cut diff --git a/src/perl/bin/plot_metric_scatter.pl b/src/perl/bin/plot_metric_scatter.pl index b210284a2..e549f790a 100755 --- a/src/perl/bin/plot_metric_scatter.pl +++ b/src/perl/bin/plot_metric_scatter.pl @@ -19,10 +19,10 @@ our $VERSION = ''; Log::Log4perl->easy_init($ERROR); -my $log = Log::Log4perl->get_logger("genotyping"); +my $log = Log::Log4perl->get_logger(); -my ($qcDir, $outDir, $title, $help, $config, $gender, $dbpath, $inipath, - $resultpath, $maxBatch, $noIntensity); +my ($qcDir, $outDir, $title, $help, $config, $gender, $dbpath, $inipath, + $resultpath, $maxBatch); GetOptions("qcdir=s" => \$qcDir, "outdir=s" => \$outDir, @@ -32,7 +32,6 @@ "gender=s" => \$gender, "inipath=s" => \$inipath, "resultpath=s" => \$resultpath, - "no-intensity" => \$noIntensity, "max" => \$maxBatch, "h|help" => \$help); @@ -52,7 +51,6 @@ --gender=PATH Path to .txt file with gender thresholds --qcdir=PATH Directory for QC input --outdir=PATH Directory for output; defaults to qcdir ---no-intensity Omit intensity metric (normalized signal magnitude) --max Maximum number of samples on any one plot --help Print this help text and exit Unspecified options will receive default values. @@ -70,9 +68,40 @@ my @paths = ($qcDir, $outDir, $dbpath, $inipath, $resultpath, $config); foreach my $path (@paths) { - if (!(-r $path)) { croak "Cannot read path $path"; } + if (!(-r $path)) { croak("Cannot read path '", $path, "'"); } } -runAllMetrics($qcDir, $outDir, $config, $gender, $dbpath, $inipath, - $resultpath, $maxBatch, $noIntensity); +runAllMetrics($qcDir, $outDir, $config, $gender, $dbpath, $inipath, + $resultpath, $maxBatch); + +__END__ + +=head1 NAME + +plot_metric_scatter + +=head1 DESCRIPTION + +Create scatterplots of QC metrics using R + +=head1 AUTHOR + +Keith James , Iain Bancarz + +=head1 COPYRIGHT AND DISCLAIMER + +Copyright (C) 2012, 2013, 2015, 2017 Genome Research Limited. +All Rights Reserved. + +This program is free software: you can redistribute it and/or modify +it under the terms of the Perl Artistic License or the GNU General +Public License as published by the Free Software Foundation, either +version 3 of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +=cut diff --git a/src/perl/bin/publish_expression_analysis.pl b/src/perl/bin/publish_expression_analysis.pl index d468afa61..79c0db3c1 100755 --- a/src/perl/bin/publish_expression_analysis.pl +++ b/src/perl/bin/publish_expression_analysis.pl @@ -12,43 +12,27 @@ package main; use DateTime; use Getopt::Long; use List::AllUtils qw(uniq); -use Log::Log4perl; -use Log::Log4perl::Level; +use Log::Log4perl qw(:levels); use Net::LDAP; use Pod::Usage; use URI; use UUID; +use WTSI::DNAP::Utilities::ConfigureLogger qw(log_init); use WTSI::DNAP::Utilities::IO qw(maybe_stdin); use WTSI::NPG::Database::Warehouse; use WTSI::NPG::Expression::AnalysisPublisher; use WTSI::NPG::Expression::ChipLoadingManifestV1; use WTSI::NPG::Expression::ChipLoadingManifestV2; use WTSI::NPG::Expression::Publisher; -use WTSI::NPG::Utilities qw(collect_files trim user_session_log); +use WTSI::NPG::Utilities qw(trim user_session_log); +use WTSI::NPG::Utilities::Collector; our $VERSION = ''; my $uid = `whoami`; chomp($uid); my $session_log = user_session_log($uid, 'publish_expression_analysis'); - -my $embedded_conf = " - log4perl.logger.npg.irods.publish = ERROR, A1, A2 - - log4perl.appender.A1 = Log::Log4perl::Appender::Screen - log4perl.appender.A1.utf8 = 1 - log4perl.appender.A1.layout = Log::Log4perl::Layout::PatternLayout - log4perl.appender.A1.layout.ConversionPattern = %d %p %m %n - - log4perl.appender.A2 = Log::Log4perl::Appender::File - log4perl.appender.A2.filename = $session_log - log4perl.appender.A2.utf8 = 1 - log4perl.appender.A2.layout = Log::Log4perl::Layout::PatternLayout - log4perl.appender.A2.layout.ConversionPattern = %d %p %m %n - log4perl.appender.A2.syswrite = 1 -"; - my $log; our $DEFAULT_INI = $ENV{HOME} . '/.npg/genotyping.ini'; @@ -140,21 +124,13 @@ sub run { -exitval => 3); } - if ($log4perl_config) { - Log::Log4perl::init($log4perl_config); - $log = Log::Log4perl->get_logger('npg.irods.publish'); - } - else { - Log::Log4perl::init(\$embedded_conf); - $log = Log::Log4perl->get_logger('npg.irods.publish'); - - if ($verbose) { - $log->level($INFO); - } - elsif ($debug) { - $log->level($DEBUG); - } - } + my @log_levels; + if ($debug) { push @log_levels, $DEBUG; } + if ($verbose) { push @log_levels, $INFO; } + log_init(config => $log4perl_config, + file => $session_log, + levels => \@log_levels); + $log = Log::Log4perl->get_logger('main'); $log->info("Publishing samples from '$sample_source' ", "to '$publish_sample_dest'"); @@ -190,18 +166,16 @@ sub run { my $publication_time = DateTime->now; my $ssdb = WTSI::NPG::Database::Warehouse->new (name => 'sequencescape_warehouse', - inifile => $config, - logger => $log)->connect(RaiseError => 1, - mysql_enable_utf8 => 1, - mysql_auto_reconnect => 1); + inifile => $config)->connect(RaiseError => 1, + mysql_enable_utf8 => 1, + mysql_auto_reconnect => 1); my @data_files = find_data_files($sample_source, $manifest); my $sample_publisher = WTSI::NPG::Expression::Publisher->new (data_files => \@data_files, manifest => $manifest, publication_time => $publication_time, - sequencescape_db => $ssdb, - logger => $log); + sequencescape_db => $ssdb); # Includes secondary metadata (from warehouse) $sample_publisher->publish($publish_sample_dest); @@ -211,8 +185,7 @@ sub run { manifest => $manifest, publication_time => $publication_time, sample_archive => $publish_sample_dest, - irods => $sample_publisher->irods, - logger => $log); + irods => $sample_publisher->irods); # Uses the secondary metadata added above to find the sample data in # iRODS for cross-referencing @@ -252,11 +225,12 @@ sub find_data_files { $log->debug("Finding sample data files matching regex '$filename_regex'"); - my $sample_dir = abs_path($sample_source); - my $file_test = sub { return $_[0] =~ $filename_regex }; - my $relative_depth = 3; - - return collect_files($sample_dir, $file_test, $relative_depth); + my $collector = WTSI::NPG::Utilities::Collector->new( + root => abs_path($sample_source), + depth => 3, + regex => $filename_regex, + ); + return $collector->collect_files_simple(); } __END__ @@ -296,7 +270,7 @@ =head1 METHODS =head1 AUTHOR -Keith James +Keith James , Iain Bancarz =head1 COPYRIGHT AND DISCLAIMER diff --git a/src/perl/bin/publish_fluidigm_genotypes.pl b/src/perl/bin/publish_fluidigm_genotypes.pl index 42376ca28..bdc7fd737 100755 --- a/src/perl/bin/publish_fluidigm_genotypes.pl +++ b/src/perl/bin/publish_fluidigm_genotypes.pl @@ -7,33 +7,27 @@ package main; use Cwd qw(abs_path); use DateTime; use Getopt::Long; -use Log::Log4perl; -use Log::Log4perl::Level; +use Log::Log4perl qw(:levels); use Pod::Usage; use Try::Tiny; +use WTSI::DNAP::Utilities::ConfigureLogger qw(log_init); use WTSI::NPG::Database::MLWarehouse; use WTSI::NPG::Genotyping::Fluidigm::ExportFile; use WTSI::NPG::Genotyping::Fluidigm::Publisher; use WTSI::NPG::Genotyping::Fluidigm::ResultSet; -use WTSI::NPG::Utilities qw(collect_files - collect_dirs - modified_between); - -my $embedded_conf = q( - log4perl.logger.npg.irods.publish = ERROR, A1 - - log4perl.appender.A1 = Log::Log4perl::Appender::Screen - log4perl.appender.A1.utf8 = 1 - log4perl.appender.A1.layout = Log::Log4perl::Layout::PatternLayout - log4perl.appender.A1.layout.ConversionPattern = %d %p %m %n -); +use WTSI::NPG::Utilities qw(user_session_log); +use WTSI::NPG::Utilities::Collector; our $VERSION = ''; our $DEFAULT_INI = $ENV{HOME} . "/.npg/genotyping.ini"; our $DEFAULT_DAYS = 7; our $DEFAULT_REFERENCE_PATH = '/seq/fluidigm/multiplexes'; +my $uid = `whoami`; +chomp($uid); +my $session_log = user_session_log($uid, 'publish_fluidigm_genotypes'); + run() unless caller(); sub run { my $config; @@ -73,23 +67,13 @@ sub run { $days_ago ||= 0; $reference_path ||= $DEFAULT_REFERENCE_PATH;; - my $log; - - if ($log4perl_config) { - Log::Log4perl::init($log4perl_config); - $log = Log::Log4perl->get_logger('npg.irods.publish'); - } - else { - Log::Log4perl::init(\$embedded_conf); - $log = Log::Log4perl->get_logger('npg.irods.publish'); - - if ($verbose) { - $log->level($INFO); - } - elsif ($debug) { - $log->level($DEBUG); - } - } + my @log_levels; + if ($debug) { push @log_levels, $DEBUG; } + if ($verbose) { push @log_levels, $INFO; } + log_init(config => $log4perl_config, + file => $session_log, + levels => \@log_levels); + my $log = Log::Log4perl->get_logger('main'); my $whdb = WTSI::NPG::Database::MLWarehouse->new (name => 'multi_lims_warehouse', @@ -106,21 +90,22 @@ sub run { else { $end = $now; } - my $begin = DateTime->from_epoch (epoch => $end->epoch)->subtract(days => $days); - my $dir_test = modified_between($begin->epoch, $end->epoch); - my $dir_regex = qr{^\d{10}$}msxi; my $source_dir = abs_path($source); - my $relative_depth = 2; - $log->info("Publishing from '$source_dir' to '$publish_dest' Fluidigm ", "results finished between ", $begin->iso8601, " and ", $end->iso8601); $log->info("Using reference path '$reference_path'"); - my @dirs = collect_dirs($source_dir, $dir_test, $relative_depth, $dir_regex); + my $collector = WTSI::NPG::Utilities::Collector->new( + root => $source_dir, + depth => 2, + regex => qr{^\d{10}$}msxi, + ); + my @dirs = $collector->collect_dirs_modified_between($begin->epoch, + $end->epoch); my $total = scalar @dirs; my $num_published = 0; @@ -136,8 +121,7 @@ sub run { resultset => $resultset, reference_path => $reference_path, warehouse_db => $whdb, - logger => $log); - $publisher->irods->logger($log); + ); $publisher->publish($publish_dest); $num_published++; @@ -145,7 +129,7 @@ sub run { $log->error("Failed to publish '$dir': ", $_); }; - $log->debug("Published '$dir': $num_published of $total"); + $log->info("Published '$dir': $num_published of $total"); } } @@ -193,11 +177,11 @@ =head1 METHODS =head1 AUTHOR -Keith James +Keith James , Iain Bancarz =head1 COPYRIGHT AND DISCLAIMER -Copyright (C) 2013, 2014, 2015 Genome Research Limited. All Rights +Copyright (C) 2013, 2014, 2015, 2016 Genome Research Limited. All Rights Reserved. This program is free software: you can redistribute it and/or modify diff --git a/src/perl/bin/publish_infinium_analysis.pl b/src/perl/bin/publish_infinium_analysis.pl index d1af92895..0b772c0a3 100755 --- a/src/perl/bin/publish_infinium_analysis.pl +++ b/src/perl/bin/publish_infinium_analysis.pl @@ -9,10 +9,10 @@ package main; use Cwd qw(abs_path); use DateTime; use Getopt::Long; -use Log::Log4perl; -use Log::Log4perl::Level; +use Log::Log4perl qw(:levels); use Pod::Usage; +use WTSI::DNAP::Utilities::ConfigureLogger qw(log_init); use WTSI::NPG::Genotyping::Database::Pipeline; use WTSI::NPG::Genotyping::Infinium::AnalysisPublisher; use WTSI::NPG::Utilities qw(user_session_log); @@ -21,22 +21,6 @@ package main; chomp($uid); my $session_log = user_session_log($uid, 'publish_infinium_analysis'); -my $embedded_conf = " - log4perl.logger.npg.irods.publish = ERROR, A1, A2 - - log4perl.appender.A1 = Log::Log4perl::Appender::Screen - log4perl.appender.A1.utf8 = 1 - log4perl.appender.A1.layout = Log::Log4perl::Layout::PatternLayout - log4perl.appender.A1.layout.ConversionPattern = %d %p %m %n - - log4perl.appender.A2 = Log::Log4perl::Appender::File - log4perl.appender.A2.filename = $session_log - log4perl.appender.A2.utf8 = 1 - log4perl.appender.A2.layout = Log::Log4perl::Layout::PatternLayout - log4perl.appender.A2.layout.ConversionPattern = %d %p %m %n - log4perl.appender.A2.syswrite = 1 -"; - our $VERSION = ''; our $DEFAULT_INI = $ENV{HOME} . "/.npg/genotyping.ini"; @@ -100,23 +84,13 @@ sub run { $config ||= $DEFAULT_INI; - my $log; - - if ($log4perl_config) { - Log::Log4perl::init($log4perl_config); - $log = Log::Log4perl->get_logger('npg.irods.publish'); - } - else { - Log::Log4perl::init(\$embedded_conf); - $log = Log::Log4perl->get_logger('npg.irods.publish'); - - if ($verbose) { - $log->level($INFO); - } - elsif ($debug) { - $log->level($DEBUG); - } - } + my @log_levels; + if ($debug) { push @log_levels, $DEBUG; } + if ($verbose) { push @log_levels, $INFO; } + log_init(config => $log4perl_config, + file => $session_log, + levels => \@log_levels); + my $log = Log::Log4perl->get_logger('main'); my $db = $dbfile; $db ||= 'configured database'; @@ -140,8 +114,7 @@ sub run { my @publisher_args = (analysis_directory => $source, pipe_db => $pipedb, publication_time => $now, - run_name => $run_name, - logger => $log); + run_name => $run_name); if ($archive_root) { push @publisher_args, (sample_archive => $archive_root); } @@ -203,11 +176,12 @@ =head1 METHODS =head1 AUTHOR -Keith James +Keith James , Iain Bancarz =head1 COPYRIGHT AND DISCLAIMER -Copyright (c) 2013 Genome Research Limited. All Rights Reserved. +Copyright (c) 2013, 2014, 2015, 2016 Genome Research Limited. +All Rights Reserved. This program is free software: you can redistribute it and/or modify it under the terms of the Perl Artistic License or the GNU General diff --git a/src/perl/bin/publish_infinium_genotypes.pl b/src/perl/bin/publish_infinium_genotypes.pl index 385d42ded..e947b91b5 100755 --- a/src/perl/bin/publish_infinium_genotypes.pl +++ b/src/perl/bin/publish_infinium_genotypes.pl @@ -11,24 +11,20 @@ package main; use File::Basename; use Getopt::Long; use List::AllUtils qw(uniq); -use Log::Log4perl; -use Log::Log4perl::Level; +use Log::Log4perl qw(:levels); use Pod::Usage; use Try::Tiny; +use WTSI::DNAP::Utilities::ConfigureLogger qw(log_init); use WTSI::NPG::Database::Warehouse; use WTSI::NPG::Genotyping::Database::Infinium; use WTSI::NPG::Genotyping::Infinium::Publisher; use WTSI::NPG::iRODS; +use WTSI::NPG::Utilities qw(user_session_log); -my $embedded_conf = q( - log4perl.logger.npg.irods.publish = ERROR, A1 - - log4perl.appender.A1 = Log::Log4perl::Appender::Screen - log4perl.appender.A1.utf8 = 1 - log4perl.appender.A1.layout = Log::Log4perl::Layout::PatternLayout - log4perl.appender.A1.layout.ConversionPattern = %d %p %m %n -); +my $uid = `whoami`; +chomp($uid); +my $session_log = user_session_log($uid, 'publish_infinium_genotypes'); our $VERSION = ''; our $DEFAULT_INI = $ENV{HOME} . "/.npg/genotyping.ini"; @@ -90,23 +86,13 @@ sub run { $days ||= $DEFAULT_DAYS; $days_ago ||= 0; - my $log; - - if ($log4perl_config) { - Log::Log4perl::init($log4perl_config); - $log = Log::Log4perl->get_logger('npg.irods.publish'); - } - else { - Log::Log4perl::init(\$embedded_conf); - $log = Log::Log4perl->get_logger('npg.irods.publish'); - - if ($verbose) { - $log->level($INFO); - } - elsif ($debug) { - $log->level($DEBUG); - } - } + my @log_levels; + if ($debug) { push @log_levels, $DEBUG; } + if ($verbose) { push @log_levels, $INFO; } + log_init(config => $log4perl_config, + file => $session_log, + levels => \@log_levels); + my $log = Log::Log4perl->get_logger('main'); my $now = DateTime->now; my $end; @@ -123,15 +109,13 @@ sub run { my $ifdb = WTSI::NPG::Genotyping::Database::Infinium->new (name => 'infinium', - inifile => $config, - logger => $log)->connect(RaiseError => 1); + inifile => $config)->connect(RaiseError => 1); my $ssdb = WTSI::NPG::Database::Warehouse->new (name => 'sequencescape_warehouse', - inifile => $config, - logger => $log)->connect(RaiseError => 1, - mysql_enable_utf8 => 1, - mysql_auto_reconnect => 1); + inifile => $config)->connect(RaiseError => 1, + mysql_enable_utf8 => 1, + mysql_auto_reconnect => 1); my @files; if ($stdio) { @@ -141,7 +125,8 @@ sub run { } } else { - my $irods = WTSI::NPG::iRODS->new(logger => $log); + my $irods = WTSI::NPG::iRODS->new(); + $log->info("Finding files to publish in Infinium LIMS"); @files = find_files_to_publish($ifdb, $begin, $end, $project, $irods, $publish_dest, $force, $log); } @@ -154,23 +139,23 @@ sub run { } elsif ($project) { $log->info("Publishing to '$publish_dest' Infinium results in project ", - "'$project'"); + "'$project', $total files in total"); } else { $log->info("Publishing to '$publish_dest' Infinium results ", - "scanned between ", $begin->iso8601, " and ", $end->iso8601); - - $log->debug("Publishing $total files"); + "scanned between ", $begin->iso8601, " and ", $end->iso8601, + ", $total files in total"); } my $publisher = WTSI::NPG::Genotyping::Infinium::Publisher->new (publication_time => $now, data_files => \@files, infinium_db => $ifdb, - ss_warehouse_db => $ssdb, - logger => $log); + ss_warehouse_db => $ssdb); $publisher->publish($publish_dest); + $log->info("Finished publishing $total files"); + return 0; } @@ -239,7 +224,7 @@ sub find_files_to_publish { } elsif ($num_matches == 1) { push @data_objects, @matches; - $log->info("Found a match for '$file' with MD5 '$md5'"); + $log->debug("Found a match for '$file' with MD5 '$md5'"); } else { push @data_objects, $matches[0]; @@ -254,8 +239,8 @@ sub find_files_to_publish { my $num_files = scalar @candidate_files; my $num_data_objects = scalar @data_objects; - $log->info("Beadchip '$chip' section '$section' data objects published ", - "previously: $num_data_objects/$num_files"); + $log->debug("Beadchip '$chip' section '$section' data objects ", + "published previously: $num_data_objects/$num_files"); if ($num_data_objects < $num_files || $force) { push @to_publish, @candidate_files; @@ -318,11 +303,12 @@ =head1 DESCRIPTION =head1 AUTHOR -Keith James +Keith James , Iain Bancarz =head1 COPYRIGHT AND DISCLAIMER -Copyright (c) 2012-2013 Genome Research Limited. All Rights Reserved. +Copyright (c) 2012, 2013, 2014, 2015, 2016 Genome Research Limited. +All Rights Reserved. This program is free software: you can redistribute it and/or modify it under the terms of the Perl Artistic License or the GNU General diff --git a/src/perl/bin/publish_sequenom_genotypes.pl b/src/perl/bin/publish_sequenom_genotypes.pl index b1bd91d29..2c668a74d 100755 --- a/src/perl/bin/publish_sequenom_genotypes.pl +++ b/src/perl/bin/publish_sequenom_genotypes.pl @@ -9,23 +9,19 @@ package main; use DateTime; use Getopt::Long; use List::AllUtils qw(uniq); -use Log::Log4perl; -use Log::Log4perl::Level; +use Log::Log4perl qw(:levels); use Pod::Usage; +use WTSI::DNAP::Utilities::ConfigureLogger qw(log_init); use WTSI::NPG::Database::Warehouse; use WTSI::NPG::Genotyping::Database::Sequenom; use WTSI::NPG::Genotyping::Database::SNP; use WTSI::NPG::Genotyping::Sequenom::Publisher; +use WTSI::NPG::Utilities qw(user_session_log); -my $embedded_conf = q( - log4perl.logger.npg.irods.publish = ERROR, A1 - - log4perl.appender.A1 = Log::Log4perl::Appender::Screen - log4perl.appender.A1.utf8 = 1 - log4perl.appender.A1.layout = Log::Log4perl::Layout::PatternLayout - log4perl.appender.A1.layout.ConversionPattern = %d %p %m %n -); +my $uid = `whoami`; +chomp($uid); +my $session_log = user_session_log($uid, 'publish_sequenom_genotypes'); our $VERSION = ''; our $DEFAULT_INI = $ENV{HOME} . "/.npg/genotyping.ini"; @@ -75,23 +71,13 @@ sub run { $days ||= $DEFAULT_DAYS; $days_ago ||= 0; - my $log; - - if ($log4perl_config) { - Log::Log4perl::init($log4perl_config); - $log = Log::Log4perl->get_logger('npg.irods.publish'); - } - else { - Log::Log4perl::init(\$embedded_conf); - $log = Log::Log4perl->get_logger('npg.irods.publish'); - - if ($verbose) { - $log->level($INFO); - } - elsif ($debug) { - $log->level($DEBUG); - } - } + my @log_levels; + if ($debug) { push @log_levels, $DEBUG; } + if ($verbose) { push @log_levels, $INFO; } + log_init(config => $log4perl_config, + file => $session_log, + levels => \@log_levels); + my $log = Log::Log4perl->get_logger('main'); my $now = DateTime->now; my $end; @@ -108,13 +94,11 @@ sub run { my $sqdb = WTSI::NPG::Genotyping::Database::Sequenom->new (name => 'mspec2', - inifile => $config, - logger => $log)->connect(RaiseError => 1); + inifile => $config)->connect(RaiseError => 1); my $snpdb = WTSI::NPG::Genotyping::Database::SNP->new (name => 'snp', - inifile => $config, - logger => $log)->connect(RaiseError => 1); + inifile => $config)->connect(RaiseError => 1); my $ssdb = WTSI::NPG::Database::Warehouse->new (name => 'sequencescape_warehouse', @@ -130,7 +114,7 @@ sub run { } } else { - my $irods = WTSI::NPG::iRODS->new(logger => $log); + my $irods = WTSI::NPG::iRODS->new(); @plate_names = find_plates_to_publish($sqdb, $begin, $end, $irods, $publish_dest, $force, $log); } @@ -158,8 +142,7 @@ sub run { plate_name => $plate_name, sequenom_db => $sqdb, snp_db => $snpdb, - ss_warehouse_db => $ssdb, - logger => $log); + ss_warehouse_db => $ssdb); $publisher->publish($publish_dest); $published++; diff --git a/src/perl/bin/publish_snpset.pl b/src/perl/bin/publish_snpset.pl index e77d60c3f..618bfd496 100755 --- a/src/perl/bin/publish_snpset.pl +++ b/src/perl/bin/publish_snpset.pl @@ -7,13 +7,19 @@ package main; use Cwd qw(abs_path); use DateTime; use Getopt::Long; -use Log::Log4perl; -use Log::Log4perl::Level; +use Log::Log4perl qw(:levels); use Moose; use Pod::Usage; +use WTSI::DNAP::Utilities::ConfigureLogger qw(log_init); use WTSI::NPG::iRODS; use WTSI::NPG::Genotyping::SNPSetPublisher; +use WTSI::NPG::Utilities qw(user_session_log); + +my $uid = `whoami`; +chomp($uid); +my $session_log = user_session_log($uid, 'publish_snpset'); + our $VERSION = ''; @@ -73,23 +79,13 @@ sub run { -exitval => 2); } - my $log; - - if ($log4perl_config) { - Log::Log4perl::init($log4perl_config); - $log = Log::Log4perl->get_logger('npg.irods.publish'); - } - else { - Log::Log4perl::init(\$embedded_conf); - $log = Log::Log4perl->get_logger('npg.irods.publish'); - - if ($verbose) { - $log->level($INFO); - } - elsif ($debug) { - $log->level($DEBUG); - } - } + my @log_levels; + if ($debug) { push @log_levels, $DEBUG; } + if ($verbose) { push @log_levels, $INFO; } + log_init(config => $log4perl_config, + file => $session_log, + levels => \@log_levels); + my $log = Log::Log4perl->get_logger('main'); my $irods = WTSI::NPG::iRODS->new; $irods->logger($log); @@ -103,8 +99,7 @@ sub run { publication_time => DateTime->now, reference_names => \@references, snpset_name => $snpset, - snpset_platform => $platform, - logger => $log); + snpset_platform => $platform); my $rods_path = $publisher->publish($publish_dest); @@ -148,11 +143,11 @@ =head1 DESCRIPTION =head1 AUTHOR -Keith James +Keith James , Iain Bancarz =head1 COPYRIGHT AND DISCLAIMER -Copyright (c) 2014 Genome Research Limited. All Rights Reserved. +Copyright (c) 2014, 2015, 2016 Genome Research Limited. All Rights Reserved. This program is free software: you can redistribute it and/or modify it under the terms of the Perl Artistic License or the GNU General diff --git a/src/perl/bin/query_project_samples.pl b/src/perl/bin/query_project_samples.pl index 71cb072e1..1b7d97d65 100755 --- a/src/perl/bin/query_project_samples.pl +++ b/src/perl/bin/query_project_samples.pl @@ -7,10 +7,10 @@ package main; use warnings; use strict; use Getopt::Long; -use Log::Log4perl; -use Log::Log4perl::Level; +use Log::Log4perl qw(:levels); use Pod::Usage; +use WTSI::DNAP::Utilities::ConfigureLogger qw(log_init); use WTSI::NPG::Database::Warehouse; use WTSI::NPG::Genotyping::Database::Infinium; use WTSI::NPG::Genotyping::Infinium::SampleQuery; @@ -28,30 +28,12 @@ package main; chomp($uid); my $session_log = user_session_log($uid, 'query_project_samples'); -my $embedded_conf = " - log4perl.logger.npg.irods.publish = WARN, A1, A2 - - log4perl.appender.A1 = Log::Log4perl::Appender::Screen - log4perl.appender.A1.utf8 = 1 - log4perl.appender.A1.layout = Log::Log4perl::Layout::PatternLayout - log4perl.appender.A1.layout.ConversionPattern = %d %p %m %n - - log4perl.appender.A2 = Log::Log4perl::Appender::File - log4perl.appender.A2.filename = $session_log - log4perl.appender.A2.utf8 = 1 - log4perl.appender.A2.layout = Log::Log4perl::Layout::PatternLayout - log4perl.appender.A2.layout.ConversionPattern = %d %p %m %n - log4perl.appender.A2.syswrite = 1 -"; - -my $log; - run() unless caller(); sub run { my $config; - my $debug_level; + my $debug; my $header; my $limit; my $outpath; @@ -63,7 +45,7 @@ sub run { GetOptions( 'config=s' => \$config, - 'debug' => \$debug_level, + 'debug' => \$debug, 'header' => \$header, 'help' => sub { pod2usage(-verbose => 2, -exitval => 0) }, @@ -82,31 +64,22 @@ sub run { if (defined($limit) && $limit < 0) { pod2usage(-msg => "--limit argument must be >= 0\n", -exitval => 2); } - if ($log4perl_config) { - Log::Log4perl::init($log4perl_config); - $log = Log::Log4perl->get_logger('npg.irods.publish'); - } - else { - Log::Log4perl::init(\$embedded_conf); - $log = Log::Log4perl->get_logger('npg.irods.publish'); - if ($debug_level) { - $log->level($DEBUG); - } elsif ($verbose) { - $log->level($INFO); - } elsif ($quiet) { - $log->level($ERROR); - } - } + + my @log_levels; + if ($debug) { push @log_levels, $DEBUG; } + if ($verbose) { push @log_levels, $INFO; } + log_init(config => $log4perl_config, + file => $session_log, + levels => \@log_levels); + my $log = Log::Log4perl->get_logger('main'); my $ifdb = WTSI::NPG::Genotyping::Database::Infinium->new (name => 'infinium', - inifile => $config, - logger => $log)->connect(RaiseError => 1); + inifile => $config)->connect(RaiseError => 1); my $ssdb = WTSI::NPG::Database::Warehouse->new (name => 'sequencescape_warehouse', - inifile => $config, - logger => $log)->connect(RaiseError => 1, + inifile => $config)->connect(RaiseError => 1, mysql_enable_utf8 => 1, mysql_auto_reconnect => 1); @@ -115,8 +88,7 @@ sub run { my $sample_query = WTSI::NPG::Genotyping::Infinium::SampleQuery->new (infinium_db => $ifdb, - sequencescape_db => $ssdb, - logger => $log); + sequencescape_db => $ssdb); $sample_query->run($project, $root, $outpath, $header, $limit); } @@ -182,7 +154,7 @@ =head1 AUTHOR =head1 COPYRIGHT AND DISCLAIMER -Copyright (c) 2015 Genome Research Limited. All Rights Reserved. +Copyright (c) 2015, 2016 Genome Research Limited. All Rights Reserved. This program is free software: you can redistribute it and/or modify it under the terms of the Perl Artistic License or the GNU General diff --git a/src/perl/bin/ready_external.pl b/src/perl/bin/ready_external.pl index 1abfc8abd..02b2fced7 100755 --- a/src/perl/bin/ready_external.pl +++ b/src/perl/bin/ready_external.pl @@ -9,26 +9,33 @@ package main; use File::Basename; use Getopt::Long; use List::AllUtils qw(any); -use Log::Log4perl qw(:easy); +use Log::Log4perl qw(:levels); use Pod::Usage; +use WTSI::DNAP::Utilities::ConfigureLogger qw(log_init); use WTSI::DNAP::Utilities::IO qw(maybe_stdin maybe_stdout); use WTSI::NPG::Utilities qw(common_stem); use WTSI::NPG::Genotyping::Database::Pipeline; +use WTSI::NPG::Utilities qw(user_session_log); + +my $uid = `whoami`; +chomp($uid); +my $session_log = user_session_log($uid, 'ready_external'); +my $log; our $VERSION = ''; our $DEFAULT_INI = $ENV{HOME} . "/.npg/genotyping.ini"; our $ID_REGEX = qr{^[\w.-]{4,}$}msx; -Log::Log4perl->easy_init($ERROR); - run() unless caller(); sub run { my $chip_design; my $config; my $dbfile; + my $debug; my $input; + my $log4perl_config; my $namespace; my $run_name; my $supplier_name; @@ -36,8 +43,10 @@ sub run { GetOptions('chip-design=s' => \$chip_design, 'config=s' => \$config, + 'debug' => \$debug, 'dbfile=s' => \$dbfile, 'help' => sub { pod2usage(-verbose => 2, -exitval => 0) }, + 'logconf=s' => \$log4perl_config, 'input=s' => \$input, 'run=s' => \$run_name, 'namespace=s' => \$namespace, @@ -64,11 +73,17 @@ sub run { unless ($namespace =~ $ID_REGEX) { pod2usage(-msg => "Invalid namespace '$namespace'\n", -exitval => 2); } - if ($verbose) { - my $db = $dbfile; - $db ||= 'configured database'; - print STDERR "Updating $db using config from $config\n"; - } + + my @log_levels; + if ($debug) { push @log_levels, $DEBUG; } + if ($verbose) { push @log_levels, $INFO; } + log_init(config => $log4perl_config, + file => $session_log, + levels => \@log_levels); + $log = Log::Log4perl->get_logger('main'); + + my $db = $dbfile || 'configured database'; + $log->info("Updating '", $db, "' using config from '", $config, "'"); my @initargs = (name => 'pipeline', inifile => $config); @@ -84,8 +99,9 @@ sub run { my @valid_designs = map { $_->name } $pipedb->snpset->all; unless (any { $chip_design eq $_ } @valid_designs ) { - die "Invalid chip design '$chip_design'. Valid designs are: [" . - join(", ", @valid_designs) . "]\n"; + $log->logcroak("Invalid chip design '", $chip_design, + "'. Valid designs are: [", + join(", ", @valid_designs), "]"); } my $snpset = $pipedb->snpset->find({name => $chip_design}); @@ -99,7 +115,7 @@ sub run { my $in = maybe_stdin($input); my @ex_samples = parse_manifest($in); - close($in) or warn "Failed to close '$input'\n"; + close($in) or $log->logwarn("Failed to close '$input'"); $pipedb->in_transaction (sub { @@ -112,7 +128,9 @@ sub run { my $dataset = $run->add_to_datasets({datasupplier => $supplier, snpset => $snpset}); - print_pre_report($supplier, $namespace, $snpset) if $verbose; + $log->info("Adding dataset: From supplier '", $supplier->name, + "', into namespace '", $namespace, "', using snpset '", + $snpset->name, "'"); SAMPLE: foreach my $ex_sample (@ex_samples) { my $grn_path = $ex_sample->{idat_grn_path}; @@ -153,8 +171,7 @@ sub run { $sample->include_from_state; } }); - - print_post_report(\@ex_samples) if $verbose; + $log->info("Added dataset of ", scalar(@ex_samples), " samples"); return; } @@ -180,8 +197,8 @@ sub parse_manifest { my $num_fields = scalar @fields; unless ($num_fields == 6) { - die "Parse error on line $i: expected 6 fields, but found $num_fields:\n" . - "$line\n"; + $log->logcroak("Parse error on line ", $i, ": expected 6 fields, ", + "but found ", $num_fields, ": ", $line); } my $sample = {sample => $fields[0], @@ -192,7 +209,8 @@ sub parse_manifest { idat_red_path => $fields[5]}; unless ($sample->{gtc_path}) { - die "Parse error on line $i: no GTC path was provided:\n$line\n"; + $log->logcroak("Parse error on line ", $i, ": no GTC path was ", + "provided: '", $line, "'"); } unless ($sample->{beadchip}) { @@ -203,17 +221,20 @@ sub parse_manifest { $sample->{beadchip} = $beadchip_guess; } else { - die "Parse error on line $i: no beadchip was supplied and unable " . - "to infer from GTC file name:\n$line\n"; + $log->logcroak("Parse error on line ", $i, ": no beadchip was ", + "supplied and unable to infer from GTC ", + "file name: '", $line, "'"); } } if ($sample->{idat_grn_path} or $sample->{idat_red_path}) { unless ($sample->{idat_grn_path}) { - die "Parse error on line $i: no green IDAT path was provided:\n$line\n"; + $log->logcroak("Parse error on line ", $i, ": no green IDAT path ", + "was provided: '", $line, "'"); } unless ($sample->{idat_red_path}) { - die "Parse error on line $i: no red IDAT path was provided:\n$line\n"; + $log->logcroak("Parse error on line ", $i, ": no red IDAT path ", + "was provided: '", $line, "'"); } } @@ -227,36 +248,15 @@ sub validate_snpset { my ($run, $snpset) = @_; unless ($run->validate_snpset($snpset)) { - die "Cannot add this project to '", $run->name, "'; design mismatch: '", - $snpset->name, "' cannot be added to existing designs [", - join(", ", map { $_->snpset->name } $run->datasets), "]\n"; + $log->logcroak("Cannot add this project to '", $run->name, + "'; design mismatch: '", $snpset->name, + "' cannot be added to existing designs [", + join(", ", map { $_->snpset->name } $run->datasets), "]"); } - return $snpset; } -sub print_pre_report { - my ($supplier, $namespace, $snpset) = @_; - print STDERR "Adding dataset:\n"; - print STDERR " From '", $supplier->name, "'\n"; - print STDERR " Into namespace '$namespace'\n"; - print STDERR " Using '", $snpset->name, "'\n"; - - return; -} - -sub print_post_report { - my ($samples) = @_; - - my $num_samples = scalar @$samples; - - print STDERR "Added dataset:\n"; - print STDERR " $num_samples samples\n"; - - return; -} - __END__ @@ -279,6 +279,7 @@ =head1 SYNOPSIS value given in the configuration .ini file. --help Display help. --input The sample manifest file. Optional, defaults to STDIN. + --logconf A log4perl configuration file. Optional. --namespace The namespace for the imported sample names. --run The pipeline run name in the database which will be created or added to. @@ -327,11 +328,11 @@ =head1 METHODS =head1 AUTHOR -Keith James +Keith James , Iain Bancarz =head1 COPYRIGHT AND DISCLAIMER -Copyright (C) 2012, 2015 Genome Research Limited. All Rights Reserved. +Copyright (C) 2012, 2015, 2016 Genome Research Limited. All Rights Reserved. This program is free software: you can redistribute it and/or modify it under the terms of the Perl Artistic License or the GNU General diff --git a/src/perl/bin/ready_infinium.pl b/src/perl/bin/ready_infinium.pl index a91a7dd0d..408d57ff2 100755 --- a/src/perl/bin/ready_infinium.pl +++ b/src/perl/bin/ready_infinium.pl @@ -9,10 +9,10 @@ package main; use Config::IniFiles; use Getopt::Long; use List::AllUtils qw(any uniq); -use Log::Log4perl; -use Log::Log4perl::Level; +use Log::Log4perl qw(:levels); use Pod::Usage; +use WTSI::DNAP::Utilities::ConfigureLogger qw(log_init); use WTSI::NPG::Database::Warehouse; use WTSI::NPG::Genotyping; use WTSI::NPG::Genotyping::Database::Pipeline; @@ -52,23 +52,6 @@ package main; my $uid = `whoami`; chomp($uid); my $session_log = user_session_log($uid, 'ready_infinium'); - -my $embedded_conf = " - log4perl.logger.npg.irods.publish = ERROR, A1, A2 - - log4perl.appender.A1 = Log::Log4perl::Appender::Screen - log4perl.appender.A1.utf8 = 1 - log4perl.appender.A1.layout = Log::Log4perl::Layout::PatternLayout - log4perl.appender.A1.layout.ConversionPattern = %d %p %m %n - - log4perl.appender.A2 = Log::Log4perl::Appender::File - log4perl.appender.A2.filename = $session_log - log4perl.appender.A2.utf8 = 1 - log4perl.appender.A2.layout = Log::Log4perl::Layout::PatternLayout - log4perl.appender.A2.layout.ConversionPattern = %d %p %m %n - log4perl.appender.A2.syswrite = 1 -"; - my $log; run() unless caller(); @@ -133,21 +116,13 @@ sub run { pod2usage(-msg => "Invalid namespace '$namespace'\n", -exitval => 2); } - if ($log4perl_config) { - Log::Log4perl::init($log4perl_config); - $log = Log::Log4perl->get_logger('npg.irods.publish'); - } - else { - Log::Log4perl::init(\$embedded_conf); - $log = Log::Log4perl->get_logger('npg.irods.publish'); - - if ($verbose) { - $log->level($INFO); - } - elsif ($debug) { - $log->level($DEBUG); - } - } + my @log_levels; + if ($debug) { push @log_levels, $DEBUG; } + if ($verbose) { push @log_levels, $INFO; } + log_init(config => $log4perl_config, + file => $session_log, + levels => \@log_levels); + $log = Log::Log4perl->get_logger('main'); unless (-e $dbfile) { $log->logcroak("SQLite database file '$dbfile' does not exist"); @@ -189,15 +164,13 @@ sub run { my $ifdb = WTSI::NPG::Genotyping::Database::Infinium->new (name => 'infinium', - inifile => $config, - logger => $log)->connect(RaiseError => 1); + inifile => $config)->connect(RaiseError => 1); my $ssdb = WTSI::NPG::Database::Warehouse->new (name => 'sequencescape_warehouse', - inifile => $config, - logger => $log)->connect(RaiseError => 1, - mysql_enable_utf8 => 1, - mysql_auto_reconnect => 1); + inifile => $config)->connect(RaiseError => 1, + mysql_enable_utf8 => 1, + mysql_auto_reconnect => 1); my @chip_designs = @{$ifdb->find_project_chip_design($project_title)}; unless (@chip_designs) { @@ -426,8 +399,7 @@ sub run { my $snpdb = WTSI::NPG::Genotyping::Database::SNP->new (name => 'snp', - inifile => $config, - logger => $log)->connect(RaiseError => 1); + inifile => $config)->connect(RaiseError => 1); $inserted = insert_sequenom_calls($pipedb, $snpdb, \@samples, $qc_plex); @@ -436,7 +408,7 @@ sub run { my $irods = WTSI::NPG::iRODS->new; $inserted = insert_fluidigm_calls($pipedb, $irods, \@samples, $qc_plex, - $reference_path, $log); + $reference_path); } else { $log->logcroak("Unexpected QC platform '$qc_platform'"); } @@ -466,7 +438,7 @@ sub validate_snpset { sub insert_fluidigm_calls { # returns the number of samples for which calls were inserted - my ($pipedb, $irods, $samples, $qc_plex, $reference_path, $log) = @_; + my ($pipedb, $irods, $samples, $qc_plex, $reference_path) = @_; my $method = $pipedb->method->find({name => 'Fluidigm'}); $method or $log->logcroak("The genotyping method 'Fluidigm' is ", @@ -483,8 +455,7 @@ sub insert_fluidigm_calls { data_path => $DEFAULT_DATA_PATH, reference_path => $reference_path, reference_name => $reference_name, - snpset_name => $snpset->name, - logger => $log); + snpset_name => $snpset->name); my ($resultsets, $vcf_meta) = $subscriber->get_assay_resultsets_and_vcf_metadata(\@sample_ids); @@ -668,11 +639,11 @@ =head1 METHODS =head1 AUTHOR -Keith James +Keith James , Iain Bancarz =head1 COPYRIGHT AND DISCLAIMER -Copyright (C) 2012, 2013, 2014, 2015 Genome Research Limited. All +Copyright (C) 2012, 2013, 2014, 2015, 2016 Genome Research Limited. All Rights Reserved. This program is free software: you can redistribute it and/or modify diff --git a/src/perl/bin/ready_pipe.pl b/src/perl/bin/ready_pipe.pl index 66296357e..e11cc95b9 100755 --- a/src/perl/bin/ready_pipe.pl +++ b/src/perl/bin/ready_pipe.pl @@ -7,30 +7,46 @@ package main; use warnings; use strict; use Getopt::Long; -use Log::Log4perl qw(:easy); +use Log::Log4perl qw(:levels); use Pod::Usage; +use WTSI::DNAP::Utilities::ConfigureLogger qw(log_init); use WTSI::NPG::Genotyping::Database::Pipeline; +use WTSI::NPG::Utilities qw(user_session_log); + +my $uid = `whoami`; +chomp($uid); +my $session_log = user_session_log($uid, 'ready_pipe'); our $VERSION = ''; our $DEFAULT_INI = $ENV{HOME} . "/.npg/genotyping.ini"; -Log::Log4perl->easy_init($ERROR); - run() unless caller(); sub run { my $config; my $dbfile; + my $debug; + my $log4perl_config; my $overwrite; my $verbose; GetOptions('config=s' => \$config, 'dbfile=s' => \$dbfile, + 'debug' => \$debug, 'help' => sub { pod2usage(-verbose => 2, -exitval => 0) }, + 'logconf=s' => \$log4perl_config, 'overwrite' => \$overwrite, 'verbose' => \$verbose); + my @log_levels; + if ($debug) { push @log_levels, $DEBUG; } + if ($verbose) { push @log_levels, $INFO; } + log_init(config => $log4perl_config, + file => $session_log, + levels => \@log_levels); + my $log = Log::Log4perl->get_logger('main'); + $config ||= $DEFAULT_INI; my @initargs = (name => 'pipeline', inifile => $config, @@ -74,6 +90,7 @@ =head1 SYNOPSIS --dbfile The SQLite database file. If not supplied, defaults to the value given in the configuration .ini file. --help Display help. + --logconf A log4perl configuration file. Optional. --overwrite Overwrite any existing file, otherwise data dictionaries will be updated with new entries only. --verbose Print messages while processing. Optional. @@ -89,11 +106,12 @@ =head1 METHODS =head1 AUTHOR -Keith James +Keith James , Iain Bancarz =head1 COPYRIGHT AND DISCLAIMER -Copyright (c) 2012 Genome Research Limited. All Rights Reserved. +Copyright (c) 2012, 2013, 2014, 2015, 2016 Genome Research Limited. +All Rights Reserved. This program is free software: you can redistribute it and/or modify it under the terms of the Perl Artistic License or the GNU General diff --git a/src/perl/bin/ready_qc_calls.pl b/src/perl/bin/ready_qc_calls.pl index d05b46555..0a7d8e692 100755 --- a/src/perl/bin/ready_qc_calls.pl +++ b/src/perl/bin/ready_qc_calls.pl @@ -11,11 +11,11 @@ package main; use Getopt::Long; use JSON; use List::AllUtils qw(uniq); -use Log::Log4perl; -use Log::Log4perl::Level; +use Log::Log4perl qw(:levels); use Pod::Usage; use Try::Tiny; +use WTSI::DNAP::Utilities::ConfigureLogger qw(log_init); use WTSI::NPG::Genotyping::Database::Pipeline; use WTSI::NPG::Genotyping::VCF::PlexResultFinder; use WTSI::NPG::Utilities qw(user_session_log); @@ -45,24 +45,6 @@ package main; chomp($uid); my $session_log = user_session_log($uid, 'ready_qc_calls'); -my $embedded_conf = " - log4perl.logger.npg.ready_qc_calls = ERROR, A1, A2 - - log4perl.appender.A1 = Log::Log4perl::Appender::Screen - log4perl.appender.A1.utf8 = 1 - log4perl.appender.A1.layout = Log::Log4perl::Layout::PatternLayout - log4perl.appender.A1.layout.ConversionPattern = %d %p %m %n - - log4perl.appender.A2 = Log::Log4perl::Appender::File - log4perl.appender.A2.filename = $session_log - log4perl.appender.A2.utf8 = 1 - log4perl.appender.A2.layout = Log::Log4perl::Layout::PatternLayout - log4perl.appender.A2.layout.ConversionPattern = %d %p %m %n - log4perl.appender.A2.syswrite = 1 -"; - -my $log; - run() unless caller(); sub run { @@ -90,21 +72,13 @@ sub run { $inifile ||= $DEFAULT_INI; - ### set up logging ### - if ($log4perl_config) { - Log::Log4perl::init($log4perl_config); - $log = Log::Log4perl->get_logger('npg.vcf.qc'); - } - else { - Log::Log4perl::init(\$embedded_conf); - $log = Log::Log4perl->get_logger('npg.vcf.qc'); - if ($verbose) { - $log->level($INFO); - } - elsif ($debug) { - $log->level($DEBUG); - } - } + my @log_levels; + if ($debug) { push @log_levels, $DEBUG; } + if ($verbose) { push @log_levels, $INFO; } + log_init(config => $log4perl_config, + file => $session_log, + levels => \@log_levels); + my $log = Log::Log4perl->get_logger('main'); ### validate command-line arguments ### my @config = split(/,/msx, $config); @@ -156,8 +130,7 @@ sub run { try { my $finder = WTSI::NPG::Genotyping::VCF::PlexResultFinder->new( sample_ids => \@sample_ids, - subscriber_config => \@config, - logger => $log, + subscriber_config => \@config ); my $plex_manifests = $finder->write_manifests($manifest_dir); $log->info("Wrote plex manifests: ", join(', ', @{$plex_manifests})); diff --git a/src/perl/bin/ready_samples.pl b/src/perl/bin/ready_samples.pl index 792ff8573..1e2876ba9 100755 --- a/src/perl/bin/ready_samples.pl +++ b/src/perl/bin/ready_samples.pl @@ -18,7 +18,7 @@ package main; our $VERSION = ''; our $DEFAULT_INI = $ENV{HOME} . "/.npg/genotyping.ini"; -Log::Log4perl->easy_init($ERROR); +Log::Log4perl->easy_init($WARN); run() unless caller(); @@ -57,6 +57,8 @@ sub run { -exitval => 2); } + my $log = Log::Log4perl->get_logger('main'); + my @initargs = (name => 'pipeline', inifile => $config); if ($dbfile) { @@ -76,7 +78,8 @@ sub run { foreach my $sample ($pipedb->sample->all) { my $state = $pipedb->state->find({name => $select}); unless ($state) { - die "Failed to select sample state '$select': invalid state\n"; + $log->logcroak("Failed to select sample state '", $select, + "': invalid state"); } if (any { $state->name eq $_->name } $sample->states) { @@ -93,14 +96,15 @@ sub run { my $sample = $pipedb->sample->find({name => $name}); unless ($sample) { - warn "Failed to find $name\n"; + $log->logwarn("Failed to find name '", $name, "'"); next; } if ($remove) { my $state = $pipedb->state->find({name => $remove}); unless ($state) { - die "Failed to remove sample state '$remove': invalid state\n"; + $log->logcroak("Failed to remove sample state '", $remove, + "': invalid state"); } if (any { $state->name eq $_->name } $sample->states) { @@ -111,7 +115,8 @@ sub run { if ($add) { my $state = $pipedb->state->find({name => $add}); unless ($state) { - die "Failed to add sample state '$add': invalid state\n"; + $log->logcroak("Failed to add sample state '", $add, + "': invalid state"); } unless (any { $state->name eq $_->name } $sample->states) { @@ -209,11 +214,12 @@ =head1 METHODS =head1 AUTHOR -Keith James +Keith James , Iain Bancarz =head1 COPYRIGHT AND DISCLAIMER -Copyright (c) 2012 Genome Research Limited. All Rights Reserved. +Copyright (c) 2012, 2013, 2014, 2015, 2016 Genome Research Limited. +All Rights Reserved. This program is free software: you can redistribute it and/or modify it under the terms of the Perl Artistic License or the GNU General diff --git a/src/perl/bin/ready_workflow.pl b/src/perl/bin/ready_workflow.pl index 11bd5353e..23a418e98 100755 --- a/src/perl/bin/ready_workflow.pl +++ b/src/perl/bin/ready_workflow.pl @@ -15,13 +15,13 @@ package main; use FindBin qw($Bin); use Getopt::Long; use JSON; -use List::AllUtils qw(uniq); -use Log::Log4perl; -use Log::Log4perl::Level; +use List::AllUtils qw(none uniq); +use Log::Log4perl qw(:levels); use Pod::Usage; use Try::Tiny; use YAML qw /DumpFile/; +use WTSI::DNAP::Utilities::ConfigureLogger qw(log_init); use WTSI::NPG::Genotyping::Database::Pipeline; use WTSI::NPG::Genotyping::VCF::PlexResultFinder; use WTSI::NPG::Utilities qw(user_session_log); @@ -31,8 +31,11 @@ package main; our $DEFAULT_INI = $ENV{HOME} . "/.npg/genotyping.ini"; our $PERCOLATE_LOG_NAME = 'percolate.log'; our $GENOTYPING_DB_NAME = 'genotyping.db'; + +our $MODULE_GENCALL = 'Genotyping::Workflows::GenotypeGencall'; our $MODULE_ILLUMINUS = 'Genotyping::Workflows::GenotypeIlluminus'; our $MODULE_ZCALL = 'Genotyping::Workflows::GenotypeZCall'; +our $GENCALL = 'gencall'; our $ILLUMINUS = 'illuminus'; our $ZCALL = 'zcall'; @@ -49,23 +52,6 @@ package main; my $uid = `whoami`; chomp($uid); my $session_log = user_session_log($uid, 'ready_workflow'); - -my $embedded_conf = " - log4perl.logger.npg.genotyping.ready_workflow = ERROR, A1, A2 - - log4perl.appender.A1 = Log::Log4perl::Appender::Screen - log4perl.appender.A1.utf8 = 1 - log4perl.appender.A1.layout = Log::Log4perl::Layout::PatternLayout - log4perl.appender.A1.layout.ConversionPattern = %d %p %m %n - - log4perl.appender.A2 = Log::Log4perl::Appender::File - log4perl.appender.A2.filename = $session_log - log4perl.appender.A2.utf8 = 1 - log4perl.appender.A2.layout = Log::Log4perl::Layout::PatternLayout - log4perl.appender.A2.layout.ConversionPattern = %d %p %m %n - log4perl.appender.A2.syswrite = 1 -"; - my $log; run() unless caller(); @@ -119,57 +105,54 @@ sub run { 'ztotal=i' => \$ztotal, ); - ### set up logging ### - if ($log4perl_config) { - Log::Log4perl::init($log4perl_config); - $log = Log::Log4perl->get_logger('npg.genotyping.ready_workflow'); - } - else { - Log::Log4perl::init(\$embedded_conf); - $log = Log::Log4perl->get_logger('npg.genotyping.ready_workflow'); - if ($verbose) { - $log->level($INFO); + my @log_levels; + if ($debug) { push @log_levels, $DEBUG; } + if ($verbose) { push @log_levels, $INFO; } + log_init(config => $log4perl_config, + file => $session_log, + levels => \@log_levels); + $log = Log::Log4perl->get_logger('main'); + + ### process command-line arguments ### + + # required arguments for all workflows + my %required_args = ( + workdir => $workdir, + run => $run, + workflow => $workflow, + dbfile => $dbfile, + manifest => $manifest + ); + my @required_args = sort keys %required_args; + my @workflows = ($GENCALL, $ILLUMINUS, $ZCALL); + foreach my $name (@required_args) { + if (! defined $required_args{$name}) { + $log->logcroak("Argument --$name is required"); } - elsif ($debug) { - $log->level($DEBUG); + if ($name eq 'workflow') { + if (none { $_ eq $required_args{$name} } @workflows) { + $log->logcroak('--$name argument must be one of: ', + join(', ', @workflows)); + } + } elsif ($name eq 'dbfile' || $name eq 'manifest') { + if (! -e $required_args{$name}) { + $log->logcroak("Path argument to --$name does not exist: '", + $required_args{$name}, "'"); + } } } + $workdir = abs_path($workdir); + $log->info("Working directory absolute path is '", $workdir, "'"); - ### process command-line arguments ### + # optional arguments for all workflows + $memory ||= $DEFAULT_MEMORY; + $host ||= $DEFAULT_HOST; $inifile ||= $DEFAULT_INI; if (! -e $inifile) { $log->logcroak("--inifile argument '", $inifile, "' does not exist"); } - if ($workdir) { - $workdir = abs_path($workdir); - $log->info("Working directory absolute path is '", $workdir, "'"); - } else { - $log->logcroak("--workdir argument is required"); - } - if (!$run) { - $log->logcroak("--run argument is required"); - } - if (!$dbfile) { - $log->logcroak("--dbfile argument is required"); - } elsif (! -e $dbfile) { - $log->logcroak("--dbfile argument '", $dbfile, "' does not exist"); - } - if (!$manifest) { - $log->logcroak("--manifest argument is required"); - } elsif (! -e $manifest) { - $log->logcroak("--manifest argument '", $manifest, - "' does not exist"); - } - if (defined($no_filter)) { $no_filter = 'true'; } # Boolean value for Ruby - else { $no_filter = 'false'; } - if (!$workflow) { - $log->logcroak("--workflow argument is required"); - } elsif (!($workflow eq $ILLUMINUS || $workflow eq $ZCALL)) { - $log->logcroak("Invalid workflow argument; must be '", - $ILLUMINUS, "' or '", $ZCALL, "'"); - } - if (defined($egt) && !(-e $egt)) { - $log->logcroak("--egt argument '", $egt, "' does not exist"); + if (! defined $config_out) { + $config_out = workflow_config_path($workdir, $workflow, $local); } if (scalar @plex_config == 0) { # get defaults from perl/etc directory my $etc_dir = catfile($Bin, "..", "etc"); @@ -183,17 +166,49 @@ sub run { "' does not exist"); } } - $host ||= $DEFAULT_HOST; - # illuminus paralellizes by SNP, other callers by sample - if ($workflow eq 'illuminus') { $chunk_size ||= $DEFAULT_CHUNK_SIZE_SNP; } - else { $chunk_size ||= $DEFAULT_CHUNK_SIZE_SAMPLE; } - $memory ||= $DEFAULT_MEMORY; - - # ensure $zstart, $ztotal are initialized before comparison - $zstart ||= $DEFAULT_ZSTART; - $ztotal ||= $DEFAULT_ZTOTAL; - if ($zstart <=0) { $log->logcroak("zstart must be > 0"); } - if ($ztotal <=0) { $log->logcroak("ztotal must be > 0"); } + + # arguments for illuminus and zcall only + if (defined $no_filter) { + if ($workflow eq $GENCALL) { + $log->logcroak('--nofilter option is not compatible with the ', + $GENCALL, 'workflow'); + } + $no_filter = 'true'; # Boolean value for Ruby + } else { + $no_filter = 'false'; + } + if (defined $chunk_size) { + if ($workflow eq $GENCALL) { + $log->logcroak('--chunk_size option is not compatible with the ', + $GENCALL, 'workflow'); + } + } elsif ($workflow eq $ILLUMINUS) { + $chunk_size = $DEFAULT_CHUNK_SIZE_SNP; + } else { + $chunk_size = $DEFAULT_CHUNK_SIZE_SAMPLE; + } + + # arguments for zcall only + my $msg = " argument is only compatible with the $ZCALL workflow;". + " given workflow is '$workflow'"; + if ($workflow eq $ZCALL) { + # check EGT & assign zstart/ztotal defaults + if (! defined $egt) { + $log->logcroak("--egt argument is required for $ZCALL workflow"); + } elsif (! -e $egt) { + $log->logcroak("--egt argument '$egt' does not exist"); + } + $zstart ||= $DEFAULT_ZSTART; + $ztotal ||= $DEFAULT_ZTOTAL; + if ($zstart <=0) { $log->logcroak("zstart must be > 0"); } + if ($ztotal <=0) { $log->logcroak("ztotal must be > 0"); } + } elsif (defined $egt) { + $log->logcroak('--egt', $msg); + } elsif (defined $zstart) { + $log->logcroak('--zstart', $msg); + } elsif (defined $ztotal) { + $log->logcroak('--ztotal', $msg); + } ### create and populate the working directory ### make_working_directory($workdir, $local); @@ -212,34 +227,32 @@ sub run { } } ### generate the workflow config and write as YML ### - unless (defined($config_out)) { - $config_out = workflow_config_path($workdir, $workflow, $local); - } my %workflow_args = ( 'manifest' => $manifest, - 'chunk_size' => $chunk_size, 'memory' => $memory, - 'nofilter' => $no_filter, 'queue' => $queue, 'vcf' => $vcf, 'plex_manifest' => $plex_manifests, ); + my $workflow_module; - if ($workflow eq $ILLUMINUS) { + if ($workflow eq $GENCALL) { + $workflow_module = $MODULE_GENCALL; + } elsif ($workflow eq $ILLUMINUS) { + $workflow_args{'chunk_size'} = $chunk_size; + $workflow_args{'nofilter'} = $no_filter; $workflow_args{'gender_method'} = 'Supplied'; $workflow_module = $MODULE_ILLUMINUS; } elsif ($workflow eq $ZCALL) { $workflow_module = $MODULE_ZCALL; - if (!($egt && $zstart && $ztotal)) { - $log->logcroak("Must specify EGT, zstart, and ztotal for ", - "zcall workflow"); - } + $workflow_args{'chunk_size'} = $chunk_size; + $workflow_args{'nofilter'} = $no_filter; $workflow_args{'egt'} = $egt; $workflow_args{'zstart'} = $zstart; $workflow_args{'ztotal'} = $ztotal; } else { $log->logcroak("Invalid workflow argument '", $workflow, - "'; must be one of $ILLUMINUS, $ZCALL"); + "'; must be one of $GENCALL, $ILLUMINUS, $ZCALL"); } my @args = ($dbfile, $run, $workdir, \%workflow_args); my %params = ( @@ -342,26 +355,38 @@ sub write_plex_results { on_connect_do => 'PRAGMA foreign_keys = ON'); my @samples = $pipedb->sample->all; my @sample_ids = uniq map { $_->sanger_sample_id } @samples; + if (scalar @sample_ids == 0) { + $log->logwarn("No sample IDs found in pipeline SQLite DB"); + } try { my $finder = WTSI::NPG::Genotyping::VCF::PlexResultFinder->new( sample_ids => \@sample_ids, - logger => $log, subscriber_config => $plex_config, ); my $manifest_dir = catfile($workdir, $PLEX_MANIFEST_SUBDIRECTORY); $plex_manifests = $finder->write_manifests($manifest_dir); - $log->info("Wrote plex manifests: ", - join(', ', @{$plex_manifests})); + $log->info("Wrote plex manifests: (", + join(', ', @{$plex_manifests}), ")"); my $vcf_dir = catfile($workdir, $VCF_SUBDIRECTORY); $vcf = $finder->write_vcf($vcf_dir); - $log->info("Wrote VCF: ", join(', ', @{$vcf})); + $log->info("Wrote VCF: (", join(', ', @{$vcf}), ")"); } catch { $log->logwarn("Unexpected error finding QC plex data in ", - "iRODS; VCF and plex manifests not written; ", - "run with --verbose for details"); + "iRODS; run with --verbose for details"); $log->info("Caught PlexResultFinder error: $_"); } } + if (scalar @{$plex_manifests} != 0 && scalar @{$vcf} == 0) { + $log->info('Found plex manifests: (', + join(', ', @{$plex_manifests}), ') but no VCF data; ', + 'omitting plex manifests from pipeline YML'); + $plex_manifests = []; + } elsif (scalar @{$plex_manifests} == 0 && scalar @{$vcf} != 0) { + $log->info('Found VCF: (', + join(', ', @{$vcf}), ') but no plex manifests; ', + 'omitting VCF from pipeline YML'); + $vcf = []; + } return ($plex_manifests, $vcf); } @@ -515,7 +540,7 @@ =head1 AUTHOR =head1 COPYRIGHT AND DISCLAIMER -Copyright (c) 2016 Genome Research Limited. All Rights Reserved. +Copyright (c) 2016, 2017 Genome Research Limited. All Rights Reserved. This program is free software: you can redistribute it and/or modify it under the terms of the Perl Artistic License or the GNU General diff --git a/src/perl/bin/run_qc.pl b/src/perl/bin/run_qc.pl index 36b2ed852..459447b28 100755 --- a/src/perl/bin/run_qc.pl +++ b/src/perl/bin/run_qc.pl @@ -11,13 +11,12 @@ use Cwd qw(getcwd abs_path); use File::Basename; use FindBin qw($Bin); -use Log::Log4perl; -use Log::Log4perl::Level; +use Log::Log4perl qw(:levels); use Pod::Usage; +use WTSI::DNAP::Utilities::ConfigureLogger qw(log_init); use WTSI::NPG::Genotyping::Version qw(write_version_log); -use WTSI::NPG::Genotyping::QC::Collation qw(collate readMetricThresholds); -use WTSI::NPG::Genotyping::QC::Identity; +use WTSI::NPG::Genotyping::QC::Collator; use WTSI::NPG::Genotyping::QC::PlinkIO qw(checkPlinkBinaryInputs); use WTSI::NPG::Genotyping::QC::QCPlotShared qw(defaultConfigDir defaultJsonConfig defaultTexIntroPath readQCFileNames); use WTSI::NPG::Genotyping::QC::Reports qw(createReports); @@ -26,28 +25,12 @@ our $VERSION = ''; our $DEFAULT_INI = $ENV{HOME} . "/.npg/genotyping.ini"; our $CR_STATS_EXECUTABLE = "snp_af_sample_cr_bed"; +our $ID_EXECUTABLE= "check_identity_bayesian.pl"; our $MAF_HET_EXECUTABLE = "het_by_maf.py"; - my $uid = `whoami`; chomp($uid); my $session_log = user_session_log($uid, 'run_qc'); -my $embedded_conf = " - log4perl.logger.npg.ready_qc_calls = ERROR, A1, A2 - - log4perl.appender.A1 = Log::Log4perl::Appender::Screen - log4perl.appender.A1.utf8 = 1 - log4perl.appender.A1.layout = Log::Log4perl::Layout::PatternLayout - log4perl.appender.A1.layout.ConversionPattern = %d %p %m %n - - log4perl.appender.A2 = Log::Log4perl::Appender::File - log4perl.appender.A2.filename = $session_log - log4perl.appender.A2.utf8 = 1 - log4perl.appender.A2.layout = Log::Log4perl::Layout::PatternLayout - log4perl.appender.A2.layout.ConversionPattern = %d %p %m %n - log4perl.appender.A2.syswrite = 1 -"; - my $log; run() unless caller(); @@ -83,20 +66,13 @@ sub run { ); - ### set up logging - if ($log4perl_config) { - Log::Log4perl::init($log4perl_config); - $log = Log::Log4perl->get_logger('npg.genotyping.qc.identity'); - } else { - Log::Log4perl::init(\$embedded_conf); - $log = Log::Log4perl->get_logger('npg.genotyping.qc.identity'); - if ($verbose) { - $log->level($INFO); - } - elsif ($debug) { - $log->level($DEBUG); - } - } + my @log_levels; + if ($debug) { push @log_levels, $DEBUG; } + if ($verbose) { push @log_levels, $INFO; } + log_init(config => $log4perl_config, + file => $session_log, + levels => \@log_levels); + $log = Log::Log4perl->get_logger('main'); ### process options and validate inputs if (defined($plinkRaw)) { @@ -113,7 +89,7 @@ sub run { $mafHet ||= 0; if (not -e $outDir) { mkdir($outDir); } elsif (not -w $outDir) { - die "Cannot write to output directory $outDir\n"; + $log->logcroak("Cannot write to output directory $outDir"); } $outDir = abs_path($outDir); $title ||= getDefaultTitle($outDir); @@ -131,6 +107,13 @@ sub run { my @vcf; my @plexManifests; if ($vcf && $plexManifests) { + if (!$sampleJson) { + $log->logcroak("--vcf and --plex-manifests arguments must be ", + "accompanied by a --sample-json argument"); + } elsif (! -e $sampleJson) { + $log->logcroak("--sample-json path '", $sampleJson, + "' does not exist"); + } @vcf = split(/,/msx, $vcf); foreach my $vcf_path (@vcf) { unless (-e $vcf_path) { @@ -156,6 +139,7 @@ sub run { $log->logcroak("--plex-manifests argument must be accompanied by a", " --vcf argument"); } + ### run QC run_qc($plinkPrefix, $simPath, $dbPath, $iniPath, $configPath, $runName, $outDir, $title, $texIntroPath, $mafHet, $filterConfig, @@ -262,7 +246,8 @@ sub processPlinkPrefix { } my $ok = checkPlinkBinaryInputs($plinkPrefix); unless ($ok) { - die "Cannot read plink binary inputs for prefix $plinkPrefix\n"; + $log->logcroak("Cannot read plink binary inputs for prefix '", + $plinkPrefix, "'"); } return $plinkPrefix; } @@ -271,56 +256,47 @@ sub verifyAbsPath { my $path = shift; my $cwd = getcwd(); unless (-e $path) { - die "Path '$path' does not exist relative to current directory '$cwd'\n"; + $log->logcroak("Path '", $path, "' does not exist relative to ", + "current directory '", $cwd, "'"); } $path = abs_path($path); return $path; } -sub run_qc_wip { - # run the work-in-progess refactored QC in parallel with the old one - my ($plinkPrefix, $outDir, $plexManifestRef, $vcfRef, $sampleJson) = @_; - $outDir = $outDir."/qc_wip"; - mkdir($outDir); - my $script = "check_identity_bed_wip.pl"; - my $jsonPath = $outDir."/identity_wip.json"; - my $csvPath = $outDir."/identity_wip.csv"; - my $vcf = join(',', @{$vcfRef}); - my $plexManifest = join(',', @{$plexManifestRef}); - my @args = ("--json=$jsonPath", - "--csv=$csvPath", - "--plink=$plinkPrefix", - "--plex=$plexManifest", - "--sample_json=$sampleJson", - "--vcf=$vcf" - ); - my $cmd = $script." ".join(" ", @args); - my $result = system($cmd); - if ($result!=0) { - die qq(Command finished with non-zero exit status: "$cmd"\n); - } - -} - sub run_qc { my ($plinkPrefix, $simPath, $dbPath, $iniPath, $configPath, $runName, $outDir, $title, $texIntroPath, $mafHet, $filter, $exclude, $plexManifest, $vcf, $sampleJson) = @_; - if ($plexManifest && $vcf && $sampleJson) { - run_qc_wip($plinkPrefix, $outDir, $plexManifest, $vcf, $sampleJson); + if (! defined $runName) { + $log->logcroak("Must supply pipeline run name for database ", + "gender update"); } write_version_log($outDir); my %fileNames = readQCFileNames($configPath); - ### input file generation ### - my @cmds = ("$CR_STATS_EXECUTABLE -r $outDir/snp_cr_af.txt -s $outDir/sample_cr_het.txt $plinkPrefix", - "$Bin/check_duplicates_bed.pl --dir $outDir $plinkPrefix", - ); - my $genderCmd = "$Bin/check_xhet_gender.pl --input=$plinkPrefix --output-dir=$outDir"; - if (!defined($runName)) { - die "Must supply pipeline run name for database gender update\n"; + ### generate commands to produce QC metrics ### + # TODO use WTSI::DNAP::Utilities::Runnable for more robust execution? + my @cmds; + my $crCmd = "$CR_STATS_EXECUTABLE -r $outDir/snp_cr_af.txt ". + "-s $outDir/sample_cr_het.txt $plinkPrefix"; + my $dupCmd = "$Bin/check_duplicates_bed.pl --dir $outDir $plinkPrefix"; + push @cmds, $crCmd, $dupCmd; + if (defined $plexManifest && defined $vcf && defined $sampleJson) { + my @idArgs = ('--json', $outDir.'/'.$fileNames{'id_json'}, + '--csv', $outDir.'/'.$fileNames{'id_csv'}, + '--plink', $plinkPrefix, + '--plex', join(',', @{$plexManifest}), + '--vcf', join(',', @{$vcf}), + '--sample_json', $sampleJson, + ); + my $idCmd = $ID_EXECUTABLE.' '.join(' ', @idArgs); + push @cmds, $idCmd; } + my @genderArgs = ('--input', $plinkPrefix, + '--output-dir', $outDir, + ); + my $genderCmd = "$Bin/check_xhet_gender.pl ".join(' ', @genderArgs); $genderCmd.=" --dbfile=".$dbPath." --run=".$runName; - push(@cmds, $genderCmd); + push @cmds, $genderCmd; if ($mafHet) { my $mhout = $outDir.'/'.$fileNames{'het_by_maf'}; push(@cmds, "$MAF_HET_EXECUTABLE --in $plinkPrefix --out $mhout"); @@ -336,46 +312,35 @@ sub run_qc { # using previously calculated metric values $intensity = 1; } - my $dbopt = "--dbpath=$dbPath "; - ### run QC data generation commands ### + ### run QC metric commands ### foreach my $cmd (@cmds) { - my $result = system($cmd); + my $result = system($cmd); if ($result!=0) { - die qq("Command finished with non-zero exit status: "$cmd"\n); + $log->logcroak("Command finished with non-zero exit status: '", + $cmd, "'"); } } - ### run identity check ### - WTSI::NPG::Genotyping::QC::Identity->new( - db_path => $dbPath, - ini_path => $iniPath, - output_dir => $outDir, - plink_path => $plinkPrefix, - )->run_identity_check(); - my $idJson = $outDir.'/'.$fileNames{'id_json'}; - if (!(-e $idJson)) { - die "Identity JSON file '$idJson' does not exist!\n"; - } ### collate inputs, write JSON and CSV ### my $csvPath = $outDir."/pipeline_summary.csv"; my $statusJson = $outDir."/qc_results.json"; - my $metricJson = ""; + my $duplicates = $outDir."/duplicate_results.json"; # first pass -- standard thresholds, no DB update - my @allMetricNames = keys(%{readMetricThresholds($configPath)}); - my @metricNames = (); - foreach my $metric (@allMetricNames) { - if ($intensity || ($metric ne 'magnitude' && $metric ne 'xydiff')) { - push(@metricNames, $metric); - } + my $collator = WTSI::NPG::Genotyping::QC::Collator->new( + db_path => $dbPath, + ini_path => $iniPath, + input_dir => $outDir, + config_path => $configPath + ); + $collator->writePassFailJson($statusJson); + $collator->writeCsv($csvPath); + if ($collator->hasDuplicatesThreshold()) { + $collator->writeDuplicates($duplicates); } - collate($outDir, $configPath, $configPath, $dbPath, $iniPath, - $statusJson, $metricJson, $csvPath, 0, \@metricNames); ### plot generation ### @cmds = (); - if ($dbopt) { - my $cmd = "$Bin/plot_metric_scatter.pl $dbopt --inipath=$iniPath --config=$configPath --outdir=$outDir --qcdir=$outDir"; - if (!$simPath) { $cmd = $cmd." --no-intensity "; } - push(@cmds, $cmd); - } + my $dbopt = "--dbpath=$dbPath "; + my $cmd = "$Bin/plot_metric_scatter.pl $dbopt --inipath=$iniPath --config=$configPath --outdir=$outDir --qcdir=$outDir"; + push(@cmds, $cmd); push(@cmds, getPlateHeatmapCommands($dbopt, $iniPath, $outDir, $title, $intensity, \%fileNames)); my @densityTerms = ('cat', $outDir.'/'.$fileNames{'sample_cr_het'}, '|', @@ -387,22 +352,36 @@ sub run_qc { foreach my $cmd (@cmds) { my $result = system($cmd); if ($result!=0) { - die qq("Command finished with non-zero exit status: "$cmd"\n); + $log->logcroak("Command finished with non-zero exit status: '", + $cmd, "'"); } } ### create PDF report my $texPath = $outDir."/pipeline_summary.tex"; my $genderThresholdPath = $outDir."/sample_xhet_gender_thresholds.txt"; - createReports($texPath, $statusJson, $idJson, $configPath, $dbPath, + createReports($texPath, $statusJson, $configPath, $dbPath, $genderThresholdPath, $outDir, $texIntroPath); ### exclude failed samples from pipeline DB if ($filter) { # second pass -- evaluate filter metrics/thresholds # update DB unless the --include option is in effect - $csvPath = $outDir."/filter_results.csv"; + my $collator = WTSI::NPG::Genotyping::QC::Collator->new( + db_path => $dbPath, + ini_path => $iniPath, + input_dir => $outDir, + config_path => $filter + ); $statusJson = $outDir."/filter_results.json"; - collate($outDir, $configPath, $filter, $dbPath, $iniPath, - $statusJson, $metricJson, $csvPath, $exclude); + $csvPath = $outDir."/filter_results.csv"; + $duplicates = $outDir."/filter_duplicates.json"; + $collator->writePassFailJson($statusJson); + $collator->writeCsv($csvPath); + if ($collator->hasDuplicatesThreshold()) { + $collator->writeDuplicates($duplicates); + } + if ($exclude) { + $collator->excludeFailedSamples(); + } } ## create 'supplementary' directory and move files cleanup($outDir); @@ -487,7 +466,7 @@ =head2 NOTES =item 2. The --plex-manifest and --vcf options, with appropriate arguments, -are required to run the alternate identity check. If both these +are required for the identity check metric. If both these options are not specified, the check will be omitted. Arguments to both options are comma-separated lists of file paths; the individual paths may not contain commas. The order of paths is not significant. @@ -560,7 +539,7 @@ =head1 AUTHOR =head1 COPYRIGHT AND DISCLAIMER -Copyright (c) 2012, 2013, 2014, 2015, 2016 Genome Research Limited. +Copyright (c) 2012, 2013, 2014, 2015, 2016, 2017 Genome Research Limited. All Rights Reserved. This program is free software: you can redistribute it and/or modify diff --git a/src/perl/bin/sample_intensities.pl b/src/perl/bin/sample_intensities.pl index 88c1b75aa..9a5b7022d 100755 --- a/src/perl/bin/sample_intensities.pl +++ b/src/perl/bin/sample_intensities.pl @@ -6,10 +6,13 @@ package main; use warnings; use strict; +use Carp; use Getopt::Long; use JSON; -use Log::Log4perl qw(:easy); +use Log::Log4perl qw(:levels); use Pod::Usage; +use WTSI::DNAP::Utilities::ConfigureLogger qw/log_init/; +use WTSI::NPG::Utilities qw(user_session_log); use WTSI::DNAP::Utilities::IO qw(maybe_stdout); use WTSI::NPG::Genotyping::Database::Pipeline; @@ -19,7 +22,9 @@ package main; our $DEFAULT_INI = $ENV{HOME} . "/.npg/genotyping.ini"; our $ID_REGEX = qr/^[\w.-]{4,}$/msx; -Log::Log4perl->easy_init($ERROR); +my $uid = `whoami`; +chomp($uid); +my $session_log = user_session_log($uid, 'sample_intensities'); run() unless caller(); @@ -27,23 +32,34 @@ sub run { my $all; my $config; my $dbfile; + my $debug; my $gender_method; + my $log4perl_config; my $output; my $run_name; my $verbose; GetOptions('all' => \$all, 'config=s' => \$config, + 'debug' => \$debug, 'dbfile=s' => \$dbfile, 'gender_method=s' => \$gender_method, 'help' => sub { pod2usage(-verbose => 2, -exitval => 0) }, + 'logconf=s' => \$log4perl_config, 'output=s' => \$output, 'run=s' => \$run_name, - 'verbose' => \$verbose); + 'verbose' => \$verbose,); $config ||= $DEFAULT_INI; $gender_method ||= 'Supplied'; + my @log_levels; + if ($debug) { push @log_levels, $DEBUG; } + if ($verbose) { push @log_levels, $INFO; } + log_init(config => $log4perl_config, + file => $session_log, + levels => \@log_levels); + my $log = Log::Log4perl->get_logger('main'); unless ($run_name) { pod2usage(-msg => "A --run argument is required\n", -exitval => 2); @@ -54,7 +70,7 @@ sub run { if ($dbfile) { push @initargs, (dbfile => $dbfile); } - + $log->debug("Connecting to SQLite database file '$dbfile'"); my $pipedb = WTSI::NPG::Genotyping::Database::Pipeline->new (@initargs)->connect (RaiseError => 1, @@ -62,8 +78,8 @@ sub run { my $run = $pipedb->piperun->find({name => $run_name}); unless ($run) { - die "Run '$run_name' does not exist. Valid runs are: [" . - join(", ", map { $_->name } $pipedb->piperun->all) . "]\n"; + $log->logcroak("Run '", $run_name, "' does not exist. Valid runs are: [", + join(", ", map { $_->name } $pipedb->piperun->all), "]"); } my $where = {'piperun.name' => $run->name, @@ -77,6 +93,8 @@ sub run { {join => [{dataset => 'piperun'}, {results => 'method'}], order_by => 'me.id_sample'})) { + + $log->debug("Processing sample ID: ", $sample->sanger_sample_id); my $gender = $pipedb->gender->find ({'sample.id_sample' => $sample->id_sample, 'method.name' => $gender_method}, @@ -89,14 +107,16 @@ sub run { push @samples, {sanger_sample_id => $sample->sanger_sample_id, uri => $sample->uri->as_string, result => $sample->gtc, - gender => $gender_name, + gender => $gender_name, gender_code => $gender_code, gender_method => $gender_method}; } + $log->info("Found data for ", scalar @samples, " samples"); my $fh = maybe_stdout($output); print $fh to_json(\@samples, {utf8 => 1, pretty => 1}); - close($fh); + close($fh) || $log->logcroak("Cannot close output"); + $log->info("Wrote sample JSON data to ", $output); return; } @@ -111,8 +131,8 @@ =head1 NAME =head1 SYNOPSIS sample_intensities [--config ] [--dbfile ] \ - [--output ] --run --gender \ - [--verbose] + [--output ] --run --gender + Options: @@ -129,7 +149,6 @@ =head1 SYNOPSIS defaults to STDOUT. --run The name of a pipe run defined previously using the ready_infinium script. - --verbose Print messages while processing. Optional. =head1 DESCRIPTION @@ -155,11 +174,12 @@ =head1 METHODS =head1 AUTHOR -Keith James +Keith James , Iain Bancarz =head1 COPYRIGHT AND DISCLAIMER -Copyright (C) 2012, 2015 Genome Research Limited. All Rights Reserved. +Copyright (C) 2012, 2015, 2016, 2017 Genome Research Limited. +All Rights Reserved. This program is free software: you can redistribute it and/or modify it under the terms of the Perl Artistic License or the GNU General diff --git a/src/perl/bin/update_expression_metadata.pl b/src/perl/bin/update_expression_metadata.pl index 506b3bd8b..2007e0102 100755 --- a/src/perl/bin/update_expression_metadata.pl +++ b/src/perl/bin/update_expression_metadata.pl @@ -7,29 +7,24 @@ package main; use strict; use warnings; use Getopt::Long; -use Log::Log4perl; -use Log::Log4perl::Level; + use Pod::Usage; use Try::Tiny; +use Log::Log4perl qw(:levels); +use WTSI::DNAP::Utilities::ConfigureLogger qw(log_init); use WTSI::NPG::Database::Warehouse; use WTSI::NPG::Expression::InfiniumDataObject; use WTSI::NPG::iRODS; +use WTSI::NPG::Utilities qw(user_session_log); -my $embedded_conf = q( - log4perl.logger.npg.irods.publish = ERROR, A1 - - log4perl.appender.A1 = Log::Log4perl::Appender::Screen - log4perl.appender.A1.utf8 = 1 - log4perl.appender.A1.layout = Log::Log4perl::Layout::PatternLayout - log4perl.appender.A1.layout.ConversionPattern = %d %p %m %n -); +my $uid = `whoami`; +chomp($uid); +my $session_log = user_session_log($uid, 'update_expression_metadata'); our $VERSION = ''; our $DEFAULT_INI = $ENV{HOME} . "/.npg/genotyping.ini"; -my $log; - run() unless caller(); sub run { @@ -80,21 +75,13 @@ sub run { } } - if ($log4perl_config) { - Log::Log4perl::init($log4perl_config); - $log = Log::Log4perl->get_logger('npg.irods.publish'); - } - else { - Log::Log4perl::init(\$embedded_conf); - $log = Log::Log4perl->get_logger('npg.irods.publish'); - - if ($verbose) { - $log->level($INFO); - } - elsif ($debug) { - $log->level($DEBUG); - } - } + my @log_levels; + if ($debug) { push @log_levels, $DEBUG; } + if ($verbose) { push @log_levels, $INFO; } + log_init(config => $log4perl_config, + file => $session_log, + levels => \@log_levels); + my $log = Log::Log4perl->get_logger('main'); my $ssdb = WTSI::NPG::Database::Warehouse->new (name => 'sequencescape_warehouse', @@ -102,7 +89,7 @@ sub run { mysql_enable_utf8 => 1, mysql_auto_reconnect => 1); - my $irods = WTSI::NPG::iRODS->new(logger => $log); + my $irods = WTSI::NPG::iRODS->new(); my @gex_data; if ($stdio) { @@ -192,11 +179,11 @@ =head1 METHODS =head1 AUTHOR -Keith James +Keith James , Iain Bancarz =head1 COPYRIGHT AND DISCLAIMER -Copyright (c) 2014 Genome Research Limited. All Rights Reserved. +Copyright (c) 2014, 2016 Genome Research Limited. All Rights Reserved. This program is free software: you can redistribute it and/or modify it under the terms of the Perl Artistic License or the GNU General diff --git a/src/perl/bin/update_fluidigm_metadata.pl b/src/perl/bin/update_fluidigm_metadata.pl index 2e62e547c..e7c0fff6e 100755 --- a/src/perl/bin/update_fluidigm_metadata.pl +++ b/src/perl/bin/update_fluidigm_metadata.pl @@ -5,30 +5,24 @@ package main; use strict; use warnings; use Getopt::Long; -use Log::Log4perl; -use Log::Log4perl::Level; +use Log::Log4perl qw(:levels); use Pod::Usage; use Try::Tiny; -use WTSI::NPG::Database::Warehouse; +use WTSI::DNAP::Utilities::ConfigureLogger qw(log_init); +use WTSI::NPG::Database::MLWarehouse; use WTSI::NPG::Genotyping::Fluidigm::AssayDataObject; use WTSI::NPG::iRODS; +use WTSI::NPG::Utilities qw(user_session_log); -my $embedded_conf = q( - log4perl.logger.npg.irods.publish = ERROR, A1 - - log4perl.appender.A1 = Log::Log4perl::Appender::Screen - log4perl.appender.A1.utf8 = 1 - log4perl.appender.A1.layout = Log::Log4perl::Layout::PatternLayout - log4perl.appender.A1.layout.ConversionPattern = %d %p %m %n -); +my $uid = `whoami`; +chomp($uid); +my $session_log = user_session_log($uid, 'update_fluidigm_metadata'); our $VERSION = ''; our $DEFAULT_INI = $ENV{HOME} . "/.npg/genotyping.ini"; our $DEFAULT_DAYS = 4; -my $log; - run() unless caller(); sub run { @@ -79,29 +73,21 @@ sub run { } } - if ($log4perl_config) { - Log::Log4perl::init($log4perl_config); - $log = Log::Log4perl->get_logger('npg.irods.publish'); - } - else { - Log::Log4perl::init(\$embedded_conf); - $log = Log::Log4perl->get_logger('npg.irods.publish'); - - if ($verbose) { - $log->level($INFO); - } - elsif ($debug) { - $log->level($DEBUG); - } - } + my @log_levels; + if ($debug) { push @log_levels, $DEBUG; } + if ($verbose) { push @log_levels, $INFO; } + log_init(config => $log4perl_config, + file => $session_log, + levels => \@log_levels); + my $log = Log::Log4perl->get_logger('main'); - my $ssdb = WTSI::NPG::Database::Warehouse->new + my $ssdb = WTSI::NPG::Database::MLWarehouse->new (name => 'sequencescape_warehouse', inifile => $config)->connect(RaiseError => 1, mysql_enable_utf8 => 1, mysql_auto_reconnect => 1); - my $irods = WTSI::NPG::iRODS->new(logger => $log); + my $irods = WTSI::NPG::iRODS->new(); my @fluidigm_data; if ($stdio) { @@ -194,11 +180,12 @@ =head1 METHODS =head1 AUTHOR -Keith James +Keith James , Iain Bancarz =head1 COPYRIGHT AND DISCLAIMER -Copyright (c) 2013 Genome Research Limited. All Rights Reserved. +Copyright (c) 2013, 2014, 2015, 2016 Genome Research Limited. +All Rights Reserved. This program is free software: you can redistribute it and/or modify it under the terms of the Perl Artistic License or the GNU General diff --git a/src/perl/bin/update_infinium_metadata.pl b/src/perl/bin/update_infinium_metadata.pl index 7a0548239..c5f6c75b8 100755 --- a/src/perl/bin/update_infinium_metadata.pl +++ b/src/perl/bin/update_infinium_metadata.pl @@ -7,14 +7,19 @@ package main; use strict; use warnings; use Getopt::Long; -use Log::Log4perl; -use Log::Log4perl::Level; +use Log::Log4perl qw(:levels); use Pod::Usage; use Try::Tiny; +use WTSI::DNAP::Utilities::ConfigureLogger qw(log_init); use WTSI::NPG::Database::Warehouse; use WTSI::NPG::Genotyping::Infinium::InfiniumDataObject; use WTSI::NPG::iRODS; +use WTSI::NPG::Utilities qw(user_session_log); + +my $uid = `whoami`; +chomp($uid); +my $session_log = user_session_log($uid, 'update_infinium_metadata'); my $embedded_conf = q( log4perl.logger.npg.irods.publish = ERROR, A1 @@ -79,31 +84,20 @@ sub run { } } - my $log; - - if ($log4perl_config) { - Log::Log4perl::init($log4perl_config); - $log = Log::Log4perl->get_logger('npg.irods.publish'); - } - else { - Log::Log4perl::init(\$embedded_conf); - $log = Log::Log4perl->get_logger('npg.irods.publish'); - - if ($verbose) { - $log->level($INFO); - } - elsif ($debug) { - $log->level($DEBUG); - } - } + my @log_levels; + if ($debug) { push @log_levels, $DEBUG; } + if ($verbose) { push @log_levels, $INFO; } + log_init(config => $log4perl_config, + file => $session_log, + levels => \@log_levels); + my $log = Log::Log4perl->get_logger('main'); my $ssdb = WTSI::NPG::Database::Warehouse->new (name => 'sequencescape_warehouse', - inifile => $config, - logger => $log)->connect(RaiseError => 1, - mysql_enable_utf8 => 1, - mysql_auto_reconnect => 1); - my $irods = WTSI::NPG::iRODS->new(logger => $log); + inifile => $config)->connect(RaiseError => 1, + mysql_enable_utf8 => 1, + mysql_auto_reconnect => 1); + my $irods = WTSI::NPG::iRODS->new(); my @infinium_data; if ($stdio) { @@ -196,11 +190,12 @@ =head1 METHODS =head1 AUTHOR -Keith James +Keith James , Iain Bancarz =head1 COPYRIGHT AND DISCLAIMER -Copyright (c) 2013 Genome Research Limited. All Rights Reserved. +Copyright (c) 2013, 2014, 2015, 2016 Genome Research Limited. +All Rights Reserved. This program is free software: you can redistribute it and/or modify it under the terms of the Perl Artistic License or the GNU General diff --git a/src/perl/bin/update_plink_annotation.pl b/src/perl/bin/update_plink_annotation.pl index ed1320282..cfe3b2a76 100755 --- a/src/perl/bin/update_plink_annotation.pl +++ b/src/perl/bin/update_plink_annotation.pl @@ -8,12 +8,18 @@ package main; use warnings; use File::Temp qw(tempdir tempfile); use Getopt::Long; -use Log::Log4perl qw(:easy); +use Log::Log4perl qw(:levels); use Pod::Usage; -use WTSI::NPG::Genotyping::Plink qw(update_placeholder +use WTSI::DNAP::Utilities::ConfigureLogger qw(log_init); +use WTSI::NPG::Genotyping::Plink qw(update_placeholder update_snp_locations update_sample_genders); +use WTSI::NPG::Utilities qw(user_session_log); + +my $uid = `whoami`; +chomp($uid); +my $session_log = user_session_log($uid, 'update_plink_annotation'); our $VERSION = ''; @@ -23,17 +29,21 @@ package main; sub run { my $bed_file; + my $debug; + my $log4perl_config; my $sample_json; my $snp_json; - my $placeholder; + my $placeholder; my $verbose; - GetOptions('bed=s' => \$bed_file, + GetOptions('bed=s' => \$bed_file, + 'debug' => \$debug, 'help' => sub { pod2usage(-verbose => 2, -exitval => 0) }, - 'samples=s' => \$sample_json, - 'snps=s' => \$snp_json, + 'logconf=s' => \$log4perl_config, + 'samples=s' => \$sample_json, + 'snps=s' => \$snp_json, 'placeholder=i' => \$placeholder, - 'verbose' => \$verbose); + 'verbose' => \$verbose); unless ($bed_file) { pod2usage(-msg => "A --bed argument is required\n", @@ -45,6 +55,14 @@ sub run { -exitval => 2); } + my @log_levels; + if ($debug) { push @log_levels, $DEBUG; } + if ($verbose) { push @log_levels, $INFO; } + log_init(config => $log4perl_config, + file => $session_log, + levels => \@log_levels); + my $log = Log::Log4perl->get_logger('main'); + # placeholder for missing data in .fam files must be 0 or -9 if (defined($placeholder) && $placeholder!=0 && $placeholder!=-9) { pod2usage(-msg => "--placeholder argument must be one of (0, -9)\n", @@ -55,19 +73,19 @@ sub run { if ($sample_json) { my $num_updated = update_sample_genders($bed_file, $bed_file, $sample_json, $tmp_dir); - print STDERR "Updated the gender of $num_updated samples\n" if $verbose; + $log->info("Updated the gender of ", $num_updated, " samples"); } if ($snp_json) { my $num_updated = update_snp_locations($bed_file, $bed_file, $snp_json, $tmp_dir); - print STDERR "Updated the location of $num_updated SNPs\n" if $verbose; + $log->info("Updated the location of ", $num_updated, " SNPs"); } if (defined($placeholder)) { my $num_updated = update_placeholder($bed_file, $bed_file, $placeholder, $tmp_dir); - print STDERR "Updated placeholders for $num_updated samples\n" if $verbose; + $log->info("Updated placeholders for ", $num_updated, " samples"); } return; @@ -89,6 +107,7 @@ =head1 SYNOPSIS --bed The file name of the Plink data to me modified. This should be the name of the BED file whose corresponding BIM and/or FAM annotation files are to be updated. + --logconf A log4perl configuration file. Optional. --samples A JSON file of sample annotation containing the new gender codes. --snps A JSON file of SNP annotation containing the new chromosome @@ -110,11 +129,12 @@ =head1 METHODS =head1 AUTHOR -Keith James +Keith James , Iain Bancarz =head1 COPYRIGHT AND DISCLAIMER -Copyright (c) 2012 Genome Research Limited. All Rights Reserved. +Copyright (c) 2012, 2013, 2014, 2015, 2016 Genome Research Limited. +All Rights Reserved. This program is free software: you can redistribute it and/or modify it under the terms of the Perl Artistic License or the GNU General diff --git a/src/perl/bin/update_sequenom_metadata.pl b/src/perl/bin/update_sequenom_metadata.pl index f0674e7d4..24e6ef39d 100755 --- a/src/perl/bin/update_sequenom_metadata.pl +++ b/src/perl/bin/update_sequenom_metadata.pl @@ -10,24 +10,20 @@ package main; use DateTime; use Getopt::Long; use List::MoreUtils qw(natatime); -use Log::Log4perl; -use Log::Log4perl::Level; +use Log::Log4perl qw(:levels); use Pod::Usage; use Try::Tiny; +use WTSI::DNAP::Utilities::ConfigureLogger qw(log_init); use WTSI::NPG::Database::Warehouse; use WTSI::NPG::Genotyping::Database::SNP; use WTSI::NPG::Genotyping::Sequenom::AssayDataObject; use WTSI::NPG::iRODS; +use WTSI::NPG::Utilities qw(user_session_log); -my $embedded_conf = q( - log4perl.logger.npg.irods.publish = ERROR, A1 - - log4perl.appender.A1 = Log::Log4perl::Appender::Screen - log4perl.appender.A1.utf8 = 1 - log4perl.appender.A1.layout = Log::Log4perl::Layout::PatternLayout - log4perl.appender.A1.layout.ConversionPattern = %d %p %m %n -); +my $uid = `whoami`; +chomp($uid); +my $session_log = user_session_log($uid, 'update_sequenom_metadata'); our $VERSION = ''; our $DEFAULT_INI = $ENV{HOME} . "/.npg/genotyping.ini"; @@ -82,37 +78,25 @@ sub run { } } - my $log; - - if ($log4perl_config) { - Log::Log4perl::init($log4perl_config); - $log = Log::Log4perl->get_logger('npg.irods.publish'); - } - else { - Log::Log4perl::init(\$embedded_conf); - $log = Log::Log4perl->get_logger('npg.irods.publish'); - - if ($verbose) { - $log->level($INFO); - } - elsif ($debug) { - $log->level($DEBUG); - } - } + my @log_levels; + if ($debug) { push @log_levels, $DEBUG; } + if ($verbose) { push @log_levels, $INFO; } + log_init(config => $log4perl_config, + file => $session_log, + levels => \@log_levels); + my $log = Log::Log4perl->get_logger('main'); my $ssdb = WTSI::NPG::Database::Warehouse->new (name => 'sequencescape_warehouse', - inifile => $config, - logger => $log)->connect(RaiseError => 1, - mysql_enable_utf8 => 1, - mysql_auto_reconnect => 1); + inifile => $config)->connect(RaiseError => 1, + mysql_enable_utf8 => 1, + mysql_auto_reconnect => 1); my $snpdb = WTSI::NPG::Genotyping::Database::SNP->new (name => 'snp', - inifile => $config, - logger => $log)->connect(RaiseError => 1); + inifile => $config)->connect(RaiseError => 1); - my $irods = WTSI::NPG::iRODS->new(logger => $log); + my $irods = WTSI::NPG::iRODS->new(); my @sequenom_data; if ($stdio) { @@ -208,11 +192,12 @@ =head1 METHODS =head1 AUTHOR -Keith James +Keith James , Iain Bancarz =head1 COPYRIGHT AND DISCLAIMER -Copyright (c) 2013 Genome Research Limited. All Rights Reserved. +Copyright (c) 2013, 2014, 2015, 2016 Genome Research Limited. +All Rights Reserved. This program is free software: you can redistribute it and/or modify it under the terms of the Perl Artistic License or the GNU General diff --git a/src/perl/bin/update_sequenom_qc_metadata.pl b/src/perl/bin/update_sequenom_qc_metadata.pl index b23e93f5c..b93fc1c20 100755 --- a/src/perl/bin/update_sequenom_qc_metadata.pl +++ b/src/perl/bin/update_sequenom_qc_metadata.pl @@ -8,23 +8,19 @@ package main; use warnings; use DateTime; use Getopt::Long; -use Log::Log4perl; -use Log::Log4perl::Level; +use Log::Log4perl qw(:levels); use Pod::Usage; use Try::Tiny; +use WTSI::DNAP::Utilities::ConfigureLogger qw(log_init); use WTSI::NPG::Genotyping::Database::SNP; use WTSI::NPG::Genotyping::Sequenom::AssayDataObject; use WTSI::NPG::iRODS; +use WTSI::NPG::Utilities qw(user_session_log); -my $embedded_conf = q( - log4perl.logger.npg.irods.publish = ERROR, A1 - - log4perl.appender.A1 = Log::Log4perl::Appender::Screen - log4perl.appender.A1.utf8 = 1 - log4perl.appender.A1.layout = Log::Log4perl::Layout::PatternLayout - log4perl.appender.A1.layout.ConversionPattern = %d %p %m %n -); +my $uid = `whoami`; +chomp($uid); +my $session_log = user_session_log($uid, 'update_sequenom_qc_metadata'); our $VERSION = ''; our $DEFAULT_INI = $ENV{HOME} . "/.npg/genotyping.ini"; @@ -86,23 +82,13 @@ sub run { } } - my $log; - - if ($log4perl_config) { - Log::Log4perl::init($log4perl_config); - $log = Log::Log4perl->get_logger('npg.irods.publish'); - } - else { - Log::Log4perl::init(\$embedded_conf); - $log = Log::Log4perl->get_logger('npg.irods.publish'); - - if ($verbose) { - $log->level($INFO); - } - elsif ($debug) { - $log->level($DEBUG); - } - } + my @log_levels; + if ($debug) { push @log_levels, $DEBUG; } + if ($verbose) { push @log_levels, $INFO; } + log_init(config => $log4perl_config, + file => $session_log, + levels => \@log_levels); + my $log = Log::Log4perl->get_logger('main'); my $now = DateTime->now; my $end; @@ -119,10 +105,9 @@ sub run { my $snpdb = WTSI::NPG::Genotyping::Database::SNP->new (name => 'snp', - inifile => $config, - logger => $log)->connect(RaiseError => 1); + inifile => $config)->connect(RaiseError => 1); - my $irods = WTSI::NPG::iRODS->new(logger => $log); + my $irods = WTSI::NPG::iRODS->new(); my @sequenom_data; if ($stdio) { @@ -232,11 +217,12 @@ =head1 METHODS =head1 AUTHOR -Keith James +Keith James , Iain Bancarz =head1 COPYRIGHT AND DISCLAIMER -Copyright (c) 2013 Genome Research Limited. All Rights Reserved. +Copyright (c) 2013, 2014, 2015, 2016 Genome Research Limited. +All Rights Reserved. This program is free software: you can redistribute it and/or modify it under the terms of the Perl Artistic License or the GNU General diff --git a/src/perl/bin/vcf_consistency_check.pl b/src/perl/bin/vcf_consistency_check.pl index 92b2a74e5..df346ba89 100755 --- a/src/perl/bin/vcf_consistency_check.pl +++ b/src/perl/bin/vcf_consistency_check.pl @@ -8,10 +8,10 @@ package main; use warnings; use Carp; use Getopt::Long; -use Log::Log4perl; -use Log::Log4perl::Level; +use Log::Log4perl qw(:levels); use Pod::Usage; +use WTSI::DNAP::Utilities::ConfigureLogger qw(log_init); use WTSI::NPG::Genotyping::VCF::GtcheckWrapper; use WTSI::NPG::Utilities qw(user_session_log); @@ -38,32 +38,25 @@ package main; "; -my ($input, $debug, $jsonOut, $log, $logConfig, $textOut, $verbose); +my ($input, $debug, $jsonOut, $log4perl_config, $textOut, $verbose); GetOptions('help' => sub { pod2usage(-verbose => 2, -exitval => 0) }, 'debug' => \$debug, 'input=s' => \$input, 'json=s' => \$jsonOut, - 'logconf=s' => \$logConfig, + 'logconf=s' => \$log4perl_config, 'text=s' => \$textOut, 'verbose' => \$verbose ); - -### set up logging ### -if ($logConfig) { - Log::Log4perl::init($logConfig); -} else { - Log::Log4perl::init(\$embedded_conf); -} -$log = Log::Log4perl->get_logger('npg.vcf.consistency'); -if ($verbose) { - $log->level($INFO); -} -elsif ($debug) { - $log->level($DEBUG); -} +my @log_levels; +if ($debug) { push @log_levels, $DEBUG; } +if ($verbose) { push @log_levels, $INFO; } +log_init(config => $log4perl_config, + file => $session_log, + levels => \@log_levels); +my $log = Log::Log4perl->get_logger('main'); ### read input and do consistency check @@ -122,7 +115,7 @@ =head1 SYNOPSIS standard output. Optional; if not given, text is not written. --logconf=PATH Path to Log4Perl configuration file. Optional. - --quiet Suppress printing of status information. + --verbose Print additional messages while processing. Optional. =head1 DESCRIPTION @@ -143,7 +136,7 @@ =head1 AUTHOR =head1 COPYRIGHT AND DISCLAIMER -Copyright (c) 2014 Genome Research Limited. All Rights Reserved. +Copyright (c) 2014, 2016 Genome Research Limited. All Rights Reserved. This program is free software: you can redistribute it and/or modify it under the terms of the Perl Artistic License or the GNU General diff --git a/src/perl/bin/vcf_from_plex.pl b/src/perl/bin/vcf_from_plex.pl index 1b26679e6..f453c3940 100755 --- a/src/perl/bin/vcf_from_plex.pl +++ b/src/perl/bin/vcf_from_plex.pl @@ -12,10 +12,10 @@ package main; use Getopt::Long; use JSON; use List::MoreUtils qw(uniq); -use Log::Log4perl; -use Log::Log4perl::Level; +use Log::Log4perl qw(:levels); use Pod::Usage; +use WTSI::DNAP::Utilities::ConfigureLogger qw(log_init); use WTSI::NPG::iRODS; use WTSI::NPG::iRODS::DataObject; use WTSI::NPG::Genotyping::Types qw(:all); @@ -47,9 +47,9 @@ package main; "; -my ($input, $inputType, $vcfPath, $log, $logConfig, $use_irods, +my ($input, $inputType, $vcfPath, $log4perl_config, $use_irods, $debug, $quiet, $repository, $snpset_path, $chromosome_json, - $metadata_json, $callset_name); + $metadata_json, $callset_name, $verbose); my $CHROMOSOME_JSON_KEY = 'chromosome_json'; our $SEQUENOM_TYPE = 'sequenom'; @@ -66,20 +66,21 @@ package main; -exitval => 0) }, 'input=s' => \$input, 'irods' => \$use_irods, - 'logconf=s' => \$logConfig, + 'logconf=s' => \$log4perl_config, 'plex_type=s' => \$inputType, 'repository=s' => \$repository, 'vcf=s' => \$vcfPath, 'quiet' => \$quiet, + 'verbose' => \$verbose, ); -### set up logging ### -if ($logConfig) { Log::Log4perl::init($logConfig); } -else { Log::Log4perl::init(\$embedded_conf); } -$log = Log::Log4perl->get_logger('npg.vcf.plex'); -if ($quiet) { $log->level($WARN); } -elsif ($debug) { $log->level($DEBUG); } -else { $log->level($INFO); } +my @log_levels; +if ($debug) { push @log_levels, $DEBUG; } +if ($verbose) { push @log_levels, $INFO; } +log_init(config => $log4perl_config, + file => $session_log, + levels => \@log_levels); +my $log = Log::Log4perl->get_logger('main'); ### process command-line options and make sanity checks ### unless ($inputType eq $SEQUENOM_TYPE || $inputType eq $FLUIDIGM_TYPE) { @@ -102,7 +103,6 @@ package main; my ($snpset, $chromosome_lengths); if ($use_irods) { $irods = WTSI::NPG::iRODS->new(); - $irods->logger($log); my $snpset_obj = WTSI::NPG::iRODS::DataObject->new ($irods, $snpset_path); $snpset = WTSI::NPG::Genotyping::SNPSet->new($snpset_obj); @@ -293,7 +293,9 @@ =head1 SYNOPSIS --irods Indicates that inputs are in iRODS. If absent, inputs are assumed to be in the local filesystem, and the --snpset and --chromosomes options are required. + --logconf=PATH Path to Log4Perl configuration file. Optional. --plex_type=NAME Either fluidigm or sequenom. Required. + --quiet Only print warning messages to the default log. --repository=DIR Location of the root directory for NPG genome reference repository. Defaults to the value of the NPG_REPOSITORY_ROOT environment variable. @@ -304,7 +306,7 @@ =head1 SYNOPSIS --vcf=PATH Path for VCF file output. Optional; if not given, VCF is not written. If equal to '-', output is written to STDOUT. - --logconf=PATH Path to Log4Perl configuration file. Optional. + --verbose Print additional messages to the default log. =head1 DESCRIPTION @@ -324,7 +326,7 @@ =head1 AUTHOR =head1 COPYRIGHT AND DISCLAIMER -Copyright (c) 2014 Genome Research Limited. All Rights Reserved. +Copyright (c) 2014, 2016 Genome Research Limited. All Rights Reserved. This program is free software: you can redistribute it and/or modify it under the terms of the Perl Artistic License or the GNU General diff --git a/src/perl/bin/vcf_from_plink.pl b/src/perl/bin/vcf_from_plink.pl index dbb5da4ac..4307cff13 100755 --- a/src/perl/bin/vcf_from_plink.pl +++ b/src/perl/bin/vcf_from_plink.pl @@ -9,11 +9,11 @@ package main; use File::Slurp qw(read_file); use Getopt::Long; use JSON; -use Log::Log4perl; -use Log::Log4perl::Level; +use Log::Log4perl qw(:levels); use Pod::Usage; use Text::CSV; +use WTSI::DNAP::Utilities::ConfigureLogger qw(log_init); use WTSI::NPG::Genotyping::Call; use WTSI::NPG::Genotyping::SNPSet; use WTSI::NPG::Genotyping::VCF::DataRow; @@ -25,28 +25,9 @@ package main; our $VERSION = ''; - my $uid = `whoami`; chomp($uid); -my $session_log = user_session_log($uid, 'check_identity_bed_wip'); - -my $embedded_conf = " - log4perl.logger.npg.genotyping.vcf_from_plink = ERROR, A1, A2 - - log4perl.appender.A1 = Log::Log4perl::Appender::Screen - log4perl.appender.A1.utf8 = 1 - log4perl.appender.A1.layout = Log::Log4perl::Layout::PatternLayout - log4perl.appender.A1.layout.ConversionPattern = %d %p %m %n - - log4perl.appender.A2 = Log::Log4perl::Appender::File - log4perl.appender.A2.filename = $session_log - log4perl.appender.A2.utf8 = 1 - log4perl.appender.A2.layout = Log::Log4perl::Layout::PatternLayout - log4perl.appender.A2.layout.ConversionPattern = %d %p %m %n - log4perl.appender.A2.syswrite = 1 -"; - -my $log; +my $session_log = user_session_log($uid, 'vcf_from_plink'); run() unless caller(); @@ -73,20 +54,13 @@ sub run { 'verbose' => \$verbose, ); - if ($log4perl_config) { - Log::Log4perl::init($log4perl_config); - $log = Log::Log4perl->get_logger('npg.genotyping.vcf_from_plink'); - } - else { - Log::Log4perl::init(\$embedded_conf); - $log = Log::Log4perl->get_logger('npg.genotyping.vcf_from_plink'); - if ($verbose) { - $log->level($INFO); - } - elsif ($debug) { - $log->level($DEBUG); - } - } + my @log_levels; + if ($debug) { push @log_levels, $DEBUG; } + if ($verbose) { push @log_levels, $INFO; } + log_init(config => $log4perl_config, + file => $session_log, + levels => \@log_levels); + my $log = Log::Log4perl->get_logger('main'); unless ($contigs && $manifest && $plink && $vcf) { $log->logcroak("Missing required argument: Must supply --contigs, ", @@ -154,7 +128,8 @@ sub read_plink_calls { my ($pedPath, $plink_snps_ref) = @_; my @plink_snps = @{$plink_snps_ref}; my @ped_lines = read_file($pedPath); - my $csv = Text::CSV->new({sep_char => " "}); + my $csv = Text::CSV->new({sep_char => " ", + binary => 1 }); my %calls_by_sample; foreach my $line (@ped_lines) { $csv->parse($line); @@ -205,7 +180,8 @@ sub read_column { $sep_char ||= "\t"; my @values; my @inLines = read_file($inPath); - my $csv = Text::CSV->new({sep_char => $sep_char}); + my $csv = Text::CSV->new({sep_char => $sep_char, + binary => 1}); foreach my $line (@inLines) { $csv->parse($line); my @fields = $csv->fields(); @@ -260,7 +236,7 @@ =head1 AUTHOR =head1 COPYRIGHT AND DISCLAIMER -Copyright (c) 2015 Genome Research Limited. All Rights Reserved. +Copyright (c) 2015, 2016, 2017 Genome Research Limited. All Rights Reserved. This program is free software: you can redistribute it and/or modify it under the terms of the Perl Artistic License or the GNU General diff --git a/src/perl/bin/write_qc_reports.pl b/src/perl/bin/write_qc_reports.pl index 4284f9042..dfc1c3dba 100755 --- a/src/perl/bin/write_qc_reports.pl +++ b/src/perl/bin/write_qc_reports.pl @@ -9,7 +9,7 @@ use warnings; use Getopt::Long; use Carp; -use WTSI::NPG::Genotyping::QC::QCPlotShared qw(defaultJsonConfig +use WTSI::NPG::Genotyping::QC::QCPlotShared qw(defaultJsonConfig defaultTexIntroPath); use WTSI::NPG::Genotyping::QC::Reports qw(createReports qcNameFromPath); @@ -19,7 +19,7 @@ my $defaultInput = "."; my $defaultPrefix = "pipeline_summary"; -my ($help, $prefix, $texPath, $iniPath, $resultPath, $configPath, $idPath, +my ($help, $prefix, $texPath, $iniPath, $resultPath, $configPath, $dbPath, $genderThresholdPath, $qcDir, $texIntroPath, $qcName); GetOptions("help" => \$help, @@ -32,8 +32,8 @@ if ($help) { print STDERR "Usage: $0 [ options ] Convenience script to regenerate the PDF report file. -This script does not regenerate plots contained in the PDF report. -In order to regenerate plots, re-run the individual plotting scripts, +This script does not regenerate plots contained in the PDF report. +In order to regenerate plots, re-run the individual plotting scripts, such as plot_scatter_metric.pl for metric scatterplots. Options: --input Path to \"supplementary\" directory containing QC results. @@ -59,8 +59,38 @@ $configPath = defaultJsonConfig($iniPath); $texIntroPath = defaultTexIntroPath($iniPath); $resultPath = $qcDir."/qc_results.json"; -$idPath = $qcDir."/identity_check.json"; $genderThresholdPath = $qcDir."/sample_xhet_gender_thresholds.txt"; -createReports($texPath, $resultPath, $idPath, $configPath, $dbPath, +createReports($texPath, $resultPath, $configPath, $dbPath, $genderThresholdPath, $qcDir, $texIntroPath, $qcName); + +__END__ + +=head1 NAME + +write_qc_reports + +=head1 DESCRIPTION + +Generate genotyping QC summary reports + +=head1 AUTHOR + +Keith James , Iain Bancarz + +=head1 COPYRIGHT AND DISCLAIMER + +Copyright (C) 2012, 2013, 2014, 2015, 2016, 2017 Genome Research Limited. +All Rights Reserved. + +This program is free software: you can redistribute it and/or modify +it under the terms of the Perl Artistic License or the GNU General +Public License as published by the Free Software Foundation, either +version 3 of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +=cut diff --git a/src/perl/bin/write_snp_metadata.pl b/src/perl/bin/write_snp_metadata.pl index b62d6a8d4..e49cce2f2 100755 --- a/src/perl/bin/write_snp_metadata.pl +++ b/src/perl/bin/write_snp_metadata.pl @@ -1,20 +1,4 @@ #!/software/bin/perl - -# -# Copyright (C) 2013, 2015 Genome Research Ltd. All rights reserved. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . # # Parse a SNP manifest .csv file and write metadata in .json format @@ -229,8 +213,41 @@ sub run { my $sortedAll = $temp."/sorted.all.csv"; system("cat ".join(" ", @sortedPaths)." > ".$sortedAll); readWriteManifest($sortedAll, $snpJson, $verbose); - } + } } run(); + + + +__END__ + +=head1 NAME + +write_snp_metadata + +=head1 DESCRIPTION + +Parse a SNP manifest .csv file and write metadata in .json format + +=head1 AUTHOR + +Keith James , Iain Bancarz + +=head1 COPYRIGHT AND DISCLAIMER + +Copyright (C) 2013, 2014, 2015, 2016 Genome Research Limited. +All Rights Reserved. + +This program is free software: you can redistribute it and/or modify +it under the terms of the Perl Artistic License or the GNU General +Public License as published by the Free Software Foundation, either +version 3 of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +=cut diff --git a/src/perl/etc/illuminus_prefilter.json b/src/perl/etc/illuminus_prefilter.json index 7eb07c8e8..6003276e1 100644 --- a/src/perl/etc/illuminus_prefilter.json +++ b/src/perl/etc/illuminus_prefilter.json @@ -1,4 +1,7 @@ { + "collation_names": { + "call_rate":"sample_cr_het.txt" + }, "Metrics_thresholds": { "call_rate": 0.9 }, diff --git a/src/perl/etc/qc_config.json b/src/perl/etc/qc_config.json index 80797463c..d85cb3fea 100644 --- a/src/perl/etc/qc_config.json +++ b/src/perl/etc/qc_config.json @@ -4,6 +4,7 @@ "main_index":"index.html", "het_by_maf":"het_by_maf.json", "id_json":"identity_check.json", + "id_csv":"identity_check.csv", "magnitude":"magnitude.txt", "sample_cr_het":"sample_cr_het.txt", "plate_index":"index.html", @@ -17,7 +18,6 @@ "xydiff":"xydiff.txt", "identity":"identity_check.json", "duplicate":"duplicate_full.txt.gz", - "duplicate_subsets":"duplicate_subsets.json", "gender":"sample_xhet_gender.txt", "magnitude":"magnitude.txt"}, "short_names":{"heterozygosity":"H","call_rate":"C","xydiff":"X","identity":"I","duplicate":"D","gender":"G","magnitude":"M"}, @@ -42,7 +42,7 @@ "heterozygosity" : 3, "call_rate" : 0.95, "magnitude" : 0.90, - "identity" : 0.90, + "identity" : 0.99, "duplicate" : 0.98, "gender" : "NA", "xydiff" : 3 diff --git a/src/perl/etc/reportIntro.tex b/src/perl/etc/reportIntro.tex index 0581ba9cd..4c7d27082 100644 --- a/src/perl/etc/reportIntro.tex +++ b/src/perl/etc/reportIntro.tex @@ -21,7 +21,7 @@ \subsection{Metrics} \subsubsection*{Metric descriptions} \begin{enumerate} -\item \textbf{Identity:} In addition to Illumina genotyping, samples may be typed on an alternate platform such as Sequenom or Fluidigm. Identity of calls between platforms is checked. The check requires a minimum number of sites to be shared between platforms (default is 8). If fewer than the minimum are available, the identity check is not applied and \emph{all} samples receive a pass. Otherwise, only samples for which concordance is greater than a chosen threshold will pass. +\item \textbf{Identity:} In addition to Illumina genotyping, samples may be typed on an alternate platform such as Sequenom or Fluidigm. Probability that the Illumina and alternate calls represent the same sample is evaluated. If the probability of identity is above a chosen threshold, the sample receives a pass. For additional details, see the pipeline software documentation: \url{https://github.com/wtsi-npg/genotyping/blob/master/doc/bayesian_identity/bayesian_identity.pdf} See Section \ref{sec:metric-summary} for threshold values in this pipeline run. diff --git a/src/perl/etc/zcall_prefilter.json b/src/perl/etc/zcall_prefilter.json index 733649281..8f1b547d7 100644 --- a/src/perl/etc/zcall_prefilter.json +++ b/src/perl/etc/zcall_prefilter.json @@ -1,4 +1,14 @@ { + "collation_names": { + "heterozygosity":"sample_cr_het.txt", + "het_by_maf":"het_by_maf.json", + "call_rate":"sample_cr_het.txt", + "xydiff":"xydiff.txt", + "identity":"identity_check.json", + "duplicate":"duplicate_full.txt.gz", + "duplicate_subsets":"duplicate_subsets.json", + "gender":"sample_xhet_gender.txt", + "magnitude":"magnitude.txt"}, "Metrics_thresholds": { "call_rate": 0.98, "duplicate": 0.98, diff --git a/src/perl/lib/WTSI/NPG/Expression/AnalysisPublisher.pm b/src/perl/lib/WTSI/NPG/Expression/AnalysisPublisher.pm index 77318eb83..c6122beba 100644 --- a/src/perl/lib/WTSI/NPG/Expression/AnalysisPublisher.pm +++ b/src/perl/lib/WTSI/NPG/Expression/AnalysisPublisher.pm @@ -12,7 +12,7 @@ use WTSI::NPG::Expression::ResultSet; use WTSI::NPG::Expression::SampleProbeProfile; use WTSI::NPG::Publisher; use WTSI::NPG::SimplePublisher; -use WTSI::NPG::Utilities qw(collect_files); +use WTSI::NPG::Utilities::Collector; use WTSI::NPG::iRODS; use WTSI::NPG::iRODS::Metadata; # has attribute name constants @@ -217,8 +217,10 @@ sub ensure_analysis_collection { sub find_analysis_files { my ($self) = @_; - - return collect_files($self->analysis_directory, sub { return 1;}); + my $collector = WTSI::NPG::Utilities::Collector->new( + root => $self->analysis_directory + ); + return $collector->collect_files_simple(); } sub publish_analysis_file { diff --git a/src/perl/lib/WTSI/NPG/Genotyping/Fluidigm/Archiver.pm b/src/perl/lib/WTSI/NPG/Genotyping/Fluidigm/Archiver.pm new file mode 100644 index 000000000..3f4bacd44 --- /dev/null +++ b/src/perl/lib/WTSI/NPG/Genotyping/Fluidigm/Archiver.pm @@ -0,0 +1,119 @@ +use utf8; + +package WTSI::NPG::Genotyping::Fluidigm::Archiver; + +use Cwd qw/abs_path/; +use File::Spec; +use WTSI::NPG::Genotyping::Fluidigm::Collector; +use WTSI::NPG::Genotyping::Fluidigm::ExportFile; +use WTSI::NPG::Genotyping::Fluidigm::ResultSet; + +use Moose; + +with qw/WTSI::NPG::Utilities::Archivable/; + +has 'dir_regex' => + (is => 'ro', + isa => 'RegexpRef', + default => sub { return qr/^\d{10}$/msx; } + ); + +has 'irods_root' => + (is => 'ro', + isa => 'Str', + required => 1, + documentation => 'Root collection path in iRODS, eg. /seq' + ); + +has 'output_prefix' => ( + is => 'ro', + isa => 'Str', + documentation => 'Prefix for .tgz archive filenames. Overrides '. + 'attribute in Archivable Role.', + default => 'fluidigm', + ); + +has 'collector' => ( + is => 'ro', + isa => 'WTSI::NPG::Genotyping::Fluidigm::Collector', + documentation => 'Utility object to collect target files. Overrides '. + 'attribute in Archivable Role.', + lazy => 1, + builder => '_build_collector', + init_arg => undef, +); + +our $VERSION = ''; + + +sub _build_collector { + # overrides build method in Archivable Role + my ($self) = @_; + my $collector = WTSI::NPG::Genotyping::Fluidigm::Collector->new( + root => abs_path($self->target_dir), + depth => 2, + regex => $self->dir_regex, + irods_root => $self->irods_root, + ); + return $collector; +} + + +=head2 find_directories_to_archive + + Args : None + + Example : $dirs = $archiver->find_directories_to_archive() + Description: Return an Array containing directories which are candidates + for archiving. Overrides method in the Archivable Role. + Returntype : Array[Str] + +=cut + +sub find_directories_to_archive { + my ($self) = @_; + my $now = DateTime->now; + my $threshold = DateTime->from_epoch + (epoch => $now->epoch)->subtract(days => $self->days_ago); + return $self->collector->collect_archivable_dirs($threshold->epoch); +} + +__PACKAGE__->meta->make_immutable; + +no Moose; + +1; + +__END__ + +=head1 NAME + +WTSI::NPG:::Genotyping::Fluidigm::Archiver + +=head1 DESCRIPTION + +Class to archive Fluidigm data in gzipped tar files. + +Find candidate files/directories for archiving; check their last +modification time and iRODS publication status; and, if they meet given +criteria, store them in gzipped tar files. + +=head1 AUTHOR + +Iain Bancarz + +=head1 COPYRIGHT AND DISCLAIMER + +Copyright (C) 2016 Genome Research Limited. All Rights Reserved. + +This program is free software: you can redistribute it and/or modify +it under the terms of the Perl Artistic License or the GNU General +Public License as published by the Free Software Foundation, either +version 3 of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +=cut diff --git a/src/perl/lib/WTSI/NPG/Genotyping/Fluidigm/AssayResultSet.pm b/src/perl/lib/WTSI/NPG/Genotyping/Fluidigm/AssayResultSet.pm index 5b3e02dea..155c756d7 100644 --- a/src/perl/lib/WTSI/NPG/Genotyping/Fluidigm/AssayResultSet.pm +++ b/src/perl/lib/WTSI/NPG/Genotyping/Fluidigm/AssayResultSet.pm @@ -213,6 +213,7 @@ sub _parse_assay_results { my $csv = Text::CSV->new({eol => "\n", sep_char => "\t", + binary => 1, allow_whitespace => undef, quote_char => undef}); diff --git a/src/perl/lib/WTSI/NPG/Genotyping/Fluidigm/Collector.pm b/src/perl/lib/WTSI/NPG/Genotyping/Fluidigm/Collector.pm new file mode 100644 index 000000000..d840177ad --- /dev/null +++ b/src/perl/lib/WTSI/NPG/Genotyping/Fluidigm/Collector.pm @@ -0,0 +1,215 @@ +use utf8; + +package WTSI::NPG::Genotyping::Fluidigm::Collector; + +use DateTime; +use File::Temp qw/tempdir/; +use WTSI::NPG::iRODS; +use WTSI::NPG::Utilities qw/md5sum/; + +use Moose; + +extends 'WTSI::NPG::Utilities::Collector'; + +our $VERSION = ''; + +has 'irods' => + (is => 'ro', + isa => 'WTSI::NPG::iRODS', + required => 1, + default => sub { + return WTSI::NPG::iRODS->new; + }); + +has 'irods_root' => + (is => 'ro', + isa => 'Str', + required => 1, + documentation => 'Root collection path in iRODS, eg. /seq' + ); + + +=head2 collect_archivable_dirs + + Arg [1] : latest modification time to archive, in seconds since the epoch + + Example : @dirs = $collector->collect_archivable_dirs(); + Description: Return an array of Fluidigm directory names which are ready + for archiving. + Returntype : array of strings (dir names) + +=cut + +sub collect_archivable_dirs { + my ($self, $threshold) = @_; + return $self->collect_dirs($self->test_archivable($threshold)); +} + + +=head2 test_archivable + + Arg [1] : latest modification time to archive, in seconds since + the epoch + + Example : my $ok = $collector->test_archivable($threshold); + + Description: The return value will be used as a test, to determine if + a directory will be archived. So, the return value is a + reference to a function which itself returns a Boolean + value. + + Returntype : Coderef + +=cut + +sub test_archivable { + my ($self, $threshold) = @_; + my $time = DateTime->from_epoch(epoch => $threshold); + my $time_str = $time->strftime("%Y-%m-%d_%H:%M:%S"); + + return sub { + my ($path) = @_; + if ($self->last_modified_before($threshold)->($path)) { + $self->debug("Last modification time of $path was earlier than ", + $time_str, + " , checking iRODS publication status"); + return $self->irods_publication_ok($path); + } else { + $self->debug("Last modification time of $path was later than ", + $time_str, + ", directory will not be archived"); + return 0; + } + } +} + + +=head2 irods_publication_ok + + Arg [1] : (Str) Path of Fluidigm results directory to evaluate + Example : my $pub_ok = irods_publication_ok($params); + Description: Check if the given Fluidigm results directory has been + published to iRODS. Want to verify that local and iRODS + CSV files are congruent: All files are present, with the + same plate, well (if any) and md5 checksum. + Returntype : Bool + +=cut + +sub irods_publication_ok { + my ($self, $dir) = @_; + my $resultset = WTSI::NPG::Genotyping::Fluidigm::ResultSet->new + (directory => $dir); + my $export_file = WTSI::NPG::Genotyping::Fluidigm::ExportFile->new + (file_name => $resultset->export_file); + my $publication_ok = 1; + # find CSV results for given Fluidigm plate in iRODS + my @results = $self->irods->find_objects_by_meta( + $self->irods_root, + [ fluidigm_plate => $export_file->fluidigm_barcode ], + [ type => 'csv' ], + ); + my $result_total = scalar(@results); + if ($result_total == 0) { + $self->warn("No results found in iRODS for directory '", $dir, "'"); + $publication_ok = 0; + } else { + # expect one file for each well address, plus the original export file + my $expected = scalar(@{$export_file->addresses}) + 1; + $self->debug("Checking publication status for ", $result_total, + " results from iRODS"); + if ($result_total != $expected) { + $self->error("File totals for plate '", + $export_file->fluidigm_barcode, + "' do not match; expected ", $expected, + " results in iRODS, found ", $result_total); + $publication_ok = 0; + } + # check well (if any) and md5 for each iRODS result found + my %md5_by_address = $self->_get_md5_by_address($export_file); + foreach my $result (@results) { + # look at address and md5 in iRODS metadata + my ($address, $irods_md5); + foreach my $avu ($self->irods->get_object_meta($result)) { + my $attribute = $avu->{'attribute'}; + if ($attribute eq 'fluidigm_well') { + $address = $avu->{'value'}; + } elsif ($attribute eq 'md5') { + $irods_md5 = $avu->{'value'}; + } + } + if (defined($address)) { + if ($irods_md5 ne $md5_by_address{$address}) { + $self->error + ("Local and iRODS checksums do not match for plate '", + $export_file->fluidigm_barcode, "' well '", + $address, "'"); + $publication_ok = 0; + } + } elsif (md5sum($resultset->export_file) ne $irods_md5) { + $self->error + ("Local and iRODS checksums do not match for plate '", + $export_file->fluidigm_barcode, "export file '", + $export_file->file_name, "'"); + $publication_ok = 0; + } + } + } + $self->debug("iRODS publication status for '", $dir, "': ", + $publication_ok); + return $publication_ok; +} + +sub _get_md5_by_address { + my ($self, $export_file) = @_; + my $tmpdir = tempdir("fluidigm_samples_XXXXXX", CLEANUP => 1); + my %md5_by_address; + foreach my $address (@{$export_file->addresses}) { + my $filename = $export_file->fluidigm_filename($address); + my $file = File::Spec->catfile($tmpdir, $filename); + my $records = $export_file->write_assay_result_data($address, $file); + my $md5 = md5sum($file); + $md5_by_address{$address} = $md5; + $self->debug("Wrote $records records for address $address into ", + "temp file '", $file, "', with md5 '", $md5, "'"); + } + return %md5_by_address; +} + + +__PACKAGE__->meta->make_immutable; + +no Moose; + +1; + +__END__ + +=head1 NAME + +WTSI::NPG:::Genotyping::Fluidigm::Collector + +=head1 DESCRIPTION + +Subclass of WTSI::NPG::Utilities::Collector, to collect Fluidigm data +for archiving. Includes method to verify iRODS publication. + +=head1 AUTHOR + +Iain Bancarz + +=head1 COPYRIGHT AND DISCLAIMER + +Copyright (C) 2016 Genome Research Limited. All Rights Reserved. + +This program is free software: you can redistribute it and/or modify +it under the terms of the Perl Artistic License or the GNU General +Public License as published by the Free Software Foundation, either +version 3 of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +=cut diff --git a/src/perl/lib/WTSI/NPG/Genotyping/Fluidigm/ExportFile.pm b/src/perl/lib/WTSI/NPG/Genotyping/Fluidigm/ExportFile.pm index a085be2bf..b692b5ade 100644 --- a/src/perl/lib/WTSI/NPG/Genotyping/Fluidigm/ExportFile.pm +++ b/src/perl/lib/WTSI/NPG/Genotyping/Fluidigm/ExportFile.pm @@ -124,6 +124,7 @@ sub write_assay_result_data { my $records_written = 0; my $csv = Text::CSV->new({eol => "\n", sep_char => "\t", + binary => 1, allow_whitespace => undef, quote_char => undef}); @@ -169,6 +170,24 @@ sub fluidigm_metadata { [$FLUIDIGM_PLATE_WELL => $address]); } +=head2 fluidigm_filename + + Arg [1] : Sample address i.e. S01, S02 etc. + + Example : $export->fluidigm_filename('S01') + Description: Return the name for a CSV file, to contain data for the + given address. + Returntype : Str + +=cut + +sub fluidigm_filename { + my ($self, $address) = @_; + + return sprintf("%s_%s.csv", $address, $self->fluidigm_barcode); +} + + =head2 fluidigm_fingerprint Arg [1] : Sample address i.e. S01, S02 etc. diff --git a/src/perl/lib/WTSI/NPG/Genotyping/Fluidigm/Publisher.pm b/src/perl/lib/WTSI/NPG/Genotyping/Fluidigm/Publisher.pm index 7adc62a5b..2633f940f 100644 --- a/src/perl/lib/WTSI/NPG/Genotyping/Fluidigm/Publisher.pm +++ b/src/perl/lib/WTSI/NPG/Genotyping/Fluidigm/Publisher.pm @@ -172,8 +172,8 @@ sub publish_samples { foreach my $address (@addresses) { try { - my $file = sprintf("%s/%s_%s.csv", $tmpdir, $address, - $export_file->fluidigm_barcode); + my $filename = $export_file->fluidigm_filename($address); + my $file = File::Spec->catfile($tmpdir, $filename); $current_file = $file; my $record_count = $export_file->write_assay_result_data($address, $file); diff --git a/src/perl/lib/WTSI/NPG/Genotyping/Infinium/AnalysisPublisher.pm b/src/perl/lib/WTSI/NPG/Genotyping/Infinium/AnalysisPublisher.pm index dd43c6518..131d94cd1 100644 --- a/src/perl/lib/WTSI/NPG/Genotyping/Infinium/AnalysisPublisher.pm +++ b/src/perl/lib/WTSI/NPG/Genotyping/Infinium/AnalysisPublisher.pm @@ -113,7 +113,7 @@ sub publish { unless (@project_titles) { $self->logcroak("The analysis database contained no data for run '", - $self->run_name, "'") + $self->run_name, "'"); } my $analysis_coll; diff --git a/src/perl/lib/WTSI/NPG/Genotyping/Infinium/Publisher.pm b/src/perl/lib/WTSI/NPG/Genotyping/Infinium/Publisher.pm index fe7bb5c71..d2565ece4 100644 --- a/src/perl/lib/WTSI/NPG/Genotyping/Infinium/Publisher.pm +++ b/src/perl/lib/WTSI/NPG/Genotyping/Infinium/Publisher.pm @@ -159,8 +159,7 @@ sub _publish_file { my $publisher = WTSI::NPG::Publisher->new(irods => $self->irods, - accountee_uid => $self->accountee_uid, - logger => $self->logger); + accountee_uid => $self->accountee_uid); my @meta = $self->make_infinium_metadata($if_sample); my @fingerprint = $self->infinium_fingerprint(@meta); diff --git a/src/perl/lib/WTSI/NPG/Genotyping/QC_wip/Check/Identity.pm b/src/perl/lib/WTSI/NPG/Genotyping/QC/BayesianIdentity/Check.pm similarity index 95% rename from src/perl/lib/WTSI/NPG/Genotyping/QC_wip/Check/Identity.pm rename to src/perl/lib/WTSI/NPG/Genotyping/QC/BayesianIdentity/Check.pm index 0c9959f30..b6faeac40 100644 --- a/src/perl/lib/WTSI/NPG/Genotyping/QC_wip/Check/Identity.pm +++ b/src/perl/lib/WTSI/NPG/Genotyping/QC/BayesianIdentity/Check.pm @@ -1,5 +1,5 @@ -package WTSI::NPG::Genotyping::QC_wip::Check::Identity; +package WTSI::NPG::Genotyping::QC::BayesianIdentity::Check; use JSON; use Moose; @@ -9,7 +9,7 @@ use plink_binary; use WTSI::NPG::Genotyping::Call; use WTSI::NPG::Genotyping::SNP; -use WTSI::NPG::Genotyping::QC_wip::Check::SampleIdentityBayesian; +use WTSI::NPG::Genotyping::QC::BayesianIdentity::SampleMetric; use WTSI::NPG::Genotyping::Types qw(:all); @@ -104,7 +104,7 @@ has 'production_calls' => Arg [1] : HashRef[ArrayRef[WTSI::NPG::Genotyping::Call]] - Returntype : ArrayRef[WTSI::NPG::Genotyping::QC_wip::Check::SampleIdentityBayesian] + Returntype : ArrayRef[WTSI::NPG::Genotyping::QC::BayesianIdentity::SampleMetric] Description : Find identity results for all samples. Input is a hash of arrays of Call objects, indexed by sample name. @@ -127,9 +127,7 @@ sub find_identity { my $qc_calls = $qc_calls_by_sample->{$sample_name}; if (defined($qc_calls)) { my %args = %{$self->_get_sample_args($sample_name, $qc_calls)}; - my $result = - WTSI::NPG::Genotyping::QC_wip::Check::SampleIdentityBayesian-> - new(%args); + my $result = WTSI::NPG::Genotyping::QC::BayesianIdentity::SampleMetric->new(%args); push @id_results, $result; } else { $missing{$sample_name} = 1; @@ -142,9 +140,7 @@ sub find_identity { foreach my $sample_name (@{$self->sample_names}) { if ($missing{$sample_name}) { my $args = $self->_get_sample_args($sample_name); - my $result = - WTSI::NPG::Genotyping::QC_wip::Check::SampleIdentityBayesian-> - new($args); + my $result = WTSI::NPG::Genotyping::QC::BayesianIdentity::SampleMetric->new($args); push @id_results, $result; } } @@ -155,7 +151,7 @@ sub find_identity { =head2 pairwise_swap_check Arg [1] : ArrayRef[ - WTSI::NPG::Genotyping::QC_wip::Check::SampleIdentityBayesian + WTSI::NPG::Genotyping::QC::BayesianIdentity::SampleMetric ] Arg [2] : Maybe[Num] @@ -521,9 +517,10 @@ sub _from_illumina_snp_name { return $body; } -# get failed WTSI::NPG::Genotyping::QC_wip::Check::SampleIdentity results -# only returns results confirmed as failed -# 'missing' results have undefined pass/fail status +# - get failed WTSI::NPG::Genotyping::QC::BayesianIdentity::SampleIdentity +# results +# - only returns results confirmed as failed +# - 'missing' results have undefined pass/fail status sub _get_failed_results { my ($self, $id_results) = @_; @@ -534,7 +531,7 @@ sub _get_failed_results { } sub _get_sample_args { - # get arguments to construct a SampleIdentityBayesian object + # get arguments to construct a SampleMetric object # QC calls may be omitted, eg. for a sample missing from QC data my ($self, $sample_name, $qc_calls) = @_; $qc_calls ||= []; diff --git a/src/perl/lib/WTSI/NPG/Genotyping/QC_wip/Check/SampleIdentityBayesian.pm b/src/perl/lib/WTSI/NPG/Genotyping/QC/BayesianIdentity/SampleMetric.pm similarity index 99% rename from src/perl/lib/WTSI/NPG/Genotyping/QC_wip/Check/SampleIdentityBayesian.pm rename to src/perl/lib/WTSI/NPG/Genotyping/QC/BayesianIdentity/SampleMetric.pm index 15ed2befa..d61533cb4 100644 --- a/src/perl/lib/WTSI/NPG/Genotyping/QC_wip/Check/SampleIdentityBayesian.pm +++ b/src/perl/lib/WTSI/NPG/Genotyping/QC/BayesianIdentity/SampleMetric.pm @@ -1,4 +1,4 @@ -package WTSI::NPG::Genotyping::QC_wip::Check::SampleIdentityBayesian; +package WTSI::NPG::Genotyping::QC::BayesianIdentity::SampleMetric; # class to do Bayesian identity computation for a single sample # Similar to older SampleIdentity class, but metrics are Bayesian probabilities, not simple match/mismatch rates @@ -227,7 +227,7 @@ sub missing { =head2 swap_metric - Arg [1] : WTSI::NPG::Genotyping::QC_wip::Check::SampleIdentityBayesian + Arg [1] : WTSI::NPG::Genotyping::QC::BayesianIdentity::SampleMetric Example : my $swap = $si->swap_metric($other_si) Description: Evaluate the swap metric on two sample identity objects, @@ -331,7 +331,7 @@ sub to_csv { push @csv_fields, @callset_fields; } } - my $csv = Text::CSV->new(); + my $csv = Text::CSV->new({ binary => 1 }); $csv->combine(@csv_fields); return $csv->string; } diff --git a/src/perl/lib/WTSI/NPG/Genotyping/QC_wip/Check/IdentitySimulator.pm b/src/perl/lib/WTSI/NPG/Genotyping/QC/BayesianIdentity/Simulator.pm similarity index 96% rename from src/perl/lib/WTSI/NPG/Genotyping/QC_wip/Check/IdentitySimulator.pm rename to src/perl/lib/WTSI/NPG/Genotyping/QC/BayesianIdentity/Simulator.pm index 9480c8a8d..f662a2a0a 100644 --- a/src/perl/lib/WTSI/NPG/Genotyping/QC_wip/Check/IdentitySimulator.pm +++ b/src/perl/lib/WTSI/NPG/Genotyping/QC/BayesianIdentity/Simulator.pm @@ -1,12 +1,12 @@ -package WTSI::NPG::Genotyping::QC_wip::Check::IdentitySimulator; +package WTSI::NPG::Genotyping::QC::BayesianIdentity::Simulator; use Moose; use MooseX::Types::Moose qw(Int); use WTSI::NPG::Genotyping::Call; -use WTSI::NPG::Genotyping::QC_wip::Check::SampleIdentityBayesian; +use WTSI::NPG::Genotyping::QC::BayesianIdentity::SampleMetric; use WTSI::NPG::Genotyping::SNPSet; use WTSI::NPG::Genotyping::Types qw(:all); @@ -27,7 +27,7 @@ has 'snpset' => (is => 'ro', isa => 'WTSI::NPG::Genotyping::SNPSet', required => 1, - documentation => 'SNPSet for creation of SampleIdentityBayesian '. + documentation => 'SNPSet for creation of SampleMetric '. 'objects. Must include all SNPs in the "calls" attribute.'); # optional argument @@ -39,8 +39,8 @@ has 'pass_threshold' => 'sample pass'); # optional params for identity calculation -# passed to SampleIdentityBayesian constructor -# no default values; instead use defaults of SampleIdentityBayesian class +# passed to SampleMetric constructor +# no default values; instead use defaults of SampleMetric class has 'equivalent_calls_probability' => # ECP (is => 'ro', @@ -301,7 +301,7 @@ sub find_identity_vary_xer { } sub _build_identity_params { - # build a generic params hash for SampleIdentityBayesian construction + # build a generic params hash for SampleMetric construction # production_calls and qc_calls are specified for each simulation type my ($self) = @_; my %params; @@ -331,7 +331,7 @@ sub _build_identity_params { sub _find_identity { # 'workhorse' method to evaluate the identity metric with given inputs # $calls = arrayref of Call objects - # $params = hashref of params for SampleIdentityBayesian object creation + # $params = hashref of params for SampleMetric object creation my ($self, $calls, $params, $equivalent, $total, $qc_total, $maf) = @_; $qc_total ||= 1; $maf ||= 0.25; @@ -347,8 +347,7 @@ sub _find_identity { foreach my $key (keys %{$params}) { $args{$key} = $params->{$key}; } - my $sib = WTSI::NPG::Genotyping::QC_wip::Check::SampleIdentityBayesian-> - new(\%args); + my $sib = WTSI::NPG::Genotyping::QC::BayesianIdentity::SampleMetric->new(\%args); return $sib->identity; } diff --git a/src/perl/lib/WTSI/NPG/Genotyping/QC/Collation.pm b/src/perl/lib/WTSI/NPG/Genotyping/QC/Collation.pm deleted file mode 100644 index 67f058dc8..000000000 --- a/src/perl/lib/WTSI/NPG/Genotyping/QC/Collation.pm +++ /dev/null @@ -1,741 +0,0 @@ -# Author: Iain Bancarz, ib5@sanger.ac.uk -# February 2014 - -# Collate QC result outputs into a single JSON summary file -# Apply thresholds to find pass/fail status - -package WTSI::NPG::Genotyping::QC::Collation; - -use strict; -use warnings; -use Carp; -use File::Slurp qw(read_file); -use IO::Uncompress::Gunzip qw($GunzipError); # for duplicate_full.txt.gz -use JSON; -use WTSI::NPG::Genotyping::Database::Pipeline; -use WTSI::NPG::Genotyping::QC::QCPlotShared qw(getDatabaseObject - getPlateLocationsFromPath - meanSd - readQCMetricInputs - readSampleData); -use Exporter; - -our @ISA = qw/Exporter/; -our @EXPORT_OK = qw/collate readMetricThresholds/; - -our $VERSION = ''; - -our $DEFAULT_INI = $ENV{HOME} . "/.npg/genotyping.ini"; - -# metric names -our $CR_NAME = 'call_rate'; -our $HET_NAME = 'heterozygosity'; -our $DUP_NAME = 'duplicate'; -our $ID_NAME = 'identity'; -our $GENDER_NAME = 'gender'; -our $XYD_NAME = 'xydiff'; -our $MAG_NAME = 'magnitude'; -our $LMH_NAME = 'low_maf_het'; -our $HMH_NAME = 'high_maf_het'; -# standard order for metric names -our @METRIC_NAMES = ($ID_NAME, $DUP_NAME, $GENDER_NAME, $CR_NAME, - $HET_NAME, $LMH_NAME, $HMH_NAME, $MAG_NAME, $XYD_NAME); -our @GENDERS = ('Unknown', 'Male', 'Female', 'Not_Available'); -our $DUPLICATE_SUBSETS_KEY = 'SUBSETS'; -our $DUPLICATE_RESULTS_KEY = 'RESULTS'; -our %FILENAMES; # hash for names of input files - -# Collate QC results from various output files into a single data structure, -# write JSON and CSV output files and update pipeline SQLite DB if required. - -# Get additional information for .csv fields from pipeline DB: -# run,project,data_supplier,snpset,supplier_name,rowcol,beadchip_number,sample,include,plate,well,pass - -sub addLocations { - # add plate/well locations to a hash indexed by sample - my %samples = %{ shift() }; - my ($dbPath, $iniPath) = @_; - my %plateLocs = getPlateLocationsFromPath($dbPath, $iniPath); - foreach my $uri (keys %samples) { - my %results = %{$samples{$uri}}; - my $locsRef = $plateLocs{$uri}; - if (defined($locsRef)) { - # samples with unknown location will have dummy values in hash - my ($plate, $addressLabel) = @$locsRef; - $results{'plate'} = $plate; - $results{'address'} = $addressLabel; - $samples{$uri} = \%results; - } else { - # excluded sample has *no* location value - print STDERR "Excluded sample URI $uri is in QC metric data\n"; - } - } - return \%samples; -} - -sub appendNull { - # append 'NA' values to given list - my @array = @{ shift() }; - my $nulls = shift; - for (my $i=0;$i<$nulls;$i++) { - push(@array, 'NA'); - } - return @array; -} - -sub bySampleName { - # comparison function for sorting samples in getSampleInfo - # if in plate_well_id format, sort by id; otherwise use standard sort - if ($a =~ m{[[:alnum:]]+_[[:alnum:]]+_[[:alnum:]]+}msx && - $b =~ m{[[:alnum:]]+_[[:alnum:]]+_[[:alnum:]]+}msx) { - my @termsA = split /_/msx, $a; - my @termsB = split /_/msx, $b; - return $termsA[-1] cmp $termsB[-1]; - } else { - return $a cmp $b; - } -} - -sub dbExcludedSamples { - # find list of excluded sample URIs from database - # use to fill in empty lines for CSV file - my $dbfile = shift; - my $db = getDatabaseObject($dbfile); - my @excluded; - my @samples = $db->sample->all; - foreach my $sample (@samples) { - if (!($sample->include)) { - push @excluded, $sample->uri; - } - } - $db->disconnect(); - return @excluded; -} - -sub dbSampleInfo { - # get general information on analysis run from pipeline database - # return a hash indexed by sample - my $dbfile = shift; - my $db = getDatabaseObject($dbfile); - my %sampleInfo; - my @runs = $db->piperun->all; - foreach my $run (@runs) { - my @root; - my @datasets = $run->datasets->all; - foreach my $dataset (@datasets) { - my @samples = $dataset->samples->all; - @root = ($run->name, $dataset->if_project, - $dataset->datasupplier->name, - $dataset->snpset->name); - # query for rowcol, supplier name, chip no. - foreach my $sample (@samples) { - my @info = ( - $sample->rowcol, - $sample->beadchip, - $sample->supplier_name, - $sample->cohort); - foreach (my $i=0;$i<@info;$i++) { # set null values to "NA" - if ($info[$i] eq "") { $info[$i] = "NA"; } - } - unshift(@info, @root); - $sampleInfo{$sample->uri} = \@info; - } - } - } - $db->disconnect(); - return %sampleInfo; -} - -sub duplicateSubsets { - # Find *connected subsets* of the duplicate pairs: - # if A<->B and B<->C then A~B, B~C and A~C - # where <-> denotes similarity on snp panel greater than some threshold, - # and ~ denotes membership of a connected subset (equivalence class). - # - # The member of a connected subset with the highest call rate is kept; - # others are flagged as QC failures. This is a "quick and dirty" - # substitute for applying a clustering algorithm to find subsets with - # high mutual similarity. It should give acceptable results, but for - # very high duplicate rates, it will fail *more* samples than - # a clustering algorithm would. - # - # Arguments: - Hash of hashes of pairwise similarities - # - Similarity threshold for duplicates - # Return value: list of lists of samples in each subset - my %similarity = %{ shift() }; - my $threshold = shift; - my @samples = keys(%similarity); - # if sample has no neighbours: simple, it is in a subset by itself - # if sample does have neighbours: add to appropriate subset - my @subsets; - foreach my $sample_i (@samples) { - my $added = 0; - SUBSET: for (my $i=0;$i<@subsets;$i++) { - my @subset = @{$subsets[$i]}; - foreach my $sample_j (@subset) { - if ($similarity{$sample_i}{$sample_j} >= $threshold) { - push(@subset, $sample_i); - $subsets[$i] = [ @subset ]; - $added = 1; - last SUBSET; - } - } - } - unless ($added) { push(@subsets, [$sample_i]); } - } - return @subsets; -} - -sub evaluateThresholds { - # apply thresholds, evaluate pass/fail status of each sample/metric pair - # input a sample-major hash of metric values - # return reference to a hash in 'qc_results.json' format (minus plate name and address for each sample) - my ($sampleResultsRef, $thresholdsRef) = @_; - my %results = %{$sampleResultsRef}; - my %thresholds = %{$thresholdsRef}; - my %evaluated = (); - foreach my $sample (keys(%results)) { - my %result = %{$results{$sample}}; - foreach my $metric (keys(%result)) { - if (!defined($thresholds{$metric})) { - croak "No thresholds defined for metric $metric: $!"; - } - my $value = $result{$metric}; - my $pass = metricPass($metric, $value, $thresholds{$metric}); - my @terms = ($pass, ); - if ($metric eq $GENDER_NAME) { push (@terms, @{$value}); } - elsif ($metric eq $DUP_NAME) { push (@terms, @{$value}[0]); } - else { push(@terms, $value); } - $evaluated{$sample}{$metric} = \@terms; - } - } - return \%evaluated; -} - -sub excludedSampleCsv { - # generate CSV lines for samples excluded from pipeline DB - my @sampleNames = @{ shift() }; - my %sampleInfo = %{ shift() }; # generic sample/dataset info - my %metrics = %{ shift() }; - my %excluded = %{ shift() }; - my @lines = (); - foreach my $sample (@sampleNames) { - if (!$excluded{$sample}) { next; } - my @fields = @{$sampleInfo{$sample}}; - push(@fields, $sample); - push(@fields, 'Excluded'); - @fields = appendNull(\@fields, 3); # null plate, well, sample pass - foreach my $name (@METRIC_NAMES) { - if (!$metrics{$name}) { - next; - } elsif ($name eq $GENDER_NAME) { - @fields = appendNull(\@fields, 4); # pass/fail, metric triple - } else { - @fields = appendNull(\@fields, 2); # pass/fail, metric - } - } - push(@lines, join(',', @fields)); - } - return \@lines; -} - -sub findMetricResults { - # find QC results in metric-major order, return a hash reference - # "results" for gender, duplicate, and identity are complex! represent as lists. For other metrics, result is a single float. See methods in write_qc_status.pl - my $inputDir = shift; - my @metricNames = @{ shift() }; - my %allResults; - foreach my $name (@metricNames) { - my $resultsRef; - if ($name eq $CR_NAME) { - $resultsRef = resultsCallRate($inputDir); - } elsif ($name eq $DUP_NAME) { - $resultsRef = resultsDuplicate($inputDir); - } elsif ($name eq $GENDER_NAME) { - $resultsRef = resultsGender($inputDir); - } elsif ($name eq $HET_NAME) { - $resultsRef = resultsHet($inputDir); - } elsif ($name eq $HMH_NAME) { - $resultsRef = resultsHighMafHet($inputDir); - } elsif ($name eq $ID_NAME) { - $resultsRef = resultsIdentity($inputDir); - } elsif ($name eq $LMH_NAME) { - $resultsRef = resultsLowMafHet($inputDir); - } elsif ($name eq $MAG_NAME) { - $resultsRef = resultsMagnitude($inputDir); - } elsif ($name eq $XYD_NAME) { - $resultsRef = resultsXydiff($inputDir); - } else { - croak "Unknown metric name $name for results: $!"; - } - if ($resultsRef) { $allResults{$name} = $resultsRef; } - } - return \%allResults; -} - -sub findThresholds { - # find threshold values, which may depend on mean/sd of metric values - my %metricResults = %{ shift() }; - my %thresholdsConfig = %{ shift() }; - my %thresholds; - my @names = keys(%metricResults); - foreach my $metric (keys(%metricResults)) { - if ($metric eq $HET_NAME || $metric eq $LMH_NAME || $metric eq $HMH_NAME || $metric eq $XYD_NAME) { - # find mean/sd for thresholds - my %resultsBySample = %{$metricResults{$metric}}; - my ($mean, $sd) = meanSd(values(%resultsBySample)); - my $min = $mean - ($thresholdsConfig{$metric}*$sd); - my $max = $mean + ($thresholdsConfig{$metric}*$sd); - $thresholds{$metric} = [$min, $max]; - } elsif ($metric eq $CR_NAME || $metric eq $DUP_NAME || $metric eq $ID_NAME || $metric eq $GENDER_NAME || $metric eq $MAG_NAME ) { - $thresholds{$metric} = $thresholdsConfig{$metric}; - } else { - croak "Unknown metric name $metric for thresholds: $!"; - } - } - return %thresholds; -} - -sub includedSampleCsv { - # generate CSV lines for samples included in pipeline DB - my @sampleNames = @{ shift() }; - my %sampleInfo = %{ shift() }; # generic sample/dataset info - my %passResult = %{ shift() }; # metric pass/fail status and values - my %samplePass = %{ shift() }; # overall pass/fail by sample - my %excluded = %{ shift() }; - my %metrics; - my @lines = (); - foreach my $sample (@sampleNames) { - if ($excluded{$sample}) { next; } - my @fields = @{$sampleInfo{$sample}}; # start with general info - my %result = %{$passResult{$sample}}; - # first obtain: sample include plate well pass - push(@fields, $sample); - push(@fields, 'Included'); - push(@fields, $result{'plate'}); - push(@fields, $result{'address'}); # aka well - if ($samplePass{$sample}) { push(@fields, 'Pass'); } - else { push(@fields, 'Fail'); } - # now add relevant metric values - foreach my $metric (@METRIC_NAMES) { - if (!defined($result{$metric})) { next; } - $metrics{$metric} = 1; - my @metricResult = @{$result{$metric}}; # pass/fail, value(s) - if ($metricResult[0]) { $metricResult[0] = 'Pass'; } - else { $metricResult[0] = 'Fail'; } - if ($metric eq $GENDER_NAME) { # use human-readable gender names - $metricResult[2] = $GENDERS[$metricResult[2]]; - # 'supplied' Plink gender may be -9 or other arbitrary number - my $totalCodes = scalar @GENDERS; - if ($metricResult[3] < 0 || $metricResult[3] >= $totalCodes){ - $metricResult[3] = $totalCodes - 1; # 'not available' - } - $metricResult[3] = $GENDERS[$metricResult[3]]; - } - push (@fields, @metricResult); - } - push(@lines, join(',', @fields)); - } - return (\@lines, \%metrics); -} - -sub metricPass { - # find pass/fail status for given metric, value, and threshold - my ($metric, $value, $threshold) = @_; - my $pass = 0; - if ($metric eq $CR_NAME || $metric eq $MAG_NAME) { - if ($value >= $threshold) { $pass = 1; } - } elsif ($metric eq $DUP_NAME) { - my ($similarity, $keep) = @{$value}; - if ($similarity < $threshold || $keep) { $pass = 1; } - } elsif ($metric eq $GENDER_NAME) { - my ($xhet, $inferred, $supplied) = @{$value}; - if ($inferred==$supplied) { $pass = 1; } - } elsif ($metric eq $HET_NAME || $metric eq $LMH_NAME || - $metric eq $HMH_NAME || $metric eq $XYD_NAME) { - my ($min, $max) = @{$threshold}; - if ($value >= $min && $value <= $max) { $pass = 1; } - } elsif ($metric eq $ID_NAME) { - if ($value eq 'NA' || $value > $threshold) { $pass = 1; } - } else { - croak "Unknown metric name: $!"; - } - return $pass; -} - -sub passFailBySample { - # evaluate results by metric and find overall pass/fail for each sample - my %results = %{ shift() }; - my $crHetPath = shift(); # required to find duplicates pass/fail - my %passFail = (); - foreach my $sample (keys(%results)) { - my %result = %{$results{$sample}}; - my $samplePass = 1; - foreach my $metric (@METRIC_NAMES) { - if (!defined($result{$metric})) { next; } - my @values = @{$result{$metric}}; - my $pass = shift @values; - if (!$pass) { $samplePass = 0; last; } - } - $passFail{$sample} = $samplePass; - } - return %passFail; -} - -sub processDuplicates { - # pre-processing of duplicate metric with given threshold - # partition samples into subsets; sample in subset with highest CR passes - # want to write partitioning and pass/fail status to file - # then read file for final metric/threshold collation - my $inputDir = shift; - my $threshold = shift; - my $inPath = $inputDir.'/'.$FILENAMES{'duplicate'}; - if (!(-e $inPath)) { - croak "Input path for duplicates \"$inPath\" does not exist: $!"; - } - my ($simRef, $maxRef) = readDuplicates($inPath); - my @subsets = duplicateSubsets($simRef, $threshold); - my %max = %{$maxRef}; - # read call rates and find keep/discard status - my %cr = %{resultsCallRate($inputDir)}; - my %results; - foreach my $subsetRef (@subsets) { - my $maxCR = 0; - my @subset = @{$subsetRef}; - # first pass -- find highest CR - foreach my $sample (@subset) { - if ($cr{$sample} > $maxCR) { $maxCR = $cr{$sample}; } - } - # second pass -- record sample status - # may keep more than one sample if there is a tie for greatest CR - foreach my $sample (@subset) { - my $keep = 0; - if ($cr{$sample} eq $maxCR) { $keep = 1; } - $results{$sample} = [$max{$sample}, $keep]; - } - } - my %output; - $output{$DUPLICATE_SUBSETS_KEY} = \@subsets; - $output{$DUPLICATE_RESULTS_KEY} = \%results; - my $outPath = $inputDir.'/'.$FILENAMES{'duplicate_subsets'}; - open my $out, ">", $outPath || croak "Cannot open output '$outPath'"; - print $out to_json(\%output); - close $out || croak "Cannot close output '$outPath'"; -} - -sub readDuplicates { - # read pairwise similarities for duplicate check from gzipped file - # also find maximum pairwise similarity for each sample - my $inPath = shift; - my (%similarity, %max); - my $z = new IO::Uncompress::Gunzip $inPath || - croak "gunzip failed: $GunzipError\n"; - my $firstLine = 1; - while (<$z>) { - if ($firstLine) { $firstLine = 0; next; } # skip headers - chomp; - my @words = split; - my @samples = ($words[1], $words[2]); - my $sim = $words[3]; # similarity on SNP panel - $similarity{$samples[0]}{$samples[1]} = $sim; - $similarity{$samples[1]}{$samples[0]} = $sim; - } - $z->close(); - # find max pairwise similarity for each sample - foreach my $sample_i (keys(%similarity)) { - my $maxSim = 0; - foreach my $sample_j (keys(%similarity)) { - if ($sample_i eq $sample_j) { next; } - my $sim = $similarity{$sample_i}{$sample_j}; - if ($sim > $maxSim) { $maxSim = $sim; } - } - $max{$sample_i} = $maxSim; - } - return (\%similarity, \%max); -} - -sub readMetricThresholds { - # exportable convenience method to read metric thresholds from JSON config - my $configPath = shift; - my %config = %{decode_json(read_file($configPath))}; - my %thresholds = %{$config{'Metrics_thresholds'}}; - return \%thresholds; -} - -sub resultsCallRate { - my $inputDir = shift; - my $inPath = $inputDir.'/'.$FILENAMES{'call_rate'}; - if (!(-e $inPath)) { - croak "Input path for call rate \"$inPath\" does not exist: $!"; - } - my $index = 1; - return resultsSpaceDelimited($inPath, $index); -} - -sub resultsDuplicate { - # read pre-processed values for duplicate metric - my $inputDir = shift; - my $inPath = $inputDir.'/'.$FILENAMES{'duplicate_subsets'}; - if (!(-e $inPath)) { - croak "Input path for duplicates \"$inPath\" does not exist: $!"; - } - open my $in, "<", $inPath || croak "Cannot open input '$inPath'"; - my $input = <$in>; - close $in || croak "Cannot close input '$inPath'"; - my %duplicateData = %{ from_json($input) }; - my $resultsRef = $duplicateData{$DUPLICATE_RESULTS_KEY}; - return $resultsRef; -} - -sub resultsGender { - # read gender results from sample_xhet_gender.txt - # 'metric value' is concatenation of inferred, supplied gender codes - # $threshold not used - my $inputDir = shift; - my $inPath = $inputDir.'/'.$FILENAMES{'gender'}; - if (!(-e $inPath)) { - croak "Input path for gender \"$inPath\" does not exist: $!"; - } - my @data = WTSI::NPG::Genotyping::QC::QCPlotShared::readSampleData($inPath, 1); # skip header on line 0 - my %results; - foreach my $ref (@data) { - my ($sample, $xhet, $inferred, $supplied) = @$ref; - $results{$sample} = [$xhet, $inferred, $supplied]; - } - return \%results; -} - -sub resultsHet { - my $inputDir = shift; - my $inPath = $inputDir.'/'.$FILENAMES{'heterozygosity'}; - if (!(-e $inPath)) { - croak "Input path for heterozygosity \"$inPath\" does not exist: $!"; - } - my $index = 2; - return resultsSpaceDelimited($inPath, $index); -} - -sub resultsHighMafHet { - my $inputDir = shift; - return resultsMafHet($inputDir, 1); -} - -sub resultsIdentity { - my $inputDir = shift; - my $inPath = $inputDir.'/'.$FILENAMES{'identity'}; - my %data = %{decode_json(read_file($inPath))}; - return $data{'results'}; -} - - -sub resultsLowMafHet { - my $inputDir = shift; - return resultsMafHet($inputDir, 0); -} - -sub resultsMafHet { - # read JSON file output by Plinktools het_by_maf.py - my $inputDir = shift; - my $high = shift; - my $inPath = $inputDir.'/'.$FILENAMES{'het_by_maf'}; - if (!(-r $inPath)) { - carp "Omitting MAF heterozygosity; cannot read input \"$inPath\": $!"; - return 0; - } - my %data = %{decode_json(read_file($inPath))}; - my %results; - foreach my $sample (keys(%data)) { - # TODO modify output format of het_by_maf.py - if ($high) { $results{$sample} = $data{$sample}{'high_maf_het'}[1]; } - else { $results{$sample} = $data{$sample}{'low_maf_het'}[1]; } - } - return \%results; -} - -sub resultsMagnitude { - my $inputDir = shift; - my $inPath = $inputDir.'/'.$FILENAMES{'magnitude'}; - if (!(-e $inPath)) { - carp "Omitting magnitude; input \"$inPath\" does not exist: $!"; - return 0; # magnitude of intensity is optional - } - my $index = 1; - return resultsSpaceDelimited($inPath, $index); -} - -sub resultsSpaceDelimited { - # read metric results from a space-delimited file () - my $inPath = shift; - my $index = shift; - my @data = readSampleData($inPath); - my %results; - foreach my $ref (@data) { - my @fields = @{$ref}; - my $uri = $fields[0]; - my $metric = $fields[$index]; - $results{$uri} = $metric; - } - return \%results; -} - -sub resultsXydiff { - my $inputDir = shift; - my $inPath = $inputDir.'/'.$FILENAMES{'xydiff'}; - if (!(-e $inPath)) { - carp "Omitting xydiff; input \"$inPath\" does not exist: $!"; - return 0; - } - my $index = 1; - return resultsSpaceDelimited($inPath, $index); -} - -sub transposeResults { - # convert results from metric-major to sample-major ordering - my %metricResults = %{ shift() }; - my %sampleResults = (); - foreach my $metric (keys(%metricResults)) { - my %resultsBySample = %{$metricResults{$metric}}; - foreach my $sample (keys(%resultsBySample)) { - my $resultRef = $resultsBySample{$sample}; - $sampleResults{$sample}{$metric} = $resultRef; - } - } - return \%sampleResults; -} - -sub updateDatabase { - # update pipeline db with pass/fail of each sample - my $dbPath = shift; - my %samplePass = %{ shift() }; - # samples which were previously excluded should *remain* excluded - my $db = getDatabaseObject($dbPath); # uses default .ini path - my @samples = $db->sample->all; - $db->in_transaction(sub { - foreach my $sample (@samples) { - my $uri = $sample->uri; - if (!($samplePass{$uri})) { - $sample->update({'include' => 0}); - } - } - }); - $db->disconnect(); -} - -sub writeCsv { - # write a .csv file summarizing metrics and pass/fail status - my $csvPath = shift; - my %sampleInfo = %{ shift() }; # generic sample/dataset info - my @excluded = @{ shift() }; # samples excluded in DB - my %passResult = %{ shift() }; # metric pass/fail status and values - my %samplePass = %{ shift() }; # overall pass/fail by sample - my %excluded; - foreach my $sample (@excluded) { $excluded{$sample} = 1; } - my @lines = (); - my @sampleNames = keys(%sampleInfo); - @sampleNames = sort bySampleName @sampleNames; - my ($linesRef, $metricsRef); - # first pass; append lines for samples included in pipeline DB - ($linesRef, $metricsRef) = includedSampleCsv(\@sampleNames, \%sampleInfo, - \%passResult, \%samplePass, - \%excluded); - push(@lines, @{$linesRef}); - # second pass; append dummy lines for excluded samples - $linesRef = excludedSampleCsv(\@sampleNames, \%sampleInfo, - $metricsRef, \%excluded); - push(@lines, @{$linesRef}); - my %metrics = %{$metricsRef}; - # use %metrics to construct appropriate CSV header - my @headers = qw/run project data_supplier snpset rowcol beadchip_number - supplier_name cohort sample include plate well pass/; - foreach my $name (@METRIC_NAMES) { - my @suffixes; - if (!$metrics{$name}) { - next; - } elsif ($name eq $GENDER_NAME) { - @suffixes = qw/pass xhet inferred supplied/; - } else { - @suffixes = qw/pass value/; - } - foreach my $suffix (@suffixes) { push(@headers, $name.'_'.$suffix); } - } - unshift(@lines, join(',', @headers)); - # write results to file - open my $out, ">", $csvPath || croak "Cannot open output $csvPath: $!"; - foreach my $line (@lines) { print $out $line."\n"; } - close $out || croak "Cannot close output $csvPath: $!"; -} - -sub writeJson { - # open a file, and write the given reference in JSON format - my ($outPath, $dataRef) = @_; - my $resultString = encode_json($dataRef); - open my $out, ">", $outPath || - croak "Cannot open output path $outPath: $!"; - print $out $resultString; - close($out) || croak "Cannot close output path $outPath: $!";; - return 1; -} - -sub collate { - # main method to collate results and write outputs - # $metricsRef is an optional reference to an array of metric names; use to specify a subset of metrics for evaluation - my ($inputDir, $configPath, $thresholdPath, $dbPath, $iniPath, - $statusJson, $metricsJson, $csvPath, $exclude, $metricsRef, - $verbose) = @_; - my (%config, %thresholdConfig, @metricNames); - if ($verbose) { print STDERR "Started collating QC results.\n"; } - %thresholdConfig = %{readMetricThresholds($thresholdPath)}; - if ($metricsRef) { - @metricNames = @{$metricsRef}; - foreach my $name (@metricNames) { - if (!defined($thresholdConfig{$name})) { - croak "No threshold defined for metric $name: $!"; - } - } - } - else { - @metricNames = keys(%thresholdConfig); - } - %config = %{decode_json(read_file($configPath))}; - %FILENAMES = %{$config{'collation_names'}}; - - # 0) reprocess duplicate results for given threshold (if any) - if (defined($thresholdConfig{$DUP_NAME})) { - processDuplicates($inputDir, $thresholdConfig{$DUP_NAME}); - } - - # 1) find metric values (and write to file if required) - my $metricResultsRef = findMetricResults($inputDir, \@metricNames); - my $sampleResultsRef = transposeResults($metricResultsRef); - if ($verbose) { print "Found metric values.\n"; } - if ($metricsJson) { writeJson($metricsJson, $sampleResultsRef); } - if ($statusJson || $csvPath || $exclude) { - # if output options require evaluation of thresholds - # 2) apply filters to find pass/fail status - my %thresholds = findThresholds($metricResultsRef, \%thresholdConfig); - my $passResultRef = evaluateThresholds($sampleResultsRef, - \%thresholds); - if ($verbose) { print "Evaluated pass/fail status.\n"; } - - # 3) add location info and write JSON status file - $passResultRef = addLocations($passResultRef, $dbPath, $iniPath); - writeJson($statusJson, $passResultRef); - if ($verbose) { print "Wrote status JSON file $statusJson.\n"; } - - # 4) write CSV (if required) - my %samplePass = passFailBySample($passResultRef); - if ($csvPath) { - my %sampleInfo = dbSampleInfo($dbPath); - my @excluded = dbExcludedSamples($dbPath); - writeCsv($csvPath, \%sampleInfo, \@excluded, $passResultRef, - \%samplePass); - if ($verbose) { print "Wrote CSV $csvPath.\n"; } - } - - # 5) exclude failing samples in pipeline DB (if required) - if ($exclude) { updateDatabase($dbPath, \%samplePass); } - if ($verbose) { print "Updated pipeline DB $dbPath.\n"; } - } -} - -1; diff --git a/src/perl/lib/WTSI/NPG/Genotyping/QC/Collator.pm b/src/perl/lib/WTSI/NPG/Genotyping/QC/Collator.pm new file mode 100644 index 000000000..013876238 --- /dev/null +++ b/src/perl/lib/WTSI/NPG/Genotyping/QC/Collator.pm @@ -0,0 +1,1138 @@ + +package WTSI::NPG::Genotyping::QC::Collator; + +use strict; +use warnings; +use File::Slurp qw(read_file); +use IO::Uncompress::Gunzip qw($GunzipError); # for duplicate_full.txt.gz +use JSON; +use Moose; +use Text::CSV; +use WTSI::NPG::Genotyping::Database::Pipeline; +use WTSI::NPG::Genotyping::QC::QCPlotShared qw(meanSd); + +our $VERSION = ''; + +with 'WTSI::DNAP::Utilities::Loggable'; + +# metric names +our $CR_NAME = 'call_rate'; +our $HET_NAME = 'heterozygosity'; +our $DUP_NAME = 'duplicate'; +our $ID_NAME = 'identity'; +our $GENDER_NAME = 'gender'; +our $XYD_NAME = 'xydiff'; +our $MAG_NAME = 'magnitude'; +our $LMH_NAME = 'low_maf_het'; +our $HMH_NAME = 'high_maf_het'; +our @GENDERS = ('Unknown', 'Male', 'Female', 'Not_Available'); +our $DUPLICATE_SUBSETS_KEY = 'SUBSETS'; +our $DUPLICATE_RESULTS_KEY = 'RESULTS'; +our $UNKNOWN_PLATE = "Unknown_plate"; +our $UNKNOWN_ADDRESS = "Unknown_address"; + +###################################################################### +### attributes supplied as init_args ### + +has 'db_path' => + (is => 'ro', + isa => 'Str', + required => 1); + +has 'ini_path' => + (is => 'ro', + isa => 'Str', + required => 1, + default => $ENV{HOME} . "/.npg/genotyping.ini" ); + +has 'input_dir' => + (is => 'ro', + isa => 'Str', + required => 1, + documentation => 'Path to directory containing required input files.' +); + +has 'config_path' => + (is => 'ro', + isa => 'Str', + required => 1, + documentation => 'Path to a JSON file with required parameters.' +); + +###################################################################### +### attributes not in init_args ### + +has 'db' => + (is => 'ro', + isa => 'WTSI::NPG::Genotyping::Database::Pipeline', + lazy => 1, + init_arg => undef, + builder => '_build_db'); + +has 'duplicate_similarity' => + (is => 'ro', + isa => 'HashRef[HashRef]', + lazy => 1, + builder => '_build_duplicate_similarity', + documentation => 'Hash of hashes to record pairwise similarity between '. + 'samples. Keys are sample identifiers, values are similarity '. + 'scores generated by check_duplicates_bed.pl.' +); + +has 'duplicate_subsets' => + (is => 'ro', + isa => 'ArrayRef[ArrayRef]', + lazy => 1, + init_arg => undef, + builder => '_build_duplicate_subsets', + documentation => 'Subsets of samples with mutual similarity above a '. + 'given threshold. The subset member with the highest call rate '. + 'passes the duplicate check; others fail.' +); + +has 'filenames' => + (is => 'ro', + isa => 'HashRef', + lazy => 1, + init_arg => undef, + builder => '_build_filenames', + documentation => 'Files used for input to each metric.' +); + +has 'metric_names' => + (is => 'ro', + isa => 'ArrayRef', + lazy => 1, + init_arg => undef, + builder => '_build_metric_names', +); + +has 'metric_results' => + (is => 'ro', + isa => 'HashRef', + lazy => 1, + init_arg => undef, + builder => '_build_metric_results', + documentation => 'For each metric, record a string (for a single '. + 'value) or ArrayRef (for multiple values) to '. + 'represent the metric outcome.' +); + +has 'pass_fail_details' => + (is => 'ro', + isa => 'HashRef[HashRef]', + lazy => 1, + init_arg => undef, + builder => '_build_pass_fail_details', + documentation => 'Pass/fail status for each sample/metric combination, '. + 'indexed by sample and metric', +); + +has 'pass_fail_summary' => + (is => 'ro', + isa => 'HashRef[Bool]', + lazy => 1, + init_arg => undef, + builder => '_build_pass_fail_summary', + documentation => 'Overall pass/fail status for each sample' +); + +has 'thresholds' => + (is => 'ro', + isa => 'HashRef', + lazy => 1, + init_arg => undef, + builder => '_build_thresholds', + documentation => 'Actual thresholds to determine pass/fail status, '. + 'which may depend on metric values (eg. if defined in terms of '. + 'standard deviations from the mean).'); + +has 'threshold_parameters' => + (is => 'ro', + isa => 'HashRef', + lazy => 1, + init_arg => undef, + builder => '_build_threshold_parameters', + documentation => 'Parameters to determine pass/fail thresholds for '. + 'each metric.' +); + +sub BUILD { + my ($self, ) = @_; + + if (! -e $self->db_path) { + $self->logcroak("Database path '", $self->db_path, + "' does not exist"); + } + if (! -e $self->ini_path) { + $self->logcroak("INI path '", $self->ini_path, "' does not exist"); + } + if (! -e $self->config_path) { + $self->logcroak("Config path '", $self->config_path, + "' does not exist"); + } + if (! -e $self->input_dir) { + $self->logcroak("Input directory '", $self->input_dir, + "' does not exist"); + } + if (! -d $self->input_dir) { + $self->logcroak("Input directory path '", $self->input_dir, + "' is not a directory"); + } + + my $names = $self->metric_names; # force checks in _build_metric_names + $self->info("Found configuration for ", scalar @{$names}, " metrics in ", + $self->config_path); +} + +=head2 excludeFailedSamples + + Arg [1] : None + Example : $collator->excludeFailedSamples(); + Description: Update the pipeline database attribute. If any samples have + failed QC, set their 'include' value to false. + + Samples which have not failed QC are unaffected. Therefore, + samples which were excluded before this function was called + will remain excluded, regardless of their QC status. + + Returntype : Result of database disconnection + +=cut + +sub excludeFailedSamples { + my ($self, ) = @_; + my %samplePass = %{$self->pass_fail_summary}; + $self->db->connect(RaiseError => 1, + on_connect_do => 'PRAGMA foreign_keys = ON'); + my @samples = $self->db->sample->all; + $self->db->in_transaction(sub { + foreach my $sample (@samples) { + my $uri = $sample->uri; + if (!($samplePass{$uri})) { + $sample->update({'include' => 0}); + } + } + }); + $self->db->disconnect(); +} + + +=head2 hasDuplicatesThreshold + + Arg [1] : None + Example : $collator->hasDuplicatesThreshold(); + Description: Return true if a threshold is defined for the duplicates + metric, false otherwise. Used for checking if it is valid + to call the writeDuplicates() function. + Returntype : Boolean + +=cut + +sub hasDuplicatesThreshold { + # check if a threshold is defined for the duplicate metric + my ($self, ) = @_; + if (defined $self->thresholds->{$DUP_NAME}) { + return 1; + } else { + return 0; + } +} + + +=head2 writeCsv + + Arg [1] : [Str] Output path + Example : $collator->writeCsv($csvPath); + Description: Write a summary of QC outcomes, including plate/well + location and pass/fail status for each sample and metric, + in CSV format to the given path. Returns true on a successful + exit. + + Writes metric values only for samples with a true value of + 'include' in the SQLite database. Excluded samples are + instead output with dummy values. + + Returntype : Boolean + +=cut + +sub writeCsv { + my ($self, $outPath) = @_; + my %passResult = %{$self->_add_locations($self->pass_fail_details)}; + my %samplePass = %{$self->pass_fail_summary}; + my %sampleInfo = $self->_db_sample_info(); # generic sample/dataset info + my @excluded = $self->_db_excluded_samples(); # samples excluded in DB + my %excluded; + foreach my $sample (@excluded) { $excluded{$sample} = 1; } + my @lines = (); + + my @sampleNames = keys(%sampleInfo); + my $bySampleName = $self->_getBySampleName(); + @sampleNames = sort $bySampleName @sampleNames; + + my ($linesRef, $metricsRef); + # first pass; append lines for samples included in pipeline DB + ($linesRef, $metricsRef) = + $self->_included_sample_csv(\@sampleNames, \%sampleInfo, + \%passResult, \%samplePass, \%excluded); + push(@lines, @{$linesRef}); + # second pass; append dummy lines for excluded samples + $linesRef = $self->_excluded_sample_csv(\@sampleNames, \%sampleInfo, + $metricsRef, \%excluded); + push(@lines, @{$linesRef}); + my %metrics = %{$metricsRef}; + # use %metrics to construct appropriate CSV header + my @headers = qw/run project data_supplier snpset rowcol beadchip_number + supplier_name cohort sample include plate well pass/; + foreach my $name (@{$self->metric_names}) { + my @suffixes; + if (!$metrics{$name}) { + next; + } elsif ($name eq $GENDER_NAME) { + @suffixes = qw/pass xhet inferred supplied/; + } elsif ($name eq $ID_NAME) { + @suffixes = qw/pass probability concordance/; + } else { + @suffixes = qw/pass value/; + } + foreach my $suffix (@suffixes) { push(@headers, $name.'_'.$suffix); } + } + unshift(@lines, join(',', @headers)); + # write results to file + open my $out, ">", $outPath || + $self->logcroak("Cannot open output '$outPath'"); + foreach my $line (@lines) { print $out $line."\n"; } + close $out || $self->logcroak("Cannot close output '$outPath'"); + return 1; +} + + +=head2 writeDuplicates + + Arg [1] : [Str] Output path + Example : $collator->writeMetricJson($outPath); + Description: Write details of the duplicate metric to the given path in + JSON format. Returns true on a successful exit. Output + includes highly-similar sample subsets used to determine + sample pass/fail status. Returns true on successful exit. + Returntype : Boolean + +=cut + +sub writeDuplicates { + my ($self, $outPath) = @_; + my %output; + if ($self->hasDuplicatesThreshold()) { + $output{$DUPLICATE_SUBSETS_KEY} = $self->duplicate_subsets; + my $results = $self->metric_results->{$DUP_NAME}; + $output{$DUPLICATE_RESULTS_KEY} = $results; + + open my $out, ">", $outPath || + $self->logcroak("Cannot open output '", $outPath, "'"); + print $out to_json(\%output); + close $out || + $self->logcroak("Cannot close output '", $outPath, "'"); + return 1; + } else { + $self->logwarn('No duplicate threshold defined; omitting ', + 'duplicate output'); + return 0; + } +} + + +=head2 writeMetricJson + + Arg [1] : [Str] Output path + Example : $collator->writeMetricJson($outPath); + Description: Write a JSON file containing metric results for each sample, + without evaluating pass/fail status. + Returntype : Boolean + +=cut + +sub writeMetricJson { + my ($self, $outPath) = @_; + my $sampleResultsRef = $self->_transpose_results($self->metric_results); + $self->_write_json($outPath, $sampleResultsRef); + return 1; +} + + +=head2 writePassFailJson + + Arg [1] : [Str] Output path + Example : $collator->writePassFailJson($outPath); + Description: Write a summary of QC outcomes, including plate/well + location and pass/fail status for each sample and metric, + in JSON format to the given path. Returns true on a successful + exit. Output is used by downstream programs to generate QC + plots/reports. + Returntype : Boolean + +=cut + +sub writePassFailJson { + my ($self, $outPath) = @_; + my $passResultRef = $self->_add_locations($self->pass_fail_details); + $self->_write_json($outPath, $passResultRef); + return 1; +} + +#################################################################### +### private methods ### + +sub _add_locations { + # add plate/well locations to a hash indexed by sample + my ($self, $samplesRef) = @_; + my %samples = %{$samplesRef}; + $self->db->connect(RaiseError => 1, + on_connect_do => 'PRAGMA foreign_keys = ON'); + my %plateLocs; + $self->db->in_transaction( + sub { + foreach my $sample ($self->db->sample->all) { + my ($plate, $x, $y) = (0,0,0); + my $uri = $sample->uri; + if (!defined($uri)) { + $self->logwarn("Sample '$sample' has no uri!"); + next; + } elsif ($sample->include == 0) { + next; # excluded sample + } + # assume one well per sample + my $well = ($sample->wells->all)[0]; + if (defined($well)) { + my $address = $well->address; + my $label = $address->label1; + $plate = $well->plate; + my $plateName = $plate->ss_barcode; + $plateLocs{$uri} = [$plateName, $label]; + } else { + $plateLocs{$uri} = [$UNKNOWN_PLATE, $UNKNOWN_ADDRESS]; + } + } + }); + $self->db->disconnect(); + foreach my $uri (keys %samples) { + my %results = %{$samples{$uri}}; + if (defined($plateLocs{$uri})) { + # samples with unknown location will have dummy values in hash + my ($plate, $addressLabel) = @{$plateLocs{$uri}}; + $results{'plate'} = $plateLocs{$uri}->[0]; + $results{'address'} = $plateLocs{$uri}->[1]; + $samples{$uri} = \%results; + } else { + # excluded sample has *no* location value + $self->logwarn('Excluded sample URI ', $uri, + 'is in QC metric data'); + } + } + return \%samples; +} + +sub _append_null { + # append 'NA' values to given list + my ($self, $arrayRef, $nullTotal) = @_; + my @array = @{$arrayRef}; + for (my $i=0;$i<$nullTotal;$i++) { + push(@array, 'NA'); + } + return @array; +} + +sub _build_db { + my ($self,) = @_; + my $db = WTSI::NPG::Genotyping::Database::Pipeline->new + (name => 'pipeline', + inifile => $self->ini_path, + dbfile => $self->db_path); + return $db; +} + +sub _build_duplicate_similarity { + my ($self,) = @_; + my $inPath = $self->input_dir.'/'.$self->filenames->{'duplicate'}; + if (!(-e $inPath)) { + $self->logcroak("Input path for duplicates '", + $inPath, "' does not exist"); + } + my %similarity; + my $z = new IO::Uncompress::Gunzip $inPath || + $self->logcroak("gunzip failed: $GunzipError"); + my $firstLine = 1; + while (<$z>) { + if ($firstLine) { $firstLine = 0; next; } # skip headers + chomp; + my @words = split; + my @samples = ($words[1], $words[2]); + my $sim = $words[3]; # similarity on SNP panel + $similarity{$samples[0]}{$samples[1]} = $sim; + $similarity{$samples[1]}{$samples[0]} = $sim; + } + $z->close(); + return \%similarity; +} + +sub _build_duplicate_subsets { + # Find *connected subsets* of the duplicate pairs: + # if A<->B and B<->C then A~B, B~C and A~C + # where <-> denotes similarity on snp panel greater than some threshold, + # and ~ denotes membership of a connected subset (equivalence class). + # + # The member of a connected subset with the highest call rate is kept; + # others are flagged as QC failures. This is a "quick and dirty" + # substitute for applying a clustering algorithm to find subsets with + # high mutual similarity. It should give acceptable results, but for + # very high duplicate rates, it will fail *more* samples than + # a clustering algorithm would. + # + # Arguments: - Hash of hashes of pairwise similarities + # - Similarity threshold for duplicates + # Return value: list of lists of samples in each subset + my ($self,) = @_; + my %similarity = %{$self->duplicate_similarity}; + my @samples = keys(%similarity); + my $threshold = $self->threshold_parameters->{$DUP_NAME}; + if (! defined $threshold) { + $self->logcroak("Threshold for duplicates metric is not defined"); + } + # if sample has no neighbours: simple, it is in a subset by itself + # if sample does have neighbours: add to appropriate subset + my @subsets; + foreach my $sample_i (@samples) { + my $added = 0; + SUBSET: for (my $i=0;$i<@subsets;$i++) { + my @subset = @{$subsets[$i]}; + foreach my $sample_j (@subset) { + if ($similarity{$sample_i}{$sample_j} >= $threshold) { + push(@subset, $sample_i); + $subsets[$i] = [ @subset ]; + $added = 1; + last SUBSET; + } + } + } + unless ($added) { push(@subsets, [$sample_i]); } + } + return \@subsets; +} + +sub _build_filenames { + my ($self,) = @_; + my $config = decode_json(read_file($self->config_path)); + my $names = $config->{'collation_names'}; + if (! defined $names) { + $self->logcroak("No collation_names entry in QC config file '", + $self->config_path, "'"); + } elsif (scalar keys %{$names} == 0) { + $self->logcroak("Empty collation_names entry in QC config file '", + $self->config_path, "'"); + } + return $names; +} + +sub _build_metric_names { + my ($self,) = @_; + my @metrics; + my @ordered_metrics = ($ID_NAME, $DUP_NAME, $GENDER_NAME, $CR_NAME, + $HET_NAME, $LMH_NAME, $HMH_NAME, $MAG_NAME, + $XYD_NAME); + foreach my $metric (@ordered_metrics) { + if (defined $self->threshold_parameters->{$metric}) { + push @metrics, $metric; + } + } + if (scalar @metrics == 0) { + $self->logcroak("No metrics available. Config file must define ", + "a pass/fail threshold for at least one metric ", + "from: (", join(', ', @ordered_metrics), ")"); + } + return \@metrics; +} + +sub _build_metric_results { + # find QC results in metric-major order, return a hash reference + # "results" for gender, duplicate, and identity are represented as lists; + # others as a single float. See methods in + # WTSI::NPG::Genotyping::QC::Reports. + my ($self,) = @_; + my %allResults; + foreach my $name (@{$self->metric_names}) { + my $resultsRef; + if ($name eq $CR_NAME) { + $resultsRef = $self->_results_call_rate(); + } elsif ($name eq $DUP_NAME) { + $resultsRef = $self->_results_duplicate(); + } elsif ($name eq $GENDER_NAME) { + $resultsRef = $self->_results_gender(); + } elsif ($name eq $HET_NAME) { + $resultsRef = $self->_results_het(); + } elsif ($name eq $HMH_NAME) { + $resultsRef = $self->_results_high_maf_het(); + } elsif ($name eq $ID_NAME) { + $resultsRef = $self->_results_identity(); + } elsif ($name eq $LMH_NAME) { + $resultsRef = $self->_results_low_maf_het(); + } elsif ($name eq $MAG_NAME) { + $resultsRef = $self->_results_magnitude(); + } elsif ($name eq $XYD_NAME) { + $resultsRef = $self->_results_xydiff(); + } else { + $self->logcroak("Unknown metric name $name for results: $!"); + } + if ($resultsRef) { $allResults{$name} = $resultsRef; } + } + return \%allResults; +} + +sub _build_pass_fail_details { + my ($self, ) = @_; + my $results = $self->_transpose_results($self->metric_results); + my %evaluated = (); + foreach my $sample (keys(%{$results})) { + foreach my $metric (keys(%{$results->{$sample}})) { + my $value = $results->{$sample}->{$metric}; + my $threshold = $self->thresholds->{$metric}; + if (!defined($threshold)) { + $self->logcroak("No threshold defined for metric '", + $metric, "'"); + } + my $pass = 0; + if ($metric eq $CR_NAME || $metric eq $MAG_NAME) { + if ($value >= $threshold) { $pass = 1; } + } elsif ($metric eq $DUP_NAME) { + my ($similarity, $keep) = @{$value}; + if ($similarity < $threshold || $keep) { $pass = 1; } + } elsif ($metric eq $GENDER_NAME) { + my ($xhet, $inferred, $supplied) = @{$value}; + if ($inferred==$supplied) { $pass = 1; } + } elsif ($metric eq $HET_NAME || $metric eq $LMH_NAME || + $metric eq $HMH_NAME || $metric eq $XYD_NAME) { + my ($min, $max) = @{$threshold}; + if ($value >= $min && $value <= $max) { $pass = 1; } + } elsif ($metric eq $ID_NAME) { + my ($probability, $concordance) = @{$value}; + if ($value eq 'NA' || $probability > $threshold) { + $pass = 1; + } + } else { + $self->logcroak("Unknown metric name '", $metric, + "' for pass/fail evaluation"); + } + my @terms = ($pass, ); + if ($metric eq $GENDER_NAME || $metric eq $ID_NAME) { + push (@terms, @{$value}); + } elsif ($metric eq $DUP_NAME) { + push (@terms, @{$value}[0]); + } else { + push(@terms, $value); + } + $evaluated{$sample}{$metric} = \@terms; + } + } + return \%evaluated; +} + +sub _build_pass_fail_summary { + my ($self,) = @_; + my %results = %{$self->pass_fail_details}; + my %passFail = (); + foreach my $sample (keys(%results)) { + my %result = %{$results{$sample}}; + my $samplePass = 1; + foreach my $metric (@{$self->metric_names}) { + if (!defined($result{$metric})) { next; } + my @values = @{$result{$metric}}; + my $pass = shift @values; + if (!$pass) { $samplePass = 0; last; } + } + $passFail{$sample} = $samplePass; + } + return \%passFail; +} + +sub _build_threshold_parameters { + my ($self,) = @_; + my $config = decode_json(read_file($self->config_path)); + my $thresholds = $config->{'Metrics_thresholds'}; + return $thresholds; +} + +sub _build_thresholds { + # find threshold values, which may depend on mean/sd of metric values + my ($self, ) = @_; + my %metricResults = %{$self->metric_results}; + my %thresholds; + my @names = keys(%metricResults); + foreach my $metric (keys(%metricResults)) { + if ($metric eq $HET_NAME || $metric eq $LMH_NAME || + $metric eq $HMH_NAME || $metric eq $XYD_NAME) { + # find mean/sd for thresholds + my %resultsBySample = %{$metricResults{$metric}}; + my ($mean, $sd) = meanSd(values(%resultsBySample)); + my $min = $mean - ($self->threshold_parameters->{$metric}*$sd); + my $max = $mean + ($self->threshold_parameters->{$metric}*$sd); + $thresholds{$metric} = [$min, $max]; + } elsif ($metric eq $CR_NAME || $metric eq $DUP_NAME || + $metric eq $ID_NAME || $metric eq $GENDER_NAME || + $metric eq $MAG_NAME ) { + $thresholds{$metric} = $self->threshold_parameters->{$metric}; + } else { + $self->logcroak("Unknown metric name '", $metric, + "' for thresholds"); + } + } + return \%thresholds; + +} + +sub _db_excluded_samples { + # find list of excluded sample URIs from database + # use to fill in empty lines for CSV file + my ($self, ) = @_; + my @excluded; + $self->db->connect(RaiseError => 1, + on_connect_do => 'PRAGMA foreign_keys = ON'); + my @samples = $self->db->sample->all; + foreach my $sample (@samples) { + if (!($sample->include)) { + push @excluded, $sample->uri; + } + } + $self->db->disconnect(); + return @excluded; +} + +sub _db_sample_info { + # get general information on analysis run from pipeline database + # return a hash indexed by sample + my ($self, ) = @_; + my %sampleInfo; + $self->db->connect(RaiseError => 1, + on_connect_do => 'PRAGMA foreign_keys = ON'); + my @runs = $self->db->piperun->all; + foreach my $run (@runs) { + my @root; + my @datasets = $run->datasets->all; + foreach my $dataset (@datasets) { + my @samples = $dataset->samples->all; + @root = ($run->name, $dataset->if_project, + $dataset->datasupplier->name, + $dataset->snpset->name); + # query for rowcol, supplier name, chip no. + foreach my $sample (@samples) { + my @info = ( + $sample->rowcol, + $sample->beadchip, + $sample->supplier_name, + $sample->cohort); + foreach (my $i=0;$i<@info;$i++) { # set null values to "NA" + if ($info[$i] eq "") { $info[$i] = "NA"; } + } + unshift(@info, @root); + $sampleInfo{$sample->uri} = \@info; + } + } + } + $self->db->disconnect(); + return %sampleInfo; +} + +sub _excluded_sample_csv { + # generate CSV lines for samples excluded from pipeline DB + my ($self, $sampleNamesRef, $sampleInfoRef, + $metricsRef, $excludedRef) = @_; + my @sampleNames = @{$sampleNamesRef}; + my %sampleInfo = %{$sampleInfoRef}; # generic sample/dataset info + my %metrics = %{$metricsRef}; + my %excluded = %{$excludedRef}; + my @lines = (); + foreach my $sample (@sampleNames) { + if (!$excluded{$sample}) { next; } + my @fields = @{$sampleInfo{$sample}}; + push(@fields, $sample); + push(@fields, 'Excluded'); + @fields = $self->_append_null(\@fields, 3); # null plate, well, pass + foreach my $name (@{$self->metric_names}) { + if (!$metrics{$name}) { + next; + } elsif ($name eq $GENDER_NAME) { + # pass/fail, metric triple + @fields = $self->_append_null(\@fields, 4); + } elsif ($name eq $ID_NAME) { + # pass/fail, metric double + @fields = $self->_append_null(\@fields, 3); + } else { + # pass/fail, metric + @fields = $self->_append_null(\@fields, 2); + } + } + push(@lines, join(',', @fields)); + } + return \@lines; +} + +sub _getBySampleName { + my ($self,) = @_; + # need a coderef to sort sample identifiers in writeCsv + # wrapped in its own object method to satisfy Moose syntax & PerlCritic + return sub { + # comparison function for sorting samples + # if in plate_well_id format, sort by id; otherwise use standard sort + if ($a =~ m{[[:alnum:]]+_[[:alnum:]]+_[[:alnum:]]+}msx && + $b =~ m{[[:alnum:]]+_[[:alnum:]]+_[[:alnum:]]+}msx) { + my @termsA = split /_/msx, $a; + my @termsB = split /_/msx, $b; + return $termsA[-1] cmp $termsB[-1]; + } else { + return $a cmp $b; + } + } +} + +sub _included_sample_csv { + # generate CSV lines for samples included in pipeline DB + my ($self, $sampleNamesRef, $sampleInfoRef, $passFailDetail, + $passFailSummary, $excluded) = @_; + my @sampleNames = @{ $sampleNamesRef }; + my %sampleInfo = %{ $sampleInfoRef }; # generic sample/dataset info + my %passResult = %{ $passFailDetail }; # metric pass/fail status + my %samplePass = %{ $passFailSummary }; # overall pass/fail by sample + my %excluded = %{ $excluded }; + my %metrics; + my @lines = (); + foreach my $sample (@sampleNames) { + if ($excluded{$sample}) { next; } + my @fields = @{$sampleInfo{$sample}}; # start with general info + my %result = %{$passResult{$sample}}; + # first obtain: sample include plate well pass + push(@fields, $sample); + push(@fields, 'Included'); + push(@fields, $result{'plate'}); + push(@fields, $result{'address'}); # aka well + if ($samplePass{$sample}) { push(@fields, 'Pass'); } + else { push(@fields, 'Fail'); } + # now add relevant metric values + foreach my $metric (@{$self->metric_names}) { + if (!defined($result{$metric})) { next; } + $metrics{$metric} = 1; + my @metricResult = @{$result{$metric}}; # pass/fail, value(s) + if ($metricResult[0]) { $metricResult[0] = 'Pass'; } + else { $metricResult[0] = 'Fail'; } + if ($metric eq $GENDER_NAME) { # use human-readable gender names + $metricResult[2] = $GENDERS[$metricResult[2]]; + # 'supplied' Plink gender may be -9 or other arbitrary number + my $totalCodes = scalar @GENDERS; + if ($metricResult[3] < 0 || $metricResult[3] >= $totalCodes){ + $metricResult[3] = $totalCodes - 1; # 'not available' + } + $metricResult[3] = $GENDERS[$metricResult[3]]; + } + push (@fields, @metricResult); + } + push(@lines, join(',', @fields)); + } + return (\@lines, \%metrics); +} + +sub _read_tab_delimited_column { + # read metric results from a tab-delimited file + # omit any line starting with # + # '$index' argument denotes the column with the desired metric values + # assume first field in each line is the sample URI + # return a hash of metric values indexed by sample URI + my ($self, $inPath, $index) = @_; + my @raw_lines = read_file($inPath); + my @lines = grep { !/^[#]/msx } @raw_lines; # remove comments/headers + my $csv = Text::CSV->new( + { binary => 1, + sep_char => "\t", + } + ); + my %results; + foreach my $line (@lines) { + my $status = $csv->parse($line); + if (! defined $status) { + $self->logcroak("Unable to parse tab-delimited input line: '", + $line, "'"); + } + my @fields = $csv->fields(); + my $uri = $fields[0]; + if (! defined $uri) { + $self->logcroak("Unable to find URI from input '", $line, "'"); + } + my $metric = $fields[$index]; + if (! defined $metric) { + $self->logcroak("Unable to find field index ", $index, + " for line '", $line, "'"); + } + $results{$uri} = $metric; + } + return \%results; +} + +sub _results_call_rate { + my ($self, ) = @_; + my $inPath = $self->input_dir.'/'.$self->filenames->{'call_rate'}; + if (!(-e $inPath)) { + $self->logcroak("Input path for call rate '", + $inPath, "' does not exist"); + } + my $index = 1; + return $self->_read_tab_delimited_column($inPath, $index); +} + +sub _results_duplicate { + my ($self, ) = @_; + my %similarity = %{$self->duplicate_similarity}; + my %max; + foreach my $sample_i (keys(%similarity)) { + my $maxSim = 0; + foreach my $sample_j (keys(%similarity)) { + if ($sample_i eq $sample_j) { next; } + my $sim = $similarity{$sample_i}{$sample_j}; + if ($sim > $maxSim) { $maxSim = $sim; } + } + $max{$sample_i} = $maxSim; + } + # read call rates and find keep/discard status + my %cr = %{$self->_results_call_rate()}; + my %results; + foreach my $subsetRef (@{$self->duplicate_subsets}) { + my $maxCR = 0; + my @subset = @{$subsetRef}; + # first pass -- find highest CR + foreach my $sample (@subset) { + if ($cr{$sample} > $maxCR) { $maxCR = $cr{$sample}; } + } + # second pass -- record sample status + # may keep more than one sample if there is a tie for greatest CR + foreach my $sample (@subset) { + my $keep = 0; + if ($cr{$sample} eq $maxCR) { $keep = 1; } + $results{$sample} = [$max{$sample}, $keep]; + } + } + return \%results; +} + +sub _results_gender { + # read gender results from sample_xhet_gender.txt + # 'metric value' is concatenation of inferred, supplied gender codes + # $threshold not used + my ($self, ) = @_; + my $inPath = $self->input_dir.'/'.$self->filenames->{'gender'}; + if (!(-e $inPath)) { + $self->logcroak("Input path for gender '", + $inPath, "' does not exist"); + } + my @data = WTSI::NPG::Genotyping::QC::QCPlotShared::readSampleData($inPath, 1); # skip header on line 0 + my %results; + foreach my $ref (@data) { + my ($sample, $xhet, $inferred, $supplied) = @$ref; + $results{$sample} = [$xhet, $inferred, $supplied]; + } + return \%results; +} + +sub _results_het { + my ($self, ) = @_; + my $inPath = $self->input_dir.'/'.$self->filenames->{'heterozygosity'}; + if (!(-e $inPath)) { + $self->logcroak("Input path for heterozygosity '", + $inPath, "' does not exist"); + } + my $index = 2; + return $self->_read_tab_delimited_column($inPath, $index); +} + +sub _results_high_maf_het { + my ($self, ) = @_; + return $self->_results_maf_het(1); +} + +sub _results_identity { + my ($self, ) = @_; + my $inPath = $self->input_dir.'/'.$self->filenames->{'identity'}; + my $resultsRef; + if (-e $inPath) { + # read identity results from JSON file + my %data = %{decode_json(read_file($inPath))}; + my @sample_results = @{$data{'identity'}}; + my %results; + foreach my $result (@sample_results) { + my $name = $result->{'sample_name'}; + my $concordance = $result->{'concordance'}; + my $identity = $result->{'identity'}; + $results{$name} = [$identity, $concordance]; + } + $resultsRef = \%results; + } else { + $self->info("Omitting identity metric; expected identity JSON path '", + $inPath, "' does not exist"); + } + return $resultsRef; +} + +sub _results_low_maf_het { + my ($self, ) = @_; + return $self->_results_maf_het(0); +} + +sub _results_maf_het { + # read JSON file output by Plinktools het_by_maf.py + my ($self, $high) = @_; + my $inPath = $self->input_dir.'/'.$self->filenames->{'het_by_maf'}; + if (!(-r $inPath)) { + $self->info("Omitting MAF heterozygosity; cannot read input '", + $inPath, "'"); + return 0; + } + my %data = %{decode_json(read_file($inPath))}; + my %results; + foreach my $sample (keys(%data)) { + # TODO modify output format of het_by_maf.py + if ($high) { $results{$sample} = $data{$sample}{'high_maf_het'}[1]; } + else { $results{$sample} = $data{$sample}{'low_maf_het'}[1]; } + } + return \%results; +} + +sub _results_magnitude { + my ($self, ) = @_; + my $inPath = $self->input_dir.'/'.$self->filenames->{'magnitude'}; + if (!(-e $inPath)) { + $self->info("Omitting magnitude; input '", $inPath, + "' does not exist"); + return 0; # magnitude of intensity is optional + } + my $index = 1; + return $self->_read_tab_delimited_column($inPath, $index); +} + +sub _results_xydiff { + my ($self, ) = @_; + my $inPath = $self->input_dir.'/'.$self->filenames->{'xydiff'}; + if (!(-e $inPath)) { + $self->info("Omitting xydiff; input '", $inPath, + "' does not exist"); + return 0; + } + my $index = 1; + return $self->_read_tab_delimited_column($inPath, $index); +} + +sub _transpose_results { + # convert results from metric-major to sample-major ordering + my ($self, $resultsRef) = @_; + my %metricResults = %{$resultsRef}; + my %sampleResults = (); + foreach my $metric (keys(%metricResults)) { + my %resultsBySample = %{$metricResults{$metric}}; + foreach my $sample (keys(%resultsBySample)) { + my $resultRef = $resultsBySample{$sample}; + $sampleResults{$sample}{$metric} = $resultRef; + } + } + return \%sampleResults; +} + +sub _write_json { + # convenience method to write the given reference in JSON format + my ($self, $outPath, $dataRef) = @_; + my $resultString = encode_json($dataRef); + open my $out, ">", $outPath || + $self->logcroak("Cannot open output path '$outPath'"); + print $out $resultString; + close($out) || $self->logcroak("Cannot close output path '$outPath'"); + return 1; +} + + + +no Moose; + +1; + + +__END__ + +=head1 NAME + +WTSI::NPG::Genotyping::QC::Collator - Class to collate QC metric outputs + +=head1 SYNOPSIS + +my $collator = WTSI::NPG::Genotyping::QC::Collator->new( + db_path => './genotyping.db', + ini_path => './genotyping.ini', + input_dir => './data', + config_path => './qc_config.json', +); + +=head1 DESCRIPTION + +Collate QC metric outputs from the WTSI genotyping pipeline, and perform +actions with the collated data. + +Actions include: Combining duplicate and call rate data to evaluate the +duplicate metric; assessment of pass/fail status of samples; exclusion of +failed samples in the pipeline SQLite database; and output of QC result +summaries in JSON or CSV format. + +Supported metrics include: Call rate; duplicates; gender; heterozygosity; +heterozygosity restricted to low MAF SNPs; heterozygosity restricted to +high MAF SNPs; Bayesian identity with QC plex data; magnitude of intensity; +and X/Y intensity difference. + +The JSON format output is used by downstream software to create QC plots +and reports. + +The JSON configuration file must encode a hash, which must contain the +following keys and values: + +=over + +=item + +B A hash mapping metric names to their threshold +values. + +The metrics which appear in Metrics_thresholds will be used for all +subsequent operations, and may be a subset of the full list of available +metrics. For example, this allows sample pass/fail status to be +determined by call rate only for the Illuminus caller prefilter. + +=item + +B A hash mapping input types to the names of input +files, which are to be found in the given input directory. Some files +provide input to more than one metric. If a metric is present in +Metrics_thresholds, it must also have appropriate input in collation_names. + +=back + +First created February 2014; substantially refactored January 2017. + +=head1 AUTHOR + +Keith James , Iain Bancarz + +=head1 COPYRIGHT AND DISCLAIMER + +Copyright (C) 2014, 2015, 2016, 2017 Genome Research Limited. +All Rights Reserved. + +This program is free software: you can redistribute it and/or modify +it under the terms of the Perl Artistic License or the GNU General +Public License as published by the Free Software Foundation, either +version 3 of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +=cut diff --git a/src/perl/lib/WTSI/NPG/Genotyping/QC/Identity.pm b/src/perl/lib/WTSI/NPG/Genotyping/QC/Identity.pm deleted file mode 100644 index 7509fe74c..000000000 --- a/src/perl/lib/WTSI/NPG/Genotyping/QC/Identity.pm +++ /dev/null @@ -1,564 +0,0 @@ - -# Author: Iain Bancarz, ib5@sanger.ac.uk -# March 2014 - -# -# Copyright (C) 2014, 2015 Genome Research Ltd. All rights reserved. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# - -# Module for identity QC check against Sequenom calls - - -use utf8; - -package WTSI::NPG::Genotyping::QC::Identity; - -use Moose; - -use JSON; -use List::Util qw(max); -use Log::Log4perl; -use Log::Log4perl::Level; -use plink_binary; # in /software/varinf/gftools/lib ; front-end for C library - -use WTSI::NPG::Genotyping::Database::SNP; -use WTSI::NPG::Genotyping::QC::QCPlotShared qw(defaultConfigDir - getDatabaseObject); -use WTSI::NPG::Genotyping::QC::SnpID qw(convertFromIlluminaExomeSNP); -use WTSI::NPG::Genotyping::SNPSet; - -our $VERSION = ''; - -our $SEQUENOM = 'Sequenom'; -our $FLUIDIGM = 'Fluidigm'; -our $PLEX_DIR = '/nfs/srpipe_references/genotypes'; -our %PLEX_MANIFESTS = ( - $FLUIDIGM => { - cgp => $PLEX_DIR.'/cgp_fluidigm_snp_info_1000Genomes.tsv', - ddd => $PLEX_DIR.'/ddd_fluidigm_snp_info_1000Genomes.tsv', - qc => $PLEX_DIR.'/qc_fluidigm_snp_info_1000Genomes.tsv', - }, - $SEQUENOM => { - W30467 => $PLEX_DIR.'/W30467_snp_set_info_1000Genomes.tsv', - W34340 => $PLEX_DIR.'/W34340_snp_set_info_1000Genomes.tsv', - W35540 => $PLEX_DIR.'/W35540_snp_set_info_1000Genomes.tsv', - }, -); - -with 'WTSI::DNAP::Utilities::Loggable'; - -has 'db_path' => - (is => 'rw', - isa => 'Str', - required => 1, - ); - -has 'ini_path' => - (is => 'rw', - isa => 'Str', - required => 1, - ); - -has 'min_shared_snps' => - (is => 'rw', - isa => 'Int', - default => 8, - ); - -has 'output_dir' => - (is => 'rw', - isa => 'Str', - default => '.' - ); - -has 'output_names' => - (is => 'ro', - isa => 'HashRef[Str]', - default => sub {{'genotypes' => 'identity_check_gt.txt', - 'results' => 'identity_check_results.txt', - 'fail_pairs' => 'identity_check_failed_pairs.txt', - 'json' => 'identity_check.json' }}, - ); - -has 'pass_threshold' => # minimum similarity for metric pass - (is => 'rw', - isa => 'Num', - default => 0.9, - ); - -has 'pipedb' => - (is => 'rw', - isa => 'WTSI::NPG::Genotyping::Database::Pipeline', - ); - -has 'plex_manifest' => # location of plex manifest in local filesystem - (is => 'rw', - isa => 'Str', - ); - -has 'plink_path' => - (is => 'rw', - isa => 'Str', - required => 1, - ); - -has 'plink' => - (is => 'rw', - isa => 'plink_binary::plink_binary', - ); - -has 'swap_threshold' => # minimum similarity to be flagged as possible swap - (is => 'rw', - isa => 'Num', - default => 0.9, -); - -sub BUILD { - my ($self,) = @_; - $self->plink(plink_binary::plink_binary->new($self->plink_path)); - $self->plink->{"missing_genotype"} = "N"; - $self->pipedb(getDatabaseObject($self->db_path, $self->ini_path)); - my $sequenomTotal = $self->pipedb->total_results_for_method($SEQUENOM); - my $fluidigmTotal = $self->pipedb->total_results_for_method($FLUIDIGM); - my $method; - # if no valid QC plex found, plex_manifest attribute remains undefined - if ($sequenomTotal==0 && $fluidigmTotal==0) { - $self->logger->warn('No QC plex results in pipeline DB'); - } elsif ($sequenomTotal!=0 && $fluidigmTotal!=0) { - $self->logger->warn('Results for more than one QC plex in pipeline DB'); - } elsif ($fluidigmTotal != 0) { - $method = $FLUIDIGM; - } else { - $method = $SEQUENOM; - } - if ($method) { - my @names = @{$self->pipedb->snpset_names_for_method($method)}; - if (scalar(@names)!=1) { - $self->logcroak("Must have exactly one snpset name ", - "for identity check"); - } else { - $self->plex_manifest($PLEX_MANIFESTS{$method}{$names[0]}); - } - } -} - -sub compareFailedPairs { - # pairwise check of all failed samples; use output to detect swaps - # Consider sample pair (i, j) - # let s_ij = rate of matching calls between (Illumina_i, Sequenom_j) - # we may have s_ij != s_ji, so define pairwise metric as max(s_ij, s_ji) - my ($self, $gtRef, $failRef, $snpRef) = @_; - my %genotypes = %{$gtRef}; - my @failedSamples = @{$failRef}; - my @snps = @{$snpRef}; - my @comparison = (); - for (my $i = 0; $i < @failedSamples; $i++) { - for (my $j = 0; $j < $i; $j++) { - my $sample_i = $failedSamples[$i]; - my $sample_j = $failedSamples[$j]; - my @match = (0,0); - foreach my $snp (@snps) { - my ($plink_i, $plex_i) = @{$genotypes{$sample_i}{$snp}}; - my ($plink_j, $plex_j) = @{$genotypes{$sample_j}{$snp}}; - my $equiv_ij = $self->equivalent($plink_i, $plex_j); - my $equiv_ji = $self->equivalent($plink_j, $plex_i); - if ($equiv_ij) { $match[0]++; } - if ($equiv_ji) { $match[1]++; } - } - my $similarity = max(@match)/@snps; - push(@comparison, [$sample_i, $sample_j, $similarity]); - } - } - return \@comparison; -} - -sub equivalent { - # check if given genotypes are equivalent to within: - # - swap (major/minor allele reversal) and/or a flip (reverse complement) - my ($self, $gt0, $gt1) = @_; - # basic sanity checking on input - # allow no-call genotypes (represented by NN or 0) - my $inputOK = 1; - foreach my $gt ($gt0, $gt1) { - if ($gt && $gt ne 'NN' && (length($gt)!=2 || $gt =~ m{[^ACGT]}msx)) { - $inputOK = 0; - } - } - unless ($inputOK) { - $self->warn("Invalid genotype arguments: '$gt0', '$gt1'"); - return 0; # no match - } - my $gt1Swap = join('', reverse(split('', $gt1))); # swap alleles - if ($gt0 eq $gt1 || $gt0 eq $gt1Swap || $gt0 eq $self->revComp($gt1) || - $gt0 eq $self->revComp($gt1Swap) ) { - return 1; # match - } else { - return 0; # no match - } -} - -sub findIdentity { - # find the identity metric for each sample - # return: metric values, genotypes by SNP & sample, pass/fail status - my ($self, $plinkRef, $plexRef, $snpsRef) = @_; - my %plink = %{$plinkRef}; - my %qcplex = %{$plexRef}; - my @snps = @{$snpsRef}; - my (%identity, %genotypes, %failed, %missing); - foreach my $sample (keys(%plink)) { - my $match = 0; - # compare genotypes - # mark samples as missing OR pass/fail (but not both) - if ($qcplex{$sample}) { - foreach my $snp (@snps) { - my $pCall = $plink{$sample}{$snp}; - my $sCall = $qcplex{$sample}{$snp}; - if ($pCall && $sCall) { - my $equiv = $self->equivalent($pCall, $sCall); - unless (defined($equiv)) { - $self->logger->logwarn("WARNING: ".$@); # error caught - $equiv = 0; - } - if ($equiv) { $match++; } - } - $pCall ||= 0; - $sCall ||= 0; - $genotypes{$sample}{$snp} = [$pCall, $sCall]; - } - my $id = $match / @snps; - $identity{$sample} = $id; - if ($id < $self->pass_threshold) { $failed{$sample} = 1; } - } else { - $missing{$sample} = 1; - $identity{$sample} = 0; - } - } - return (\%identity, \%genotypes, \%failed, \%missing); -} - -sub getIntersectingSNPsPlink { - # find SNPs in Plink data which are also in QC plex (if any) - my ($self,) = @_; - my @shared; - if ($self->plex_manifest) { - my @plinkSNPs; - for my $i (0..$self->plink->{"snps"}->size() - 1) { - my $name = $self->plink->{"snps"}->get($i)->{"name"}; - push @plinkSNPs, $name; - } - my $snpset = WTSI::NPG::Genotyping::SNPSet->new($self->plex_manifest); - my %plexSNPs = (); - foreach my $name ($snpset->snp_names) { $plexSNPs{$name} = 1; } - foreach my $name (@plinkSNPs) { - $name = convertFromIlluminaExomeSNP($name); - if ($plexSNPs{$name}) { push(@shared, $name); } - } - } - return @shared; -} - -sub getSampleNamesIDs { - # extract sample IDs from a plink_binary object - # first, try parsing sampleName in standard PLATE_WELL_ID format - # if unsuccessful, set sample ID = sampleName - # output hash of IDs indexed by name - # also get list of names (use to ensure consistent name order) - my ($self,) = @_; - my (%samples, @sampleNames); - for my $i (0..$self->plink->{"individuals"}->size() - 1) { - my $longName = $self->plink->{"individuals"}->get($i)->{"name"}; - my ($plate, $well, $id) = split /_/msx, $longName, 3; - if ($id) { - $samples{$longName} = $id; - } else { - $samples{$longName} = $longName; - } - push(@sampleNames, $longName); - } - return (\%samples, \@sampleNames); -} - -sub readPlexCalls { - # read QC plex calls (Sequenom or Fluidigm) from pipeline SQLite database - # return a hash of calls indexed by sample and SNP - my ($self, ) = @_; - # read samples and SNP names - my @samples = $self->pipedb->sample->all; - $self->logger->debug("Read ", scalar(@samples), - " samples from pipeline DB"); - my @snps = $self->pipedb->snp->all; - my $snpTotal = @snps; - $self->logger->debug("Read $snpTotal SNPs from pipeline DB"); - my %snpNames; - foreach my $snp (@snps) { - $snpNames{$snp->id_snp} = $snp->name; - } - # read QC calls for each sample and SNP - my $snpResultTotal = 0; - my %results; - my $i = 0; - foreach my $sample (@samples) { - if ($sample->include == 0) { next; } - my $sampleURI = $sample->uri; - my @results = $sample->results->all; - $i++; - if ($i % 100 == 0) { - $self->logger->debug("Read ", scalar(@results), - " results for sample ", $i, " of ", - scalar(@samples)); - } - foreach my $result (@results) { - my @snpResults = $result->snp_results->all; - $snpResultTotal += @snpResults; - foreach my $snpResult (@snpResults) { - my $snpName = $snpNames{$snpResult->id_snp}; - if (!$results{$sampleURI}{$snpName}) { - $results{$sampleURI}{$snpName} = $snpResult->value; - } - } - } - } - $self->logger->debug("Read ", $snpResultTotal, - " QC SNP results from pipeline DB"); - return \%results; -} - -sub readPlinkCalls { - # read genotype calls by sample & snp from given plink_binary object - # requires list of sample names in same order as in plink file - # assumes that "sample names" in the Plink dataset are URI's - # return hash of calls by sample and SNP name - my ($self, $sampleNamesRef, $snpsRef) = @_; - my @sampleNames = @$sampleNamesRef; - my @snps = @$snpsRef; - my %snps; - foreach my $snp_id (@snps) { $snps{$snp_id} = 1; } - my $snp = new plink_binary::snp; - my $genotypes = new plink_binary::vectorstr; - my %plinkCalls; - while ($self->plink->next_snp($snp, $genotypes)) { - # read calls from Plink binary object - # try both "plink" and "sequenom" SNP name formats - my $snp_id_illumina = $snp->{"name"}; - my $snp_id_sequenom = convertFromIlluminaExomeSNP($snp_id_illumina); - foreach my $snp_id ($snp_id_illumina, $snp_id_sequenom) { - if (!$snps{$snp_id}) { next; } - for my $i (0..$genotypes->size() - 1) { - my $call = $genotypes->get($i); - if ($call =~ m{[N]{2}}msx) { $call = 0; } - $plinkCalls{$sampleNames[$i]}{$snp_id} = $call; - } - } - } - return \%plinkCalls; -} - -sub revComp { - # reverse complement a DNA sequence - my ($self, $seq) = @_; - my @bases = reverse(split('', $seq)); - my @rev = (); - foreach my $base (@bases) { - if ($base eq 'A') {push(@rev, 'T');} - elsif ($base eq 'C') {push(@rev, 'G');} - elsif ($base eq 'G') {push(@rev, 'C');} - elsif ($base eq 'T') {push(@rev, 'A');} - else {push(@rev, 'N'); } - } - return join('', @rev); -} - -sub writeFailedPairComparison { - my $self = shift; - my @compareResults = @{ shift() }; - my $maxSimilarity = shift; - my $outPath = $self->output_dir.'/'.$self->output_names->{'fail_pairs'}; - open my $out, ">", $outPath || - $self->logger->logcroak("Cannot open '$outPath'"); - my $header = join("\t", "#Sample_1", "Sample_2", "Similarity", "Swap_warning"); - print $out $header."\n"; - foreach my $resultRef (@compareResults) { - my ($sample1, $sample2, $metric) = @$resultRef; - my $status; - if ($metric > $maxSimilarity) { $status = 'TRUE'; } - else { $status = 'FALSE'; } - my $line = sprintf("%s\t%s\t%.4f\t%s\n", $sample1, $sample2, $metric, $status); - print $out $line; - } - close $out || $self->logger->logcroak("Cannot close '$outPath'"); -} - -sub writeGenotypes { - my $self = shift; - my %genotypes = %{ shift() }; # hashes of calls by sample & snp - my @snps = @{ shift() }; # list of SNPs to output - my @samples = sort(keys(%genotypes)); - my $outPath = $self->output_dir.'/'.$self->output_names->{'genotypes'}; - open my $gt, ">", $outPath or - die "Failed to open $outPath for writing: $!\n"; - my @heads = qw/SNP sample illumina_call qc_plex_call/; - print $gt '#'.join("\t", @heads)."\n"; - foreach my $snp (@snps) { - foreach my $sample (sort(keys(%genotypes))) { - my ($pCall, $sCall) = @{ $genotypes{$sample}{$snp} }; - $pCall ||= '-'; - $sCall ||= '-'; - print $gt join("\t", $snp, $sample, $pCall, $sCall), "\n"; - } - } - close $gt or die "Failed to close $outPath: $!\n"; -} - -sub writeIdentity { - # evaluate identity pass/fail and write results - # return list of failed sample names - my $self = shift; - my %identity = %{ shift() }; # hash of identity by sample - my %failed = %{ shift() }; # pass/fail status by sample - my %missing = %{ shift() }; # missing samples from Sequenom query - my @samples = @{ shift() }; # list ensures consistent sample name order - my $snpTotal = shift; - my $minIdent = shift; - my $outPath = $self->output_dir.'/'.$self->output_names->{'results'}; - open my $results, ">", $outPath or - die "Failed to open $outPath for writing: $!\n"; - my $header = join("\t", "#Identity comparison", - "MIN_IDENTITY:$minIdent", - "AVAILABLE_PLEX_SNPS:$snpTotal")."\n"; - $header .= join("\t", "#sample", "concordance", "result")."\n"; - print $results $header; - foreach my $sample (@samples) { - my $line; - if (!($missing{$sample})) { - $line = sprintf("%s\t%.4f\t", $sample, $identity{$sample}); - if ($failed{$sample}) { $line .= "Fail\n"; } - else { $line .= "Pass\n"; } - } else { - $line = join("\t", $sample, "-", "Unavailable")."\n"; - } - print $results $line; - } - close $results; -} - -sub writeJson { - # get data structure for output to and write to JSON file - # first argument is hash of values (if check was run) or list of samples (if check was not run) - my ($self, $resultsRef, $idCheck, $minSnps, $commonSnps) = @_; - my $idRef; - my %data = (results => $resultsRef, - identity_check_run => $idCheck, - min_snps => $minSnps, - common_snps => $commonSnps - ); - my $outPath = $self->output_dir.'/'.$self->output_names->{'json'}; - open my $out, ">", $outPath || - $self->logger->logcroak("Cannot open '$outPath'"); - print $out encode_json(\%data); - close $out || $self->logger->logcroak("Cannot close '$outPath'"); -} - -sub run_identity_check { - # 'main' method to run identity check - my ($self,) = @_; - # 1) Read sample names and IDs from Plink - my ($samplesRef, $sampleNamesRef) = $self->getSampleNamesIDs(); - $self->logger->debug("Sample names read from PLINK binary.\n"); - # definitive list of qc SNPs - my @snps = $self->getIntersectingSNPsPlink(); - my $snpTotal = @snps; - if ($snpTotal < $self->min_shared_snps) { - my %id; - foreach my $sample (@{$sampleNamesRef}) { $id{$sample} = 'NA'; } - $self->writeJson(\%id, 0, $self->min_shared_snps, $snpTotal); - $self->warn("Cannot do identity check; ", - $self->min_shared_snps, - " SNPs from QC plex required ", $snpTotal, - " found"); - } else { - # 2) Read Sequenom results from pipeline SQLite DB - my $start = time(); - my $plexCallsRef = $self->readPlexCalls(); - my $duration = time() - $start; - $self->logger->debug("Calls read from pipeline DB: ", - $duration, " seconds.\n"); - # 3) Read PLINK genotypes for all samples; can take a while! - $start = time(); - my $plinkCallsRef = $self->readPlinkCalls($sampleNamesRef, \@snps); - $duration = time() - $start; - $self->logger->debug("Calls read from PLINK binary: ", - $duration, " seconds.\n"); - # 4) Find identity, genotypes, and pass/fail status; write output - my ($idRef, $gtRef, $failRef, $missingRef) = $self->findIdentity($plinkCallsRef, $plexCallsRef, \@snps, $self->pass_threshold); - $self->writeJson($idRef, 1, $self->min_shared_snps, $snpTotal); - $self->writeGenotypes($gtRef, \@snps); - $self->writeIdentity($idRef, $failRef, $missingRef, $sampleNamesRef, - $snpTotal, $self->pass_threshold); - # 5) Pairwise check on failed samples for possible swaps - my @failed = sort(keys(%{$failRef})); - my $compareRef = $self->compareFailedPairs($gtRef, \@failed, - \@snps, - $self->swap_threshold); - $self->writeFailedPairComparison($compareRef, $self->pass_threshold); - $self->logger->debug("Finished identity check.\n"); - } - return 1; -} - -no Moose; - -1; - - - -__END__ - -=head1 NAME - -WTSI::NPG::Genotyping::QC::Identity - -=head1 DESCRIPTION - -Class to run the WTSI Genotyping pipeline identity check on a Plink dataset. -Checks Plink calls against a QC plex (Sequenom or Fluidigm) by comparing -calls on SNPs which occur in both the Infinium and QC plex manifests. If -available SNPs are too few, omit the identity check. No-calls on any given -sample are counted as mismatches. Samples with concordance below a given -threshold fail the QC metric. Failed pairs of samples are compared in order -to detect possible swaps. - -Output is a JSON file with identity metric for each sample, and supplementary -text files. - -=head1 AUTHOR - -Iain Bancarz - -=head1 COPYRIGHT AND DISCLAIMER - -Copyright (c) 2014 Genome Research Limited. All Rights Reserved. - -This program is free software: you can redistribute it and/or modify -it under the terms of the Perl Artistic License or the GNU General -Public License as published by the Free Software Foundation, either -version 3 of the License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -=cut diff --git a/src/perl/lib/WTSI/NPG/Genotyping/QC/MetricScatterplots.pm b/src/perl/lib/WTSI/NPG/Genotyping/QC/MetricScatterplots.pm index 311ab4a5c..24e8fe1ad 100644 --- a/src/perl/lib/WTSI/NPG/Genotyping/QC/MetricScatterplots.pm +++ b/src/perl/lib/WTSI/NPG/Genotyping/QC/MetricScatterplots.pm @@ -9,7 +9,7 @@ use File::Temp qw(tempdir); use POSIX qw(ceil); use WTSI::NPG::Genotyping::QC::QCPlotShared qw(defaultJsonConfig getPlateLocationsFromPath meanSd readMetricResultHash readQCMetricInputs - readThresholds plateLabel); + readQCNameArray readThresholds plateLabel); use WTSI::NPG::Genotyping::QC::QCPlotTests qw(wrapCommand wrapPlotCommand); use Exporter; @@ -99,6 +99,38 @@ sub metricMeanSd { else { return meanSd(@values); } } +sub metricNames { + # arguments: paths to JSON results and config files + # find metrics in use for the given result set & check consistency + my ($resultsPath, $configPath) = @_; + my @allNames = readQCNameArray($configPath); # ensure consistent order + my %resultNames; + my %results = readMetricResultHash($resultsPath, $configPath); + my @samples = keys %results; + # arbitrarily choose a sample name to populate metric list + my $chosen = shift @samples; + foreach my $name (keys %{$results{$chosen}}) { + $resultNames{$name} = 1; + } + # now check other samples have the same set of metrics + foreach my $sample (keys %results) { + if ($sample eq $chosen) { next; } + my @sampleMetrics = keys %{$results{$sample}}; + foreach my $name (@sampleMetrics) { + if (! defined $resultNames{$name}) { + croak("Inconsistent metric names for samples '", $sample, + "' and '", $chosen, "'"); + } + } + } + # keep members of the default name list which appear in the results + my @names; + foreach my $name (@allNames) { + if ($resultNames{$name}) { push @names, $name; } + } + return @names; +} + sub metricStatus { # did sample pass wrt all metrics other than the target? # code to record pass/fail status wrt this and other metrics @@ -145,7 +177,7 @@ sub readThresholdsForMetric { if ($words[0] eq 'M_max') { $thresh1 = $words[1]; } elsif ($words[0] eq 'F_min') { $thresh2 = $words[1]; } } - close $in || croak "Cannot close gender file $gender"; + close $in || croak "Cannot close gender file $gender"; } else { my %thresh = readThresholds($config); $thresh1 = $thresh{$metric}; @@ -276,9 +308,8 @@ sub runMetric { sub runAllMetrics { my ($qcDir, $outDir, $config, $gender, $dbPath, $iniPath, $resultPath, - $maxBatch, $noIntensity) = @_; - my @metrics = qw(call_rate duplicate heterozygosity identity gender); - if (!$noIntensity) { push(@metrics, qw/magnitude xydiff/); } + $maxBatch) = @_; + my @metrics = metricNames($resultPath, $config); foreach my $metric (@metrics) { runMetric($metric, $qcDir, $outDir, $config, $gender, $dbPath, $iniPath, $resultPath, $maxBatch); diff --git a/src/perl/lib/WTSI/NPG/Genotyping/QC/Reports.pm b/src/perl/lib/WTSI/NPG/Genotyping/QC/Reports.pm index 8c8e4ac56..e8a3216e5 100644 --- a/src/perl/lib/WTSI/NPG/Genotyping/QC/Reports.pm +++ b/src/perl/lib/WTSI/NPG/Genotyping/QC/Reports.pm @@ -32,9 +32,9 @@ our @METRIC_NAMES = qw/identity duplicate gender call_rate heterozygosity sub createReports { # 'main' method to write text and PDF files - my ($texPath, $resultPath, $idPath, $config, $dbPath, $genderThresholdPath, $qcDir, $introPath, $qcName, $title, $author) = @_; + my ($texPath, $resultPath, $config, $dbPath, $genderThresholdPath, $qcDir, $introPath, $qcName, $title, $author) = @_; $qcName ||= qcNameFromPath($qcDir); - writeSummaryLatex($texPath, $resultPath, $idPath, $config, $dbPath, + writeSummaryLatex($texPath, $resultPath, $config, $dbPath, $genderThresholdPath, $qcDir, $introPath, $qcName, $title, $author); my $pdfOK = texToPdf($texPath); @@ -121,7 +121,8 @@ sub latexFooter { sub latexHeader { my ($title, $author) = @_; my $date = strftime("%Y-%m-%d %H:%M", localtime(time())); - # formerly used graphicx, but all plots are now pdf + # formerly used graphicx, but all plots are now PDF + # hyperref package enables hyperlinks in PDF output my $header = '\documentclass{article} \title{'.$title.'} \author{'.$author.'} @@ -129,6 +130,8 @@ sub latexHeader { \usepackage{pdfpages} +\usepackage{hyperref} + \renewcommand{\familydefault}{\sfdefault} % sans serif font \begin{document} @@ -176,13 +179,12 @@ sub latexResultNotes { } sub latexSectionResults { - my ($config, $qcDir, $resultPath, $identityPath) = @_; + my ($config, $qcDir, $resultPath) = @_; my @lines = (); push @lines, "\\section{Results}\n\n"; - push @lines, textForIdentity($identityPath); push @lines, "\\subsection{Tables}\n\n"; my @titles = ("Pass/fail summary", - "Key to metric abbreviations", + "Key to metric abbreviations", "Total samples passing filters", "Sample pass rates"); my @refs = textForPlates($resultPath, $config); @@ -190,12 +192,12 @@ sub latexSectionResults { my @centre = (0,0,1,1); for (my $i=0;$i<@refs;$i++) { push @lines, "\\subsubsection*{".$titles[$i]."}\n"; - foreach my $table (latexTables($refs[$i], $headers[$i], $centre[$i])) { - push @lines, $table."\n"; + foreach my $table (latexTables($refs[$i], $headers[$i], $centre[$i])) { + push @lines, $table."\n"; } if ($i>0) { push @lines, "\\clearpage\n\n"; # flush table buffer to output - push @lines, "\\pagebreak\n\n"; + push @lines, "\\pagebreak\n\n"; } } push @lines, latexResultNotes(); @@ -366,22 +368,6 @@ sub textForDatasets { return @text; } -sub textForIdentity { - # text for subsection to describe status of identity metric - my $idResultsPath = shift; - my %results = %{readJson($idResultsPath)}; - my $idCheck = $results{'identity_check_run'}; # was identity check run? - my $minSnps = $results{'min_snps'}; - my $commonSnps = $results{'common_snps'}; # Illumina/Sequenom shared SNPs - my $text = "\\subsection{Identity Metric}\n\n\\begin{itemize}\n \\item Minimum number of SNPs for identity check = $minSnps\n\\item Common SNPs between input and QC plex = $commonSnps\n"; - if ($idCheck) { - $text.= "\\item Identity check run successfully.\n\\end{itemize}\n\n"; - } else { - $text.= "\\item \\textbf{Identity check omitted.} All samples pass with respect to identity; scatterplot not created.\n\\end{itemize}\n\n"; - } - return $text; -} - sub textForMetrics { # text for metric threshold/description table my ($jsonPath, $mMax, $fMin) = @_; @@ -520,7 +506,7 @@ sub texToPdf { sub writeSummaryLatex { # write .tex file for report - my ($texPath, $resultPath, $idPath, $config, $dbPath, $genderThresholdPath, + my ($texPath, $resultPath, $config, $dbPath, $genderThresholdPath, $qcDir, $introPath, $qcName, $title, $author) = @_; $texPath ||= "pipeline_summary.tex"; $title ||= "Genotyping QC Report"; @@ -534,7 +520,7 @@ sub writeSummaryLatex { print $out latexSectionInput($qcName, $dbPath); print $out read_file($introPath); # new section = Preface print $out latexSectionMetrics($config, $genderThresholdPath); - print $out latexSectionResults($config, $qcDir, $resultPath, $idPath); + print $out latexSectionResults($config, $qcDir, $resultPath); print $out latexFooter(); close $out || croak "Cannot close output path $texPath"; } diff --git a/src/perl/lib/WTSI/NPG/Genotyping/SNPSet.pm b/src/perl/lib/WTSI/NPG/Genotyping/SNPSet.pm index 16fd1701d..346dd5f84 100644 --- a/src/perl/lib/WTSI/NPG/Genotyping/SNPSet.pm +++ b/src/perl/lib/WTSI/NPG/Genotyping/SNPSet.pm @@ -291,6 +291,7 @@ sub write_snpset_data { my $records_written = 0; my $csv = Text::CSV->new({eol => "\n", sep_char => "\t", + binary => 1, allow_whitespace => undef, quote_char => undef}); $csv->column_names($self->column_names); @@ -373,6 +374,7 @@ sub _parse_snps { my $csv = Text::CSV->new({eol => "\n", sep_char => "\t", + binary => 1, allow_whitespace => undef, quote_char => undef}); diff --git a/src/perl/lib/WTSI/NPG/Genotyping/Sequenom/AssayResultSet.pm b/src/perl/lib/WTSI/NPG/Genotyping/Sequenom/AssayResultSet.pm index 94f78dab6..e35f950a8 100644 --- a/src/perl/lib/WTSI/NPG/Genotyping/Sequenom/AssayResultSet.pm +++ b/src/perl/lib/WTSI/NPG/Genotyping/Sequenom/AssayResultSet.pm @@ -173,6 +173,7 @@ sub _parse_assay_results { my $csv = Text::CSV->new({eol => "\n", sep_char => "\t", + binary => 1, allow_whitespace => undef, quote_char => undef}); diff --git a/src/perl/lib/WTSI/NPG/Genotyping/Sequenom/Publisher.pm b/src/perl/lib/WTSI/NPG/Genotyping/Sequenom/Publisher.pm index b7e693d03..73853553e 100644 --- a/src/perl/lib/WTSI/NPG/Genotyping/Sequenom/Publisher.pm +++ b/src/perl/lib/WTSI/NPG/Genotyping/Sequenom/Publisher.pm @@ -209,6 +209,7 @@ sub _write_sequenom_csv_file { my $csv = Text::CSV->new({eol => "\n", sep_char => "\t", + binary => 1, allow_whitespace => undef, quote_char => undef}); $csv->column_names(\@header); diff --git a/src/perl/lib/WTSI/NPG/Genotyping/VCF/Parser.pm b/src/perl/lib/WTSI/NPG/Genotyping/VCF/Parser.pm index 030ca3111..f8b9948f0 100644 --- a/src/perl/lib/WTSI/NPG/Genotyping/VCF/Parser.pm +++ b/src/perl/lib/WTSI/NPG/Genotyping/VCF/Parser.pm @@ -11,7 +11,10 @@ with 'WTSI::DNAP::Utilities::Loggable'; has 'csv' => (is => 'ro', isa => 'Text::CSV', - default => sub { return Text::CSV->new({sep_char => "\t"}); }, + default => sub { + return Text::CSV->new({sep_char => "\t", + binary => 1 }); + }, documentation => 'Object to parse tab-delimited input lines' ); diff --git a/src/perl/lib/WTSI/NPG/Publisher.pm b/src/perl/lib/WTSI/NPG/Publisher.pm index fc0995bcb..641e5191a 100644 --- a/src/perl/lib/WTSI/NPG/Publisher.pm +++ b/src/perl/lib/WTSI/NPG/Publisher.pm @@ -91,10 +91,10 @@ sub publish_file { if (@existing) { my $existing_obj = WTSI::NPG::iRODS::DataObject->new($irods, $existing[0]); - $self->warn("While publishing '", $target_obj->str, "' identified by ", - $meta_str, " found existing sample data: '", - $existing_obj->str, "' identified by ", - $existing_obj->meta_str); + $self->debug("While publishing '", $target_obj->str, "' identified by ", + $meta_str, " found existing sample data: '", + $existing_obj->str, "' identified by ", + $existing_obj->meta_str); # Tidy existing file checksum before proceeding $self->_ensure_checksum($existing_obj); @@ -107,11 +107,12 @@ sub publish_file { if ($md5 eq $existing_md5) { $self->info("Skipping publication of '", $target_obj->str, "' because existing object '", $existing_obj->str, - "' exists with the same checksum"); + "' exists with the same checksum '", $md5, "'"); } else { $self->info("Republishing '", $existing_obj->str, "' in situ ", - "because the checksum is changed"); + "because the checksum is changed from ", + "'$existing_md5' to '$md5'"); $irods->replace_object($file, $existing_obj->str); foreach my $avu ($target_obj->find_in_metadata('md5')) { @@ -127,16 +128,17 @@ sub publish_file { if ($md5 eq $existing_md5) { $self->info("Moving existing object '", $existing_obj->str, "' to new location '", $target_obj->str, - "' without changing its content because the checksum ", - "is unchanged"); + "' without changing its content because the checksum '", + $md5, "' is unchanged"); # The following moves any metadata too $irods->move_object($existing_obj->str, $target_obj->str); } else { - $self->info("Moving '", $existing_obj->str, ' to ', + $self->info("Moving existing object '", $existing_obj->str, + "' to new location '", $target_obj->str, "' and republishing over it ", "because the checksum is changed from ", - "'$existing_md5' to '$md5'"); + "'", $existing_md5, "' to '", $md5, "'"); # The following moves any metadata too $irods->move_object($existing_obj->str, $target_obj->str); @@ -154,7 +156,17 @@ sub publish_file { } else { $self->info("Publishing new object '$target'"); - $irods->add_object($file, $target_obj->str); + + # This used to use just 'add_object' in order to trigger an error + # if an aun-annotated file were already there. However, a file may + # be present due to iRODS failures, which triggers an unnecessary + # error. Now we use 'replace_object', which forces an overwrite. + if ($target_obj->is_present) { + $irods->replace_object($file, $target_obj->str); + } + else { + $irods->add_object($file, $target_obj->str); + } my $creator_uri = $self->affiliation_uri; my $publisher_uri = $self->accountee_uri; diff --git a/src/perl/lib/WTSI/NPG/Utilities.pm b/src/perl/lib/WTSI/NPG/Utilities.pm index 5c6e3c0d9..cd0e6cfeb 100644 --- a/src/perl/lib/WTSI/NPG/Utilities.pm +++ b/src/perl/lib/WTSI/NPG/Utilities.pm @@ -10,13 +10,11 @@ use File::Find; use File::stat; use Log::Log4perl; +use WTSI::DNAP::Utilities::Runnable; + use base 'Exporter'; -our @EXPORT_OK = qw(collect_dirs - collect_files - common_stem - make_collector +our @EXPORT_OK = qw(common_stem md5sum - modified_between trim depad_well user_session_log); @@ -148,153 +146,6 @@ sub user_session_log { $session_name, $uid, $now->strftime("%F")); } -=head2 collect_files - - Arg [1] : Root directory - Arg [2] : coderef of a function that accepts a single argument and - returns true if that object is to be collected. - Arg [3] : Maximum depth to search below the starting directory. - Optional (undef for unlimited depth). - Arg [4] : A file matching regex that is applied in addition to to - the test. Optional. - - Example : @files = collect_files('/home', $modified, 3, qr/.txt$/i) - Description: Returns an array of file names present under the specified - root, for which the test predicate returns true, up to the - specified depth. - Returntype : array of strings (file names) - -=cut - -sub collect_files { - my ($root, $test, $depth, $regex) = @_; - - $root eq '' and croak 'A non-empty root argument is required'; - - my @files; - my $collector = make_collector($test, \@files); - - my $start_depth = $root =~ tr[/][]; - my $stop_depth; - if (defined $depth) { - $stop_depth = $start_depth + $depth; - } - - find({preprocess => sub { - my $current_depth = $File::Find::dir =~ tr[/][]; - - my @elts; - if (!defined $stop_depth || $current_depth < $stop_depth) { - # Remove any dirs except . and .. - @elts = grep { ! /^[.]+$/msx } @_; - } - - return @elts; - }, - wanted => sub { - my $current_depth = $File::Find::dir =~ tr[/][]; - - if (!defined $stop_depth || $current_depth < $stop_depth) { - if (-f) { - if ($regex) { - $collector->($File::Find::name) if $_ =~ $regex; - } - else { - $collector->($File::Find::name) - } - } - } - } - }, $root); - - return @files; -} - -=head2 collect_dirs - - Arg [1] : Root directory - Arg [2] : coderef of a function that accepts a single argument and - returns true if that object is to be collected. - Arg [3] : Maximum depth to search below the starting directory. - Arg [4] : A file matching regex that is applied in addition to to - the test. Optional. - - Example : @dirs = collect_dirs('/home', $modified, 2) - Description: Return an array of directory names present under the specified - root, for which the test predicate returns true, up to the - specified depth. - Returntype : array of strings (dir names) - -=cut - -sub collect_dirs { - my ($root, $test, $depth, $regex) = @_; - - $root eq '' and croak 'A non-empty root argument is required'; - - my @dirs; - my $collector = make_collector($test, \@dirs); - - my $start_depth = $root =~ tr[/][]; - my $stop_depth; - if (defined $depth) { - $stop_depth = $start_depth + $depth; - } - - find({preprocess => sub { - my $current_depth = $File::Find::name =~ tr[/][]; - - my @dirs; - if (!defined $stop_depth || $current_depth < $stop_depth) { - @dirs = grep { -d && ! /^[.]+$/msx } @_; - } - - return @dirs; - }, - wanted => sub { - my $current_depth = $File::Find::name =~ tr[/][]; - - if (!defined $stop_depth || $current_depth < $stop_depth) { - if ($regex) { - $collector->($File::Find::name) if $_ =~ $regex; - } - else { - $collector->($File::Find::name); - } - } - } - }, $root); - - return @dirs; -} - -=head2 make_collector - - Arg [1] : coderef of a function that accepts a single argument and - returns true if that object is to be collected. - Arg [2] : arrayref of an array into which matched object will be pushed - if the test returns true. - - Example : $collector = make_collector(sub { ... }, \@found); - Description: Returns a function that will push matched objects onto a - specified array. - Returntype : coderef - -=cut - -sub make_collector { - my ($test, $listref) = @_; - - return sub { - my ($arg) = @_; - - my $collect = $test->($arg); - push(@{$listref}, $arg) if $collect; - - return $collect; - } -} - =head2 md5sum Arg [1] : string path to a file @@ -321,49 +172,17 @@ sub md5sum { return $md5; } -=head2 modified_between - - Arg [1] : time in seconds since the epoch - Arg [2] : time in seconds since the epoch - - Example : $test = modified_between($start_time, $end_time) - Description: Return a function that accepts a single argument (a - file name string) and returns true if that file has - last been modified between the two specified times in - seconds (inclusive). - Returntype : coderef - -=cut - -sub modified_between { - my ($start, $finish) = @_; - - return sub { - my ($file) = @_; - - my $stat = stat($file); - unless (defined $stat) { - my $wd = `pwd`; - croak "Failed to stat file '$file' in $wd: $!"; - } - - my $mtime = $stat->mtime; - - return ($start <= $mtime) && ($mtime <= $finish); - } -} - 1; __END__ =head1 AUTHOR -Keith James +Keith James , Iain Bancarz =head1 COPYRIGHT AND DISCLAIMER -Copyright (C) 2012, 2015 Genome Research Limited. All Rights Reserved. +Copyright (C) 2012, 2015, 2016 Genome Research Limited. All Rights Reserved. This program is free software: you can redistribute it and/or modify it under the terms of the Perl Artistic License or the GNU General diff --git a/src/perl/lib/WTSI/NPG/Utilities/Archivable.pm b/src/perl/lib/WTSI/NPG/Utilities/Archivable.pm new file mode 100644 index 000000000..8625e0564 --- /dev/null +++ b/src/perl/lib/WTSI/NPG/Utilities/Archivable.pm @@ -0,0 +1,281 @@ +use utf8; + +package WTSI::NPG::Utilities::Archivable; + +use Cwd qw/abs_path cwd/; +use DateTime; +use File::Basename qw/fileparse/; +use File::Find; +use File::Spec qw/catfile/; +use WTSI::DNAP::Utilities::Runnable; +use WTSI::NPG::Utilities::Collector; + +use Moose::Role; + +with qw/WTSI::DNAP::Utilities::Loggable/; + +has 'days_ago' => ( + is => 'ro', + isa => 'Int', + documentation => 'Minimum time, in days, since last modification '. + 'for directory to be archived', + default => 90, + ); + +has 'dir_regex' => + (is => 'ro', + isa => 'RegexpRef', + required => 1, + documentation => 'Regexp to identify directory names (not paths) for '. + 'possible archiving.', + ); + +has 'output_dir' => ( + is => 'ro', + isa => 'Str', + documentation => 'Directory for .tar.gz archive files', + default => sub { cwd() }, + ); + +has 'output_prefix' => ( + is => 'ro', + isa => 'Str', + documentation => 'Prefix for .tar.gz archive filenames, eg. "fluidigm_"', + required => 1, + ); + +has 'pigz_processes' => ( + is => 'ro', + isa => 'Int', + documentation => 'Number of processes to use for pigz compression', + default => 4, + ); + +has 'target_dir' => ( + is => 'ro', + isa => 'Str', + documentation => 'Root directory to search for input files', + default => sub { cwd() }, + ); + +has 'remove' => ( + is => 'ro', + isa => 'Bool', + documentation => 'If true, remove input files after adding to an archive', + default => 1, + ); + +has 'collector' => ( + is => 'ro', + isa => 'WTSI::NPG::Utilities::Collector', + documentation => 'Utility object to collect target files', + lazy => 1, + builder => '_build_collector', + init_arg => undef, +); + +our $VERSION = ''; + +sub BUILD { + my ($self) = @_; + if (! -e $self->output_dir) { + $self->logcroak("Output directory path '", $self->output_dir, + "' does not exist"); + } elsif (! -d $self->output_dir) { + $self->logcroak("Output directory path '", $self->output_dir, + "' is not a directory"); + } + + if (! -e $self->target_dir) { + $self->logcroak("Target directory path '", $self->target_dir, + "' does not exist"); + } elsif (! -d $self->target_dir) { + $self->logcroak("Target directory path '", $self->target_dir, + "' is not a directory"); + } +} + +sub _build_collector { + my ($self) = @_; + my $collector = WTSI::NPG::Utilities::Collector->new( + root => abs_path($self->target_dir), + depth => 2, + regex => $self->dir_regex, + ); + return $collector; +} + + +=head2 add_to_archives + + Arg [1] : [ArrayRef] One or more file or directory paths to be archived + Arg [2] : [Bool] Dry-run status. If true, log archive files which would + be used, but do not actually archive any files. Optional, + defaults to False. + + Example : add_to_archives($files, $dry_run); + Description: Add the given list of files to monthly .tar.gz archives + with names of the form [prefix]_yyy-mm, creating the + archives if necessary. + + Returntype : [Array] Paths to archive files + +=cut + +sub add_to_archives { + my ($self, $inputs, $dry_run) = @_; + my %inputs_by_archive; # hash of arrays of input paths + foreach my $input (@{$inputs}) { + my $mtime = $self->collector->stat_mtime($input); + my $archive_name = $self->monthly_archive_filename($mtime); + my $archive_path = File::Spec->catfile + ($self->output_dir, $archive_name); + push @{$inputs_by_archive{$archive_path}}, $input; + } + my @archives = sort(keys(%inputs_by_archive)); + $self->info("Archive files to be written: ", join(", ", @archives)); + foreach my $archive (@archives) { + my $total = scalar(@{$inputs_by_archive{$archive}}); + if ($dry_run) { + $self->info("Dry-run mode: ", $total, + " inputs for archive path ", $archive); + } else { + $self->info("Adding ", $total, " input(s) to archive path ", + $archive); + $self->_add_to_archive($inputs_by_archive{$archive}, $archive); + } + } + return @archives; +} + + +=head2 find_directories_to_archive + + Args : None + + Example : $dirs = $archiver->find_directories_to_archive() + Description: Return an Array containing directories which are candidates + for archiving. + Returntype : Array[Str] + +=cut + +sub find_directories_to_archive { + my ($self) = @_; + my $now = DateTime->now; + my $threshold = DateTime->from_epoch + (epoch => $now->epoch)->subtract(days => $self->days_ago); + my $t = $threshold->epoch; + return $self->collector->collect_dirs_last_modified_before($t); +} + + +=head2 monthly_archive_filename + + Arg [1] : last modification time of a file, in seconds since the epoch + + Example : $name = $archiver->month_archive_filename($time) + Description: Get the name of a .tar.gz file, of the form + [prefix]_[date].tar.gz, where [date] is of the form yyyy-mm. + Example: fluidigm_2015-08.tar.gz + Returntype : Str + +=cut + +sub monthly_archive_filename { + + my ($self, $epoch_time) = @_; + my $mod_time = DateTime->from_epoch(epoch => $epoch_time); + my $filename = sprintf("%s_%d-%02d.tar.gz", + $self->output_prefix, + $mod_time->year, + $mod_time->month + ); + return $filename; +} + + +sub _add_to_archive { + # This method does not use Perl's Archive::Tar package. This is because + # Archive::Tar reads the entire tarfile into memory, so is not + # appropriate for large archive files. + my ($self, $target_files, $archive_path) = @_; + if (-e $archive_path) { + # limitation of tar: cannot append to compressed files + # instead, need to uncompress, append, and recompress + # use pigz instead of gzip for greater speed + $self->debug("Archive file '", $archive_path, "' already exists"); + WTSI::DNAP::Utilities::Runnable->new( + executable => 'pigz', + arguments => ['-p', $self->pigz_processes, '-d', $archive_path], + )->run(); + my ($uncompressed_name, $dirs, $suffix) = fileparse + ($archive_path, qr/[.][^.]*/msx); + my $uncompressed_path = $dirs.$uncompressed_name; + my @args = ('-uf', $uncompressed_path); + if ($self->remove) { + $self->debug(scalar @{$target_files}, + " target files will be removed after archiving"); + unshift @args, '--remove-files'; + } + push(@args, @{$target_files}); + WTSI::DNAP::Utilities::Runnable->new( + executable => 'tar', + arguments => \@args, + )->run(); + WTSI::DNAP::Utilities::Runnable->new( + executable => 'pigz', + arguments => ['-p', $self->pigz_processes, $uncompressed_path], + )->run(); + $self->debug("Appended to archive file, '", $archive_path, "'"); + } else { + my @args = ('-czf', $archive_path); + if ($self->remove) { + $self->debug(scalar @{$target_files}, + " target files will be removed after archiving"); + unshift @args, '--remove-files'; + } + push(@args, @{$target_files}); + WTSI::DNAP::Utilities::Runnable->new( + executable => 'tar', + arguments => \@args, + )->run(); + $self->debug("Created new archive file '", $archive_path, "'"); + } + return $archive_path; +} + +no Moose; + +1; + +__END__ + +=head1 NAME + +WTSI::NPG::Utilities::Archiver + +=head1 DESCRIPTION + +Role to find candidate files/directories for archiving, and store them +in gzipped tar files. + +=head1 AUTHOR + +Iain Bancarz + +=head1 COPYRIGHT AND DISCLAIMER + +Copyright (C) 2016 Genome Research Limited. All Rights Reserved. + +This program is free software: you can redistribute it and/or modify +it under the terms of the Perl Artistic License or the GNU General +Public License as published by the Free Software Foundation, either +version 3 of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +=cut diff --git a/src/perl/lib/WTSI/NPG/Utilities/Collector.pm b/src/perl/lib/WTSI/NPG/Utilities/Collector.pm new file mode 100644 index 000000000..f9753d5c8 --- /dev/null +++ b/src/perl/lib/WTSI/NPG/Utilities/Collector.pm @@ -0,0 +1,372 @@ +use utf8; + +package WTSI::NPG::Utilities::Collector; + +use DateTime; +use File::Find; +use File::stat; + +use Moose; + +our $VERSION = ''; + +with qw/WTSI::DNAP::Utilities::Loggable/; + +has 'root' => + (is => 'ro', + isa => 'Str', + documentation => "Root path in which to begin file/directory search", + required => 1); + +has 'depth' => + (is => 'ro', + isa => 'Maybe[Int]', + documentation => "Maximum depth of search", + default => sub { undef; } ); + +has 'regex' => + (is => 'ro', + isa => 'Maybe[RegexpRef]', + lazy => 1, + documentation => "Regular expression to filter files/directories", + default => sub { undef; } ); + +has 'start_depth' => + (is => 'ro', + isa => 'Int', + documentation => "Starting depth of search", + lazy => 1, + builder => '_build_start_depth', + init_arg => undef); + +has 'stop_depth' => + (is => 'ro', + isa => 'Maybe[Int]', + lazy => 1, + documentation => "Starting depth of search", + builder => '_build_stop_depth', + init_arg => undef); + +sub BUILD { + + my ($self) = @_; + if ($self->root eq '') { + $self->logcroak('A non-empty root argument is required'); + } elsif (! -d $self->root) { + $self->logcroak("Root argument '", $self->root, "' is not a directory"); + } else { + $self->debug("Root for filesystem search: '", $self->root, "'"); + } +} + +sub _build_start_depth { + my ($self) = @_; + my $start_depth = $self->root =~ tr[/][]; + $self->debug("Start depth for filesystem search is ", $start_depth); + return $start_depth; +} + +sub _build_stop_depth { + my ($self) = @_; + my $stop_depth; + if (defined $self->depth) { + $stop_depth = $self->start_depth + $self->depth; + $self->debug("Stop depth for filesystem search is ", $stop_depth); + } else { + $self->debug("Stop depth not defined, searching entire directory tree."); + } + return $stop_depth; +} + +=head2 collect_dirs + + Arg [1] : coderef of a function that accepts a single argument and + returns true if that object is to be collected. + + Example : @dirs = $collector->collect_dirs($modified) + Description: Return an array of directory names present for which the test + predicate returns true. + Returntype : array of strings (dir names) + +=cut + +sub collect_dirs { + my ($self, $test) = @_; + my @dirs; + my $collector = $self->make_collector_function($test, \@dirs); + + find({preprocess => sub { + my $current_depth = $File::Find::name =~ tr[/][]; + + my @dirs; + if (!defined $self->stop_depth || + $current_depth < $self->stop_depth) { + @dirs = grep { -d && ! /^[.]+$/msx } @_; + } + + return @dirs; + }, + wanted => sub { + my $current_depth = $File::Find::name =~ tr[/][]; + + if (!defined $self->stop_depth || + $current_depth < $self->stop_depth) { + if ($self->regex) { + $collector->($File::Find::name) if $_ =~ $self->regex; + } + else { + $collector->($File::Find::name); + } + } + } + }, $self->root); + + return @dirs; +} + + +=head2 collect_dirs_last_modified_before + + Arg [1] : Finish time, in seconds since the epoch + + Example : @dirs = $c->collect_dirs_last_modified_before($finish) + Description: Return an array of directory names present under the specified + root, for which the test predicate returns true, up to the + specified depth. + Returntype : array of strings (dir names) + +=cut + +sub collect_dirs_last_modified_before { + my ($self, $finish) = @_; + return $self->collect_dirs($self->last_modified_before($finish)); +} + + +=head2 collect_dirs_modified_between + + Arg [1] : Start time, in seconds since the epoch + Arg [2] : Finish time, in seconds since the epoch + + Example : @dirs = $c->collect_dirs_modified_between($start, $finish) + Description: Return an array of directory names present under the specified + root, for which the test predicate returns true, up to the + specified depth. + Returntype : array of strings (dir names) + +=cut + +sub collect_dirs_modified_between { + my ($self, $start, $finish) = @_; + my $test = $self->modified_between($start, $finish); + return $self->collect_dirs($test); +} + +=head2 collect_files + + Arg [1] : coderef of a function that accepts a single argument and + returns true if that object is to be collected. + + Example : @files = $collector->collect_files($modified) + Description: Returns an array of file names present, for which the test + predicate returns true. + Returntype : array of strings (file names) + +=cut + +sub collect_files { + my ($self, $test) = @_; + my @files; + my $collector = $self->make_collector_function($test, \@files); + + find({preprocess => sub { + my $current_depth = $File::Find::dir =~ tr[/][]; + + my @elts; + if (!defined $self->stop_depth || + $current_depth < $self->stop_depth) { + # Remove any dirs except . and .. + @elts = grep { ! /^[.]+$/msx } @_; + } + + return @elts; + }, + wanted => sub { + my $current_depth = $File::Find::dir =~ tr[/][]; + + if (!defined $self->stop_depth || + $current_depth < $self->stop_depth) { + if (-f) { + if ($self->regex) { + $collector->($File::Find::name) if $_ =~ $self->regex; + } + else { + $collector->($File::Find::name) + } + } + } + } + }, $self->root); + + return @files; +} + +=head2 collect_files_simple + + Args : None + Example : @files = $collector->collect_files_simple() + Description: Collect files, restricted only by the 'regex' and 'depth' + attributes (if any). No other tests are applied. + Returntype : array of strings (dir names) + +=cut + +sub collect_files_simple { + my ($self) = @_; + my $test = sub { return 1 }; + + return $self->collect_files(sub {return 1;}); +} + +=head2 make_collector_function + + Arg [1] : coderef of a function that accepts a single argument and + returns true if that object is to be collected. + Arg [2] : arrayref of an array into which matched object will be pushed + if the test returns true. + + Example : $coll_fun = make_collector_function(sub { ... }, \@found); + Description: Returns a function that will push matched objects onto a + specified array. + Returntype : coderef + +=cut + +sub make_collector_function { + my ($self, $test, $listref) = @_; + + return sub { + my ($arg) = @_; + + my $collect = $test->($arg); + if ($collect) { + push(@{$listref}, $arg); + $self->debug("Added '$arg' to array of filesystem objects"); + } + return $collect; + } +} + +=head2 modified_between + + Arg [1] : time in seconds since the epoch + Arg [2] : time in seconds since the epoch + + Example : $test = $collector->modified_between($start_time, $end_time) + Description: Return a function that accepts a single argument (a + file name string) and returns true if that file has + last been modified between the two specified times in + seconds (inclusive). + + Return value can be used as the $test argument to + make_collector_function(). + Returntype : coderef + +=cut + +sub modified_between { + my ($self, $start, $finish) = @_; + + return sub { + my ($file) = @_; + my $mtime = $self->stat_mtime($file); + return ($start <= $mtime) && ($mtime <= $finish); + } +} + + +=head2 last_modified_before + + Arg [1] : time in seconds since the epoch + + Example : $test = $collector->last_modified_before($time) + Description: Return a function that accepts a single argument (a + file name string) and returns true if that file was + last modified before (ie. is older than) the specified + time in seconds. + + Return value can be used as the $test argument to + make_collector_function(). + Returntype : coderef + +=cut + +sub last_modified_before { + my ($self, $threshold) = @_; + + return sub { + my ($file) = @_; + my $mtime = $self->stat_mtime($file); + return $mtime <= $threshold; + } +} + +=head2 stat_mtime + + Arg [1] : file path + + Example : $time = $collector->stat_mtime($file); + Description: Safely stat the given file and return its mtime. + Returntype : Int + +=cut + +sub stat_mtime { + my ($self, $file) = @_; + my $stat = stat($file); + unless (defined $stat) { + my $wd = `pwd`; + $self->logcroak("Failed to stat file '$file' in $wd: $!"); + } + my $mtime = $stat->mtime; + return $mtime; +} + + +no Moose; + +1; + + + +__END__ + +=head1 NAME + +WTSI::NPG::Utilities::Collector + +=head1 DESCRIPTION + +Utility class to evaluate whether files and directories meet given criteria, +and search a filesystem tree for matching entries. Acts as a wrapper for +the Perl File::Find module. + +=head1 AUTHOR + +Iain Bancarz + +=head1 COPYRIGHT AND DISCLAIMER + +Copyright (C) 2016 Genome Research Limited. All Rights Reserved. + +This program is free software: you can redistribute it and/or modify +it under the terms of the Perl Artistic License or the GNU General +Public License as published by the Free Software Foundation, either +version 3 of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +=cut diff --git a/src/perl/t/WTSI/NPG/ArchivableTest.pm b/src/perl/t/WTSI/NPG/ArchivableTest.pm new file mode 100644 index 000000000..ced3952f2 --- /dev/null +++ b/src/perl/t/WTSI/NPG/ArchivableTest.pm @@ -0,0 +1,141 @@ +use utf8; + +package WTSI::NPG::ArchivableTest; + +use strict; +use warnings; + +use base qw(WTSI::NPG::Test); +use Archive::Tar; +use Cwd qw(abs_path); +use DateTime; +use File::Spec; +use File::Temp qw(tempdir); +use Test::More tests => 12; +use Test::Exception; + +{ + package WTSI::NPG::Utilities::TestArchiver; + + use Moose; + + with 'WTSI::NPG::Utilities::Archivable'; + + has 'dir_regex' => + (is => 'ro', + isa => 'RegexpRef', + default => sub { return qr/^\d{5}$/msx; } + ); + + has 'output_prefix' => ( + is => 'ro', + isa => 'Str', + default => 'test', + ); + + __PACKAGE__->meta->make_immutable; + + no Moose; + + 1; +} + +use Log::Log4perl; +Log::Log4perl::init('./etc/log4perl_tests.conf'); +our $log = Log::Log4perl->get_logger(); + +BEGIN { use_ok('WTSI::NPG::Utilities::TestArchiver'); } + +my $tempdir; +my $data_path = './t/archiver'; +my $output_prefix = 'test'; + +sub make_fixture : Test(setup) { + $tempdir = tempdir( "ArchivableTest_XXXXXX", CLEANUP => 1); + $tempdir = abs_path($tempdir); + my @dirnames = qw/12345 13579 24680 1234567890/; + foreach my $name (@dirnames) { + my $dirpath = File::Spec->catfile($tempdir, $name); + mkdir($dirpath); + `cp $data_path/lorem.txt $dirpath`; + if ($name eq '12345' || $name eq '13579' || $name eq '1234567890') { + `touch $dirpath -d 2000-01-01`; # change modification time + `touch $dirpath/lorem.txt -d 2000-01-01`; + } + } +} + +sub add_to_archives : Test(8) { + my $archiver = WTSI::NPG::Utilities::TestArchiver->new( + output_dir => $tempdir, + ); + my @files = ( File::Spec->catfile($tempdir, '12345', 'lorem.txt'), + File::Spec->catfile($tempdir, '13579', 'lorem.txt'), + ); + my @archive_files = $archiver->add_to_archives(\@files); + my $expected_archive = File::Spec->catfile($tempdir, + 'test_2000-01.tar.gz'); + is_deeply(\@archive_files, [$expected_archive, ], + "Archive file path matches expected value"); + my $archive_file = $archive_files[0]; + ok(-e $archive_file, "Archive file '$archive_file' exists"); + + my $tar = Archive::Tar->new(); + $tar->read($archive_file); + my @contents = $tar->list_files(); + for (my $i=0;$i<@contents;$i++) { + # tar removes the leading / from paths in its listing + is("/".$contents[$i], $files[$i], + "File ".$files[$i]." appears in archive contents"); + } + # test appending to an existing archive + my $extra_file = File::Spec->catfile($tempdir, '24680', 'lorem.txt'); + `touch -d 2000-01-01 $extra_file`; + ok($archiver->add_to_archives([$extra_file]), + 'Extra file added to archive'); + $tar->read($archive_file); + @contents = $tar->list_files(); + push(@files, $extra_file); + for (my $i=0;$i<@contents;$i++) { + # tar removes the leading / from paths in its listing + is("/".$contents[$i], $files[$i], + "File ".$files[$i]." appears in updated archive contents"); + } +} + +sub find_directories_to_archive : Test(1) { + my $archiver = WTSI::NPG::Utilities::TestArchiver->new( + output_dir => $tempdir, + target_dir => $tempdir, + days_ago => 30, + ); + my @found_dirs = $archiver->find_directories_to_archive(); + my @expected_dirs = (File::Spec->catfile($tempdir, '12345'), + File::Spec->catfile($tempdir, '13579')); + is_deeply(\@found_dirs, \@expected_dirs, + "Candidate directories for archiving match expected values"); +} + +sub monthly_archive_name : Test(1) { + my $dt = DateTime->new( + year => 2016, + month => 4, + day => 1, + ); + my $time = $dt->epoch; + my $archiver = WTSI::NPG::Utilities::TestArchiver->new( + output_dir => $tempdir, + ); + is($archiver->monthly_archive_filename($time), 'test_2016-04.tar.gz', + 'Monthly archive filename matches expected value'); + +} + +sub output_directory : Test(1) { + my $output_dir = "/dummy/nonexistent/directory"; + dies_ok { + WTSI::NPG::Utilities::TestArchiver->new(output_dir => $output_dir); + }, "Dies on nonexistent output directory"; +} + +1; diff --git a/src/perl/t/WTSI/NPG/CollectorTest.pm b/src/perl/t/WTSI/NPG/CollectorTest.pm new file mode 100644 index 000000000..625bb0d61 --- /dev/null +++ b/src/perl/t/WTSI/NPG/CollectorTest.pm @@ -0,0 +1,125 @@ +use utf8; + +package WTSI::NPG::CollectorTest; + +use strict; +use warnings; +use File::Temp qw(tempfile); + +use base qw(WTSI::NPG::Test); +use Test::More tests => 11; +use Test::Exception; + +use Log::Log4perl; + +Log::Log4perl::init('./etc/log4perl_tests.conf'); + +BEGIN { use_ok('WTSI::NPG::Utilities::Collector'); } + +use WTSI::NPG::Utilities::Collector; + +my $data_path = './t/collector'; + +sub test_collect_files : Test(4) { + + # Accept all files + my $file_test = sub { + my ($file) = @_; + return 1; + }; + + my $collect_path = "$data_path/collect_files"; + + my @depths = (1, 2, 3, undef); + my @expected = ( + [], + ["$collect_path/a/10.txt", + "$collect_path/b/20.txt", + "$collect_path/c/30.txt"], + ["$collect_path/a/10.txt", + "$collect_path/a/x/1.txt", + "$collect_path/b/20.txt", + "$collect_path/b/y/2.txt", + "$collect_path/c/30.txt", + "$collect_path/c/z/3.txt"], + ["$collect_path/a/10.txt", + "$collect_path/a/x/1.txt", + "$collect_path/b/20.txt", + "$collect_path/b/y/2.txt", + "$collect_path/c/30.txt", + "$collect_path/c/z/3.txt"] + ); + for (my $i=0;$i<@depths;$i++) { + my $collector = WTSI::NPG::Utilities::Collector->new( + root => $collect_path, + depth => $depths[$i], + ); + is_deeply([$collector->collect_files($file_test)], + $expected[$i]); + } +} + +sub test_collect_dirs : Test(5) { + + # Accept all dirs + my $dir_test = sub { + my ($dir) = @_; + return 1; + }; + + my $collect_path = "$data_path/collect_files"; + + my @depths = (1, 2, 3, undef); + my @expected = ( + ["$collect_path"], + ["$collect_path", + "$collect_path/a", + "$collect_path/b", + "$collect_path/c"], + ["$collect_path", + "$collect_path/a", + "$collect_path/a/x", + "$collect_path/b", + "$collect_path/b/y", + "$collect_path/c", + "$collect_path/c/z"], + ["$collect_path", + "$collect_path/a", + "$collect_path/a/x", + "$collect_path/b", + "$collect_path/b/y", + "$collect_path/c", + "$collect_path/c/z"] + ); + for (my $i=0;$i<@depths;$i++) { + my $collector = WTSI::NPG::Utilities::Collector->new( + root => $collect_path, + depth => $depths[$i], + ); + is_deeply([$collector->collect_dirs($dir_test)], + $expected[$i]); + } + + # collect with regex + my $collector = WTSI::NPG::Utilities::Collector->new( + root => $collect_path, + depth => 2, + regex => qr/^[ab]$/msx); + is_deeply([$collector->collect_dirs($dir_test)], + ["$collect_path/a", + "$collect_path/b"]); +} + +sub test_modified_between : Test(1) { + my $then = DateTime->now; + my ($fh, $file) = tempfile(); + my $now = DateTime->now; + my $collect_path = "$data_path/collect_files"; + + my $collector = WTSI::NPG::Utilities::Collector->new( + root => $collect_path, + ); + + my $fn = $collector->modified_between($then->epoch, $now->epoch); + ok($fn->($file)); +} diff --git a/src/perl/t/WTSI/NPG/Genotyping/Fluidigm/ArchiverTest.pm b/src/perl/t/WTSI/NPG/Genotyping/Fluidigm/ArchiverTest.pm new file mode 100644 index 000000000..81d8d8b6b --- /dev/null +++ b/src/perl/t/WTSI/NPG/Genotyping/Fluidigm/ArchiverTest.pm @@ -0,0 +1,226 @@ +use utf8; + + +{ + package WTSI::NPG::Database::WarehouseStub; + # needed for Fluidigm publisher + + use Moose; + use Carp; + + extends 'WTSI::NPG::Database'; + + has 'test_id_lims' => + (is => 'rw', + isa => 'Str', + required => 0, + default => sub { 'SQSCP' }); + + has 'test_sanger_sample_id' => + (is => 'rw', + isa => 'Str | Undef', + required => 0, + default => sub { '0123456789' }); + + sub find_fluidigm_sample_by_plate { + my ($self, $fluidigm_barcode, $well) = @_; + + $well eq 'S01' or + confess "WarehouseStub expected well argument 'S01' but got '$well'"; + + return {id_lims => $self->test_id_lims, + id_sample_lims => 123456789, + sanger_sample_id => $self->test_sanger_sample_id, + consent_withdrawn => 0, + donor_id => 'D999', + uuid => 'AAAAAAAAAABBBBBBBBBBCCCCCCCCCCDD', + name => 'sample1', + common_name => 'Homo sapiens', + supplier_name => 'aaaaaaaaaa', + accession_number => 'A0123456789', + gender => 'Female', + cohort => 'AAA111222333', + control => 'XXXYYYZZZ', + study_id => 0, + barcode_prefix => 'DN', + barcode => '0987654321', + plate_purpose_name => 'Fluidigm', + map => 'S01'}; + } +} + + +package WTSI::NPG::Genotyping::Fluidigm::ArchiverTest; + +use strict; +use warnings; + +use base qw(WTSI::NPG::Test); +use Archive::Tar; +use Cwd qw(abs_path); +use File::Temp qw(tempdir); +use Test::More tests => 15; +use Test::Exception; +use WTSI::NPG::Database::WarehouseStub; +use WTSI::NPG::iRODS; +use WTSI::NPG::Genotyping::Fluidigm::Archiver; +use WTSI::NPG::Genotyping::Fluidigm::Publisher; +use WTSI::NPG::Genotyping::Fluidigm::ResultSet; +use WTSI::NPG::iRODS::Collection; +use WTSI::NPG::iRODS::DataObject; + +use Log::Log4perl; +Log::Log4perl::init('./etc/log4perl_tests.conf'); +our $log = Log::Log4perl->get_logger(); + +BEGIN { use_ok('WTSI::NPG::Genotyping::Fluidigm::Archiver'); } + +my $data_path = './t/fluidigm_archiver'; +my $fluidigm_directory_name = "0123456789"; +my $fluidigm_directory = $data_path."/".$fluidigm_directory_name; +my $snpset_file = 'qc.tsv'; +my $tmp; +my $fluidigm_tmp; +my $resultset; +my $reference_path; +my $irods_tmp_coll; +my $pid = $$; + +sub make_fixture : Test(setup) { + # create a Fluidigm resultset and publish to temp iRODS collection + my $irods = WTSI::NPG::iRODS->new; + $irods_tmp_coll = "FluidigmPublisherTest.$pid"; + $irods->add_collection($irods_tmp_coll); + $irods->add_object("$data_path/$snpset_file", + "$irods_tmp_coll/$snpset_file"); + $reference_path = WTSI::NPG::iRODS::Collection->new + ($irods, "$irods_tmp_coll" )->absolute->str; + my $snpset_obj = WTSI::NPG::iRODS::DataObject->new + ($irods, "$irods_tmp_coll/$snpset_file" )->absolute; + $snpset_obj->add_avu('fluidigm_plex', 'qc'); + $snpset_obj->add_avu('reference_name', 'Homo_sapiens (1000Genomes)'); + my $publication_time = DateTime->now; + my $resultset = WTSI::NPG::Genotyping::Fluidigm::ResultSet->new + (directory => $fluidigm_directory); + my $inifile = File::Spec->catfile($ENV{HOME}, '.npg/genotyping.ini'); + my $whdb = WTSI::NPG::Database::WarehouseStub->new + (name => 'ml_warehouse', + inifile => $inifile, + test_id_lims => 'SQSCP'); + my $publisher = WTSI::NPG::Genotyping::Fluidigm::Publisher->new + (publication_time => $publication_time, + resultset => $resultset, + reference_path => $reference_path, + warehouse_db => $whdb); + $publisher->publish($irods_tmp_coll); + $tmp = tempdir('FluidigmArchiverTest_XXXXXX', CLEANUP => 1); + $tmp = abs_path($tmp); + $fluidigm_tmp = File::Spec->catfile($tmp, $fluidigm_directory_name); + `cp -R $fluidigm_directory $tmp`; +} + +sub teardown : Test(teardown) { + my $irods = WTSI::NPG::iRODS->new; + $irods->remove_collection($irods_tmp_coll); + undef $resultset; +} + +sub ready_to_archive : Test(3) { + my $irods = WTSI::NPG::iRODS->new; + my $archiver = WTSI::NPG::Genotyping::Fluidigm::Archiver->new + (irods_root => $irods_tmp_coll, + output_dir => $tmp, + target_dir => $tmp, + dir_regex => qr{^\d{10}$}msxi, + days_ago => 90, + ); + + # set mtime of test data to the current date/time + `find $fluidigm_tmp | xargs touch`; + my @to_archive_new = $archiver->find_directories_to_archive(); + is_deeply(\@to_archive_new, [ ], + "New directory is not OK for archiving"); + + # reset mtime to an old date/time + `find $fluidigm_tmp | xargs touch -d 2000-01-01`; + my @to_archive_old = $archiver->find_directories_to_archive(); + is_deeply(\@to_archive_old, [ abs_path($fluidigm_tmp), ], + "Old directory is OK for archiving"); + + # remove iRODS publication metadata; causes check to fail + my @results = $irods->find_objects_by_meta( + $irods_tmp_coll, + [fluidigm_plate => '1381735059'], + [fluidigm_well => 'S70'], + ); + my $result = shift @results; + $irods->remove_object_avu($result, 'fluidigm_plate', '1381735059'); + my @to_archive_unpub = $archiver->find_directories_to_archive(); + is_deeply(\@to_archive_unpub, [ ], + "Unpublished directory is not OK for archiving"); +} + +sub irods_publication : Test(1) { + # tests a method of the Collector attribute in the Archiver class + my $irods = WTSI::NPG::iRODS->new; + my $archiver = WTSI::NPG::Genotyping::Fluidigm::Archiver->new + (irods => $irods, + irods_root => $irods_tmp_coll, + output_dir => $tmp, + days_ago => 90, + ); + ok($archiver->collector->irods_publication_ok($fluidigm_tmp), + "$fluidigm_tmp published to iRODS OK"); +} + +sub script : Test(3) { + # reset mtime to an old date/time + `find $fluidigm_tmp | xargs touch -d 2000-01-01`; + my $script = './bin/archive_fluidigm_genotypes.pl'; + my $output = "$tmp/fluidigm.txt"; + ok(system(join q{ }, "$script", + "--input_dir $tmp", + "--irods_root $irods_tmp_coll", + "--output_dir $tmp", + "2> $output", + ) == 0, "$script ran with zero exit status"); + my $archive_file = $tmp."/fluidigm_2000-01.tar.gz"; + ok(-e $archive_file, 'Expected .tar.gz output exists'); + my $tar = Archive::Tar->new(); + $tar->read($archive_file); + my @contents = $tar->list_files(); + is(scalar @contents, 6, 'Correct number of entries in .tar.gz archive'); +} + +sub script_dry_run : Test(7) { + # test the script in dry-run mode + # reset mtime to an old date/time + `find $fluidigm_tmp | xargs touch -d 2000-01-01`; + my $script = './bin/archive_fluidigm_genotypes.pl'; + my $output = "$tmp/fluidigm.txt"; + ok(system(join q{ }, "$script", + "--input_dir $tmp", + "--irods_root $irods_tmp_coll", + "--output_dir $tmp", + "--verbose", + "--dry_run", + "2> $output", + ) == 0, "$script ran in dry-run mode with zero exit status"); + # check no archive has been written + my @archive_files = glob("$tmp/*.tar.gz"); + is(scalar @archive_files, 0, 'No .tar.gz output in dry-run mode'); + # check archivable files are still present + my $tmp_fluidigm_dir = "$tmp/$fluidigm_directory_name"; + my @archivable_files = ("$tmp_fluidigm_dir/0123456789.csv", ); + foreach my $name (qw/aramis.tif athos.tif porthos.tif/) { + push @archivable_files, "$tmp_fluidigm_dir/Data/$name"; + } + foreach my $path (@archivable_files) { + ok(-e $path, "Archivable file $path exists after dry run"); + } + # check for expected log output + my $msg = '"Dry-run mode: 1 inputs for archive path $archive_file"'; + is(system("grep $msg $output"), 0, "Dry-run status OK in log output"); + + +} diff --git a/src/perl/t/WTSI/NPG/Genotyping/Fluidigm/PublisherTest.pm b/src/perl/t/WTSI/NPG/Genotyping/Fluidigm/PublisherTest.pm index 0c4cd57b8..8e3ac6b3c 100644 --- a/src/perl/t/WTSI/NPG/Genotyping/Fluidigm/PublisherTest.pm +++ b/src/perl/t/WTSI/NPG/Genotyping/Fluidigm/PublisherTest.pm @@ -206,8 +206,13 @@ sub publish_sqscp_no_id : Test(19) { warehouse_db => $whdb); my @addresses_to_publish = qw(S01); - my $num_published = $publisher->publish($irods_tmp_coll, - @addresses_to_publish); + my $num_published; + do { + local *STDERR; + open (STDERR, '>', '/dev/null'); # suppress warning output to STDERR + $num_published = $publisher->publish($irods_tmp_coll, + @addresses_to_publish); + }; cmp_ok($num_published, '==', scalar @addresses_to_publish, "Number of chunks published"); diff --git a/src/perl/t/WTSI/NPG/Genotyping/Fluidigm/SubscriberTest.pm b/src/perl/t/WTSI/NPG/Genotyping/Fluidigm/SubscriberTest.pm index 8d1dd900b..c3390be24 100644 --- a/src/perl/t/WTSI/NPG/Genotyping/Fluidigm/SubscriberTest.pm +++ b/src/perl/t/WTSI/NPG/Genotyping/Fluidigm/SubscriberTest.pm @@ -256,10 +256,13 @@ sub get_calls : Test(31) { $resultset_obj->add_avu('fluidigm_well', 'S01'); $resultset_obj->add_avu('dcterms:identifier', $sample_identifiers[0]); $resultset_obj->add_avu('dcterms:identifier', $non_unique_identifier); - - @calls_observed = _get_observed_calls($irods, $irods_tmp_coll, - $reference_name, $snpset_name, - 'ABC0123456789'); + do { + local *STDERR; + open (STDERR, '>', '/dev/null'); # suppress warning output to STDERR + @calls_observed = _get_observed_calls($irods, $irods_tmp_coll, + $reference_name, $snpset_name, + 'ABC0123456789'); + }; # Merging 3 un-mergable resultsets is (scalar @calls_expected, scalar @calls_observed, diff --git a/src/perl/t/WTSI/NPG/Genotyping/Infinium/PublisherTest.pm b/src/perl/t/WTSI/NPG/Genotyping/Infinium/PublisherTest.pm index 29cfac79b..ce54cd5c9 100644 --- a/src/perl/t/WTSI/NPG/Genotyping/Infinium/PublisherTest.pm +++ b/src/perl/t/WTSI/NPG/Genotyping/Infinium/PublisherTest.pm @@ -130,9 +130,6 @@ use WTSI::NPG::Database::Warehouse; use WTSI::NPG::Genotyping::Database::Infinium; use WTSI::NPG::Genotyping::Infinium::Publisher; use WTSI::NPG::iRODS; -use WTSI::NPG::Utilities qw(collect_files - collect_dirs - modified_between); my $config = $ENV{HOME} . "/.npg/genotyping.ini"; diff --git a/src/perl/t/WTSI/NPG/Genotyping/QC_wip/Check/IdentityTest.pm b/src/perl/t/WTSI/NPG/Genotyping/QC/BayesianIdentity/CheckTest.pm similarity index 94% rename from src/perl/t/WTSI/NPG/Genotyping/QC_wip/Check/IdentityTest.pm rename to src/perl/t/WTSI/NPG/Genotyping/QC/BayesianIdentity/CheckTest.pm index 02ecad859..b6a17ee0b 100644 --- a/src/perl/t/WTSI/NPG/Genotyping/QC_wip/Check/IdentityTest.pm +++ b/src/perl/t/WTSI/NPG/Genotyping/QC/BayesianIdentity/CheckTest.pm @@ -1,5 +1,5 @@ -package WTSI::NPG::Genotyping::QC_wip::Check::IdentityTest; +package WTSI::NPG::Genotyping::QC::BayesianIdentity::CheckTest; use strict; use warnings; @@ -14,8 +14,8 @@ use Test::Exception; use plink_binary; use WTSI::NPG::Genotyping::Call; -use WTSI::NPG::Genotyping::QC_wip::Check::Identity; -use WTSI::NPG::Genotyping::QC_wip::Check::SampleIdentityBayesian; +use WTSI::NPG::Genotyping::QC::BayesianIdentity::Check; +use WTSI::NPG::Genotyping::QC::BayesianIdentity::SampleMetric; use WTSI::NPG::Genotyping::SNPSet; Log::Log4perl::init('./etc/log4perl_tests.conf'); @@ -40,12 +40,12 @@ my @qc_sample_names = qw/urn:wtsi:249441_F11_HELIC5102138 urn:wtsi:249461_G12_HELIC5215300/; sub require : Test(1) { - require_ok('WTSI::NPG::Genotyping::QC_wip::Check::Identity'); + require_ok('WTSI::NPG::Genotyping::QC::BayesianIdentity::Check'); } sub find_identity : Test(2) { my $snpset = WTSI::NPG::Genotyping::SNPSet->new($snpset_file); - my $check = WTSI::NPG::Genotyping::QC_wip::Check::Identity->new + my $check = WTSI::NPG::Genotyping::QC::BayesianIdentity::Check->new (plink_path => $plink_path, snpset => $snpset); # get fake QC results for a few samples; others will appear as missing @@ -67,7 +67,7 @@ sub find_identity_insufficient_snps : Test(3) { my $tempdir = tempdir("IdentityTest.$pid.XXXXXX", CLEANUP => 1); my $json_path = "$tempdir/identity.json"; my $csv_path = "$tempdir/identity.csv"; - my $check = WTSI::NPG::Genotyping::QC_wip::Check::Identity->new + my $check = WTSI::NPG::Genotyping::QC::BayesianIdentity::Check->new (plink_path => $plink_path, snpset => $snpset); # get fake QC results for a few samples; others will appear as missing @@ -84,7 +84,7 @@ sub find_identity_insufficient_snps : Test(3) { sub num_samples : Test(1) { my $snpset = WTSI::NPG::Genotyping::SNPSet->new($snpset_file); - my $check = WTSI::NPG::Genotyping::QC_wip::Check::Identity->new + my $check = WTSI::NPG::Genotyping::QC::BayesianIdentity::Check->new (plink_path => $plink_path, snpset => $snpset); @@ -93,7 +93,7 @@ sub num_samples : Test(1) { sub sample_names : Test(1) { my $snpset = WTSI::NPG::Genotyping::SNPSet->new($snpset_file); - my $check = WTSI::NPG::Genotyping::QC_wip::Check::Identity->new + my $check = WTSI::NPG::Genotyping::QC::BayesianIdentity::Check->new (plink_path => $plink_path, snpset => $snpset); @@ -110,7 +110,7 @@ sub sample_names : Test(1) { sub shared_snp_names : Test(1) { my $snpset = WTSI::NPG::Genotyping::SNPSet->new($snpset_file); - my $check = WTSI::NPG::Genotyping::QC_wip::Check::Identity->new + my $check = WTSI::NPG::Genotyping::QC::BayesianIdentity::Check->new (plink_path => $plink_path, snpset => $snpset); @@ -141,7 +141,7 @@ sub shared_snp_names : Test(1) { sub production_calls : Test(18) { my $snpset = WTSI::NPG::Genotyping::SNPSet->new($snpset_file); - my $check = WTSI::NPG::Genotyping::QC_wip::Check::Identity->new + my $check = WTSI::NPG::Genotyping::QC::BayesianIdentity::Check->new (plink_path => $plink_path, snpset => $snpset); @@ -193,7 +193,7 @@ sub run_identity_checks : Test(3) { my $tempdir = tempdir("IdentityTest.$pid.XXXXXX", CLEANUP => 1); my $json_path = $tempdir."/identity.json"; my $csv_path = $tempdir."/identity.csv"; - my $check = WTSI::NPG::Genotyping::QC_wip::Check::Identity->new + my $check = WTSI::NPG::Genotyping::QC::BayesianIdentity::Check->new (plink_path => $plink_path, snpset => $snpset); # get fake QC results for a few samples; others will appear as missing @@ -211,7 +211,7 @@ sub run_identity_checks : Test(3) { sub sample_swap_evaluation : Test(14) { my $snpset = WTSI::NPG::Genotyping::SNPSet->new($snpset_file); - my $check = WTSI::NPG::Genotyping::QC_wip::Check::Identity->new + my $check = WTSI::NPG::Genotyping::QC::BayesianIdentity::Check->new (plink_path => $plink_swap, snpset => $snpset); my $sample_ids = _get_swap_sample_identities(); @@ -259,7 +259,7 @@ sub sample_swap_evaluation : Test(14) { sub script : Test(13) { # test of command-line script # Could move this into Scripts.pm (which is slow to run, ~10 minutes) - my $identity_script_wip = "./bin/check_identity_bed_wip.pl"; + my $identity_script_wip = "./bin/check_identity_bayesian.pl"; my $tempdir = tempdir("IdentityTest.script.$pid.XXXXXX", CLEANUP => 1); my $jsonPath = "$tempdir/identity.json"; my $csvPath = "$tempdir/identity.csv"; @@ -337,10 +337,10 @@ sub _get_swap_sample_identities { # Some fake QC data # - List of 3 'failed' sample names, 2 of which are swapped - # - Create SampleIdentityBayesian object for each sample + # - Create SampleMetric object for each sample my $snpset = WTSI::NPG::Genotyping::SNPSet->new($snpset_file); - my $check = WTSI::NPG::Genotyping::QC_wip::Check::Identity->new + my $check = WTSI::NPG::Genotyping::QC::BayesianIdentity::Check->new (plink_path => $plink_swap, snpset => $snpset); my $qc_calls = _get_qc_calls(); @@ -356,9 +356,7 @@ sub _get_swap_sample_identities { qc_calls => $qc_calls->{$sample_name}, pass_threshold => $pass_threshold, sample_mismatch_prior => $sample_mismatch_prior); - my $sample_id = - WTSI::NPG::Genotyping::QC_wip::Check::SampleIdentityBayesian-> - new(\%args); + my $sample_id = WTSI::NPG::Genotyping::QC::BayesianIdentity::SampleMetric->new(\%args); push (@sample_identities, $sample_id); } return \@sample_identities; diff --git a/src/perl/t/WTSI/NPG/Genotyping/QC_wip/Check/SampleIdentityBayesianTest.pm b/src/perl/t/WTSI/NPG/Genotyping/QC/BayesianIdentity/SampleMetricTest.pm similarity index 94% rename from src/perl/t/WTSI/NPG/Genotyping/QC_wip/Check/SampleIdentityBayesianTest.pm rename to src/perl/t/WTSI/NPG/Genotyping/QC/BayesianIdentity/SampleMetricTest.pm index 4502506a6..0f0e1e4cc 100644 --- a/src/perl/t/WTSI/NPG/Genotyping/QC_wip/Check/SampleIdentityBayesianTest.pm +++ b/src/perl/t/WTSI/NPG/Genotyping/QC/BayesianIdentity/SampleMetricTest.pm @@ -1,5 +1,5 @@ -package WTSI::NPG::Genotyping::QC_wip::Check::SampleIdentityBayesianTest; +package WTSI::NPG::Genotyping::QC::BayesianIdentity::SampleMetricTest; use strict; use warnings; @@ -11,7 +11,7 @@ use Test::More tests => 9; use Test::Exception; use WTSI::NPG::Genotyping::Call; -use WTSI::NPG::Genotyping::QC_wip::Check::SampleIdentityBayesian; +use WTSI::NPG::Genotyping::QC::BayesianIdentity::SampleMetric; use WTSI::NPG::Genotyping::SNPSet; Log::Log4perl::init('./etc/log4perl_tests.conf'); @@ -166,7 +166,7 @@ sub setup : Test(setup) { sub require : Test(1) { - require_ok('WTSI::NPG::Genotyping::QC_wip::Check::SampleIdentityBayesian'); + require_ok('WTSI::NPG::Genotyping::QC::BayesianIdentity::SampleMetric'); } sub construct : Test(1) { @@ -181,7 +181,7 @@ sub construct : Test(1) { sample_mismatch_prior => $sample_mismatch_prior, ); - new_ok('WTSI::NPG::Genotyping::QC_wip::Check::SampleIdentityBayesian' + new_ok('WTSI::NPG::Genotyping::QC::BayesianIdentity::SampleMetric' => \@args); } @@ -189,7 +189,7 @@ sub output : Test(5) { my $snpset = WTSI::NPG::Genotyping::SNPSet->new($snpset_file); - my $sib = WTSI::NPG::Genotyping::QC_wip::Check::SampleIdentityBayesian-> + my $sib = WTSI::NPG::Genotyping::QC::BayesianIdentity::SampleMetric-> new(sample_name => $sample_name, snpset => $snpset, production_calls => $production_calls, @@ -228,7 +228,7 @@ sub output : Test(5) { push @anonymous_qc_calls, $new_call; } my $anon_sib = - WTSI::NPG::Genotyping::QC_wip::Check::SampleIdentityBayesian-> + WTSI::NPG::Genotyping::QC::BayesianIdentity::SampleMetric-> new(sample_name => $sample_name, snpset => $snpset, production_calls => $production_calls, @@ -258,7 +258,7 @@ sub metric : Test(2) { qc_calls => $qc_calls, pass_threshold => $pass_threshold, sample_mismatch_prior => $sample_mismatch_prior); - my $sib = WTSI::NPG::Genotyping::QC_wip::Check::SampleIdentityBayesian-> + my $sib = WTSI::NPG::Genotyping::QC::BayesianIdentity::SampleMetric-> new(\%args); ok(abs($sib->identity - $expected_big) < $delta, "Identity matches expected value, large test set"); @@ -270,7 +270,7 @@ sub metric : Test(2) { pass_threshold => $pass_threshold, sample_mismatch_prior => $sample_mismatch_prior); my $sib_small = - WTSI::NPG::Genotyping::QC_wip::Check::SampleIdentityBayesian-> + WTSI::NPG::Genotyping::QC::BayesianIdentity::SampleMetric-> new(\%args); ok(abs($sib_small->identity - $expected_small) < $delta, "Identity matches expected value, small test set"); diff --git a/src/perl/t/WTSI/NPG/Genotyping/QC_wip/Check/IdentitySimulatorTest.pm b/src/perl/t/WTSI/NPG/Genotyping/QC/BayesianIdentity/SimulatorTest.pm similarity index 89% rename from src/perl/t/WTSI/NPG/Genotyping/QC_wip/Check/IdentitySimulatorTest.pm rename to src/perl/t/WTSI/NPG/Genotyping/QC/BayesianIdentity/SimulatorTest.pm index 6e081b3ab..24bd6b6dd 100644 --- a/src/perl/t/WTSI/NPG/Genotyping/QC_wip/Check/IdentitySimulatorTest.pm +++ b/src/perl/t/WTSI/NPG/Genotyping/QC/BayesianIdentity/SimulatorTest.pm @@ -1,5 +1,5 @@ -package WTSI::NPG::Genotyping::QC_wip::Check::IdentitySimulatorTest; +package WTSI::NPG::Genotyping::QC::BayesianIdentity::SimulatorTest; use strict; use warnings; @@ -11,7 +11,7 @@ use Test::Exception; use Text::CSV; use WTSI::NPG::Genotyping::Call; -use WTSI::NPG::Genotyping::QC_wip::Check::IdentitySimulator; +use WTSI::NPG::Genotyping::QC::BayesianIdentity::Simulator; use WTSI::NPG::Genotyping::SNPSet; Log::Log4perl::init('./etc/log4perl_tests.conf'); @@ -63,14 +63,14 @@ sub setup : Test(setup) { genotype => $genotype) } @data; $calls = \@calls; - my $id_sim = WTSI::NPG::Genotyping::QC_wip::Check::IdentitySimulator->new( + my $id_sim = WTSI::NPG::Genotyping::QC::BayesianIdentity::Simulator->new( calls => \@calls, snpset => $snpset ); } sub require : Test(1) { - require_ok('WTSI::NPG::Genotyping::QC_wip::Check::IdentitySimulator'); + require_ok('WTSI::NPG::Genotyping::QC::BayesianIdentity::Simulator'); } @@ -78,7 +78,7 @@ sub construct : Test(1) { my @args = (snpset => $snpset, calls => $calls); - new_ok('WTSI::NPG::Genotyping::QC_wip::Check::IdentitySimulator' + new_ok('WTSI::NPG::Genotyping::QC::BayesianIdentity::Simulator' => \@args); } @@ -102,7 +102,7 @@ sub script : Test(11) { sub simulate : Test(5) { - my $id_sim = WTSI::NPG::Genotyping::QC_wip::Check::IdentitySimulator->new( + my $id_sim = WTSI::NPG::Genotyping::QC::BayesianIdentity::Simulator->new( snpset => $snpset, calls => $calls); my $results; diff --git a/src/perl/t/WTSI/NPG/Genotyping/QC/CollationTest.pm b/src/perl/t/WTSI/NPG/Genotyping/QC/CollatorTest.pm similarity index 87% rename from src/perl/t/WTSI/NPG/Genotyping/QC/CollationTest.pm rename to src/perl/t/WTSI/NPG/Genotyping/QC/CollatorTest.pm index 92bbf20d7..8ff407687 100644 --- a/src/perl/t/WTSI/NPG/Genotyping/QC/CollationTest.pm +++ b/src/perl/t/WTSI/NPG/Genotyping/QC/CollatorTest.pm @@ -1,6 +1,6 @@ use utf8; -package WTSI::NPG::Genotyping::QC::CollationTest; +package WTSI::NPG::Genotyping::QC::CollatorTest; use strict; use warnings; @@ -14,17 +14,17 @@ use JSON; use Text::CSV; use base qw(WTSI::NPG::Test); -use Test::More tests => 16; +use Test::More tests => 19; use Test::Exception; -use WTSI::NPG::Genotyping::QC::Collation qw(collate); +use WTSI::NPG::Genotyping::QC::Collator; use WTSI::NPG::Genotyping::QC::QCPlotShared qw(readSampleInclusion); Log::Log4perl::init('./etc/log4perl_tests.conf'); our $log = Log::Log4perl->get_logger(); -BEGIN { use_ok('WTSI::NPG::Genotyping::QC::Collation'); } +BEGIN { use_ok('WTSI::NPG::Genotyping::QC::Collator'); } my $temp_dir; my $dbName = 'small_test.db'; @@ -32,7 +32,6 @@ my $data_dir = "$Bin/qc_test_data/"; my $example_dir = catfile($data_dir, 'output_examples'); my $configPath = catfile($data_dir, 'config_test.json'); -my $thresholdPath = $configPath; my $dbPath = catfile($data_dir, 'small_test.db'); my $iniPath = $ENV{HOME} . "/.npg/genotyping.ini"; @@ -43,7 +42,7 @@ my $csvExpected = catfile($example_dir, 'qc_results.csv'); my $expectedCsvContents; sub make_fixture : Test(setup) { - $temp_dir = tempdir("CollationTest_XXXXXX", CLEANUP => 1); + $temp_dir = tempdir("CollatorTest_XXXXXX", CLEANUP => 1); open my $fh, "<", $csvExpected || $log->logcroak("Cannot open CSV '", $csvExpected, "'"); my $csv = Text::CSV->new(); @@ -52,29 +51,35 @@ sub make_fixture : Test(setup) { } sub require : Test(1) { - require_ok('WTSI::NPG::Genotyping::QC::Collation'); + require_ok('WTSI::NPG::Genotyping::QC::Collator'); } -sub collation : Test(6) { +sub collation : Test(9) { my $jsonResults = catfile($temp_dir, 'qc_results.json'); my $jsonMetrics = catfile($temp_dir, 'qc_metrics.json'); my $csvPath = catfile($temp_dir, 'qc_results.csv'); my $exclude = 0; - my $metricsRef = 0; - my $verbose = 0; - collate($example_dir, $configPath, $thresholdPath, $dbPath, $iniPath, - $jsonResults, $jsonMetrics, $csvPath, - $exclude, $metricsRef, $verbose); + my $collator = WTSI::NPG::Genotyping::QC::Collator->new( + db_path => $dbPath, + ini_path => $iniPath, + input_dir => $example_dir, + config_path => $configPath + ); + ok($collator->writeMetricJson($jsonMetrics), 'Write metrics JSON'); ok(-e $jsonMetrics, "JSON metrics path exists"); my $got_metrics = decode_json(read_file($jsonMetrics)); my $expected_metrics = decode_json(read_file($metricsExpected)); is_deeply($got_metrics, $expected_metrics, "JSON metrics data equivalent to expected"); + + ok($collator->writePassFailJson($jsonResults), 'Write results JSON'); ok(-e $jsonResults, "JSON results path exists"); my $got_results = decode_json(read_file($jsonResults)); my $expected_results = decode_json(read_file($resultsExpected)); is_deeply($got_results, $expected_results, "JSON results data equivalent to expected"); + + ok($collator->writeCsv($csvPath), 'Write CSV'); ok(-e $csvPath, "CSV results path exists"); open my $fh, "<", $csvPath || $log->logcroak("Cannot open CSV '", $csvPath, "'"); diff --git a/src/perl/t/WTSI/NPG/Genotyping/QC/IdentityTest.pm b/src/perl/t/WTSI/NPG/Genotyping/QC/IdentityTest.pm deleted file mode 100644 index ceb6af680..000000000 --- a/src/perl/t/WTSI/NPG/Genotyping/QC/IdentityTest.pm +++ /dev/null @@ -1,147 +0,0 @@ -use utf8; - -package WTSI::NPG::Genotyping::QC::IdentityTest; - -use strict; -use warnings; -use File::Slurp qw(read_file); -use File::Temp qw(tempdir); -use JSON; -use Log::Log4perl; -use Log::Log4perl::Level; - -use base qw(WTSI::NPG::Test); -use Test::More tests => 28; -use Test::Exception; - -use WTSI::NPG::Genotyping::QC::Identity; -use WTSI::NPG::Genotyping::QC::QCPlotShared qw/defaultJsonConfig/; -use WTSI::NPG::Genotyping::QC::SnpID qw/convertFromIlluminaExomeSNP convertToIlluminaExomeSNP/; - -Log::Log4perl::init('./etc/log4perl_tests.conf'); -my $log = Log::Log4perl->get_logger(); -my $workdir; -my $jsonRef; -my $jsonOutPath; -my $jsonName = 'identity_check.json'; -my $textName = 'identity_check_results.txt'; -my $gtName = 'identity_check_gt.txt'; -my $failPairsName = 'identity_check_failed_pairs.txt'; -my $pipelineTestDir = '/nfs/gapi/data/genotype/pipeline_test'; -my $dataDir = $pipelineTestDir.'/identity_check'; -my $dbPath = $dataDir.'/id_test_genotyping.db'; -my $manifest = $pipelineTestDir.'/manifests/Human670-QuadCustom_v1_A.bpm.csv'; -my $qcPlex = "$dataDir/W30467_snp_set_info_1000Genomes.tsv"; -my $minSNPs = 8; -my $manySNPs = 1000; # use to make methods fail -my $minIdent = 0.90; -my $swap = 0.95; -my $iniPath = $ENV{HOME} . "/.npg/genotyping.ini"; - -sub setup : Test(setup) { - $workdir = tempdir("identity_test_XXXXXX", CLEANUP => 1); - $jsonOutPath = $workdir.'/'.$jsonName; - $jsonRef = decode_json(read_file($dataDir.'/'.$jsonName)); -} - -sub teardown : Test(teardown) { - # placeholder, does nothing for now -} - -sub run_identity { - # run the 'main' identity check method - my @inputs = @{ shift() }; - ok(run_identity_check(@inputs), "Identity check status, input $inputs[0]"); -} - -sub require : Test(1) { - require_ok('WTSI::NPG::Genotyping::QC::Identity'); -} - -sub test_alternate_snp_names : Test(5) { - WTSI::NPG::Genotyping::QC::Identity->new( - db_path => $dbPath, - ini_path => $iniPath, - output_dir => $workdir, - plex_manifest => $qcPlex, - plink_path => $dataDir.'/identity_test_not_exome', - )->run_identity_check(); - validate_outputs(); -} - -sub test_command_line : Test(6) { - my $plink = $dataDir."/identity_test"; - my $config = defaultJsonConfig(); - my $cmd = "check_identity_bed.pl --config $config --outdir $workdir ". - " --plink $plink --db $dbPath"; - is(system($cmd), 0, "check_identity_bed.pl exit status, input $plink"); - validate_outputs(); -} - -sub test_manifest_intersection : Test(3) { - my $expected = 25; - my $snps = $workdir.'/shared_snps.txt'; - my $cmd = "manifest_plex_intersection.pl --manifest $manifest --plex $qcPlex --out $snps"; - is(system($cmd), 0, 'manifest_plex_intersection.pl exit status'); - ok(-e $snps, 'SNP output text file exists'); - my $total = 0; - open my $in, "<", $snps || $log->logcroak("Cannot open input '$snps'"); - while (<$in>) { $total++; } - close $in || $log->logcroak("Cannot close input '$snps'"); - is($total, $expected, "$expected SNPs read from text file"); -} - -sub test_insufficient_snps : Test(2) { - WTSI::NPG::Genotyping::QC::Identity->new( - db_path => $dbPath, - ini_path => $iniPath, - min_shared_snps => $manySNPs, - output_dir => $workdir, - plex_manifest => $qcPlex, - plink_path => $dataDir.'/identity_test' - )->run_identity_check(); - ok(-e $jsonOutPath, "JSON output exists for insufficient SNPs"); - my $failJson = $dataDir.'/identity_check_fail.json'; - my $failDataRef = decode_json(read_file($failJson)); - my $jsonOut = decode_json(read_file($jsonOutPath)); - is_deeply($jsonOut, $failDataRef, "JSON output is equivalent to reference"); -} - -sub test_name_conversion : Test(4) { - my $id = 'exm-rs1234'; - is(convertFromIlluminaExomeSNP($id), 'rs1234', - 'Illumina to Sequenom action'); - is(convertToIlluminaExomeSNP($id), 'exm-rs1234', - 'Sequenom to Illumina no action'); - $id = 'rs5678'; - is(convertFromIlluminaExomeSNP($id), 'rs5678', - 'Illumina to Sequenom no action'); - is(convertToIlluminaExomeSNP($id), 'exm-rs5678', - 'Sequenom to Illumina action'); -} - -sub test_standard : Test(7) { - my $checker = WTSI::NPG::Genotyping::QC::Identity->new( - db_path => $dbPath, - ini_path => $iniPath, - output_dir => $workdir, - plex_manifest => $qcPlex, - plink_path => $dataDir.'/identity_test', - ); - ok($checker, "Identity check Moose object created"); - ok($checker->run_identity_check(), "Identity check completed"); - validate_outputs(); -} - -sub validate_outputs { - # check for output files and validate contents of JSON - # expects output files for the 'standard' test dataset and parameters - ok(-e $jsonOutPath, "JSON output exists"); - my $jsonOut = decode_json(read_file($jsonOutPath)); - is_deeply($jsonOut, $jsonRef, "JSON output is equivalent to reference"); - ok(-e $workdir.'/'.$textName, "Text summary exists"); - ok(-e $workdir.'/'.$failPairsName, "Failed pairs comparison exists"); - ok(-e $workdir.'/'.$gtName, "Detailed genotype file exists"); -} - -return 1; diff --git a/src/perl/t/WTSI/NPG/Genotyping/VCF/ReadyWorkflowTest.pm b/src/perl/t/WTSI/NPG/Genotyping/VCF/ReadyWorkflowTest.pm index 162594dcf..3e89361a4 100644 --- a/src/perl/t/WTSI/NPG/Genotyping/VCF/ReadyWorkflowTest.pm +++ b/src/perl/t/WTSI/NPG/Genotyping/VCF/ReadyWorkflowTest.pm @@ -7,7 +7,7 @@ use warnings; use base qw(WTSI::NPG::Test); use Cwd qw/abs_path/; -use Test::More tests => 82; +use Test::More tests => 98; use Test::Exception; use File::Basename qw(fileparse); use File::Path qw/make_path/; @@ -398,6 +398,100 @@ sub test_result_finder : Test(9) { 'Sequenom manifest contents OK'); } +sub test_workflow_script_gencall: Test(16) { + setup_chromosome_json(); + my $f_config = setup_fluidigm(); + my $s_config = setup_sequenom_default(); + my $workdir = abs_path(catfile($tmp, "genotype_workdir_gencall")); + my $config_path = catfile($workdir, "config.yml"); + my $working_db = catfile($workdir, $db_file_name); + my $queue = 'yesterday'; # non-default queue for testing + my $cmd = join q{ }, "$READY_WORKFLOW", + "--logconf $LOG_TEST_CONF", + "--dbfile $dbfile", + "--local", + "--manifest $manifest", + "--queue $queue", + "--run run1", + "--verbose", + "--plex_config $f_config", + "--plex_config $s_config", + "--workdir $workdir", + "--workflow gencall"; + is(0, system($cmd), "gencall setup exit status is zero"); + # check presence of required files and subfolders for workflow + ok(-e $workdir, "Workflow directory found"); + ok(-e $config_path, "config.yml found"); + ok(-e $working_db, "genotyping SQLite database found"); + foreach my $name (qw/in pass fail/) { + my $subdir = catfile($workdir, $name); + ok(-e $subdir && -d $subdir, "Subdirectory '$name' found"); + } + my $params_path = catfile($workdir, "in", "genotype_gencall.yml"); + ok(-e $params_path, "genotype_gencall.yml found"); + my $vcf_path_fluidigm = catfile($workdir, 'vcf', 'fluidigm_qc.vcf'); + my $vcf_path_sequenom = catfile($workdir, 'vcf', 'sequenom_W30467.vcf'); + ok(-e $vcf_path_fluidigm, "Fluidigm VCF file found for Gencall"); + + my $got_fluidigm = _read_without_filedate($vcf_path_fluidigm); + my $expected_fluidigm_path = catfile($data_path, 'fluidigm.vcf'); + my $expected_fluidigm = _read_without_filedate($expected_fluidigm_path); + is_deeply($got_fluidigm, $expected_fluidigm, + "Fluidigm VCF matches expected values"); + ok(-e $vcf_path_sequenom, "Sequenom VCF file found for Gencall"); + my $got_sequenom = _read_without_filedate($vcf_path_sequenom); + my $expected_sequenom_path = catfile($data_path, 'sequenom.vcf'); + my $expected_sequenom = _read_without_filedate($expected_sequenom_path); + is_deeply($got_sequenom, $expected_sequenom, + "Sequenom VCF matches expected values"); + # check contents of YML files + my $config = LoadFile($config_path); + ok($config, "Config data structure loaded from YML"); + my $expected_config = { + 'msg_port' => '11300', + 'max_processes' => '250', + 'root_dir' => $workdir, + 'log_level' => 'DEBUG', + 'async' => 'lsf', + 'msg_host' => 'farm3-head2', + 'log' => catfile($workdir, 'percolate.log') + }; + is_deeply($config, $expected_config, + "YML Gencall config matches expected values"); + + my $params = LoadFile($params_path); + ok($params, "Workflow parameter data structure loaded from YML"); + my $manifest_name = fileparse($manifest); + my $fluidigm_manifest_name = 'fluidigm_qc.tsv'; + my $sequenom_manifest_name = 'sequenom_W30467.tsv'; + my $expected_params = { + 'workflow' => 'Genotyping::Workflows::GenotypeGencall', + 'library' => 'genotyping', + 'arguments' => [ + $working_db, + 'run1', + $workdir, + { + 'memory' => '2048', + 'manifest' => catfile($workdir, $manifest_name), + 'queue' => $queue, + 'plex_manifest' => [ + catfile($workdir, 'plex_manifests', + $fluidigm_manifest_name), + catfile($workdir, 'plex_manifests', + $sequenom_manifest_name), + ], + 'vcf' => [ + $vcf_path_fluidigm, + $vcf_path_sequenom, + ], + } + ] + }; + is_deeply($params, $expected_params, + "YML Gencall workflow params match expected values"); +} + sub test_workflow_script_illuminus: Test(16) { setup_chromosome_json(); my $f_config = setup_fluidigm(); diff --git a/src/perl/t/WTSI/NPG/Test.pm b/src/perl/t/WTSI/NPG/Test.pm index 64707809c..17e462d52 100644 --- a/src/perl/t/WTSI/NPG/Test.pm +++ b/src/perl/t/WTSI/NPG/Test.pm @@ -11,21 +11,26 @@ use Test::More; sub runtests { my ($self) = @_; - my $env_file = $ENV{'WTSI_NPG_iRODS_Test_irodsEnvFile'} || q{}; - if (not $env_file) { - if ($ENV{TEST_AUTHOR}) { - die 'Environment variable WTSI_NPG_iRODS_Test_irodsEnvFile was not set'; - } - else { - $self->SKIP_CLASS('TEST_AUTHOR environment variable is false'); + my %env_copy = %ENV; + + # iRODS 3.* and iRODS 4.* have different env vars for configuration + foreach my $file (qw(irodsEnvFile IRODS_ENVIRONMENT_FILE)) { + my $env_file = $ENV{"WTSI_NPG_iRODS_Test_$file"} || q[]; + + # Ensure that the iRODS connection details are a nonsense value if + # they are not set explicitly via WTSI_NPG_iRODS_Test_* + $env_copy{$file} = $env_file || 'DUMMY_VALUE'; + + if (not $env_file) { + if ($ENV{TEST_AUTHOR}) { + die "Environment variable WTSI_NPG_iRODS_Test_$file was not set"; + } + else { + $self->SKIP_CLASS('TEST_AUTHOR environment variable is false'); + } } } - my %env_copy = %ENV; - # Ensure that the iRODS connection details are a nonsense value if - # they are not set explicitly via WTSI_NPG_iRODS_Test_irodsEnvFile - $env_copy{'irodsEnvFile'} = $env_file || 'DUMMY_VALUE'; - { local %ENV = %env_copy; return $self->SUPER::runtests; diff --git a/src/perl/t/WTSI/NPG/UtilitiesTest.pm b/src/perl/t/WTSI/NPG/UtilitiesTest.pm index 8e2b6222d..b6dbf4328 100644 --- a/src/perl/t/WTSI/NPG/UtilitiesTest.pm +++ b/src/perl/t/WTSI/NPG/UtilitiesTest.pm @@ -8,7 +8,7 @@ use warnings; use File::Temp qw(tempfile); use base qw(WTSI::NPG::Test); -use Test::More tests => 810; +use Test::More tests => 801; use Test::Exception; use Log::Log4perl; @@ -18,12 +18,7 @@ Log::Log4perl::init('./etc/log4perl_tests.conf'); BEGIN { use_ok('WTSI::NPG::Utilities'); } use WTSI::NPG::Utilities qw(common_stem - depad_well - collect_dirs - collect_files - modified_between); - -my $data_path = './t/utilities'; + depad_well); sub test_common_stem : Test(11) { is(common_stem('', ''), ''); @@ -76,85 +71,3 @@ sub test_depad_well : Test(789) { } } } - -sub test_collect_files : Test(4) { - - # Accept all files - my $file_test = sub { - my ($file) = @_; - return 1; - }; - - my $collect_path = "$data_path/collect_files"; - - is_deeply([collect_files($collect_path, $file_test, 1)], - []); - - is_deeply([collect_files($collect_path, $file_test, 2)], - ["$collect_path/a/10.txt", - "$collect_path/b/20.txt", - "$collect_path/c/30.txt"]); - - is_deeply([collect_files($collect_path, $file_test, 3)], - ["$collect_path/a/10.txt", - "$collect_path/a/x/1.txt", - "$collect_path/b/20.txt", - "$collect_path/b/y/2.txt", - "$collect_path/c/30.txt", - "$collect_path/c/z/3.txt"]); - - is_deeply([collect_files($collect_path, $file_test, undef)], - ["$collect_path/a/10.txt", - "$collect_path/a/x/1.txt", - "$collect_path/b/20.txt", - "$collect_path/b/y/2.txt", - "$collect_path/c/30.txt", - "$collect_path/c/z/3.txt"]); -} - -sub test_collect_dirs : Test(4) { - - # Accept all dirs - my $dir_test = sub { - my ($dir) = @_; - return 1; - }; - - my $collect_path = "$data_path/collect_files"; - - is_deeply([collect_dirs($collect_path, $dir_test, 1)], - ["$collect_path"]); - - is_deeply([collect_dirs($collect_path, $dir_test, 2)], - ["$collect_path", - "$collect_path/a", - "$collect_path/b", - "$collect_path/c"]); - - is_deeply([collect_dirs($collect_path, $dir_test, 3)], - ["$collect_path", - "$collect_path/a", - "$collect_path/a/x", - "$collect_path/b", - "$collect_path/b/y", - "$collect_path/c", - "$collect_path/c/z"]); - - is_deeply([collect_dirs($collect_path, $dir_test, undef)], - ["$collect_path", - "$collect_path/a", - "$collect_path/a/x", - "$collect_path/b", - "$collect_path/b/y", - "$collect_path/c", - "$collect_path/c/z"]); -} - -sub test_modified_between : Test(1) { - my $then = DateTime->now; - my ($fh, $file) = tempfile(); - my $now = DateTime->now; - - my $fn = modified_between($then->epoch, $now->epoch); - ok($fn->($file)); -} diff --git a/src/perl/t/archivable.t b/src/perl/t/archivable.t new file mode 100644 index 000000000..cdfd9bf4d --- /dev/null +++ b/src/perl/t/archivable.t @@ -0,0 +1,9 @@ + +use utf8; + +use strict; +use warnings; + +use WTSI::NPG::ArchivableTest; + +WTSI::NPG::ArchivableTest->runtests; diff --git a/src/perl/t/utilities/lorem.txt b/src/perl/t/archiver/lorem.txt similarity index 100% rename from src/perl/t/utilities/lorem.txt rename to src/perl/t/archiver/lorem.txt diff --git a/src/perl/t/bayesian_identity.t b/src/perl/t/bayesian_identity.t new file mode 100644 index 000000000..991673c50 --- /dev/null +++ b/src/perl/t/bayesian_identity.t @@ -0,0 +1,9 @@ + +use utf8; + +use strict; +use warnings; + +use WTSI::NPG::Genotyping::QC::BayesianIdentity::CheckTest; + +WTSI::NPG::Genotyping::QC::BayesianIdentity::CheckTest->runtests; diff --git a/src/perl/t/bayesian_identity_sample.t b/src/perl/t/bayesian_identity_sample.t new file mode 100644 index 000000000..1474b399c --- /dev/null +++ b/src/perl/t/bayesian_identity_sample.t @@ -0,0 +1,9 @@ + +use utf8; + +use strict; +use warnings; + +use WTSI::NPG::Genotyping::QC::BayesianIdentity::SampleMetricTest; + +WTSI::NPG::Genotyping::QC::BayesianIdentity::SampleMetricTest->runtests; diff --git a/src/perl/t/bayesian_identity_simulator.t b/src/perl/t/bayesian_identity_simulator.t new file mode 100644 index 000000000..55ade8488 --- /dev/null +++ b/src/perl/t/bayesian_identity_simulator.t @@ -0,0 +1,7 @@ + +use strict; +use warnings; + +use WTSI::NPG::Genotyping::QC::BayesianIdentity::SimulatorTest; + +Test::Class->runtests; \ No newline at end of file diff --git a/src/perl/t/collation.t b/src/perl/t/collation.t deleted file mode 100644 index 1a4dbec71..000000000 --- a/src/perl/t/collation.t +++ /dev/null @@ -1,9 +0,0 @@ - -use utf8; - -use strict; -use warnings; - -use WTSI::NPG::Genotyping::QC::CollationTest; - -WTSI::NPG::Genotyping::QC::CollationTest->runtests; diff --git a/src/perl/t/collator.t b/src/perl/t/collator.t new file mode 100644 index 000000000..e6515dd28 --- /dev/null +++ b/src/perl/t/collator.t @@ -0,0 +1,9 @@ + +use utf8; + +use strict; +use warnings; + +use WTSI::NPG::Genotyping::QC::CollatorTest; + +WTSI::NPG::Genotyping::QC::CollatorTest->runtests; diff --git a/src/perl/t/collector.t b/src/perl/t/collector.t new file mode 100644 index 000000000..03939b3ea --- /dev/null +++ b/src/perl/t/collector.t @@ -0,0 +1,9 @@ + +use utf8; + +use strict; +use warnings; + +use WTSI::NPG::CollectorTest; + +WTSI::NPG::CollectorTest->runtests; diff --git a/src/perl/t/utilities/collect_files/a/10.txt b/src/perl/t/collector/collect_files/a/10.txt similarity index 100% rename from src/perl/t/utilities/collect_files/a/10.txt rename to src/perl/t/collector/collect_files/a/10.txt diff --git a/src/perl/t/utilities/collect_files/a/x/1.txt b/src/perl/t/collector/collect_files/a/x/1.txt similarity index 100% rename from src/perl/t/utilities/collect_files/a/x/1.txt rename to src/perl/t/collector/collect_files/a/x/1.txt diff --git a/src/perl/t/utilities/collect_files/b/20.txt b/src/perl/t/collector/collect_files/b/20.txt similarity index 100% rename from src/perl/t/utilities/collect_files/b/20.txt rename to src/perl/t/collector/collect_files/b/20.txt diff --git a/src/perl/t/utilities/collect_files/b/y/2.txt b/src/perl/t/collector/collect_files/b/y/2.txt similarity index 100% rename from src/perl/t/utilities/collect_files/b/y/2.txt rename to src/perl/t/collector/collect_files/b/y/2.txt diff --git a/src/perl/t/utilities/collect_files/c/30.txt b/src/perl/t/collector/collect_files/c/30.txt similarity index 100% rename from src/perl/t/utilities/collect_files/c/30.txt rename to src/perl/t/collector/collect_files/c/30.txt diff --git a/src/perl/t/utilities/collect_files/c/z/3.txt b/src/perl/t/collector/collect_files/c/z/3.txt similarity index 100% rename from src/perl/t/utilities/collect_files/c/z/3.txt rename to src/perl/t/collector/collect_files/c/z/3.txt diff --git a/src/perl/t/compile_scripts.t b/src/perl/t/compile_scripts.t index a1a9cb389..0ee944946 100644 --- a/src/perl/t/compile_scripts.t +++ b/src/perl/t/compile_scripts.t @@ -8,6 +8,9 @@ eval "use Test::Compile"; plan skip_all => "Test::Compile required for testing compilation" if $@; -all_pl_files_ok(all_pl_files('bin')); +my $test = Test::Compile->new(); +$test->verbose(0); +$test->all_files_ok($test->all_pl_files('bin')); +$test->done_testing(); 1; diff --git a/src/perl/t/fluidigm_archiver.t b/src/perl/t/fluidigm_archiver.t new file mode 100644 index 000000000..cb320eff4 --- /dev/null +++ b/src/perl/t/fluidigm_archiver.t @@ -0,0 +1,9 @@ + +use utf8; + +use strict; +use warnings; + +use WTSI::NPG::Genotyping::Fluidigm::ArchiverTest; + +WTSI::NPG::Genotyping::Fluidigm::ArchiverTest->runtests; diff --git a/src/perl/t/fluidigm_archiver/0123456789/0123456789.csv b/src/perl/t/fluidigm_archiver/0123456789/0123456789.csv new file mode 100644 index 000000000..2bb334a54 --- /dev/null +++ b/src/perl/t/fluidigm_archiver/0123456789/0123456789.csv @@ -0,0 +1,9232 @@ +Chip Run Info,C:\Demonstration\TK2 Testing\0123456789\ChipRun.bml,1381735059,96.96 (138x),,ROX,SNPtype-FAM : SNPtype-HEX,9/11/2013 7:34:53 AM,00:01:02,EP1-50105 +Application Version,3.1.3 +Application Build,20120816.1511 +Export Type,Detailed Table Results,Standard +Number of Combined Chip Runs,1,9216 +Confidence Threshold,65.00 +Normalization Method,NTC Normalization +Allele Probe Type Mapping,Allele X,SNPtype-FAM +Allele Probe Type Mapping,Allele Y,SNPtype-HEX +Allele Axis Mapping,Allele X,X +Allele Axis Mapping,Allele Y,Y + + +Experiment Information,Experiment Information,Experiment Information,Experiment Information,Experiment Information,Experiment Information,Results,Results,Results,Results,Results,Results +Chamber,SNP Assay and Allele Names,SNP Assay and Allele Names,SNP Assay and Allele Names,Sample,Sample,Call Information,Call Information,Call Information,Call Information,Intensity,Intensity +ID,Assay,Allele X,Allele Y,Name,Type,Auto,Confidence,Final,Converted,Allele X,Allele Y +S96-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S96-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S96-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S96-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S96-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S96-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S96-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S96-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S96-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S96-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S96-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S96-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S96-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S96-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S96-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S96-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S96-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S96-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S96-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S96-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S96-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S96-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S96-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S96-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S96-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S96-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S96-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S96-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S95-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S95-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S95-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S95-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S95-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S95-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S95-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S95-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S95-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S95-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S95-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S95-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S95-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S95-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S95-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S95-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S95-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S95-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S95-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S95-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S95-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S95-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S95-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S95-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S95-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S95-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S95-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S94-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S94-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S94-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S94-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S94-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S94-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S94-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S94-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S94-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S94-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S94-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S94-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S94-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S94-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S94-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S94-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S94-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S94-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S94-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S94-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S94-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S94-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S94-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S94-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S94-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S94-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S94-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S93-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S93-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S93-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S93-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S93-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S93-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S93-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S93-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S93-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S93-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S93-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S93-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S93-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S93-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S93-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S93-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S93-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S93-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S93-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S93-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S93-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S93-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S93-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S93-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S93-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S93-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S93-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S92-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S92-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S92-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S92-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S92-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S92-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S92-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S92-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S92-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S92-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S92-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S92-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S92-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S92-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S92-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S92-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S92-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S92-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S92-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S92-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S92-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S92-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S92-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S92-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S92-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S92-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S92-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S91-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S91-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S91-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S91-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S91-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S91-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S91-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S91-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S91-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S91-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S91-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S91-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S91-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S91-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S91-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S91-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S91-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S91-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S91-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S91-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S91-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S91-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S91-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S91-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S91-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S91-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S91-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S90-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S90-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S90-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S90-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S90-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S90-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S90-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S90-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S90-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S90-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S90-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S90-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S90-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S90-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S90-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S90-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S90-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S90-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S90-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S90-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S90-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S90-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S90-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S90-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S90-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S90-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S90-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S89-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S89-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S89-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S89-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S89-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S89-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S89-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S89-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S89-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S89-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S89-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S89-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S89-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S89-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S89-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S89-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S89-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S89-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S89-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S89-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S89-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S89-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S89-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S89-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S89-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S89-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S89-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S88-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S88-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S88-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S88-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S88-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S88-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S88-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S88-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S88-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S88-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S88-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S88-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S88-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S88-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S88-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S88-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S88-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S88-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S88-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S88-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S88-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S88-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S88-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S88-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S88-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S88-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S88-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S87-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S87-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S87-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S87-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S87-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S87-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S87-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S87-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S87-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S87-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S87-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S87-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S87-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S87-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S87-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S87-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S87-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S87-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S87-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S87-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S87-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S87-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S87-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S87-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S87-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S87-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S87-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S86-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S86-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S86-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S86-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S86-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S86-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S86-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S86-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S86-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S86-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S86-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S86-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S86-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S86-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S86-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S86-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S86-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S86-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S86-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S86-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S86-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S86-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S86-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S86-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S86-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S86-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S86-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S85-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S85-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S85-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S85-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S85-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S85-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S85-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S85-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S85-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S85-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S85-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S85-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S85-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S85-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S85-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S85-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S85-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S85-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S85-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S85-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S85-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S85-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S85-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S85-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S85-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S85-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S85-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S84-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S84-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S84-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S84-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S84-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S84-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S84-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S84-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S84-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S84-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S84-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S84-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S84-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S84-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S84-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S84-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S84-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S84-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S84-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S84-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S84-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S84-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S84-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S84-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S84-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S84-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S84-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S83-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S83-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S83-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S83-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S83-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S83-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S83-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S83-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S83-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S83-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S83-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S83-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S83-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S83-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S83-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S83-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S83-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S83-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S83-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S83-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S83-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S83-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S83-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S83-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S83-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S83-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S83-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S82-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S82-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S82-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S82-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S82-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S82-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S82-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S82-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S82-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S82-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S82-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S82-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S82-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S82-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S82-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S82-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S82-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S82-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S82-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S82-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S82-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S82-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S82-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S82-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S82-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S82-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S82-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S81-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S81-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S81-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S81-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S81-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S81-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S81-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S81-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S81-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S81-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S81-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S81-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S81-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S81-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S81-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S81-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S81-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S81-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S81-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S81-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S81-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S81-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S81-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S81-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S81-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S81-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S81-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S80-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S80-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S80-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S80-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S80-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S80-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S80-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S80-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S80-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S80-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S80-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S80-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S80-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S80-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S80-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S80-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S80-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S80-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S80-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S80-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S80-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S80-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S80-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S80-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S80-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S80-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S80-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S79-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S79-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S79-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S79-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S79-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S79-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S79-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S79-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S79-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S79-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S79-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S79-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S79-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S79-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S79-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S79-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S79-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S79-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S79-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S79-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S79-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S79-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S79-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S79-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S79-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S79-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S79-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S78-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S78-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S78-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S78-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S78-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S78-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S78-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S78-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S78-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S78-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S78-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S78-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S78-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S78-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S78-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S78-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S78-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S78-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S78-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S78-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S78-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S78-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S78-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S78-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S78-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S78-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S78-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S77-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S77-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S77-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S77-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S77-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S77-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S77-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S77-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S77-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S77-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S77-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S77-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S77-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S77-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S77-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S77-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S77-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S77-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S77-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S77-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S77-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S77-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S77-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S77-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S77-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S77-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S77-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S76-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S76-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S76-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S76-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S76-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S76-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S76-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S76-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S76-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S76-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S76-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S76-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S76-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S76-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S76-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S76-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S76-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S76-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S76-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S76-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S76-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S76-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S76-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S76-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S76-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S76-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S76-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S75-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S75-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S75-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S75-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S75-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S75-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S75-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S75-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S75-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S75-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S75-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S75-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S75-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S75-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S75-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S75-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S75-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S75-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S75-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S75-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S75-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S75-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S75-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S75-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S75-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S75-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S75-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S74-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S74-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S74-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S74-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S74-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S74-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S74-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S74-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S74-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S74-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S74-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S74-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S74-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S74-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S74-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S74-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S74-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S74-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S74-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S74-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S74-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S74-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S74-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S74-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S74-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S74-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S74-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S73-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S73-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S73-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S73-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S73-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S73-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S73-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S73-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S73-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S73-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S73-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S73-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S73-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S73-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S73-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S73-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S73-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S73-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S73-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S73-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S73-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S73-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S73-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S73-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S73-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S73-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S73-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S72-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S72-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S72-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S72-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S72-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S72-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S72-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S72-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S72-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S72-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S72-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S72-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S72-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S72-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S72-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S72-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S72-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S72-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S72-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S72-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S72-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S72-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S72-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S72-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S72-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S72-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S72-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S71-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S71-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S71-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S71-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S71-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S71-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S71-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S71-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S71-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S71-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S71-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S71-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S71-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S71-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S71-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S71-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S71-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S71-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S71-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S71-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S71-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S71-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S71-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S71-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S71-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S71-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S71-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S70-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S70-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S70-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S70-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S70-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S70-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S70-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S70-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S70-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S70-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S70-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S70-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S70-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S70-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S70-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S70-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S70-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S70-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S70-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S70-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S70-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S70-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S70-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S70-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S70-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S70-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S70-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S69-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S69-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S69-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S69-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S69-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S69-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S69-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S69-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S69-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S69-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S69-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S69-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S69-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S69-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S69-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S69-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S69-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S69-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S69-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S69-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S69-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S69-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S69-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S69-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S69-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S69-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S69-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S68-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S68-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S68-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S68-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S68-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S68-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S68-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S68-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S68-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S68-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S68-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S68-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S68-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S68-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S68-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S68-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S68-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S68-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S68-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S68-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S68-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S68-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S68-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S68-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S68-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S68-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S68-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S67-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S67-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S67-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S67-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S67-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S67-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S67-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S67-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S67-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S67-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S67-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S67-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S67-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S67-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S67-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S67-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S67-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S67-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S67-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S67-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S67-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S67-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S67-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S67-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S67-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S67-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S67-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S66-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S66-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S66-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S66-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S66-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S66-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S66-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S66-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S66-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S66-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S66-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S66-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S66-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S66-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S66-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S66-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S66-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S66-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S66-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S66-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S66-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S66-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S66-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S66-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S66-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S66-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S66-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S65-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S65-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S65-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S65-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S65-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S65-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S65-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S65-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S65-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S65-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S65-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S65-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S65-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S65-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S65-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S65-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S65-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S65-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S65-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S65-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S65-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S65-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S65-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S65-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S65-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S65-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S65-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S64-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S64-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S64-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S64-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S64-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S64-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S64-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S64-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S64-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S64-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S64-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S64-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S64-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S64-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S64-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S64-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S64-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S64-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S64-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S64-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S64-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S64-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S64-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S64-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S64-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S64-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S64-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S63-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S63-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S63-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S63-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S63-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S63-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S63-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S63-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S63-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S63-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S63-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S63-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S63-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S63-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S63-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S63-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S63-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S63-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S63-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S63-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S63-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S63-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S63-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S63-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S63-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S63-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S63-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S62-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S62-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S62-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S62-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S62-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S62-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S62-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S62-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S62-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S62-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S62-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S62-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S62-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S62-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S62-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S62-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S62-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S62-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S62-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S62-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S62-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S62-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S62-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S62-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S62-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S62-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S62-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S61-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S61-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S61-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S61-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S61-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S61-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S61-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S61-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S61-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S61-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S61-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S61-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S61-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S61-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S61-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S61-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S61-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S61-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S61-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S61-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S61-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S61-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S61-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S61-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S61-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S61-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S61-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S60-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S60-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S60-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S60-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S60-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S60-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S60-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S60-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S60-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S60-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S60-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S60-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S60-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S60-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S60-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S60-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S60-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S60-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S60-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S60-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S60-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S60-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S60-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S60-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S60-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S60-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S60-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S59-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S59-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S59-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S59-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S59-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S59-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S59-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S59-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S59-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S59-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S59-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S59-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S59-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S59-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S59-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S59-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S59-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S59-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S59-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S59-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S59-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S59-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S59-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S59-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S59-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S59-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S59-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S58-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S58-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S58-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S58-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S58-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S58-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S58-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S58-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S58-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S58-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S58-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S58-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S58-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S58-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S58-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S58-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S58-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S58-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S58-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S58-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S58-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S58-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S58-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S58-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S58-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S58-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S58-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S57-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S57-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S57-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S57-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S57-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S57-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S57-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S57-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S57-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S57-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S57-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S57-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S57-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S57-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S57-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S57-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S57-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S57-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S57-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S57-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S57-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S57-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S57-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S57-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S57-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S57-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S57-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S56-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S56-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S56-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S56-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S56-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S56-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S56-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S56-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S56-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S56-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S56-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S56-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S56-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S56-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S56-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S56-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S56-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S56-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S56-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S56-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S56-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S56-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S56-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S56-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S56-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S56-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S56-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S55-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S55-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S55-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S55-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S55-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S55-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S55-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S55-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S55-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S55-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S55-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S55-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S55-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S55-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S55-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S55-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S55-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S55-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S55-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S55-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S55-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S55-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S55-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S55-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S55-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S55-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S55-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S54-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S54-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S54-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S54-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S54-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S54-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S54-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S54-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S54-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S54-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S54-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S54-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S54-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S54-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S54-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S54-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S54-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S54-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S54-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S54-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S54-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S54-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S54-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S54-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S54-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S54-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S54-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S53-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S53-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S53-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S53-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S53-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S53-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S53-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S53-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S53-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S53-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S53-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S53-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S53-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S53-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S53-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S53-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S53-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S53-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S53-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S53-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S53-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S53-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S53-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S53-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S53-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S53-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S53-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S52-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S52-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S52-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S52-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S52-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S52-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S52-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S52-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S52-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S52-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S52-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S52-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S52-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S52-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S52-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S52-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S52-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S52-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S52-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S52-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S52-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S52-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S52-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S52-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S52-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S52-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S52-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S51-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S51-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S51-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S51-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S51-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S51-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S51-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S51-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S51-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S51-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S51-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S51-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S51-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S51-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S51-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S51-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S51-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S51-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S51-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S51-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S51-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S51-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S51-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S51-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S51-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S51-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S51-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S50-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S50-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S50-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S50-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S50-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S50-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S50-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S50-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S50-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S50-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S50-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S50-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S50-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S50-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S50-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S50-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S50-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S50-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S50-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S50-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S50-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S50-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S50-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S50-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S50-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S50-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S50-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S49-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S49-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S49-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S49-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S49-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S49-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S49-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S49-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S49-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S49-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S49-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S49-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S49-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S49-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S49-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S49-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S49-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S49-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S49-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S49-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S49-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S49-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S49-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S49-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S49-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S49-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S49-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S48-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S48-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S48-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S48-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S48-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S48-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S48-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S48-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S48-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S48-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S48-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S48-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S48-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S48-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S48-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S48-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S48-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S48-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S48-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S48-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S48-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S48-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S48-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S48-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S48-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S48-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S48-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S47-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S47-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S47-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S47-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S47-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S47-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S47-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S47-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S47-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S47-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S47-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S47-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S47-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S47-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S47-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S47-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S47-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S47-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S47-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S47-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S47-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S47-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S47-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S47-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S47-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S47-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S47-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S46-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S46-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S46-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S46-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S46-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S46-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S46-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S46-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S46-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S46-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S46-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S46-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S46-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S46-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S46-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S46-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S46-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S46-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S46-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S46-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S46-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S46-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S46-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S46-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S46-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S46-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S46-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S45-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S45-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S45-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S45-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S45-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S45-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S45-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S45-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S45-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S45-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S45-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S45-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S45-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S45-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S45-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S45-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S45-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S45-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S45-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S45-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S45-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S45-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S45-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S45-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S45-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S45-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S45-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S44-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S44-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S44-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S44-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S44-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S44-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S44-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S44-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S44-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S44-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S44-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S44-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S44-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S44-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S44-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S44-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S44-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S44-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S44-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S44-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S44-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S44-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S44-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S44-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S44-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S44-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S44-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S43-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S43-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S43-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S43-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S43-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S43-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S43-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S43-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S43-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S43-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S43-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S43-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S43-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S43-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S43-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S43-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S43-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S43-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S43-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S43-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S43-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S43-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S43-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S43-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S43-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S43-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S43-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S42-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S42-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S42-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S42-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S42-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S42-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S42-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S42-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S42-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S42-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S42-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S42-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S42-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S42-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S42-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S42-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S42-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S42-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S42-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S42-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S42-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S42-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S42-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S42-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S42-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S42-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S42-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S41-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S41-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S41-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S41-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S41-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S41-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S41-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S41-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S41-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S41-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S41-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S41-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S41-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S41-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S41-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S41-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S41-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S41-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S41-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S41-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S41-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S41-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S41-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S41-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S41-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S41-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S41-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S40-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S40-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S40-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S40-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S40-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S40-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S40-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S40-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S40-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S40-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S40-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S40-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S40-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S40-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S40-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S40-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S40-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S40-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S40-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S40-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S40-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S40-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S40-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S40-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S40-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S40-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S40-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S39-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S39-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S39-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S39-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S39-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S39-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S39-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S39-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S39-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S39-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S39-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S39-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S39-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S39-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S39-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S39-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S39-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S39-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S39-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S39-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S39-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S39-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S39-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S39-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S39-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S39-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S39-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S38-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S38-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S38-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S38-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S38-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S38-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S38-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S38-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S38-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S38-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S38-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S38-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S38-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S38-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S38-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S38-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S38-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S38-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S38-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S38-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S38-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S38-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S38-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S38-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S38-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S38-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S38-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S37-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S37-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S37-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S37-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S37-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S37-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S37-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S37-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S37-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S37-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S37-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S37-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S37-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S37-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S37-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S37-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S37-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S37-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S37-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S37-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S37-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S37-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S37-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S37-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S37-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S37-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S37-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S36-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S36-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S36-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S36-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S36-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S36-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S36-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S36-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S36-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S36-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S36-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S36-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S36-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S36-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S36-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S36-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S36-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S36-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S36-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S36-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S36-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S36-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S36-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S36-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S36-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S36-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S36-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S35-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S35-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S35-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S35-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S35-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S35-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S35-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S35-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S35-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S35-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S35-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S35-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S35-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S35-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S35-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S35-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S35-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S35-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S35-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S35-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S35-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S35-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S35-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S35-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S35-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S35-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S35-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S34-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S34-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S34-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S34-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S34-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S34-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S34-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S34-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S34-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S34-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S34-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S34-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S34-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S34-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S34-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S34-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S34-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S34-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S34-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S34-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S34-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S34-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S34-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S34-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S34-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S34-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S34-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S33-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S33-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S33-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S33-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S33-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S33-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S33-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S33-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S33-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S33-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S33-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S33-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S33-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S33-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S33-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S33-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S33-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S33-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S33-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S33-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S33-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S33-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S33-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S33-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S33-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S33-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S33-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S32-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S32-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S32-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S32-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S32-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S32-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S32-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S32-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S32-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S32-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S32-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S32-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S32-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S32-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S32-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S32-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S32-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S32-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S32-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S32-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S32-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S32-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S32-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S32-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S32-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S32-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S32-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S31-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S31-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S31-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S31-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S31-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S31-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S31-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S31-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S31-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S31-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S31-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S31-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S31-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S31-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S31-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S31-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S31-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S31-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S31-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S31-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S31-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S31-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S31-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S31-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S31-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S31-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S31-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S30-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S30-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S30-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S30-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S30-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S30-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S30-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S30-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S30-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S30-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S30-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S30-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S30-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S30-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S30-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S30-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S30-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S30-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S30-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S30-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S30-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S30-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S30-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S30-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S30-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S30-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S30-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S29-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S29-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S29-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S29-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S29-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S29-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S29-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S29-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S29-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S29-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S29-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S29-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S29-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S29-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S29-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S29-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S29-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S29-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S29-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S29-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S29-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S29-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S29-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S29-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S29-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S29-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S29-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S28-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S28-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S28-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S28-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S28-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S28-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S28-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S28-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S28-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S28-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S28-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S28-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S28-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S28-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S28-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S28-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S28-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S28-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S28-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S28-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S28-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S28-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S28-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S28-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S28-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S28-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S28-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S27-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S27-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S27-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S27-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S27-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S27-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S27-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S27-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S27-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S27-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S27-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S27-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S27-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S27-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S27-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S27-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S27-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S27-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S27-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S27-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S27-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S27-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S27-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S27-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S27-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S27-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S27-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S26-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S26-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S26-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S26-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S26-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S26-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S26-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S26-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S26-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S26-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S26-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S26-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S26-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S26-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S26-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S26-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S26-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S26-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S26-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S26-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S26-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S26-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S26-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S26-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S26-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S26-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S26-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S25-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S25-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S25-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S25-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S25-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S25-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S25-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S25-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S25-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S25-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S25-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S25-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S25-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S25-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S25-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S25-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S25-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S25-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S25-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S25-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S25-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S25-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S25-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S25-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S25-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S25-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S25-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S24-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S24-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S24-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S24-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S24-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S24-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S24-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S24-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S24-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S24-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S24-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S24-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S24-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S24-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S24-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S24-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S24-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S24-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S24-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S24-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S24-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S24-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S24-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S24-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S24-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S24-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S24-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S23-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S23-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S23-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S23-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S23-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S23-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S23-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S23-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S23-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S23-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S23-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S23-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S23-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S23-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S23-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S23-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S23-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S23-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S23-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S23-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S23-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S23-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S23-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S23-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S23-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S23-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S23-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S22-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S22-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S22-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S22-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S22-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S22-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S22-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S22-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S22-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S22-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S22-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S22-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S22-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S22-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S22-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S22-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S22-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S22-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S22-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S22-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S22-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S22-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S22-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S22-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S22-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S22-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S22-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S21-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S21-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S21-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S21-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S21-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S21-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S21-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S21-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S21-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S21-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S21-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S21-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S21-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S21-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S21-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S21-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S21-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S21-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S21-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S21-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S21-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S21-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S21-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S21-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S21-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S21-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S21-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S20-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S20-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S20-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S20-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S20-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S20-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S20-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S20-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S20-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S20-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S20-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S20-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S20-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S20-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S20-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S20-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S20-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S20-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S20-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S20-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S20-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S20-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S20-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S20-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S20-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S20-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S20-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S19-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S19-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S19-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S19-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S19-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S19-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S19-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S19-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S19-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S19-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S19-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S19-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S19-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S19-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S19-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S19-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S19-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S19-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S19-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S19-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S19-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S19-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S19-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S19-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S19-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S19-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S19-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S18-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S18-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S18-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S18-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S18-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S18-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S18-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S18-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S18-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S18-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S18-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S18-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S18-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S18-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S18-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S18-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S18-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S18-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S18-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S18-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S18-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S18-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S18-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S18-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S18-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S18-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S18-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S17-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S17-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S17-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S17-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S17-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S17-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S17-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S17-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S17-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S17-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S17-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S17-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S17-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S17-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S17-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S17-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S17-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S17-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S17-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S17-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S17-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S17-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S17-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S17-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S17-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S17-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S17-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S16-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S16-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S16-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S16-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S16-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S16-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S16-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S16-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S16-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S16-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S16-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S16-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S16-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S16-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S16-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S16-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S16-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S16-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S16-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S16-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S16-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S16-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S16-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S16-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S16-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S16-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S16-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S15-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S15-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S15-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S15-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S15-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S15-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S15-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S15-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S15-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S15-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S15-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S15-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S15-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S15-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S15-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S15-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S15-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S15-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S15-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S15-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S15-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S15-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S15-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S15-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S15-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S15-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S15-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S14-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S14-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S14-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S14-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S14-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S14-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S14-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S14-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S14-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S14-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S14-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S14-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S14-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S14-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S14-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S14-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S14-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S14-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S14-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S14-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S14-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S14-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S14-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S14-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S14-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S14-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S14-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S13-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S13-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S13-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S13-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S13-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S13-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S13-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S13-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S13-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S13-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S13-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S13-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S13-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S13-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S13-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S13-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S13-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S13-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S13-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S13-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S13-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S13-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S13-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S13-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S13-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S13-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S13-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S12-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S12-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S12-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S12-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S12-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S12-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S12-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S12-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S12-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S12-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S12-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S12-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S12-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S12-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S12-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S12-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S12-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S12-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S12-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S12-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S12-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S12-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S12-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S12-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S12-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S12-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S12-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S11-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S11-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S11-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S11-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S11-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S11-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S11-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S11-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S11-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S11-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S11-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S11-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S11-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S11-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S11-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S11-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S11-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S11-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S11-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S11-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S11-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S11-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S11-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S11-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S11-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S11-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S11-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S10-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S10-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S10-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S10-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S10-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S10-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S10-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S10-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S10-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S10-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S10-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S10-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S10-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S10-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S10-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S10-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S10-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S10-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S10-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S10-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S10-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S10-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S10-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S10-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S10-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S10-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S10-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S09-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S09-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S09-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S09-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S09-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S09-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S09-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S09-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S09-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S09-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S09-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S09-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S09-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S09-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S09-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S09-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S09-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S09-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S09-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S09-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S09-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S09-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S09-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S09-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S09-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S09-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S09-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S08-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S08-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S08-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S08-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S08-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S08-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S08-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S08-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S08-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S08-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S08-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S08-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S08-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S08-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S08-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S08-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S08-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S08-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S08-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S08-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S08-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S08-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S08-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S08-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S08-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S08-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S08-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S07-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S07-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S07-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S07-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S07-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S07-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S07-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S07-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S07-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S07-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S07-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S07-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S07-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S07-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S07-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S07-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S07-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S07-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S07-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S07-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S07-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S07-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S07-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S07-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S07-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S07-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S07-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S06-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S06-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S06-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S06-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S06-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S06-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S06-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S06-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S06-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S06-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S06-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S06-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S06-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S06-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S06-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S06-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S06-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S06-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S06-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S06-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S06-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S06-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S06-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S06-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S06-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S06-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S06-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S05-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S05-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S05-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S05-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S05-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S05-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S05-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S05-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S05-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S05-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S05-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S05-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S05-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S05-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S05-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S05-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S05-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S05-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S05-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S05-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S05-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S05-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S05-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S05-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S05-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S05-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S05-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S04-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S04-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S04-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S04-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S04-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S04-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S04-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S04-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S04-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S04-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S04-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S04-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S04-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S04-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S04-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S04-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S04-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S04-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S04-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S04-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S04-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S04-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S04-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S04-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S04-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S04-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S04-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S03-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S03-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S03-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S03-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S03-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S03-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S03-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S03-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S03-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S03-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S03-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S03-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S03-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S03-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S03-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S03-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S03-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S03-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S03-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S03-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S03-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S03-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S03-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S03-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S03-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S03-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S03-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S02-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S02-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S02-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S02-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S02-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S02-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S02-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S02-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S02-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S02-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S02-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S02-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S02-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S02-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S02-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S02-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S02-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S02-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S02-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S02-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S02-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S02-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S02-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S02-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S02-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S02-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S02-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A01,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S01-A02,GS34251,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S01-A03,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S01-A04,GS35220,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S01-A05,rs11096957,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S01-A06,rs12828016,G,T,ABC0123456789,Unknown,XY,100,XY,G:T,0.1,0.1 +S01-A07,rs156697,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S01-A08,rs1801262,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S01-A09,rs1805034,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S01-A10,rs1805087,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S01-A11,rs2247870,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S01-A12,rs2286963,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S01-A13,rs3742207,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S01-A14,rs3795677,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S01-A15,rs4075254,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S01-A16,rs4619,A,G,ABC0123456789,Unknown,XY,100,XY,A:G,0.1,0.1 +S01-A17,rs4843075,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S01-A18,rs5215,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S01-A19,rs6166,C,T,ABC0123456789,Unknown,XY,100,XY,C:T,0.1,0.1 +S01-A20,rs649058,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S01-A21,rs6557634,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S01-A22,rs6759892,T,G,ABC0123456789,Unknown,XY,100,XY,T:G,0.1,0.1 +S01-A23,rs7298565,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S01-A24,rs753381,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S01-A25,rs7627615,G,A,ABC0123456789,Unknown,XY,100,XY,G:A,0.1,0.1 +S01-A26,rs8065080,T,C,ABC0123456789,Unknown,XY,100,XY,T:C,0.1,0.1 +S01-A27,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A28,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A29,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A30,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A31,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A32,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A33,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A34,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A35,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A36,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A37,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A38,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A39,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A40,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A41,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A42,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A43,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A44,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A45,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A46,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A47,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A48,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A49,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A50,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A51,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A52,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A53,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A54,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A55,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A56,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A57,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A58,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A59,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A60,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A61,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A62,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A63,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A64,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A65,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A66,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A67,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A68,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A69,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A70,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A71,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A72,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A73,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A74,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A75,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A76,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A77,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A78,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A79,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A80,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A81,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A82,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A83,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A84,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A85,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A86,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A87,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A88,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A89,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A90,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A91,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A92,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A93,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A94,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A95,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 +S01-A96,,,,[ Empty ],NTC,NTC,100,NTC,NTC,0.1,0.1 diff --git a/src/perl/t/fluidigm_archiver/0123456789/Data/aramis.tif b/src/perl/t/fluidigm_archiver/0123456789/Data/aramis.tif new file mode 100644 index 000000000..e69de29bb diff --git a/src/perl/t/fluidigm_archiver/0123456789/Data/athos.tif b/src/perl/t/fluidigm_archiver/0123456789/Data/athos.tif new file mode 100644 index 000000000..e69de29bb diff --git a/src/perl/t/fluidigm_archiver/0123456789/Data/porthos.tif b/src/perl/t/fluidigm_archiver/0123456789/Data/porthos.tif new file mode 100644 index 000000000..e69de29bb diff --git a/src/perl/t/fluidigm_archiver/qc.tsv b/src/perl/t/fluidigm_archiver/qc.tsv new file mode 100644 index 000000000..d05c6ca01 --- /dev/null +++ b/src/perl/t/fluidigm_archiver/qc.tsv @@ -0,0 +1,27 @@ +#SNP_NAME REF_ALLELE ALT_ALLELE CHR POS STRAND +GS34251 T T X 88666325 + +GS34251 C C Y 2934912 + +GS35220 C C X 90473610 + +GS35220 T T Y 4550107 + +rs11096957 T G 4 38776491 - +rs12828016 G T 12 998365 + +rs156697 A G 10 106039185 - +rs1801262 T C 2 182543455 - +rs1805034 C T 18 60027241 + +rs1805087 A G 1 237048500 + +rs2247870 G A 5 90151589 - +rs2286963 T G 2 211060050 + +rs3742207 T G 13 110818598 - +rs3795677 G A 1 240492734 + +rs4075254 G A 15 86123988 - +rs4619 A G 7 45932669 + +rs4843075 G A 15 86124555 + +rs5215 C T 11 17408630 + +rs6166 C T 2 49189921 - +rs649058 G A 1 74941293 + +rs6557634 T C 8 23060256 + +rs6759892 T G 2 234601669 + +rs7298565 G A 12 109937534 + +rs753381 T C 20 39797465 - +rs7627615 G A 3 183818416 + +rs8065080 T C 17 3480447 + diff --git a/src/perl/t/identity.t b/src/perl/t/identity.t deleted file mode 100644 index 21ae34a06..000000000 --- a/src/perl/t/identity.t +++ /dev/null @@ -1,9 +0,0 @@ - -use utf8; - -use strict; -use warnings; - -use WTSI::NPG::Genotyping::QC::IdentityTest; - -WTSI::NPG::Genotyping::QC::IdentityTest->runtests; diff --git a/src/perl/t/identity_check_sample_wip_bayesian.t b/src/perl/t/identity_check_sample_wip_bayesian.t deleted file mode 100644 index 09cad84e0..000000000 --- a/src/perl/t/identity_check_sample_wip_bayesian.t +++ /dev/null @@ -1,9 +0,0 @@ - -use utf8; - -use strict; -use warnings; - -use WTSI::NPG::Genotyping::QC_wip::Check::SampleIdentityBayesianTest; - -WTSI::NPG::Genotyping::QC_wip::Check::SampleIdentityBayesianTest->runtests; diff --git a/src/perl/t/identity_check_wip.t b/src/perl/t/identity_check_wip.t deleted file mode 100644 index 11c3f0159..000000000 --- a/src/perl/t/identity_check_wip.t +++ /dev/null @@ -1,9 +0,0 @@ - -use utf8; - -use strict; -use warnings; - -use WTSI::NPG::Genotyping::QC_wip::Check::IdentityTest; - -WTSI::NPG::Genotyping::QC_wip::Check::IdentityTest->runtests; diff --git a/src/perl/t/identity_simulation_wip.t b/src/perl/t/identity_simulation_wip.t deleted file mode 100644 index cc55c362b..000000000 --- a/src/perl/t/identity_simulation_wip.t +++ /dev/null @@ -1,7 +0,0 @@ - -use strict; -use warnings; - -use WTSI::NPG::Genotyping::QC_wip::Check::IdentitySimulatorTest; - -Test::Class->runtests; \ No newline at end of file diff --git a/src/perl/t/qc_small.t b/src/perl/t/qc_small.t index 2c9b9750b..84a9e0f54 100644 --- a/src/perl/t/qc_small.t +++ b/src/perl/t/qc_small.t @@ -13,7 +13,7 @@ use File::Temp qw/tempdir/; use FindBin qw($Bin); use JSON; -use Test::More tests => 53; +use Test::More tests => 52; use WTSI::NPG::Genotyping::QC::QCPlotTests qw(jsonPathOK pngPathOK xmlPathOK); @@ -23,20 +23,18 @@ my $bin = "$Bin/../bin/"; # assume we are running from perl/t my $data_dir = $Bin."/qc_test_data/"; my $plink = $data_dir.$testName; my $sim = $data_dir.$testName.".sim"; -my $outDir = "$Bin/qc/$testName/"; my $heatMapDir = "plate_heatmaps/"; my $iniPath = "$bin/../etc/qc_test.ini"; # contains inipath relative to test output directory (works after chdir) my $dbname = "small_test.db"; my $dbfileMasterA = $data_dir.$dbname; my $inclusionMaster = $data_dir."sample_inclusion.json"; -my $mafhet = $data_dir."output_examples/small_test_maf_het.json"; my $config = "$bin/../etc/qc_config.json"; my $filterConfig = $data_dir."zcall_prefilter_test.json"; my $vcf = $data_dir."small_test_plex.vcf"; my $plexManifest = $data_dir."small_test_fake_manifest.tsv"; my $sampleJson = $data_dir."small_test_sample.json"; my $piperun = "pipeline_run"; # run name in pipeline DB -my ($cmd, $status); +my ($cmd, $status, $outDir); # The directories containing the R scripts and Perl scripts $ENV{PATH} = join(':', abs_path('../r/bin'), abs_path('../bin'), $ENV{PATH}); @@ -46,25 +44,14 @@ my $tempdir = tempdir(CLEANUP => 1); system("cp $dbfileMasterA $tempdir"); my $dbfile = $tempdir."/".$dbname; -if (-e $outDir) { - if (-d $outDir) { - system("rm -Rf $outDir/*"); # remove previous output - } else { - croak "Output path $outDir exists and is not a directory!"; - } -} else { - mkdir($outDir); -} - -### test creation of QC input files ### +### test creation of QC input files ### print "Testing dataset $testName.\n"; +$outDir = tempdir("test_qc_components_XXXXXX", CLEANUP => 1); ## test identity check -$status = system("$bin/check_identity_bed.pl --outdir $outDir --config $config --plink $plink --db $dbfile"); -is($status, 0, "check_identity_bed.pl exit status"); - -## WIP identity check script is tested in WTSI::NPG::Genotyping::QC_wip::Check::IdentityTest +$status = system("$bin/check_identity_bayesian.pl --json $outDir/identity_check.json --csv $outDir/identity_check.csv --plex $plexManifest --plink $plink --vcf $vcf --sample_json $sampleJson"); +is($status, 0, "check_identity_bayesian.pl exit status"); ## test call rate & heterozygosity computation my $crHetFinder = "snp_af_sample_cr_bed"; @@ -130,20 +117,17 @@ is(system($cmd), 0, "plot_fail_causes.pl exit status"); ## test PNG outputs in main directory # sample_xhet_gender.png absent for this test; no mixture model -my @png = qw /crHetDensityScatter.png failScatterPlot.png - crHistogram.png failsCombined.png +my @png = qw /crHetDensityScatter.png failScatterPlot.png + crHistogram.png failsCombined.png crHetDensityHeatmap.png failScatterDetail.png failsIndividual.png hetHistogram.png/; foreach my $png (@png) { ok(pngPathOK($outDir.'/'.$png), "PNG output $png in valid format"); } - -system("rm -Rf $outDir/*"); # remove output from previous tests -system("cp $dbfileMasterA $tempdir"); -print "\tRemoved output from previous tests; now testing main bootstrap script.\n"; - ## check run_qc.pl bootstrap script +$outDir = tempdir("test_qc_script_main_XXXXXX", CLEANUP => 1); +system("cp $dbfileMasterA $tempdir"); # fresh copy of SQLite database # omit --title argument, to test default title function my @args = ("--output-dir=$outDir", "--dbpath=$dbfile", @@ -159,13 +143,6 @@ my @args = ("--output-dir=$outDir", is(system("$bin/run_qc.pl ".join(" ", @args)), 0, "run_qc.pl bootstrap script exit status"); -## check work-in-progress output files -my $outDirWip = $outDir."/qc_wip"; -my @output_wip = ("identity_wip.json", ); -foreach my $file (@output_wip) { - ok(-e $outDirWip."/".$file, "QC WIP output $file exists") -} - ## check (non-heatmap) outputs again foreach my $png (@png) { ok(pngPathOK($outDir."/supplementary/".$png), "PNG output $png in valid format"); @@ -187,27 +164,27 @@ ok(-r $outDir.'/pipeline_summary.csv', "CSV summary found"); ok(-r $outDir.'/pipeline_summary.pdf', "PDF summary found"); -## check that run_qc.pl dies with incorrect arguments for alternate ID check -system("rm -Rf $outDir/*"); # remove output from previous tests +## check that run_qc.pl dies with incorrect arguments for identity check +$outDir = tempdir("test_qc_script_XXXXXX", CLEANUP => 1); system("cp $dbfileMasterA $tempdir"); my $cmd_base = "$bin/run_qc.pl --output-dir=$outDir --dbpath=$dbfile --sim=$sim --plink=$plink --run=$piperun --inipath=$iniPath --mafhet --config=$config"; isnt(system($cmd_base." --vcf $vcf 2> /dev/null"), 0, 'Non-zero exit for run_qc.pl with --vcf but not --plex-manifest'); ok(!(-e $outDir.'/pipeline_summary.csv'), "CSV summary not found"); -system("rm -Rf $outDir/*"); # remove output from previous tests +$outDir = tempdir("test_qc_script_XXXXXX", CLEANUP => 1); system("cp $dbfileMasterA $tempdir"); isnt(system($cmd_base." --plex-manifests $plexManifest 2> /dev/null"), 0, 'Non-zero exit for run_qc.pl with --plex-manifest but not --vcf'); ok(!(-e $outDir.'/pipeline_summary.csv'), "CSV summary not found"); -## run_qc.pl again, without the arguments for alternate identity check -system("rm -Rf $outDir/*"); # remove output from previous tests +## run_qc.pl again, without the arguments for identity check +$outDir = tempdir("test_qc_script_XXXXXX", CLEANUP => 1); system("cp $dbfileMasterA $tempdir"); $cmd = "$bin/run_qc.pl --output-dir=$outDir --dbpath=$dbfile --sim=$sim --plink=$plink --run=$piperun --inipath=$iniPath --mafhet --config=$config"; is(system($cmd), 0, - "run_qc.pl bootstrap script exit status, no alternate identity check"); + "run_qc.pl bootstrap script exit status, no identity check"); ## test standalone report script print "\tTesting standalone report generation script.\n"; diff --git a/src/perl/t/qc_test_data/config_test.json b/src/perl/t/qc_test_data/config_test.json index 57a429016..5425ea3c8 100644 --- a/src/perl/t/qc_test_data/config_test.json +++ b/src/perl/t/qc_test_data/config_test.json @@ -5,12 +5,10 @@ "duplicate":"duplicate_full.txt.gz", "duplicate_subsets":"duplicate_subsets.json", "gender":"sample_xhet_gender.txt", - "magnitude":"magnitude.txt", - "het_by_maf":"small_test_maf_het.json"}, + "magnitude":"magnitude.txt" + }, "Metrics_thresholds" : { "heterozygosity" : 3, - "low_maf_het" : 3, - "high_maf_het" : 3, "gender" : "NA", "identity" : 0.9, "magnitude" : 0.9, diff --git a/src/perl/t/qc_test_data/output_examples/duplicate_full.txt.gz b/src/perl/t/qc_test_data/output_examples/duplicate_full.txt.gz index d524c3817..c192bce8e 100644 Binary files a/src/perl/t/qc_test_data/output_examples/duplicate_full.txt.gz and b/src/perl/t/qc_test_data/output_examples/duplicate_full.txt.gz differ diff --git a/src/perl/t/qc_test_data/output_examples/identity_check.json b/src/perl/t/qc_test_data/output_examples/identity_check.json index 837153fe4..d65117e57 100644 --- a/src/perl/t/qc_test_data/output_examples/identity_check.json +++ b/src/perl/t/qc_test_data/output_examples/identity_check.json @@ -1 +1 @@ -{"common_snps":0,"min_snps":8,"identity_check_run":0,"results":{"urn:wtsi:plate0001_A10_sample000072":"NA","urn:wtsi:plate0001_C06_sample000042":"NA","urn:wtsi:plate0001_B08_sample000057":"NA","urn:wtsi:plate0001_C03_sample000018":"NA","urn:wtsi:plate0001_A07_sample000048":"NA","urn:wtsi:plate0002_B01_sample000097":"NA","urn:wtsi:plate0001_G09_sample000070":"NA","urn:wtsi:plate0001_H03_sample000023":"NA","urn:wtsi:plate0001_A03_sample000016":"NA","urn:wtsi:plate0001_B01_sample000001":"NA","urn:wtsi:plate0001_A02_sample000008":"NA","urn:wtsi:plate0001_D10_sample000075":"NA","urn:wtsi:plate0001_D02_sample000011":"NA","urn:wtsi:plate0001_F12_sample000093":"NA","urn:wtsi:plate0002_A01_sample000096":"NA","urn:wtsi:plate0001_E07_sample000052":"NA","urn:wtsi:plate0001_B10_sample000073":"NA","urn:wtsi:plate0001_A05_sample000032":"NA","urn:wtsi:plate0001_D04_sample000027":"NA","urn:wtsi:plate0001_E02_sample000012":"NA","urn:wtsi:plate0001_C04_sample000026":"NA","urn:wtsi:plate0001_B05_sample000033":"NA","urn:wtsi:plate0001_F08_sample000061":"NA","urn:wtsi:plate0001_C11_sample000082":"NA","urn:wtsi:plate0001_G12_sample000094":"NA","urn:wtsi:plate0001_F04_sample000029":"NA","urn:wtsi:plate0001_G10_sample000078":"NA","urn:wtsi:plate0001_D09_sample000067":"NA","urn:wtsi:plate0001_E09_sample000068":"NA","urn:wtsi:plate0002_C01_sample000098":"NA","urn:wtsi:plate0001_G11_sample000086":"NA","urn:wtsi:plate0001_F09_sample000069":"NA","urn:wtsi:plate0001_H05_sample000039":"NA","urn:wtsi:plate0001_B03_sample000017":"NA","urn:wtsi:plate0001_C09_sample000066":"NA","urn:wtsi:plate0001_F11_sample000085":"NA","urn:wtsi:plate0001_B07_sample000049":"NA","urn:wtsi:plate0001_F06_sample000045":"NA","urn:wtsi:plate0001_F05_sample000037":"NA","urn:wtsi:plate0001_F03_sample000021":"NA","urn:wtsi:plate0001_C07_sample000050":"NA","urn:wtsi:plate0001_C05_sample000034":"NA","urn:wtsi:plate0001_E11_sample000084":"NA","urn:wtsi:plate0001_C02_sample000010":"NA","urn:wtsi:plate0001_B09_sample000065":"NA","urn:wtsi:plate0001_C12_sample000090":"NA","urn:wtsi:plate0001_B11_sample000081":"NA","urn:wtsi:plate0001_H02_sample000015":"NA","urn:wtsi:plate0001_E03_sample000020":"NA","urn:wtsi:plate0001_G01_sample000006":"NA","urn:wtsi:plate0001_F07_sample000053":"NA","urn:wtsi:plate0001_H12_sample000095":"NA","urn:wtsi:plate0001_G07_sample000054":"NA","urn:wtsi:plate0001_H09_sample000071":"NA","urn:wtsi:plate0001_B04_sample000025":"NA","urn:wtsi:plate0001_A11_sample000080":"NA","urn:wtsi:plate0001_B06_sample000041":"NA","urn:wtsi:plate0001_D07_sample000051":"NA","urn:wtsi:plate0001_H10_sample000079":"NA","urn:wtsi:plate0001_E05_sample000036":"NA","urn:wtsi:plate0001_D12_sample000091":"NA","urn:wtsi:plate0001_C08_sample000058":"NA","urn:wtsi:plate0001_G02_sample000014":"NA","urn:wtsi:plate0001_E01_sample000004":"NA","urn:wtsi:plate0001_G06_sample000046":"NA","urn:wtsi:plate0001_F01_sample000005":"NA","urn:wtsi:plate0001_E08_sample000060":"NA","urn:wtsi:plate0001_E04_sample000028":"NA","urn:wtsi:plate0001_A12_sample000088":"NA","urn:wtsi:plate0001_C10_sample000074":"NA","urn:wtsi:plate0001_G04_sample000030":"NA","urn:wtsi:plate0001_E10_sample000076":"NA","urn:wtsi:plate0001_F10_sample000077":"NA","urn:wtsi:plate0001_A04_sample000024":"NA","urn:wtsi:plate0001_D03_sample000019":"NA","urn:wtsi:plate0001_B02_sample000009":"NA","urn:wtsi:plate0001_A08_sample000056":"NA","urn:wtsi:plate0001_H11_sample000087":"NA","urn:wtsi:plate0001_H08_sample000063":"NA","urn:wtsi:plate0001_H04_sample000031":"NA","urn:wtsi:plate0001_E12_sample000092":"NA","urn:wtsi:plate0001_B12_sample000089":"NA","urn:wtsi:plate0001_H06_sample000047":"NA","urn:wtsi:plate0001_G08_sample000062":"NA","urn:wtsi:plate0001_D11_sample000083":"NA","urn:wtsi:plate0001_H01_sample000007":"NA","urn:wtsi:plate0002_D01_sample000099":"NA","urn:wtsi:plate0001_D05_sample000035":"NA","urn:wtsi:plate0001_D06_sample000043":"NA","urn:wtsi:plate0001_H07_sample000055":"NA","urn:wtsi:plate0001_A06_sample000040":"NA","urn:wtsi:plate0001_D08_sample000059":"NA","urn:wtsi:plate0001_F02_sample000013":"NA","urn:wtsi:plate0001_A09_sample000064":"NA","urn:wtsi:plate0001_G05_sample000038":"NA","urn:wtsi:plate0001_C01_sample000002":"NA"}} \ No newline at end of file +{"params":{"pass_threshold":0.99,"expected_error_rate":0.01,"equivalent_calls_probability":{"t/qc_test_data/small_test_fakeSNP000202":0.40625,"t/qc_test_data/small_test_fakeSNP000002":0.40625,"t/qc_test_data/small_test_fakeSNP000003":0.40625,"t/qc_test_data/small_test_fakeSNP000005":0.40625,"t/qc_test_data/small_test_fakeSNP000107":0.40625,"t/qc_test_data/small_test_fakeSNP000203":0.40625,"t/qc_test_data/small_test_fakeSNP000103":0.40625,"t/qc_test_data/small_test_fakeSNP000008":0.40625,"t/qc_test_data/small_test_fakeSNP000105":0.40625,"t/qc_test_data/small_test_fakeSNP000106":0.40625,"t/qc_test_data/small_test_fakeSNP000102":0.40625,"t/qc_test_data/small_test_fakeSNP000007":0.40625,"t/qc_test_data/small_test_fakeSNP000009":0.40625,"t/qc_test_data/small_test_fakeSNP000006":0.40625,"t/qc_test_data/small_test_fakeSNP000104":0.40625,"t/qc_test_data/small_test_fakeSNP000004":0.40625,"t/qc_test_data/small_test_fakeSNP000010":0.40625,"t/qc_test_data/small_test_fakeSNP000101":0.40625,"t/qc_test_data/small_test_fakeSNP000201":0.40625,"t/qc_test_data/small_test_fakeSNP000001":0.40625},"consensus_ecp":0.40625,"sample_mismatch_prior":0.01,"swap_threshold":0.5},"summary":{"missing":12,"assayed_pass_rate":"1.0000","total":96,"failed":0},"identity":[{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_B01_sample000001","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_C01_sample000002","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_E01_sample000004","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_F01_sample000005","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_A02_sample000008","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_B02_sample000009","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_C02_sample000010","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_D02_sample000011","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_E02_sample000012","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_F02_sample000013","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_G02_sample000014","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_H02_sample000015","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_A03_sample000016","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_B03_sample000017","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_C03_sample000018","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_D03_sample000019","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_E03_sample000020","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_F03_sample000021","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_H03_sample000023","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_C04_sample000026","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_D04_sample000027","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_E04_sample000028","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_F04_sample000029","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_G04_sample000030","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_H04_sample000031","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_A05_sample000032","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_B05_sample000033","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_C05_sample000034","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_D05_sample000035","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_E05_sample000036","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_F05_sample000037","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_G05_sample000038","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_H05_sample000039","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_A06_sample000040","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_D06_sample000043","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_F06_sample000045","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_G06_sample000046","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_H06_sample000047","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_A07_sample000048","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_B07_sample000049","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_C07_sample000050","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_D07_sample000051","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_E07_sample000052","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_F07_sample000053","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_G07_sample000054","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_H07_sample000055","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_A08_sample000056","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_B08_sample000057","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_C08_sample000058","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_F08_sample000061","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_G08_sample000062","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_H08_sample000063","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_A09_sample000064","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_B09_sample000065","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_C09_sample000066","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_D09_sample000067","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_E09_sample000068","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_F09_sample000069","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_G09_sample000070","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_H09_sample000071","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_A10_sample000072","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_B10_sample000073","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_C10_sample000074","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_D10_sample000075","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_G10_sample000078","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_H10_sample000079","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_A11_sample000080","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_B11_sample000081","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_C11_sample000082","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_D11_sample000083","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_E11_sample000084","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_F11_sample000085","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_G11_sample000086","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_H11_sample000087","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_A12_sample000088","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_B12_sample000089","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_C12_sample000090","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_D12_sample000091","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_E12_sample000092","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0001_H12_sample000095","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0002_A01_sample000096","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0002_B01_sample000097","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["AC","1","_unknown_callset_"],["AC","1","_unknown_callset_"]],"production":["AC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0002_C01_sample000098","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["NN","0","_unknown_callset_"],["NN","0","_unknown_callset_"]],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]}},"failed":0},{"concordance":"1.0000","identity":"1.0000","missing":0,"sample_name":"urn:wtsi:plate0002_D01_sample000099","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[["CA","1","_unknown_callset_"],["CA","1","_unknown_callset_"]],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[["AA","1","_unknown_callset_"],["AA","1","_unknown_callset_"]],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[["CC","1","_unknown_callset_"],["CC","1","_unknown_callset_"]],"production":["CC","1","_unknown_callset_"]}},"failed":0},{"concordance":"0.0000","identity":"0.0000","missing":1,"sample_name":"urn:wtsi:plate0001_G01_sample000006","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[],"production":["AA","1","_unknown_callset_"]}},"failed":null},{"concordance":"0.0000","identity":"0.0000","missing":1,"sample_name":"urn:wtsi:plate0001_H01_sample000007","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[],"production":["AA","1","_unknown_callset_"]}},"failed":null},{"concordance":"0.0000","identity":"0.0000","missing":1,"sample_name":"urn:wtsi:plate0001_A04_sample000024","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[],"production":["AC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[],"production":["AC","1","_unknown_callset_"]}},"failed":null},{"concordance":"0.0000","identity":"0.0000","missing":1,"sample_name":"urn:wtsi:plate0001_B04_sample000025","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[],"production":["AA","1","_unknown_callset_"]}},"failed":null},{"concordance":"0.0000","identity":"0.0000","missing":1,"sample_name":"urn:wtsi:plate0001_B06_sample000041","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[],"production":["AA","1","_unknown_callset_"]}},"failed":null},{"concordance":"0.0000","identity":"0.0000","missing":1,"sample_name":"urn:wtsi:plate0001_C06_sample000042","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[],"production":["CC","1","_unknown_callset_"]}},"failed":null},{"concordance":"0.0000","identity":"0.0000","missing":1,"sample_name":"urn:wtsi:plate0001_D08_sample000059","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[],"production":["AC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[],"production":["AC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[],"production":["AA","1","_unknown_callset_"]}},"failed":null},{"concordance":"0.0000","identity":"0.0000","missing":1,"sample_name":"urn:wtsi:plate0001_E08_sample000060","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[],"production":["AA","1","_unknown_callset_"]}},"failed":null},{"concordance":"0.0000","identity":"0.0000","missing":1,"sample_name":"urn:wtsi:plate0001_E10_sample000076","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[],"production":["AC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[],"production":["AA","1","_unknown_callset_"]}},"failed":null},{"concordance":"0.0000","identity":"0.0000","missing":1,"sample_name":"urn:wtsi:plate0001_F10_sample000077","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[],"production":["AA","1","_unknown_callset_"]}},"failed":null},{"concordance":"0.0000","identity":"0.0000","missing":1,"sample_name":"urn:wtsi:plate0001_F12_sample000093","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[],"production":["AC","1","_unknown_callset_"]}},"failed":null},{"concordance":"0.0000","identity":"0.0000","missing":1,"sample_name":"urn:wtsi:plate0001_G12_sample000094","genotypes":{"t/qc_test_data/small_test_fakeSNP000202":{"qc":[],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000002":{"qc":[],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000003":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000005":{"qc":[],"production":["CA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000107":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000203":{"qc":[],"production":["NN","0","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000103":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000008":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000105":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000106":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000102":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000007":{"qc":[],"production":["AC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000009":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000006":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000104":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000004":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000010":{"qc":[],"production":["AA","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000101":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000201":{"qc":[],"production":["CC","1","_unknown_callset_"]},"t/qc_test_data/small_test_fakeSNP000001":{"qc":[],"production":["AA","1","_unknown_callset_"]}},"failed":null}],"swap":{"comparison":[],"sample_warnings":{},"total_samples_checked":0,"prior":null,"total_sample_warnings":0}} \ No newline at end of file diff --git a/src/perl/t/qc_test_data/output_examples/qc_exclusions.json b/src/perl/t/qc_test_data/output_examples/qc_exclusions.json index 2c8c32408..a473b443f 100644 --- a/src/perl/t/qc_test_data/output_examples/qc_exclusions.json +++ b/src/perl/t/qc_test_data/output_examples/qc_exclusions.json @@ -1 +1,102 @@ -{"plate0001_A02_sample000008":"1","plate0001_H09_sample000071":"1","plate0001_B02_sample000009":"1","plate0001_G02_sample000014":"1","plate0001_C08_sample000058":"0","plate0001_H08_sample000063":"1","plate0001_G07_sample000054":"1","plate0001_F04_sample000029":"1","plate0001_H03_sample000023":"1","plate0001_G04_sample000030":"1","plate0001_D12_sample000091":"1","plate0001_C07_sample000050":"1","plate0001_B08_sample000057":"0","plate0001_E02_sample000012":"1","plate0001_A09_sample000064":"1","plate0001_D06_sample000043":"1","plate0001_E08_sample000060":"1","plate0001_D07_sample000051":"1","plate0001_F08_sample000061":"1","plate0001_A08_sample000056":"0","plate0001_G01_sample000006":"0","plate0001_D01_sample000003":"0","plate0001_H02_sample000015":"1","plate0002_A01_sample000096":"0","plate0001_H07_sample000055":"0","plate0001_F02_sample000013":"0","plate0001_C01_sample000002":"0","plate0001_C02_sample000010":"1","plate0001_F12_sample000093":"1","plate0001_D10_sample000075":"1","plate0001_C12_sample000090":"0","plate0001_F10_sample000077":"1","plate0001_D02_sample000011":"0","plate0001_C04_sample000026":"1","plate0001_E10_sample000076":"1","plate0002_B01_sample000097":"1","plate0001_G06_sample000046":"1","plate0001_G12_sample000094":"1","plate0001_E11_sample000084":"0","plate0001_H10_sample000079":"0","plate0001_A11_sample000080":"0","plate0001_D11_sample000083":"1","plate0001_A10_sample000072":"1","plate0001_H11_sample000087":"0","plate0001_G03_sample000022":"0","plate0001_B06_sample000041":"1","plate0001_F11_sample000085":"1","plate0001_B09_sample000065":"1","plate0001_G10_sample000078":"0","plate0001_B03_sample000017":"1","plate0001_H04_sample000031":"1","plate0001_C06_sample000042":"1","plate0002_C01_sample000098":"1","plate0001_H01_sample000007":"0","plate0001_F06_sample000045":"0","plate0001_D04_sample000027":"1","plate0001_G09_sample000070":"1","plate0001_B11_sample000081":"1","plate0001_F01_sample000005":"1","plate0001_E05_sample000036":"0","plate0001_A04_sample000024":"1","plate0001_D08_sample000059":"0","plate0001_G05_sample000038":"1","plate0001_A03_sample000016":"1","plate0001_E01_sample000004":"1","plate0001_C10_sample000074":"1","plate0001_C11_sample000082":"1","plate0001_F03_sample000021":"1","plate0001_E06_sample000044":"0","plate0001_D09_sample000067":"1","plate0001_F09_sample000069":"1","plate0001_G08_sample000062":"0","plate0001_B10_sample000073":"1","plate0001_G11_sample000086":"1","plate0001_A12_sample000088":"0","plate0001_H06_sample000047":"1","plate0001_H05_sample000039":"1","plate0001_D03_sample000019":"1","plate0001_A07_sample000048":"1","plate0001_F07_sample000053":"0","plate0001_E03_sample000020":"0","plate0001_B04_sample000025":"0","plate0001_D05_sample000035":"0","plate0001_B01_sample000001":"0","plate0001_C09_sample000066":"1","plate0001_A01_sample000000":"0","plate0001_B12_sample000089":"1","plate0001_E12_sample000092":"0","plate0001_E07_sample000052":"1","plate0001_B07_sample000049":"1","plate0001_E04_sample000028":"1","plate0001_C03_sample000018":"1","plate0001_E09_sample000068":"1","plate0001_B05_sample000033":"1","plate0001_A06_sample000040":"1","plate0001_F05_sample000037":"1","plate0001_C05_sample000034":"1","plate0001_H12_sample000095":"1","plate0001_A05_sample000032":"0","plate0002_D01_sample000099":"0"} \ No newline at end of file +{ + "plate0001_A01_sample000000": "0", + "plate0001_A02_sample000008": "0", + "plate0001_A03_sample000016": "0", + "plate0001_A04_sample000024": "0", + "plate0001_A05_sample000032": "0", + "plate0001_A06_sample000040": "0", + "plate0001_A07_sample000048": "0", + "plate0001_A08_sample000056": "0", + "plate0001_A09_sample000064": "0", + "plate0001_A10_sample000072": "0", + "plate0001_A11_sample000080": "0", + "plate0001_A12_sample000088": "0", + "plate0001_B01_sample000001": "0", + "plate0001_B02_sample000009": "0", + "plate0001_B03_sample000017": "0", + "plate0001_B04_sample000025": "0", + "plate0001_B05_sample000033": "0", + "plate0001_B06_sample000041": "0", + "plate0001_B07_sample000049": "0", + "plate0001_B08_sample000057": "0", + "plate0001_B09_sample000065": "0", + "plate0001_B10_sample000073": "0", + "plate0001_B11_sample000081": "0", + "plate0001_B12_sample000089": "0", + "plate0001_C01_sample000002": "0", + "plate0001_C02_sample000010": "0", + "plate0001_C03_sample000018": "0", + "plate0001_C04_sample000026": "0", + "plate0001_C05_sample000034": "0", + "plate0001_C06_sample000042": "0", + "plate0001_C07_sample000050": "0", + "plate0001_C08_sample000058": "0", + "plate0001_C09_sample000066": "0", + "plate0001_C10_sample000074": "0", + "plate0001_C11_sample000082": "1", + "plate0001_C12_sample000090": "0", + "plate0001_D01_sample000003": "0", + "plate0001_D02_sample000011": "0", + "plate0001_D03_sample000019": "0", + "plate0001_D04_sample000027": "0", + "plate0001_D05_sample000035": "0", + "plate0001_D06_sample000043": "0", + "plate0001_D07_sample000051": "1", + "plate0001_D08_sample000059": "0", + "plate0001_D09_sample000067": "1", + "plate0001_D10_sample000075": "0", + "plate0001_D11_sample000083": "1", + "plate0001_D12_sample000091": "1", + "plate0001_E01_sample000004": "0", + "plate0001_E02_sample000012": "0", + "plate0001_E03_sample000020": "0", + "plate0001_E04_sample000028": "0", + "plate0001_E05_sample000036": "0", + "plate0001_E06_sample000044": "0", + "plate0001_E07_sample000052": "1", + "plate0001_E08_sample000060": "0", + "plate0001_E09_sample000068": "0", + "plate0001_E10_sample000076": "0", + "plate0001_E11_sample000084": "0", + "plate0001_E12_sample000092": "0", + "plate0001_F01_sample000005": "0", + "plate0001_F02_sample000013": "0", + "plate0001_F03_sample000021": "0", + "plate0001_F04_sample000029": "0", + "plate0001_F05_sample000037": "0", + "plate0001_F06_sample000045": "0", + "plate0001_F07_sample000053": "0", + "plate0001_F08_sample000061": "0", + "plate0001_F09_sample000069": "0", + "plate0001_F10_sample000077": "0", + "plate0001_F11_sample000085": "0", + "plate0001_F12_sample000093": "0", + "plate0001_G01_sample000006": "0", + "plate0001_G02_sample000014": "0", + "plate0001_G03_sample000022": "0", + "plate0001_G04_sample000030": "1", + "plate0001_G05_sample000038": "0", + "plate0001_G06_sample000046": "1", + "plate0001_G07_sample000054": "0", + "plate0001_G08_sample000062": "0", + "plate0001_G09_sample000070": "0", + "plate0001_G10_sample000078": "0", + "plate0001_G11_sample000086": "0", + "plate0001_G12_sample000094": "0", + "plate0001_H01_sample000007": "0", + "plate0001_H02_sample000015": "0", + "plate0001_H03_sample000023": "0", + "plate0001_H04_sample000031": "0", + "plate0001_H05_sample000039": "0", + "plate0001_H06_sample000047": "0", + "plate0001_H07_sample000055": "0", + "plate0001_H08_sample000063": "0", + "plate0001_H09_sample000071": "0", + "plate0001_H10_sample000079": "0", + "plate0001_H11_sample000087": "0", + "plate0001_H12_sample000095": "0", + "plate0002_A01_sample000096": "0", + "plate0002_B01_sample000097": "0", + "plate0002_C01_sample000098": "0", + "plate0002_D01_sample000099": "0" +} diff --git a/src/perl/t/qc_test_data/output_examples/qc_metrics.json b/src/perl/t/qc_test_data/output_examples/qc_metrics.json index f6bb4cf89..57161701b 100644 --- a/src/perl/t/qc_test_data/output_examples/qc_metrics.json +++ b/src/perl/t/qc_test_data/output_examples/qc_metrics.json @@ -1 +1 @@ -{"urn:wtsi:plate0001_A10_sample000072":{"magnitude":"0.966010","xydiff":"-0.086076","low_maf_het":0,"heterozygosity":"0.2381","call_rate":"0.960396","identity":"NA","high_maf_het":0.085714,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_C06_sample000042":{"magnitude":"1.005553","xydiff":"-0.140127","low_maf_het":0,"heterozygosity":"0.1111","call_rate":"0.950495","identity":"NA","high_maf_het":0.104762,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_B08_sample000057":{"magnitude":"1.003525","xydiff":"-0.119656","low_maf_het":0,"heterozygosity":"0.2326","call_rate":"0.960396","identity":"NA","high_maf_het":0.209524,"duplicate":[0,1],"gender":["0.000000","1","2"]},"urn:wtsi:plate0001_C03_sample000018":{"magnitude":"0.985645","xydiff":"-0.110577","low_maf_het":0,"heterozygosity":"0.2667","call_rate":"0.960396","identity":"NA","high_maf_het":0.128571,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_A07_sample000048":{"magnitude":"0.996882","xydiff":"-0.128223","low_maf_het":0,"heterozygosity":"0.2222","call_rate":"0.980198","identity":"NA","high_maf_het":0.119048,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0002_B01_sample000097":{"magnitude":"0.997330","xydiff":"-0.240348","low_maf_het":0,"heterozygosity":"0.2174","call_rate":"0.970297","identity":"NA","high_maf_het":0.114286,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_G09_sample000070":{"magnitude":"0.994820","xydiff":"-0.125439","low_maf_het":0,"heterozygosity":"0.2727","call_rate":"0.960396","identity":"NA","high_maf_het":0.219048,"duplicate":[0,1],"gender":["0.500000","2","2"]},"urn:wtsi:plate0001_H03_sample000023":{"magnitude":"1.013329","xydiff":"-0.217666","low_maf_het":0,"heterozygosity":"0.2609","call_rate":"0.990099","identity":"NA","high_maf_het":0.119048,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_A03_sample000016":{"magnitude":"1.014335","xydiff":"-0.245071","low_maf_het":0,"heterozygosity":"0.2143","call_rate":"0.960396","identity":"NA","high_maf_het":0.119048,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_B01_sample000001":{"magnitude":"1.026298","xydiff":"-0.089915","low_maf_het":0,"heterozygosity":"0.2826","call_rate":"0.970297","identity":"NA","high_maf_het":0.12381,"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_A02_sample000008":{"magnitude":"0.960365","xydiff":"-0.157923","low_maf_het":0,"heterozygosity":"0.2143","call_rate":"0.950495","identity":"NA","high_maf_het":0.233333,"duplicate":[0,1],"gender":["0.500000","2","2"]},"urn:wtsi:plate0001_D10_sample000075":{"magnitude":"1.028869","xydiff":"-0.065512","low_maf_het":0,"heterozygosity":"0.1364","call_rate":"0.980198","identity":"NA","high_maf_het":0.119048,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_D02_sample000011":{"magnitude":"0.990876","xydiff":"-0.109427","low_maf_het":0,"heterozygosity":"0.3023","call_rate":"0.960396","identity":"NA","high_maf_het":0.133333,"duplicate":[0,1],"gender":["0.500000","2","1"]},"urn:wtsi:plate0001_F12_sample000093":{"magnitude":"0.977187","xydiff":"-0.193157","low_maf_het":0,"heterozygosity":"0.2273","call_rate":"0.950495","identity":"NA","high_maf_het":0.128571,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0002_A01_sample000096":{"magnitude":"1.037985","xydiff":"-0.149908","low_maf_het":0,"heterozygosity":"0.3023","call_rate":"0.940594","identity":"NA","high_maf_het":0.147619,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_E07_sample000052":{"magnitude":"1.007954","xydiff":"-0.107912","low_maf_het":0,"heterozygosity":"0.3333","call_rate":"0.970297","identity":"NA","high_maf_het":0.242857,"duplicate":[0,1],"gender":["0.500000","2","2"]},"urn:wtsi:plate0001_B10_sample000073":{"magnitude":"0.992177","xydiff":"-0.120641","low_maf_het":0,"heterozygosity":"0.2889","call_rate":"0.970297","identity":"NA","high_maf_het":0.109524,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_A05_sample000032":{"magnitude":"1.026305","xydiff":"-0.145595","low_maf_het":0,"heterozygosity":"0.2619","call_rate":"0.940594","identity":"NA","high_maf_het":0.157143,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_D04_sample000027":{"magnitude":"0.991528","xydiff":"-0.182563","low_maf_het":0,"heterozygosity":"0.3182","call_rate":"0.960396","identity":"NA","high_maf_het":0.27619,"duplicate":[0,1],"gender":["1.000000","2","2"]},"urn:wtsi:plate0001_E02_sample000012":{"magnitude":"1.007754","xydiff":"-0.149734","low_maf_het":0,"heterozygosity":"0.2093","call_rate":"0.950495","identity":"NA","high_maf_het":0.128571,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_C04_sample000026":{"magnitude":"0.969004","xydiff":"-0.161896","low_maf_het":0,"heterozygosity":"0.2000","call_rate":"0.960396","identity":"NA","high_maf_het":0.22381,"duplicate":[0,1],"gender":["0.500000","2","2"]},"urn:wtsi:plate0001_B05_sample000033":{"magnitude":"0.971288","xydiff":"-0.196105","low_maf_het":0,"heterozygosity":"0.2791","call_rate":"0.960396","identity":"NA","high_maf_het":0.119048,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_F08_sample000061":{"magnitude":"1.013088","xydiff":"-0.196718","low_maf_het":0,"heterozygosity":"0.1778","call_rate":"0.960396","identity":"NA","high_maf_het":0.128571,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_C11_sample000082":{"magnitude":"0.987439","xydiff":"-0.134052","low_maf_het":0,"heterozygosity":"0.2500","call_rate":"0.970297","identity":"NA","high_maf_het":0.27619,"duplicate":[0,1],"gender":["0.500000","2","2"]},"urn:wtsi:plate0001_G12_sample000094":{"magnitude":"1.029707","xydiff":"-0.148270","low_maf_het":0,"heterozygosity":"0.3261","call_rate":"0.990099","identity":"NA","high_maf_het":0.12381,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_F04_sample000029":{"magnitude":"1.016970","xydiff":"-0.201367","low_maf_het":0,"heterozygosity":"0.2391","call_rate":"0.990099","identity":"NA","high_maf_het":0.138095,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_G10_sample000078":{"magnitude":"0.980207","xydiff":"-0.202984","low_maf_het":0,"heterozygosity":"0.1951","call_rate":"0.930693","identity":"NA","high_maf_het":0.109524,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_D09_sample000067":{"magnitude":"0.999049","xydiff":"-0.100353","low_maf_het":0,"heterozygosity":"0.2391","call_rate":"0.980198","identity":"NA","high_maf_het":0.22381,"duplicate":[0,1],"gender":["0.500000","2","2"]},"urn:wtsi:plate0001_E09_sample000068":{"magnitude":"1.029257","xydiff":"-0.090627","low_maf_het":0,"heterozygosity":"0.1905","call_rate":"0.950495","identity":"NA","high_maf_het":0.1,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0002_C01_sample000098":{"magnitude":"1.039791","xydiff":"-0.162776","low_maf_het":0,"heterozygosity":"0.2826","call_rate":"0.990099","identity":"NA","high_maf_het":0.138095,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_G11_sample000086":{"magnitude":"1.038192","xydiff":"-0.108705","low_maf_het":0,"heterozygosity":"0.2727","call_rate":"0.980198","identity":"NA","high_maf_het":0.128571,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_F09_sample000069":{"magnitude":"1.039111","xydiff":"-0.108667","low_maf_het":0,"heterozygosity":"0.2609","call_rate":"0.960396","identity":"NA","high_maf_het":0.257143,"duplicate":[0,1],"gender":["0.500000","2","2"]},"urn:wtsi:plate0001_H05_sample000039":{"magnitude":"0.994305","xydiff":"-0.242296","low_maf_het":0,"heterozygosity":"0.2500","call_rate":"0.970297","identity":"NA","high_maf_het":0.104762,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_B03_sample000017":{"magnitude":"1.043134","xydiff":"-0.173508","low_maf_het":0,"heterozygosity":"0.1778","call_rate":"0.960396","identity":"NA","high_maf_het":0.114286,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_C09_sample000066":{"magnitude":"0.971911","xydiff":"-0.117757","low_maf_het":0,"heterozygosity":"0.3023","call_rate":"0.950495","identity":"NA","high_maf_het":0.290476,"duplicate":[0,1],"gender":["0.500000","2","2"]},"urn:wtsi:plate0001_F11_sample000085":{"magnitude":"0.999356","xydiff":"-0.191296","low_maf_het":0,"heterozygosity":"0.2222","call_rate":"0.980198","identity":"NA","high_maf_het":0.280952,"duplicate":[0,1],"gender":["0.500000","2","2"]},"urn:wtsi:plate0001_B07_sample000049":{"magnitude":"0.967954","xydiff":"-0.097461","low_maf_het":0,"heterozygosity":"0.2727","call_rate":"0.980198","identity":"NA","high_maf_het":0.104762,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_F06_sample000045":{"magnitude":"1.031918","xydiff":"-0.029179","low_maf_het":0,"heterozygosity":"0.3333","call_rate":"0.990099","identity":"NA","high_maf_het":0.266667,"duplicate":[0,1],"gender":["0.000000","1","2"]},"urn:wtsi:plate0001_F05_sample000037":{"magnitude":"0.998067","xydiff":"-0.049692","low_maf_het":0,"heterozygosity":"0.2889","call_rate":"0.950495","identity":"NA","high_maf_het":0.128571,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_F03_sample000021":{"magnitude":"0.994190","xydiff":"-0.246363","low_maf_het":0,"heterozygosity":"0.1739","call_rate":"0.990099","identity":"NA","high_maf_het":0.095238,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_C07_sample000050":{"magnitude":"1.038989","xydiff":"-0.141620","low_maf_het":0,"heterozygosity":"0.1818","call_rate":"0.970297","identity":"NA","high_maf_het":0.119048,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_C05_sample000034":{"magnitude":"0.991093","xydiff":"-0.104210","low_maf_het":0,"heterozygosity":"0.2889","call_rate":"0.980198","identity":"NA","high_maf_het":0.114286,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_E11_sample000084":{"magnitude":"0.992127","xydiff":"-0.144665","low_maf_het":0,"heterozygosity":"0.1304","call_rate":"0.990099","identity":"NA","high_maf_het":0.195238,"duplicate":[0,1],"gender":["0.000000","1","2"]},"urn:wtsi:plate0001_C02_sample000010":{"magnitude":"0.964957","xydiff":"-0.113543","low_maf_het":0,"heterozygosity":"0.2326","call_rate":"0.970297","identity":"NA","high_maf_het":0.228571,"duplicate":[0,1],"gender":["1.000000","2","2"]},"urn:wtsi:plate0001_B09_sample000065":{"magnitude":"1.002049","xydiff":"-0.208031","low_maf_het":0,"heterozygosity":"0.2381","call_rate":"0.950495","identity":"NA","high_maf_het":0.090476,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_C12_sample000090":{"magnitude":"0.980026","xydiff":"-0.105226","low_maf_het":0,"heterozygosity":"0.2558","call_rate":"0.940594","identity":"NA","high_maf_het":0.12381,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_B11_sample000081":{"magnitude":"1.023849","xydiff":"-0.067639","low_maf_het":0,"heterozygosity":"0.2444","call_rate":"0.960396","identity":"NA","high_maf_het":0.114286,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_H02_sample000015":{"magnitude":"0.988325","xydiff":"-0.139028","low_maf_het":0,"heterozygosity":"0.2444","call_rate":"0.950495","identity":"NA","high_maf_het":0.261905,"duplicate":[0,1],"gender":["0.500000","2","2"]},"urn:wtsi:plate0001_E03_sample000020":{"magnitude":"0.966975","xydiff":"-0.011922","low_maf_het":0,"heterozygosity":"0.2222","call_rate":"0.990099","identity":"NA","high_maf_het":0.138095,"duplicate":[0,1],"gender":["0.500000","2","1"]},"urn:wtsi:plate0001_G01_sample000006":{"magnitude":"1.016030","xydiff":"-0.075592","low_maf_het":0,"heterozygosity":"0.2000","call_rate":"0.970297","identity":"NA","high_maf_het":0.233333,"duplicate":["1.0000",0],"gender":["0.000000","1","2"]},"urn:wtsi:plate0001_F07_sample000053":{"magnitude":"0.988512","xydiff":"-0.115962","low_maf_het":0,"heterozygosity":"0.1778","call_rate":"0.970297","identity":"NA","high_maf_het":0.214286,"duplicate":[0,1],"gender":["0.000000","1","2"]},"urn:wtsi:plate0001_H12_sample000095":{"magnitude":"0.967335","xydiff":"-0.196799","low_maf_het":0,"heterozygosity":"0.3478","call_rate":"0.950495","identity":"NA","high_maf_het":0.285714,"duplicate":[0,1],"gender":["0.500000","2","2"]},"urn:wtsi:plate0001_G07_sample000054":{"magnitude":"0.970802","xydiff":"-0.042666","low_maf_het":0,"heterozygosity":"0.2791","call_rate":"0.960396","identity":"NA","high_maf_het":0.128571,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_H09_sample000071":{"magnitude":"0.964609","xydiff":"-0.166427","low_maf_het":0,"heterozygosity":"0.2826","call_rate":"0.960396","identity":"NA","high_maf_het":0.171429,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_B04_sample000025":{"magnitude":"1.016424","xydiff":"-0.039542","low_maf_het":0,"heterozygosity":"0.2955","call_rate":"0.950495","identity":"NA","high_maf_het":0.228571,"duplicate":[0,1],"gender":["0.000000","1","2"]},"urn:wtsi:plate0001_A11_sample000080":{"magnitude":"1.037730","xydiff":"-0.245462","low_maf_het":0,"heterozygosity":"0.3409","call_rate":"0.980198","identity":"NA","high_maf_het":0.266667,"duplicate":[0,1],"gender":["0.000000","1","2"]},"urn:wtsi:plate0001_B06_sample000041":{"magnitude":"0.987562","xydiff":"-0.126078","low_maf_het":0,"heterozygosity":"0.3043","call_rate":"1.000000","identity":"NA","high_maf_het":0.266667,"duplicate":[0,1],"gender":["0.500000","2","2"]},"urn:wtsi:plate0001_D07_sample000051":{"magnitude":"0.949601","xydiff":"-0.138272","low_maf_het":0,"heterozygosity":"0.2667","call_rate":"0.970297","identity":"NA","high_maf_het":0.209524,"duplicate":[0,1],"gender":["1.000000","2","2"]},"urn:wtsi:plate0001_H10_sample000079":{"magnitude":"1.003459","xydiff":"-0.141715","low_maf_het":0,"heterozygosity":"0.3478","call_rate":"0.960396","identity":"NA","high_maf_het":0.209524,"duplicate":[0,1],"gender":["0.000000","1","2"]},"urn:wtsi:plate0001_E05_sample000036":{"magnitude":"1.014827","xydiff":"-0.139358","low_maf_het":0,"heterozygosity":"0.2045","call_rate":"0.970297","identity":"NA","high_maf_het":0.242857,"duplicate":[0,1],"gender":["0.000000","1","2"]},"urn:wtsi:plate0001_D12_sample000091":{"magnitude":"0.977348","xydiff":"-0.129244","low_maf_het":0,"heterozygosity":"0.1957","call_rate":"0.990099","identity":"NA","high_maf_het":0.190476,"duplicate":[0,1],"gender":["0.500000","2","2"]},"urn:wtsi:plate0001_C08_sample000058":{"magnitude":"1.036527","xydiff":"-0.061958","low_maf_het":0,"heterozygosity":"0.1556","call_rate":"0.980198","identity":"NA","high_maf_het":0.090476,"duplicate":[0,1],"gender":["0.500000","2","1"]},"urn:wtsi:plate0001_G02_sample000014":{"magnitude":"0.998786","xydiff":"-0.093042","low_maf_het":0,"heterozygosity":"0.3556","call_rate":"0.970297","identity":"NA","high_maf_het":0.147619,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_E01_sample000004":{"magnitude":"1.004945","xydiff":"-0.079625","low_maf_het":0,"heterozygosity":"0.1364","call_rate":"0.980198","identity":"NA","high_maf_het":0.204762,"duplicate":["1.0000",1],"gender":["0.500000","2","2"]},"urn:wtsi:plate0001_G06_sample000046":{"magnitude":"1.015049","xydiff":"-0.137649","low_maf_het":0,"heterozygosity":"0.2174","call_rate":"0.980198","identity":"NA","high_maf_het":0.1,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_F01_sample000005":{"magnitude":"0.992848","xydiff":"-0.105508","low_maf_het":0,"heterozygosity":"0.1364","call_rate":"0.980198","identity":"NA","high_maf_het":0.204762,"duplicate":["1.0000",1],"gender":["0.500000","2","2"]},"urn:wtsi:plate0001_E08_sample000060":{"magnitude":"0.977505","xydiff":"-0.149240","low_maf_het":0,"heterozygosity":"0.2093","call_rate":"0.960396","identity":"NA","high_maf_het":0.128571,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_E04_sample000028":{"magnitude":"1.005525","xydiff":"-0.120576","low_maf_het":0,"heterozygosity":"0.3261","call_rate":"0.950495","identity":"NA","high_maf_het":0.319048,"duplicate":[0,1],"gender":["0.500000","2","2"]},"urn:wtsi:plate0001_A12_sample000088":{"magnitude":"1.018251","xydiff":"-0.240315","low_maf_het":0,"heterozygosity":"0.1556","call_rate":"0.970297","identity":"NA","high_maf_het":0.209524,"duplicate":[0,1],"gender":["0.000000","1","2"]},"urn:wtsi:plate0001_C10_sample000074":{"magnitude":"0.998443","xydiff":"-0.174678","low_maf_het":0,"heterozygosity":"0.4000","call_rate":"0.990099","identity":"NA","high_maf_het":0.180952,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_G04_sample000030":{"magnitude":"1.024849","xydiff":"-0.240325","low_maf_het":0,"heterozygosity":"0.1364","call_rate":"0.970297","identity":"NA","high_maf_het":0.219048,"duplicate":[0,1],"gender":["1.000000","2","2"]},"urn:wtsi:plate0001_E10_sample000076":{"magnitude":"0.976225","xydiff":"-0.090911","low_maf_het":0,"heterozygosity":"0.3556","call_rate":"0.970297","identity":"NA","high_maf_het":0.157143,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_F10_sample000077":{"magnitude":"1.002032","xydiff":"-0.127432","low_maf_het":0,"heterozygosity":"0.2391","call_rate":"0.960396","identity":"NA","high_maf_het":0.114286,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_A04_sample000024":{"magnitude":"0.986381","xydiff":"-0.100486","low_maf_het":0,"heterozygosity":"0.1304","call_rate":"1.000000","identity":"NA","high_maf_het":0.214286,"duplicate":[0,1],"gender":["0.500000","2","2"]},"urn:wtsi:plate0001_D03_sample000019":{"magnitude":"1.025111","xydiff":"-0.099961","low_maf_het":0,"heterozygosity":"0.3111","call_rate":"0.970297","identity":"NA","high_maf_het":0.152381,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_B02_sample000009":{"magnitude":"0.985721","xydiff":"-0.152706","low_maf_het":0,"heterozygosity":"0.2143","call_rate":"0.950495","identity":"NA","high_maf_het":0.233333,"duplicate":[0,1],"gender":["0.500000","2","2"]},"urn:wtsi:plate0001_A08_sample000056":{"magnitude":"1.004768","xydiff":"-0.107821","low_maf_het":0,"heterozygosity":"0.2826","call_rate":"0.970297","identity":"NA","high_maf_het":0.242857,"duplicate":[0,1],"gender":["0.000000","1","2"]},"urn:wtsi:plate0001_H11_sample000087":{"magnitude":"0.996005","xydiff":"-0.159525","low_maf_het":0,"heterozygosity":"0.1957","call_rate":"0.990099","identity":"NA","high_maf_het":0.247619,"duplicate":[0,1],"gender":["0.000000","1","2"]},"urn:wtsi:plate0001_H08_sample000063":{"magnitude":"0.986621","xydiff":"-0.058612","low_maf_het":0,"heterozygosity":"0.2222","call_rate":"0.950495","identity":"NA","high_maf_het":0.142857,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_H04_sample000031":{"magnitude":"1.011570","xydiff":"-0.181667","low_maf_het":0,"heterozygosity":"0.3556","call_rate":"0.990099","identity":"NA","high_maf_het":0.161905,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_E12_sample000092":{"magnitude":"1.023070","xydiff":"-0.113106","low_maf_het":0,"heterozygosity":"0.3043","call_rate":"0.980198","identity":"NA","high_maf_het":0.138095,"duplicate":[0,1],"gender":["0.500000","2","1"]},"urn:wtsi:plate0001_B12_sample000089":{"magnitude":"0.999501","xydiff":"-0.190969","low_maf_het":0,"heterozygosity":"0.2444","call_rate":"0.950495","identity":"NA","high_maf_het":0.152381,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_H06_sample000047":{"magnitude":"0.966256","xydiff":"-0.182645","low_maf_het":0,"heterozygosity":"0.3778","call_rate":"0.980198","identity":"NA","high_maf_het":0.252381,"duplicate":[0,1],"gender":["0.500000","2","2"]},"urn:wtsi:plate0001_G08_sample000062":{"magnitude":"1.015147","xydiff":"-0.123747","low_maf_het":0,"heterozygosity":"0.2195","call_rate":"0.940594","identity":"NA","high_maf_het":0.104762,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_D11_sample000083":{"magnitude":"1.041952","xydiff":"-0.147986","low_maf_het":0,"heterozygosity":"0.2222","call_rate":"0.990099","identity":"NA","high_maf_het":0.128571,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_H01_sample000007":{"magnitude":"1.011790","xydiff":"-0.082686","low_maf_het":0,"heterozygosity":"0.2000","call_rate":"0.970297","identity":"NA","high_maf_het":0.233333,"duplicate":[0,1],"gender":["0.000000","1","2"]},"urn:wtsi:plate0002_D01_sample000099":{"magnitude":"0.975443","xydiff":"-0.109670","low_maf_het":0,"heterozygosity":"0.3478","call_rate":"0.960396","identity":"NA","high_maf_het":0.157143,"duplicate":[0,1],"gender":["0.500000","2","1"]},"urn:wtsi:plate0001_D05_sample000035":{"magnitude":"0.996472","xydiff":"0.001561","low_maf_het":0,"heterozygosity":"0.3556","call_rate":"0.980198","identity":"NA","high_maf_het":0.285714,"duplicate":[0,1],"gender":["0.500000","2","2"]},"urn:wtsi:plate0001_D06_sample000043":{"magnitude":"0.999255","xydiff":"-0.228706","low_maf_het":0,"heterozygosity":"0.2000","call_rate":"0.980198","identity":"NA","high_maf_het":0.104762,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_H07_sample000055":{"magnitude":"0.986665","xydiff":"-0.168941","low_maf_het":0,"heterozygosity":"0.3636","call_rate":"0.970297","identity":"NA","high_maf_het":0.242857,"duplicate":[0,1],"gender":["0.000000","1","2"]},"urn:wtsi:plate0001_A06_sample000040":{"magnitude":"0.971424","xydiff":"-0.064558","low_maf_het":0,"heterozygosity":"0.1860","call_rate":"0.960396","identity":"NA","high_maf_het":0.104762,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_D08_sample000059":{"magnitude":"1.035433","xydiff":"-0.227489","low_maf_het":0,"heterozygosity":"0.1591","call_rate":"0.960396","identity":"NA","high_maf_het":0.22381,"duplicate":[0,1],"gender":["0.000000","1","2"]},"urn:wtsi:plate0001_F02_sample000013":{"magnitude":"0.981736","xydiff":"-0.130109","low_maf_het":0,"heterozygosity":"0.1111","call_rate":"0.940594","identity":"NA","high_maf_het":0.142857,"duplicate":[0,1],"gender":["1.000000","2","2"]},"urn:wtsi:plate0001_A09_sample000064":{"magnitude":"0.991262","xydiff":"-0.250982","low_maf_het":0,"heterozygosity":"0.2889","call_rate":"0.950495","identity":"NA","high_maf_het":0.147619,"duplicate":[0,1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_G05_sample000038":{"magnitude":"1.015826","xydiff":"-0.174420","low_maf_het":0,"heterozygosity":"0.2326","call_rate":"0.960396","identity":"NA","high_maf_het":0.22381,"duplicate":[0,1],"gender":["0.500000","2","2"]},"urn:wtsi:plate0001_C01_sample000002":{"magnitude":"0.960316","xydiff":"-0.209444","low_maf_het":0,"heterozygosity":"0.2683","call_rate":"0.920792","identity":"NA","high_maf_het":0.12381,"duplicate":["1.0000",0],"gender":["0.000000","1","1"]}} \ No newline at end of file +{"urn:wtsi:plate0001_C06_sample000042":{"magnitude":"1.005553","heterozygosity":"0.1111","xydiff":"-0.140127","call_rate":"0.950495","identity":["0.0000","0.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_A10_sample000072":{"magnitude":"0.966010","heterozygosity":"0.2381","xydiff":"-0.086076","call_rate":"0.960396","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_B08_sample000057":{"magnitude":"1.003525","heterozygosity":"0.2326","xydiff":"-0.119656","call_rate":"0.960396","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","2"]},"urn:wtsi:plate0001_C03_sample000018":{"magnitude":"0.985645","heterozygosity":"0.2667","xydiff":"-0.110577","call_rate":"0.960396","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_A07_sample000048":{"magnitude":"0.996882","heterozygosity":"0.2222","xydiff":"-0.128223","call_rate":"0.980198","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0002_B01_sample000097":{"magnitude":"0.997330","heterozygosity":"0.2174","xydiff":"-0.240348","call_rate":"0.970297","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_G09_sample000070":{"magnitude":"0.994820","heterozygosity":"0.2727","xydiff":"-0.125439","call_rate":"0.960396","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.500000","2","2"]},"urn:wtsi:plate0001_H03_sample000023":{"magnitude":"1.013329","heterozygosity":"0.2609","xydiff":"-0.217666","call_rate":"0.990099","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_A02_sample000008":{"magnitude":"0.960365","heterozygosity":"0.2143","xydiff":"-0.157923","call_rate":"0.950495","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.500000","2","2"]},"urn:wtsi:plate0001_A03_sample000016":{"magnitude":"1.014335","heterozygosity":"0.2143","xydiff":"-0.245071","call_rate":"0.960396","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_B01_sample000001":{"magnitude":"1.026298","heterozygosity":"0.2826","xydiff":"-0.089915","call_rate":"0.970297","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_D02_sample000011":{"magnitude":"0.990876","heterozygosity":"0.3023","xydiff":"-0.109427","call_rate":"0.960396","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.500000","2","1"]},"urn:wtsi:plate0001_D10_sample000075":{"magnitude":"1.028869","heterozygosity":"0.1364","xydiff":"-0.065512","call_rate":"0.980198","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_F12_sample000093":{"magnitude":"0.977187","heterozygosity":"0.2273","xydiff":"-0.193157","call_rate":"0.950495","identity":["0.0000","0.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0002_A01_sample000096":{"magnitude":"1.037985","heterozygosity":"0.3023","xydiff":"-0.149908","call_rate":"0.940594","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_E07_sample000052":{"magnitude":"1.007954","heterozygosity":"0.3333","xydiff":"-0.107912","call_rate":"0.970297","identity":["1.0000","1.0000"],"duplicate":["1.0000",1],"gender":["0.500000","2","2"]},"urn:wtsi:plate0001_B10_sample000073":{"magnitude":"0.992177","heterozygosity":"0.2889","xydiff":"-0.120641","call_rate":"0.970297","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_A05_sample000032":{"magnitude":"1.026305","heterozygosity":"0.2619","xydiff":"-0.145595","call_rate":"0.940594","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_E02_sample000012":{"magnitude":"1.007754","heterozygosity":"0.2093","xydiff":"-0.149734","call_rate":"0.950495","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_D04_sample000027":{"magnitude":"0.991528","heterozygosity":"0.3182","xydiff":"-0.182563","call_rate":"0.960396","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["1.000000","2","2"]},"urn:wtsi:plate0001_C04_sample000026":{"magnitude":"0.969004","heterozygosity":"0.2000","xydiff":"-0.161896","call_rate":"0.960396","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.500000","2","2"]},"urn:wtsi:plate0001_B05_sample000033":{"magnitude":"0.971288","heterozygosity":"0.2791","xydiff":"-0.196105","call_rate":"0.960396","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_F08_sample000061":{"magnitude":"1.013088","heterozygosity":"0.1778","xydiff":"-0.196718","call_rate":"0.960396","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_C11_sample000082":{"magnitude":"0.987439","heterozygosity":"0.2500","xydiff":"-0.134052","call_rate":"0.970297","identity":["1.0000","1.0000"],"duplicate":["1.0000",1],"gender":["0.500000","2","2"]},"urn:wtsi:plate0001_G12_sample000094":{"magnitude":"1.029707","heterozygosity":"0.3261","xydiff":"-0.148270","call_rate":"0.990099","identity":["0.0000","0.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_F04_sample000029":{"magnitude":"1.016970","heterozygosity":"0.2391","xydiff":"-0.201367","call_rate":"0.990099","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_G10_sample000078":{"magnitude":"0.980207","heterozygosity":"0.1951","xydiff":"-0.202984","call_rate":"0.930693","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_D09_sample000067":{"magnitude":"0.999049","heterozygosity":"0.2391","xydiff":"-0.100353","call_rate":"0.980198","identity":["1.0000","1.0000"],"duplicate":["1.0000",1],"gender":["0.500000","2","2"]},"urn:wtsi:plate0001_E09_sample000068":{"magnitude":"1.029257","heterozygosity":"0.1905","xydiff":"-0.090627","call_rate":"0.950495","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0002_C01_sample000098":{"magnitude":"1.039791","heterozygosity":"0.2826","xydiff":"-0.162776","call_rate":"0.990099","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_G11_sample000086":{"magnitude":"1.038192","heterozygosity":"0.2727","xydiff":"-0.108705","call_rate":"0.980198","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_F09_sample000069":{"magnitude":"1.039111","heterozygosity":"0.2609","xydiff":"-0.108667","call_rate":"0.960396","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.500000","2","2"]},"urn:wtsi:plate0001_H05_sample000039":{"magnitude":"0.994305","heterozygosity":"0.2500","xydiff":"-0.242296","call_rate":"0.970297","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_B03_sample000017":{"magnitude":"1.043134","heterozygosity":"0.1778","xydiff":"-0.173508","call_rate":"0.960396","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_C09_sample000066":{"magnitude":"0.971911","heterozygosity":"0.3023","xydiff":"-0.117757","call_rate":"0.950495","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.500000","2","2"]},"urn:wtsi:plate0001_F05_sample000037":{"magnitude":"0.998067","heterozygosity":"0.2889","xydiff":"-0.049692","call_rate":"0.950495","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_F06_sample000045":{"magnitude":"1.031918","heterozygosity":"0.3333","xydiff":"-0.029179","call_rate":"0.990099","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","2"]},"urn:wtsi:plate0001_B07_sample000049":{"magnitude":"0.967954","heterozygosity":"0.2727","xydiff":"-0.097461","call_rate":"0.980198","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_F11_sample000085":{"magnitude":"0.999356","heterozygosity":"0.2222","xydiff":"-0.191296","call_rate":"0.980198","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.500000","2","2"]},"urn:wtsi:plate0001_F03_sample000021":{"magnitude":"0.994190","heterozygosity":"0.1739","xydiff":"-0.246363","call_rate":"0.990099","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_C07_sample000050":{"magnitude":"1.038989","heterozygosity":"0.1818","xydiff":"-0.141620","call_rate":"0.970297","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_C05_sample000034":{"magnitude":"0.991093","heterozygosity":"0.2889","xydiff":"-0.104210","call_rate":"0.980198","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_C02_sample000010":{"magnitude":"0.964957","heterozygosity":"0.2326","xydiff":"-0.113543","call_rate":"0.970297","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["1.000000","2","2"]},"urn:wtsi:plate0001_E11_sample000084":{"magnitude":"0.992127","heterozygosity":"0.1304","xydiff":"-0.144665","call_rate":"0.990099","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","2"]},"urn:wtsi:plate0001_B09_sample000065":{"magnitude":"1.002049","heterozygosity":"0.2381","xydiff":"-0.208031","call_rate":"0.950495","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_C12_sample000090":{"magnitude":"0.980026","heterozygosity":"0.2558","xydiff":"-0.105226","call_rate":"0.940594","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_B11_sample000081":{"magnitude":"1.023849","heterozygosity":"0.2444","xydiff":"-0.067639","call_rate":"0.960396","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_H02_sample000015":{"magnitude":"0.988325","heterozygosity":"0.2444","xydiff":"-0.139028","call_rate":"0.950495","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.500000","2","2"]},"urn:wtsi:plate0001_E03_sample000020":{"magnitude":"0.966975","heterozygosity":"0.2222","xydiff":"-0.011922","call_rate":"0.990099","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.500000","2","1"]},"urn:wtsi:plate0001_F07_sample000053":{"magnitude":"0.988512","heterozygosity":"0.1778","xydiff":"-0.115962","call_rate":"0.970297","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","2"]},"urn:wtsi:plate0001_G01_sample000006":{"magnitude":"1.016030","heterozygosity":"0.2000","xydiff":"-0.075592","call_rate":"0.970297","identity":["0.0000","0.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","2"]},"urn:wtsi:plate0001_H12_sample000095":{"magnitude":"0.967335","heterozygosity":"0.3478","xydiff":"-0.196799","call_rate":"0.950495","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.500000","2","2"]},"urn:wtsi:plate0001_G07_sample000054":{"magnitude":"0.970802","heterozygosity":"0.2791","xydiff":"-0.042666","call_rate":"0.960396","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_B04_sample000025":{"magnitude":"1.016424","heterozygosity":"0.2955","xydiff":"-0.039542","call_rate":"0.950495","identity":["0.0000","0.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","2"]},"urn:wtsi:plate0001_H09_sample000071":{"magnitude":"0.964609","heterozygosity":"0.2826","xydiff":"-0.166427","call_rate":"0.960396","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_A11_sample000080":{"magnitude":"1.037730","heterozygosity":"0.3409","xydiff":"-0.245462","call_rate":"0.980198","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","2"]},"urn:wtsi:plate0001_B06_sample000041":{"magnitude":"0.987562","heterozygosity":"0.3043","xydiff":"-0.126078","call_rate":"1.000000","identity":["0.0000","0.0000"],"duplicate":["1.0000",1],"gender":["0.500000","2","2"]},"urn:wtsi:plate0001_D07_sample000051":{"magnitude":"0.949601","heterozygosity":"0.2667","xydiff":"-0.138272","call_rate":"0.970297","identity":["1.0000","1.0000"],"duplicate":["1.0000",1],"gender":["1.000000","2","2"]},"urn:wtsi:plate0001_E05_sample000036":{"magnitude":"1.014827","heterozygosity":"0.2045","xydiff":"-0.139358","call_rate":"0.970297","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","2"]},"urn:wtsi:plate0001_H10_sample000079":{"magnitude":"1.003459","heterozygosity":"0.3478","xydiff":"-0.141715","call_rate":"0.960396","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","2"]},"urn:wtsi:plate0001_D12_sample000091":{"magnitude":"0.977348","heterozygosity":"0.1957","xydiff":"-0.129244","call_rate":"0.990099","identity":["1.0000","1.0000"],"duplicate":["1.0000",1],"gender":["0.500000","2","2"]},"urn:wtsi:plate0001_C08_sample000058":{"magnitude":"1.036527","heterozygosity":"0.1556","xydiff":"-0.061958","call_rate":"0.980198","identity":["1.0000","1.0000"],"duplicate":["1.0000",1],"gender":["0.500000","2","1"]},"urn:wtsi:plate0001_E01_sample000004":{"magnitude":"1.004945","heterozygosity":"0.1364","xydiff":"-0.079625","call_rate":"0.980198","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.500000","2","2"]},"urn:wtsi:plate0001_G02_sample000014":{"magnitude":"0.998786","heterozygosity":"0.3556","xydiff":"-0.093042","call_rate":"0.970297","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_G06_sample000046":{"magnitude":"1.015049","heterozygosity":"0.2174","xydiff":"-0.137649","call_rate":"0.980198","identity":["1.0000","1.0000"],"duplicate":["1.0000",1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_E08_sample000060":{"magnitude":"0.977505","heterozygosity":"0.2093","xydiff":"-0.149240","call_rate":"0.960396","identity":["0.0000","0.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_F01_sample000005":{"magnitude":"0.992848","heterozygosity":"0.1364","xydiff":"-0.105508","call_rate":"0.980198","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.500000","2","2"]},"urn:wtsi:plate0001_E04_sample000028":{"magnitude":"1.005525","heterozygosity":"0.3261","xydiff":"-0.120576","call_rate":"0.950495","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.500000","2","2"]},"urn:wtsi:plate0001_C10_sample000074":{"magnitude":"0.998443","heterozygosity":"0.4000","xydiff":"-0.174678","call_rate":"0.990099","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_A12_sample000088":{"magnitude":"1.018251","heterozygosity":"0.1556","xydiff":"-0.240315","call_rate":"0.970297","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","2"]},"urn:wtsi:plate0001_G04_sample000030":{"magnitude":"1.024849","heterozygosity":"0.1364","xydiff":"-0.240325","call_rate":"0.970297","identity":["1.0000","1.0000"],"duplicate":["1.0000",1],"gender":["1.000000","2","2"]},"urn:wtsi:plate0001_E10_sample000076":{"magnitude":"0.976225","heterozygosity":"0.3556","xydiff":"-0.090911","call_rate":"0.970297","identity":["0.0000","0.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_F10_sample000077":{"magnitude":"1.002032","heterozygosity":"0.2391","xydiff":"-0.127432","call_rate":"0.960396","identity":["0.0000","0.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_B02_sample000009":{"magnitude":"0.985721","heterozygosity":"0.2143","xydiff":"-0.152706","call_rate":"0.950495","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.500000","2","2"]},"urn:wtsi:plate0001_A04_sample000024":{"magnitude":"0.986381","heterozygosity":"0.1304","xydiff":"-0.100486","call_rate":"1.000000","identity":["0.0000","0.0000"],"duplicate":["1.0000",1],"gender":["0.500000","2","2"]},"urn:wtsi:plate0001_A08_sample000056":{"magnitude":"1.004768","heterozygosity":"0.2826","xydiff":"-0.107821","call_rate":"0.970297","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","2"]},"urn:wtsi:plate0001_D03_sample000019":{"magnitude":"1.025111","heterozygosity":"0.3111","xydiff":"-0.099961","call_rate":"0.970297","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_H11_sample000087":{"magnitude":"0.996005","heterozygosity":"0.1957","xydiff":"-0.159525","call_rate":"0.990099","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","2"]},"urn:wtsi:plate0001_H08_sample000063":{"magnitude":"0.986621","heterozygosity":"0.2222","xydiff":"-0.058612","call_rate":"0.950495","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_H04_sample000031":{"magnitude":"1.011570","heterozygosity":"0.3556","xydiff":"-0.181667","call_rate":"0.990099","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_B12_sample000089":{"magnitude":"0.999501","heterozygosity":"0.2444","xydiff":"-0.190969","call_rate":"0.950495","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_E12_sample000092":{"magnitude":"1.023070","heterozygosity":"0.3043","xydiff":"-0.113106","call_rate":"0.980198","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.500000","2","1"]},"urn:wtsi:plate0001_H06_sample000047":{"magnitude":"0.966256","heterozygosity":"0.3778","xydiff":"-0.182645","call_rate":"0.980198","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.500000","2","2"]},"urn:wtsi:plate0001_G08_sample000062":{"magnitude":"1.015147","heterozygosity":"0.2195","xydiff":"-0.123747","call_rate":"0.940594","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_D11_sample000083":{"magnitude":"1.041952","heterozygosity":"0.2222","xydiff":"-0.147986","call_rate":"0.990099","identity":["1.0000","1.0000"],"duplicate":["1.0000",1],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_H01_sample000007":{"magnitude":"1.011790","heterozygosity":"0.2000","xydiff":"-0.082686","call_rate":"0.970297","identity":["0.0000","0.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","2"]},"urn:wtsi:plate0002_D01_sample000099":{"magnitude":"0.975443","heterozygosity":"0.3478","xydiff":"-0.109670","call_rate":"0.960396","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.500000","2","1"]},"urn:wtsi:plate0001_D06_sample000043":{"magnitude":"0.999255","heterozygosity":"0.2000","xydiff":"-0.228706","call_rate":"0.980198","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_D05_sample000035":{"magnitude":"0.996472","heterozygosity":"0.3556","xydiff":"0.001561","call_rate":"0.980198","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.500000","2","2"]},"urn:wtsi:plate0001_H07_sample000055":{"magnitude":"0.986665","heterozygosity":"0.3636","xydiff":"-0.168941","call_rate":"0.970297","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","2"]},"urn:wtsi:plate0001_A06_sample000040":{"magnitude":"0.971424","heterozygosity":"0.1860","xydiff":"-0.064558","call_rate":"0.960396","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_D08_sample000059":{"magnitude":"1.035433","heterozygosity":"0.1591","xydiff":"-0.227489","call_rate":"0.960396","identity":["0.0000","0.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","2"]},"urn:wtsi:plate0001_F02_sample000013":{"magnitude":"0.981736","heterozygosity":"0.1111","xydiff":"-0.130109","call_rate":"0.940594","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["1.000000","2","2"]},"urn:wtsi:plate0001_A09_sample000064":{"magnitude":"0.991262","heterozygosity":"0.2889","xydiff":"-0.250982","call_rate":"0.950495","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]},"urn:wtsi:plate0001_G05_sample000038":{"magnitude":"1.015826","heterozygosity":"0.2326","xydiff":"-0.174420","call_rate":"0.960396","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.500000","2","2"]},"urn:wtsi:plate0001_C01_sample000002":{"magnitude":"0.960316","heterozygosity":"0.2683","xydiff":"-0.209444","call_rate":"0.920792","identity":["1.0000","1.0000"],"duplicate":["1.0000",0],"gender":["0.000000","1","1"]}} \ No newline at end of file diff --git a/src/perl/t/qc_test_data/output_examples/qc_results.csv b/src/perl/t/qc_test_data/output_examples/qc_results.csv index b605548e4..5c54d8748 100644 --- a/src/perl/t/qc_test_data/output_examples/qc_results.csv +++ b/src/perl/t/qc_test_data/output_examples/qc_results.csv @@ -1,101 +1,101 @@ -run,project,data_supplier,snpset,rowcol,beadchip_number,supplier_name,cohort,sample,include,plate,well,pass,identity_pass,identity_value,duplicate_pass,duplicate_value,gender_pass,gender_xhet,gender_inferred,gender_supplied,call_rate_pass,call_rate_value,heterozygosity_pass,heterozygosity_value,low_maf_het_pass,low_maf_het_value,high_maf_het_pass,high_maf_het_value,magnitude_pass,magnitude_value,xydiff_pass,xydiff_value -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number001,beadchip_ABC123456,supplier_WeylandYutani00001,xenomorph_cohort,urn:wtsi:plate0001_B01_sample000001,Included,ssbc00000,A02,Fail,Pass,NA,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.970297,Pass,0.2826,Pass,0,Pass,0.12381,Pass,1.026298,Pass,-0.089915 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number002,beadchip_ABC123456,supplier_WeylandYutani00002,xenomorph_cohort,urn:wtsi:plate0001_C01_sample000002,Included,ssbc00000,A03,Fail,Pass,NA,Fail,1.0000,Pass,0.000000,Male,Male,Fail,0.920792,Pass,0.2683,Pass,0,Pass,0.12381,Pass,0.960316,Pass,-0.209444 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number004,beadchip_ABC123456,supplier_WeylandYutani00004,xenomorph_cohort,urn:wtsi:plate0001_E01_sample000004,Included,ssbc00000,A05,Pass,Pass,NA,Pass,1.0000,Pass,0.500000,Female,Female,Pass,0.980198,Pass,0.1364,Pass,0,Pass,0.204762,Pass,1.004945,Pass,-0.079625 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number005,beadchip_ABC123456,supplier_WeylandYutani00005,xenomorph_cohort,urn:wtsi:plate0001_F01_sample000005,Included,ssbc00000,A06,Pass,Pass,NA,Pass,1.0000,Pass,0.500000,Female,Female,Pass,0.980198,Pass,0.1364,Pass,0,Pass,0.204762,Pass,0.992848,Pass,-0.105508 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number006,beadchip_ABC123456,supplier_WeylandYutani00006,xenomorph_cohort,urn:wtsi:plate0001_G01_sample000006,Included,ssbc00000,A07,Fail,Pass,NA,Fail,1.0000,Fail,0.000000,Male,Female,Pass,0.970297,Pass,0.2000,Pass,0,Pass,0.233333,Pass,1.016030,Pass,-0.075592 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number007,beadchip_ABC123456,supplier_WeylandYutani00007,xenomorph_cohort,urn:wtsi:plate0001_H01_sample000007,Included,ssbc00000,A08,Fail,Pass,NA,Pass,0,Fail,0.000000,Male,Female,Pass,0.970297,Pass,0.2000,Pass,0,Pass,0.233333,Pass,1.011790,Pass,-0.082686 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number008,beadchip_ABC123456,supplier_WeylandYutani00008,xenomorph_cohort,urn:wtsi:plate0001_A02_sample000008,Included,ssbc00000,A09,Pass,Pass,NA,Pass,0,Pass,0.500000,Female,Female,Pass,0.950495,Pass,0.2143,Pass,0,Pass,0.233333,Pass,0.960365,Pass,-0.157923 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number009,beadchip_ABC123456,supplier_WeylandYutani00009,xenomorph_cohort,urn:wtsi:plate0001_B02_sample000009,Included,ssbc00000,A10,Pass,Pass,NA,Pass,0,Pass,0.500000,Female,Female,Pass,0.950495,Pass,0.2143,Pass,0,Pass,0.233333,Pass,0.985721,Pass,-0.152706 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number010,beadchip_ABC123456,supplier_WeylandYutani00010,xenomorph_cohort,urn:wtsi:plate0001_C02_sample000010,Included,ssbc00000,A11,Pass,Pass,NA,Pass,0,Pass,1.000000,Female,Female,Pass,0.970297,Pass,0.2326,Pass,0,Pass,0.228571,Pass,0.964957,Pass,-0.113543 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number011,beadchip_ABC123456,supplier_WeylandYutani00011,xenomorph_cohort,urn:wtsi:plate0001_D02_sample000011,Included,ssbc00000,A12,Fail,Pass,NA,Pass,0,Fail,0.500000,Female,Male,Pass,0.960396,Pass,0.3023,Pass,0,Pass,0.133333,Pass,0.990876,Pass,-0.109427 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number012,beadchip_ABC123456,supplier_WeylandYutani00012,xenomorph_cohort,urn:wtsi:plate0001_E02_sample000012,Included,ssbc00000,A13,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.950495,Pass,0.2093,Pass,0,Pass,0.128571,Pass,1.007754,Pass,-0.149734 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number013,beadchip_ABC123456,supplier_WeylandYutani00013,xenomorph_cohort,urn:wtsi:plate0001_F02_sample000013,Included,ssbc00000,A14,Fail,Pass,NA,Pass,0,Pass,1.000000,Female,Female,Fail,0.940594,Pass,0.1111,Pass,0,Pass,0.142857,Pass,0.981736,Pass,-0.130109 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number014,beadchip_ABC123456,supplier_WeylandYutani00014,xenomorph_cohort,urn:wtsi:plate0001_G02_sample000014,Included,ssbc00000,A15,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.970297,Pass,0.3556,Pass,0,Pass,0.147619,Pass,0.998786,Pass,-0.093042 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number015,beadchip_ABC123456,supplier_WeylandYutani00015,xenomorph_cohort,urn:wtsi:plate0001_H02_sample000015,Included,ssbc00000,A16,Pass,Pass,NA,Pass,0,Pass,0.500000,Female,Female,Pass,0.950495,Pass,0.2444,Pass,0,Pass,0.261905,Pass,0.988325,Pass,-0.139028 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number016,beadchip_ABC123456,supplier_WeylandYutani00016,xenomorph_cohort,urn:wtsi:plate0001_A03_sample000016,Included,ssbc00000,A17,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.960396,Pass,0.2143,Pass,0,Pass,0.119048,Pass,1.014335,Pass,-0.245071 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number017,beadchip_ABC123456,supplier_WeylandYutani00017,xenomorph_cohort,urn:wtsi:plate0001_B03_sample000017,Included,ssbc00000,A18,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.960396,Pass,0.1778,Pass,0,Pass,0.114286,Pass,1.043134,Pass,-0.173508 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number018,beadchip_ABC123456,supplier_WeylandYutani00018,xenomorph_cohort,urn:wtsi:plate0001_C03_sample000018,Included,ssbc00000,A19,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.960396,Pass,0.2667,Pass,0,Pass,0.128571,Pass,0.985645,Pass,-0.110577 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number019,beadchip_ABC123456,supplier_WeylandYutani00019,xenomorph_cohort,urn:wtsi:plate0001_D03_sample000019,Included,ssbc00000,A20,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.970297,Pass,0.3111,Pass,0,Pass,0.152381,Pass,1.025111,Pass,-0.099961 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number020,beadchip_ABC123456,supplier_WeylandYutani00020,xenomorph_cohort,urn:wtsi:plate0001_E03_sample000020,Included,ssbc00000,A21,Fail,Pass,NA,Pass,0,Fail,0.500000,Female,Male,Pass,0.990099,Pass,0.2222,Pass,0,Pass,0.138095,Pass,0.966975,Pass,-0.011922 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number021,beadchip_ABC123456,supplier_WeylandYutani00021,xenomorph_cohort,urn:wtsi:plate0001_F03_sample000021,Included,ssbc00000,A22,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.990099,Pass,0.1739,Pass,0,Pass,0.095238,Pass,0.994190,Pass,-0.246363 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number023,beadchip_ABC123456,supplier_WeylandYutani00023,xenomorph_cohort,urn:wtsi:plate0001_H03_sample000023,Included,ssbc00000,A24,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.990099,Pass,0.2609,Pass,0,Pass,0.119048,Pass,1.013329,Pass,-0.217666 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number024,beadchip_ABC123456,supplier_WeylandYutani00024,xenomorph_cohort,urn:wtsi:plate0001_A04_sample000024,Included,ssbc00000,B01,Pass,Pass,NA,Pass,0,Pass,0.500000,Female,Female,Pass,1.000000,Pass,0.1304,Pass,0,Pass,0.214286,Pass,0.986381,Pass,-0.100486 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number025,beadchip_ABC123456,supplier_WeylandYutani00025,xenomorph_cohort,urn:wtsi:plate0001_B04_sample000025,Included,ssbc00000,B02,Fail,Pass,NA,Pass,0,Fail,0.000000,Male,Female,Pass,0.950495,Pass,0.2955,Pass,0,Pass,0.228571,Pass,1.016424,Pass,-0.039542 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number026,beadchip_ABC123456,supplier_WeylandYutani00026,xenomorph_cohort,urn:wtsi:plate0001_C04_sample000026,Included,ssbc00000,B03,Pass,Pass,NA,Pass,0,Pass,0.500000,Female,Female,Pass,0.960396,Pass,0.2000,Pass,0,Pass,0.22381,Pass,0.969004,Pass,-0.161896 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number027,beadchip_ABC123456,supplier_WeylandYutani00027,xenomorph_cohort,urn:wtsi:plate0001_D04_sample000027,Included,ssbc00000,B04,Pass,Pass,NA,Pass,0,Pass,1.000000,Female,Female,Pass,0.960396,Pass,0.3182,Pass,0,Pass,0.27619,Pass,0.991528,Pass,-0.182563 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number028,beadchip_ABC123456,supplier_WeylandYutani00028,xenomorph_cohort,urn:wtsi:plate0001_E04_sample000028,Included,ssbc00000,B05,Pass,Pass,NA,Pass,0,Pass,0.500000,Female,Female,Pass,0.950495,Pass,0.3261,Pass,0,Pass,0.319048,Pass,1.005525,Pass,-0.120576 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number029,beadchip_ABC123456,supplier_WeylandYutani00029,xenomorph_cohort,urn:wtsi:plate0001_F04_sample000029,Included,ssbc00000,B06,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.990099,Pass,0.2391,Pass,0,Pass,0.138095,Pass,1.016970,Pass,-0.201367 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number030,beadchip_ABC123456,supplier_WeylandYutani00030,xenomorph_cohort,urn:wtsi:plate0001_G04_sample000030,Included,ssbc00000,B07,Pass,Pass,NA,Pass,0,Pass,1.000000,Female,Female,Pass,0.970297,Pass,0.1364,Pass,0,Pass,0.219048,Pass,1.024849,Pass,-0.240325 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number031,beadchip_ABC123456,supplier_WeylandYutani00031,xenomorph_cohort,urn:wtsi:plate0001_H04_sample000031,Included,ssbc00000,B08,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.990099,Pass,0.3556,Pass,0,Pass,0.161905,Pass,1.011570,Pass,-0.181667 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number032,beadchip_ABC123456,supplier_WeylandYutani00032,xenomorph_cohort,urn:wtsi:plate0001_A05_sample000032,Included,ssbc00000,B09,Fail,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Fail,0.940594,Pass,0.2619,Pass,0,Pass,0.157143,Pass,1.026305,Pass,-0.145595 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number033,beadchip_ABC123456,supplier_WeylandYutani00033,xenomorph_cohort,urn:wtsi:plate0001_B05_sample000033,Included,ssbc00000,B10,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.960396,Pass,0.2791,Pass,0,Pass,0.119048,Pass,0.971288,Pass,-0.196105 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number034,beadchip_ABC123456,supplier_WeylandYutani00034,xenomorph_cohort,urn:wtsi:plate0001_C05_sample000034,Included,ssbc00000,B11,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.980198,Pass,0.2889,Pass,0,Pass,0.114286,Pass,0.991093,Pass,-0.104210 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number035,beadchip_ABC123456,supplier_WeylandYutani00035,xenomorph_cohort,urn:wtsi:plate0001_D05_sample000035,Included,ssbc00000,B12,Fail,Pass,NA,Pass,0,Pass,0.500000,Female,Female,Pass,0.980198,Pass,0.3556,Pass,0,Pass,0.285714,Pass,0.996472,Fail,0.001561 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number036,beadchip_ABC123456,supplier_WeylandYutani00036,xenomorph_cohort,urn:wtsi:plate0001_E05_sample000036,Included,ssbc00000,B13,Fail,Pass,NA,Pass,0,Fail,0.000000,Male,Female,Pass,0.970297,Pass,0.2045,Pass,0,Pass,0.242857,Pass,1.014827,Pass,-0.139358 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number037,beadchip_ABC123456,supplier_WeylandYutani00037,xenomorph_cohort,urn:wtsi:plate0001_F05_sample000037,Included,ssbc00000,B14,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.950495,Pass,0.2889,Pass,0,Pass,0.128571,Pass,0.998067,Pass,-0.049692 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number038,beadchip_ABC123456,supplier_WeylandYutani00038,xenomorph_cohort,urn:wtsi:plate0001_G05_sample000038,Included,ssbc00000,B15,Pass,Pass,NA,Pass,0,Pass,0.500000,Female,Female,Pass,0.960396,Pass,0.2326,Pass,0,Pass,0.22381,Pass,1.015826,Pass,-0.174420 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number039,beadchip_ABC123456,supplier_WeylandYutani00039,xenomorph_cohort,urn:wtsi:plate0001_H05_sample000039,Included,ssbc00000,B16,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.970297,Pass,0.2500,Pass,0,Pass,0.104762,Pass,0.994305,Pass,-0.242296 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number040,beadchip_ABC123456,supplier_WeylandYutani00040,xenomorph_cohort,urn:wtsi:plate0001_A06_sample000040,Included,ssbc00000,B17,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.960396,Pass,0.1860,Pass,0,Pass,0.104762,Pass,0.971424,Pass,-0.064558 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number041,beadchip_ABC123456,supplier_WeylandYutani00041,xenomorph_cohort,urn:wtsi:plate0001_B06_sample000041,Included,ssbc00000,B18,Pass,Pass,NA,Pass,0,Pass,0.500000,Female,Female,Pass,1.000000,Pass,0.3043,Pass,0,Pass,0.266667,Pass,0.987562,Pass,-0.126078 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number042,beadchip_ABC123456,supplier_WeylandYutani00042,xenomorph_cohort,urn:wtsi:plate0001_C06_sample000042,Included,ssbc00000,B19,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.950495,Pass,0.1111,Pass,0,Pass,0.104762,Pass,1.005553,Pass,-0.140127 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number043,beadchip_ABC123456,supplier_WeylandYutani00043,xenomorph_cohort,urn:wtsi:plate0001_D06_sample000043,Included,ssbc00000,B20,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.980198,Pass,0.2000,Pass,0,Pass,0.104762,Pass,0.999255,Pass,-0.228706 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number045,beadchip_ABC123456,supplier_WeylandYutani00045,xenomorph_cohort,urn:wtsi:plate0001_F06_sample000045,Included,ssbc00000,B22,Fail,Pass,NA,Pass,0,Fail,0.000000,Male,Female,Pass,0.990099,Pass,0.3333,Pass,0,Pass,0.266667,Pass,1.031918,Pass,-0.029179 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number046,beadchip_ABC123456,supplier_WeylandYutani00046,xenomorph_cohort,urn:wtsi:plate0001_G06_sample000046,Included,ssbc00000,B23,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.980198,Pass,0.2174,Pass,0,Pass,0.1,Pass,1.015049,Pass,-0.137649 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number047,beadchip_ABC123456,supplier_WeylandYutani00047,xenomorph_cohort,urn:wtsi:plate0001_H06_sample000047,Included,ssbc00000,B24,Pass,Pass,NA,Pass,0,Pass,0.500000,Female,Female,Pass,0.980198,Pass,0.3778,Pass,0,Pass,0.252381,Pass,0.966256,Pass,-0.182645 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number048,beadchip_ABC123456,supplier_WeylandYutani00048,xenomorph_cohort,urn:wtsi:plate0001_A07_sample000048,Included,ssbc00000,C01,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.980198,Pass,0.2222,Pass,0,Pass,0.119048,Pass,0.996882,Pass,-0.128223 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number049,beadchip_ABC123456,supplier_WeylandYutani00049,xenomorph_cohort,urn:wtsi:plate0001_B07_sample000049,Included,ssbc00000,C02,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.980198,Pass,0.2727,Pass,0,Pass,0.104762,Pass,0.967954,Pass,-0.097461 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number050,beadchip_ABC123456,supplier_WeylandYutani00050,xenomorph_cohort,urn:wtsi:plate0001_C07_sample000050,Included,ssbc00000,C03,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.970297,Pass,0.1818,Pass,0,Pass,0.119048,Pass,1.038989,Pass,-0.141620 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number051,beadchip_ABC123456,supplier_WeylandYutani00051,xenomorph_cohort,urn:wtsi:plate0001_D07_sample000051,Included,ssbc00000,C04,Pass,Pass,NA,Pass,0,Pass,1.000000,Female,Female,Pass,0.970297,Pass,0.2667,Pass,0,Pass,0.209524,Pass,0.949601,Pass,-0.138272 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number052,beadchip_ABC123456,supplier_WeylandYutani00052,xenomorph_cohort,urn:wtsi:plate0001_E07_sample000052,Included,ssbc00000,C05,Pass,Pass,NA,Pass,0,Pass,0.500000,Female,Female,Pass,0.970297,Pass,0.3333,Pass,0,Pass,0.242857,Pass,1.007954,Pass,-0.107912 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number053,beadchip_ABC123456,supplier_WeylandYutani00053,xenomorph_cohort,urn:wtsi:plate0001_F07_sample000053,Included,ssbc00000,C06,Fail,Pass,NA,Pass,0,Fail,0.000000,Male,Female,Pass,0.970297,Pass,0.1778,Pass,0,Pass,0.214286,Pass,0.988512,Pass,-0.115962 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number054,beadchip_ABC123456,supplier_WeylandYutani00054,xenomorph_cohort,urn:wtsi:plate0001_G07_sample000054,Included,ssbc00000,C07,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.960396,Pass,0.2791,Pass,0,Pass,0.128571,Pass,0.970802,Pass,-0.042666 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number055,beadchip_ABC123456,supplier_WeylandYutani00055,xenomorph_cohort,urn:wtsi:plate0001_H07_sample000055,Included,ssbc00000,C08,Fail,Pass,NA,Pass,0,Fail,0.000000,Male,Female,Pass,0.970297,Pass,0.3636,Pass,0,Pass,0.242857,Pass,0.986665,Pass,-0.168941 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number056,beadchip_ABC123456,supplier_WeylandYutani00056,xenomorph_cohort,urn:wtsi:plate0001_A08_sample000056,Included,ssbc00000,C09,Fail,Pass,NA,Pass,0,Fail,0.000000,Male,Female,Pass,0.970297,Pass,0.2826,Pass,0,Pass,0.242857,Pass,1.004768,Pass,-0.107821 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number057,beadchip_ABC123456,supplier_WeylandYutani00057,xenomorph_cohort,urn:wtsi:plate0001_B08_sample000057,Included,ssbc00000,C10,Fail,Pass,NA,Pass,0,Fail,0.000000,Male,Female,Pass,0.960396,Pass,0.2326,Pass,0,Pass,0.209524,Pass,1.003525,Pass,-0.119656 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number058,beadchip_ABC123456,supplier_WeylandYutani00058,xenomorph_cohort,urn:wtsi:plate0001_C08_sample000058,Included,ssbc00000,C11,Fail,Pass,NA,Pass,0,Fail,0.500000,Female,Male,Pass,0.980198,Pass,0.1556,Pass,0,Pass,0.090476,Pass,1.036527,Pass,-0.061958 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number059,beadchip_ABC123456,supplier_WeylandYutani00059,xenomorph_cohort,urn:wtsi:plate0001_D08_sample000059,Included,ssbc00000,C12,Fail,Pass,NA,Pass,0,Fail,0.000000,Male,Female,Pass,0.960396,Pass,0.1591,Pass,0,Pass,0.22381,Pass,1.035433,Pass,-0.227489 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number060,beadchip_ABC123456,supplier_WeylandYutani00060,xenomorph_cohort,urn:wtsi:plate0001_E08_sample000060,Included,ssbc00000,C13,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.960396,Pass,0.2093,Pass,0,Pass,0.128571,Pass,0.977505,Pass,-0.149240 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number061,beadchip_ABC123456,supplier_WeylandYutani00061,xenomorph_cohort,urn:wtsi:plate0001_F08_sample000061,Included,ssbc00000,C14,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.960396,Pass,0.1778,Pass,0,Pass,0.128571,Pass,1.013088,Pass,-0.196718 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number062,beadchip_ABC123456,supplier_WeylandYutani00062,xenomorph_cohort,urn:wtsi:plate0001_G08_sample000062,Included,ssbc00000,C15,Fail,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Fail,0.940594,Pass,0.2195,Pass,0,Pass,0.104762,Pass,1.015147,Pass,-0.123747 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number063,beadchip_ABC123456,supplier_WeylandYutani00063,xenomorph_cohort,urn:wtsi:plate0001_H08_sample000063,Included,ssbc00000,C16,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.950495,Pass,0.2222,Pass,0,Pass,0.142857,Pass,0.986621,Pass,-0.058612 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number064,beadchip_ABC123456,supplier_WeylandYutani00064,xenomorph_cohort,urn:wtsi:plate0001_A09_sample000064,Included,ssbc00000,C17,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.950495,Pass,0.2889,Pass,0,Pass,0.147619,Pass,0.991262,Pass,-0.250982 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number065,beadchip_ABC123456,supplier_WeylandYutani00065,xenomorph_cohort,urn:wtsi:plate0001_B09_sample000065,Included,ssbc00000,C18,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.950495,Pass,0.2381,Pass,0,Pass,0.090476,Pass,1.002049,Pass,-0.208031 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number066,beadchip_ABC123456,supplier_WeylandYutani00066,xenomorph_cohort,urn:wtsi:plate0001_C09_sample000066,Included,ssbc00000,C19,Pass,Pass,NA,Pass,0,Pass,0.500000,Female,Female,Pass,0.950495,Pass,0.3023,Pass,0,Pass,0.290476,Pass,0.971911,Pass,-0.117757 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number067,beadchip_ABC123456,supplier_WeylandYutani00067,xenomorph_cohort,urn:wtsi:plate0001_D09_sample000067,Included,ssbc00000,C20,Pass,Pass,NA,Pass,0,Pass,0.500000,Female,Female,Pass,0.980198,Pass,0.2391,Pass,0,Pass,0.22381,Pass,0.999049,Pass,-0.100353 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number068,beadchip_ABC123456,supplier_WeylandYutani00068,xenomorph_cohort,urn:wtsi:plate0001_E09_sample000068,Included,ssbc00000,C21,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.950495,Pass,0.1905,Pass,0,Pass,0.1,Pass,1.029257,Pass,-0.090627 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number069,beadchip_ABC123456,supplier_WeylandYutani00069,xenomorph_cohort,urn:wtsi:plate0001_F09_sample000069,Included,ssbc00000,C22,Pass,Pass,NA,Pass,0,Pass,0.500000,Female,Female,Pass,0.960396,Pass,0.2609,Pass,0,Pass,0.257143,Pass,1.039111,Pass,-0.108667 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number070,beadchip_ABC123456,supplier_WeylandYutani00070,xenomorph_cohort,urn:wtsi:plate0001_G09_sample000070,Included,ssbc00000,C23,Pass,Pass,NA,Pass,0,Pass,0.500000,Female,Female,Pass,0.960396,Pass,0.2727,Pass,0,Pass,0.219048,Pass,0.994820,Pass,-0.125439 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number071,beadchip_ABC123456,supplier_WeylandYutani00071,xenomorph_cohort,urn:wtsi:plate0001_H09_sample000071,Included,ssbc00000,C24,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.960396,Pass,0.2826,Pass,0,Pass,0.171429,Pass,0.964609,Pass,-0.166427 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number072,beadchip_ABC123456,supplier_WeylandYutani00072,xenomorph_cohort,urn:wtsi:plate0001_A10_sample000072,Included,ssbc00000,D01,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.960396,Pass,0.2381,Pass,0,Pass,0.085714,Pass,0.966010,Pass,-0.086076 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number073,beadchip_ABC123456,supplier_WeylandYutani00073,xenomorph_cohort,urn:wtsi:plate0001_B10_sample000073,Included,ssbc00000,D02,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.970297,Pass,0.2889,Pass,0,Pass,0.109524,Pass,0.992177,Pass,-0.120641 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number074,beadchip_ABC123456,supplier_WeylandYutani00074,xenomorph_cohort,urn:wtsi:plate0001_C10_sample000074,Included,ssbc00000,D03,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.990099,Pass,0.4000,Pass,0,Pass,0.180952,Pass,0.998443,Pass,-0.174678 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number075,beadchip_ABC123456,supplier_WeylandYutani00075,xenomorph_cohort,urn:wtsi:plate0001_D10_sample000075,Included,ssbc00000,D04,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.980198,Pass,0.1364,Pass,0,Pass,0.119048,Pass,1.028869,Pass,-0.065512 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number076,beadchip_ABC123456,supplier_WeylandYutani00076,xenomorph_cohort,urn:wtsi:plate0001_E10_sample000076,Included,ssbc00000,D05,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.970297,Pass,0.3556,Pass,0,Pass,0.157143,Pass,0.976225,Pass,-0.090911 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number077,beadchip_ABC123456,supplier_WeylandYutani00077,xenomorph_cohort,urn:wtsi:plate0001_F10_sample000077,Included,ssbc00000,D06,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.960396,Pass,0.2391,Pass,0,Pass,0.114286,Pass,1.002032,Pass,-0.127432 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number078,beadchip_ABC123456,supplier_WeylandYutani00078,xenomorph_cohort,urn:wtsi:plate0001_G10_sample000078,Included,ssbc00000,D07,Fail,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Fail,0.930693,Pass,0.1951,Pass,0,Pass,0.109524,Pass,0.980207,Pass,-0.202984 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number079,beadchip_ABC123456,supplier_WeylandYutani00079,xenomorph_cohort,urn:wtsi:plate0001_H10_sample000079,Included,ssbc00000,D08,Fail,Pass,NA,Pass,0,Fail,0.000000,Male,Female,Pass,0.960396,Pass,0.3478,Pass,0,Pass,0.209524,Pass,1.003459,Pass,-0.141715 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number080,beadchip_ABC123456,supplier_WeylandYutani00080,xenomorph_cohort,urn:wtsi:plate0001_A11_sample000080,Included,ssbc00000,D09,Fail,Pass,NA,Pass,0,Fail,0.000000,Male,Female,Pass,0.980198,Pass,0.3409,Pass,0,Pass,0.266667,Pass,1.037730,Pass,-0.245462 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number081,beadchip_ABC123456,supplier_WeylandYutani00081,xenomorph_cohort,urn:wtsi:plate0001_B11_sample000081,Included,ssbc00000,D10,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.960396,Pass,0.2444,Pass,0,Pass,0.114286,Pass,1.023849,Pass,-0.067639 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number082,beadchip_ABC123456,supplier_WeylandYutani00082,xenomorph_cohort,urn:wtsi:plate0001_C11_sample000082,Included,ssbc00000,D11,Pass,Pass,NA,Pass,0,Pass,0.500000,Female,Female,Pass,0.970297,Pass,0.2500,Pass,0,Pass,0.27619,Pass,0.987439,Pass,-0.134052 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number083,beadchip_ABC123456,supplier_WeylandYutani00083,xenomorph_cohort,urn:wtsi:plate0001_D11_sample000083,Included,ssbc00000,D12,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.990099,Pass,0.2222,Pass,0,Pass,0.128571,Pass,1.041952,Pass,-0.147986 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number084,beadchip_ABC123456,supplier_WeylandYutani00084,xenomorph_cohort,urn:wtsi:plate0001_E11_sample000084,Included,ssbc00000,D13,Fail,Pass,NA,Pass,0,Fail,0.000000,Male,Female,Pass,0.990099,Pass,0.1304,Pass,0,Pass,0.195238,Pass,0.992127,Pass,-0.144665 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number085,beadchip_ABC123456,supplier_WeylandYutani00085,xenomorph_cohort,urn:wtsi:plate0001_F11_sample000085,Included,ssbc00000,D14,Pass,Pass,NA,Pass,0,Pass,0.500000,Female,Female,Pass,0.980198,Pass,0.2222,Pass,0,Pass,0.280952,Pass,0.999356,Pass,-0.191296 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number086,beadchip_ABC123456,supplier_WeylandYutani00086,xenomorph_cohort,urn:wtsi:plate0001_G11_sample000086,Included,ssbc00000,D15,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.980198,Pass,0.2727,Pass,0,Pass,0.128571,Pass,1.038192,Pass,-0.108705 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number087,beadchip_ABC123456,supplier_WeylandYutani00087,xenomorph_cohort,urn:wtsi:plate0001_H11_sample000087,Included,ssbc00000,D16,Fail,Pass,NA,Pass,0,Fail,0.000000,Male,Female,Pass,0.990099,Pass,0.1957,Pass,0,Pass,0.247619,Pass,0.996005,Pass,-0.159525 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number088,beadchip_ABC123456,supplier_WeylandYutani00088,xenomorph_cohort,urn:wtsi:plate0001_A12_sample000088,Included,ssbc00000,D17,Fail,Pass,NA,Pass,0,Fail,0.000000,Male,Female,Pass,0.970297,Pass,0.1556,Pass,0,Pass,0.209524,Pass,1.018251,Pass,-0.240315 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number089,beadchip_ABC123456,supplier_WeylandYutani00089,xenomorph_cohort,urn:wtsi:plate0001_B12_sample000089,Included,ssbc00000,D18,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.950495,Pass,0.2444,Pass,0,Pass,0.152381,Pass,0.999501,Pass,-0.190969 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number090,beadchip_ABC123456,supplier_WeylandYutani00090,xenomorph_cohort,urn:wtsi:plate0001_C12_sample000090,Included,ssbc00000,D19,Fail,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Fail,0.940594,Pass,0.2558,Pass,0,Pass,0.12381,Pass,0.980026,Pass,-0.105226 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number091,beadchip_ABC123456,supplier_WeylandYutani00091,xenomorph_cohort,urn:wtsi:plate0001_D12_sample000091,Included,ssbc00000,D20,Pass,Pass,NA,Pass,0,Pass,0.500000,Female,Female,Pass,0.990099,Pass,0.1957,Pass,0,Pass,0.190476,Pass,0.977348,Pass,-0.129244 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number092,beadchip_ABC123456,supplier_WeylandYutani00092,xenomorph_cohort,urn:wtsi:plate0001_E12_sample000092,Included,ssbc00000,D21,Fail,Pass,NA,Pass,0,Fail,0.500000,Female,Male,Pass,0.980198,Pass,0.3043,Pass,0,Pass,0.138095,Pass,1.023070,Pass,-0.113106 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number093,beadchip_ABC123456,supplier_WeylandYutani00093,xenomorph_cohort,urn:wtsi:plate0001_F12_sample000093,Included,ssbc00000,D22,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.950495,Pass,0.2273,Pass,0,Pass,0.128571,Pass,0.977187,Pass,-0.193157 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number094,beadchip_ABC123456,supplier_WeylandYutani00094,xenomorph_cohort,urn:wtsi:plate0001_G12_sample000094,Included,ssbc00000,D23,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.990099,Pass,0.3261,Pass,0,Pass,0.12381,Pass,1.029707,Pass,-0.148270 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number095,beadchip_ABC123456,supplier_WeylandYutani00095,xenomorph_cohort,urn:wtsi:plate0001_H12_sample000095,Included,ssbc00000,D24,Pass,Pass,NA,Pass,0,Pass,0.500000,Female,Female,Pass,0.950495,Pass,0.3478,Pass,0,Pass,0.285714,Pass,0.967335,Pass,-0.196799 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number000,beadchip_ABC123456,supplier_WeylandYutani00096,xenomorph_cohort,urn:wtsi:plate0002_A01_sample000096,Included,ssbc00001,A01,Fail,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Fail,0.940594,Pass,0.3023,Pass,0,Pass,0.147619,Pass,1.037985,Pass,-0.149908 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number001,beadchip_ABC123456,supplier_WeylandYutani00097,xenomorph_cohort,urn:wtsi:plate0002_B01_sample000097,Included,ssbc00001,A02,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.970297,Pass,0.2174,Pass,0,Pass,0.114286,Pass,0.997330,Pass,-0.240348 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number002,beadchip_ABC123456,supplier_WeylandYutani00098,xenomorph_cohort,urn:wtsi:plate0002_C01_sample000098,Included,ssbc00001,A03,Pass,Pass,NA,Pass,0,Pass,0.000000,Male,Male,Pass,0.990099,Pass,0.2826,Pass,0,Pass,0.138095,Pass,1.039791,Pass,-0.162776 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number003,beadchip_ABC123456,supplier_WeylandYutani00099,xenomorph_cohort,urn:wtsi:plate0002_D01_sample000099,Included,ssbc00001,A04,Fail,Pass,NA,Pass,0,Fail,0.500000,Female,Male,Pass,0.960396,Pass,0.3478,Pass,0,Pass,0.157143,Pass,0.975443,Pass,-0.109670 -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number000,beadchip_ABC123456,supplier_WeylandYutani00000,xenomorph_cohort,urn:wtsi:plate0001_A01_sample000000,Excluded,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number003,beadchip_ABC123456,supplier_WeylandYutani00003,xenomorph_cohort,urn:wtsi:plate0001_D01_sample000003,Excluded,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number022,beadchip_ABC123456,supplier_WeylandYutani00022,xenomorph_cohort,urn:wtsi:plate0001_G03_sample000022,Excluded,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA -pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number044,beadchip_ABC123456,supplier_WeylandYutani00044,xenomorph_cohort,urn:wtsi:plate0001_E06_sample000044,Excluded,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA +run,project,data_supplier,snpset,rowcol,beadchip_number,supplier_name,cohort,sample,include,plate,well,pass,identity_pass,identity_probability,identity_concordance,duplicate_pass,duplicate_value,gender_pass,gender_xhet,gender_inferred,gender_supplied,call_rate_pass,call_rate_value,heterozygosity_pass,heterozygosity_value,magnitude_pass,magnitude_value,xydiff_pass,xydiff_value +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number001,beadchip_ABC123456,supplier_WeylandYutani00001,xenomorph_cohort,urn:wtsi:plate0001_B01_sample000001,Included,ssbc00000,A02,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.970297,Pass,0.2826,Pass,1.026298,Pass,-0.089915 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number002,beadchip_ABC123456,supplier_WeylandYutani00002,xenomorph_cohort,urn:wtsi:plate0001_C01_sample000002,Included,ssbc00000,A03,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.000000,Male,Male,Fail,0.920792,Pass,0.2683,Pass,0.960316,Pass,-0.209444 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number004,beadchip_ABC123456,supplier_WeylandYutani00004,xenomorph_cohort,urn:wtsi:plate0001_E01_sample000004,Included,ssbc00000,A05,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.500000,Female,Female,Pass,0.980198,Pass,0.1364,Pass,1.004945,Pass,-0.079625 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number005,beadchip_ABC123456,supplier_WeylandYutani00005,xenomorph_cohort,urn:wtsi:plate0001_F01_sample000005,Included,ssbc00000,A06,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.500000,Female,Female,Pass,0.980198,Pass,0.1364,Pass,0.992848,Pass,-0.105508 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number006,beadchip_ABC123456,supplier_WeylandYutani00006,xenomorph_cohort,urn:wtsi:plate0001_G01_sample000006,Included,ssbc00000,A07,Fail,Fail,0.0000,0.0000,Fail,1.0000,Fail,0.000000,Male,Female,Pass,0.970297,Pass,0.2000,Pass,1.016030,Pass,-0.075592 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number007,beadchip_ABC123456,supplier_WeylandYutani00007,xenomorph_cohort,urn:wtsi:plate0001_H01_sample000007,Included,ssbc00000,A08,Fail,Fail,0.0000,0.0000,Fail,1.0000,Fail,0.000000,Male,Female,Pass,0.970297,Pass,0.2000,Pass,1.011790,Pass,-0.082686 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number008,beadchip_ABC123456,supplier_WeylandYutani00008,xenomorph_cohort,urn:wtsi:plate0001_A02_sample000008,Included,ssbc00000,A09,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.500000,Female,Female,Pass,0.950495,Pass,0.2143,Pass,0.960365,Pass,-0.157923 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number009,beadchip_ABC123456,supplier_WeylandYutani00009,xenomorph_cohort,urn:wtsi:plate0001_B02_sample000009,Included,ssbc00000,A10,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.500000,Female,Female,Pass,0.950495,Pass,0.2143,Pass,0.985721,Pass,-0.152706 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number010,beadchip_ABC123456,supplier_WeylandYutani00010,xenomorph_cohort,urn:wtsi:plate0001_C02_sample000010,Included,ssbc00000,A11,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,1.000000,Female,Female,Pass,0.970297,Pass,0.2326,Pass,0.964957,Pass,-0.113543 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number011,beadchip_ABC123456,supplier_WeylandYutani00011,xenomorph_cohort,urn:wtsi:plate0001_D02_sample000011,Included,ssbc00000,A12,Fail,Pass,1.0000,1.0000,Fail,1.0000,Fail,0.500000,Female,Male,Pass,0.960396,Pass,0.3023,Pass,0.990876,Pass,-0.109427 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number012,beadchip_ABC123456,supplier_WeylandYutani00012,xenomorph_cohort,urn:wtsi:plate0001_E02_sample000012,Included,ssbc00000,A13,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.950495,Pass,0.2093,Pass,1.007754,Pass,-0.149734 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number013,beadchip_ABC123456,supplier_WeylandYutani00013,xenomorph_cohort,urn:wtsi:plate0001_F02_sample000013,Included,ssbc00000,A14,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,1.000000,Female,Female,Fail,0.940594,Pass,0.1111,Pass,0.981736,Pass,-0.130109 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number014,beadchip_ABC123456,supplier_WeylandYutani00014,xenomorph_cohort,urn:wtsi:plate0001_G02_sample000014,Included,ssbc00000,A15,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.970297,Pass,0.3556,Pass,0.998786,Pass,-0.093042 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number015,beadchip_ABC123456,supplier_WeylandYutani00015,xenomorph_cohort,urn:wtsi:plate0001_H02_sample000015,Included,ssbc00000,A16,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.500000,Female,Female,Pass,0.950495,Pass,0.2444,Pass,0.988325,Pass,-0.139028 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number016,beadchip_ABC123456,supplier_WeylandYutani00016,xenomorph_cohort,urn:wtsi:plate0001_A03_sample000016,Included,ssbc00000,A17,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.960396,Pass,0.2143,Pass,1.014335,Pass,-0.245071 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number017,beadchip_ABC123456,supplier_WeylandYutani00017,xenomorph_cohort,urn:wtsi:plate0001_B03_sample000017,Included,ssbc00000,A18,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.960396,Pass,0.1778,Pass,1.043134,Pass,-0.173508 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number018,beadchip_ABC123456,supplier_WeylandYutani00018,xenomorph_cohort,urn:wtsi:plate0001_C03_sample000018,Included,ssbc00000,A19,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.960396,Pass,0.2667,Pass,0.985645,Pass,-0.110577 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number019,beadchip_ABC123456,supplier_WeylandYutani00019,xenomorph_cohort,urn:wtsi:plate0001_D03_sample000019,Included,ssbc00000,A20,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.970297,Pass,0.3111,Pass,1.025111,Pass,-0.099961 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number020,beadchip_ABC123456,supplier_WeylandYutani00020,xenomorph_cohort,urn:wtsi:plate0001_E03_sample000020,Included,ssbc00000,A21,Fail,Pass,1.0000,1.0000,Fail,1.0000,Fail,0.500000,Female,Male,Pass,0.990099,Pass,0.2222,Pass,0.966975,Pass,-0.011922 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number021,beadchip_ABC123456,supplier_WeylandYutani00021,xenomorph_cohort,urn:wtsi:plate0001_F03_sample000021,Included,ssbc00000,A22,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.990099,Pass,0.1739,Pass,0.994190,Pass,-0.246363 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number023,beadchip_ABC123456,supplier_WeylandYutani00023,xenomorph_cohort,urn:wtsi:plate0001_H03_sample000023,Included,ssbc00000,A24,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.990099,Pass,0.2609,Pass,1.013329,Pass,-0.217666 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number024,beadchip_ABC123456,supplier_WeylandYutani00024,xenomorph_cohort,urn:wtsi:plate0001_A04_sample000024,Included,ssbc00000,B01,Fail,Fail,0.0000,0.0000,Pass,1.0000,Pass,0.500000,Female,Female,Pass,1.000000,Pass,0.1304,Pass,0.986381,Pass,-0.100486 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number025,beadchip_ABC123456,supplier_WeylandYutani00025,xenomorph_cohort,urn:wtsi:plate0001_B04_sample000025,Included,ssbc00000,B02,Fail,Fail,0.0000,0.0000,Fail,1.0000,Fail,0.000000,Male,Female,Pass,0.950495,Pass,0.2955,Pass,1.016424,Pass,-0.039542 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number026,beadchip_ABC123456,supplier_WeylandYutani00026,xenomorph_cohort,urn:wtsi:plate0001_C04_sample000026,Included,ssbc00000,B03,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.500000,Female,Female,Pass,0.960396,Pass,0.2000,Pass,0.969004,Pass,-0.161896 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number027,beadchip_ABC123456,supplier_WeylandYutani00027,xenomorph_cohort,urn:wtsi:plate0001_D04_sample000027,Included,ssbc00000,B04,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,1.000000,Female,Female,Pass,0.960396,Pass,0.3182,Pass,0.991528,Pass,-0.182563 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number028,beadchip_ABC123456,supplier_WeylandYutani00028,xenomorph_cohort,urn:wtsi:plate0001_E04_sample000028,Included,ssbc00000,B05,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.500000,Female,Female,Pass,0.950495,Pass,0.3261,Pass,1.005525,Pass,-0.120576 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number029,beadchip_ABC123456,supplier_WeylandYutani00029,xenomorph_cohort,urn:wtsi:plate0001_F04_sample000029,Included,ssbc00000,B06,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.990099,Pass,0.2391,Pass,1.016970,Pass,-0.201367 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number030,beadchip_ABC123456,supplier_WeylandYutani00030,xenomorph_cohort,urn:wtsi:plate0001_G04_sample000030,Included,ssbc00000,B07,Pass,Pass,1.0000,1.0000,Pass,1.0000,Pass,1.000000,Female,Female,Pass,0.970297,Pass,0.1364,Pass,1.024849,Pass,-0.240325 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number031,beadchip_ABC123456,supplier_WeylandYutani00031,xenomorph_cohort,urn:wtsi:plate0001_H04_sample000031,Included,ssbc00000,B08,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.990099,Pass,0.3556,Pass,1.011570,Pass,-0.181667 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number032,beadchip_ABC123456,supplier_WeylandYutani00032,xenomorph_cohort,urn:wtsi:plate0001_A05_sample000032,Included,ssbc00000,B09,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.000000,Male,Male,Fail,0.940594,Pass,0.2619,Pass,1.026305,Pass,-0.145595 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number033,beadchip_ABC123456,supplier_WeylandYutani00033,xenomorph_cohort,urn:wtsi:plate0001_B05_sample000033,Included,ssbc00000,B10,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.960396,Pass,0.2791,Pass,0.971288,Pass,-0.196105 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number034,beadchip_ABC123456,supplier_WeylandYutani00034,xenomorph_cohort,urn:wtsi:plate0001_C05_sample000034,Included,ssbc00000,B11,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.980198,Pass,0.2889,Pass,0.991093,Pass,-0.104210 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number035,beadchip_ABC123456,supplier_WeylandYutani00035,xenomorph_cohort,urn:wtsi:plate0001_D05_sample000035,Included,ssbc00000,B12,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.500000,Female,Female,Pass,0.980198,Pass,0.3556,Pass,0.996472,Fail,0.001561 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number036,beadchip_ABC123456,supplier_WeylandYutani00036,xenomorph_cohort,urn:wtsi:plate0001_E05_sample000036,Included,ssbc00000,B13,Fail,Pass,1.0000,1.0000,Fail,1.0000,Fail,0.000000,Male,Female,Pass,0.970297,Pass,0.2045,Pass,1.014827,Pass,-0.139358 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number037,beadchip_ABC123456,supplier_WeylandYutani00037,xenomorph_cohort,urn:wtsi:plate0001_F05_sample000037,Included,ssbc00000,B14,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.950495,Pass,0.2889,Pass,0.998067,Pass,-0.049692 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number038,beadchip_ABC123456,supplier_WeylandYutani00038,xenomorph_cohort,urn:wtsi:plate0001_G05_sample000038,Included,ssbc00000,B15,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.500000,Female,Female,Pass,0.960396,Pass,0.2326,Pass,1.015826,Pass,-0.174420 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number039,beadchip_ABC123456,supplier_WeylandYutani00039,xenomorph_cohort,urn:wtsi:plate0001_H05_sample000039,Included,ssbc00000,B16,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.970297,Pass,0.2500,Pass,0.994305,Pass,-0.242296 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number040,beadchip_ABC123456,supplier_WeylandYutani00040,xenomorph_cohort,urn:wtsi:plate0001_A06_sample000040,Included,ssbc00000,B17,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.960396,Pass,0.1860,Pass,0.971424,Pass,-0.064558 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number041,beadchip_ABC123456,supplier_WeylandYutani00041,xenomorph_cohort,urn:wtsi:plate0001_B06_sample000041,Included,ssbc00000,B18,Fail,Fail,0.0000,0.0000,Pass,1.0000,Pass,0.500000,Female,Female,Pass,1.000000,Pass,0.3043,Pass,0.987562,Pass,-0.126078 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number042,beadchip_ABC123456,supplier_WeylandYutani00042,xenomorph_cohort,urn:wtsi:plate0001_C06_sample000042,Included,ssbc00000,B19,Fail,Fail,0.0000,0.0000,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.950495,Pass,0.1111,Pass,1.005553,Pass,-0.140127 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number043,beadchip_ABC123456,supplier_WeylandYutani00043,xenomorph_cohort,urn:wtsi:plate0001_D06_sample000043,Included,ssbc00000,B20,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.980198,Pass,0.2000,Pass,0.999255,Pass,-0.228706 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number045,beadchip_ABC123456,supplier_WeylandYutani00045,xenomorph_cohort,urn:wtsi:plate0001_F06_sample000045,Included,ssbc00000,B22,Fail,Pass,1.0000,1.0000,Fail,1.0000,Fail,0.000000,Male,Female,Pass,0.990099,Pass,0.3333,Pass,1.031918,Pass,-0.029179 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number046,beadchip_ABC123456,supplier_WeylandYutani00046,xenomorph_cohort,urn:wtsi:plate0001_G06_sample000046,Included,ssbc00000,B23,Pass,Pass,1.0000,1.0000,Pass,1.0000,Pass,0.000000,Male,Male,Pass,0.980198,Pass,0.2174,Pass,1.015049,Pass,-0.137649 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number047,beadchip_ABC123456,supplier_WeylandYutani00047,xenomorph_cohort,urn:wtsi:plate0001_H06_sample000047,Included,ssbc00000,B24,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.500000,Female,Female,Pass,0.980198,Pass,0.3778,Pass,0.966256,Pass,-0.182645 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number048,beadchip_ABC123456,supplier_WeylandYutani00048,xenomorph_cohort,urn:wtsi:plate0001_A07_sample000048,Included,ssbc00000,C01,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.980198,Pass,0.2222,Pass,0.996882,Pass,-0.128223 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number049,beadchip_ABC123456,supplier_WeylandYutani00049,xenomorph_cohort,urn:wtsi:plate0001_B07_sample000049,Included,ssbc00000,C02,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.980198,Pass,0.2727,Pass,0.967954,Pass,-0.097461 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number050,beadchip_ABC123456,supplier_WeylandYutani00050,xenomorph_cohort,urn:wtsi:plate0001_C07_sample000050,Included,ssbc00000,C03,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.970297,Pass,0.1818,Pass,1.038989,Pass,-0.141620 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number051,beadchip_ABC123456,supplier_WeylandYutani00051,xenomorph_cohort,urn:wtsi:plate0001_D07_sample000051,Included,ssbc00000,C04,Pass,Pass,1.0000,1.0000,Pass,1.0000,Pass,1.000000,Female,Female,Pass,0.970297,Pass,0.2667,Pass,0.949601,Pass,-0.138272 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number052,beadchip_ABC123456,supplier_WeylandYutani00052,xenomorph_cohort,urn:wtsi:plate0001_E07_sample000052,Included,ssbc00000,C05,Pass,Pass,1.0000,1.0000,Pass,1.0000,Pass,0.500000,Female,Female,Pass,0.970297,Pass,0.3333,Pass,1.007954,Pass,-0.107912 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number053,beadchip_ABC123456,supplier_WeylandYutani00053,xenomorph_cohort,urn:wtsi:plate0001_F07_sample000053,Included,ssbc00000,C06,Fail,Pass,1.0000,1.0000,Fail,1.0000,Fail,0.000000,Male,Female,Pass,0.970297,Pass,0.1778,Pass,0.988512,Pass,-0.115962 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number054,beadchip_ABC123456,supplier_WeylandYutani00054,xenomorph_cohort,urn:wtsi:plate0001_G07_sample000054,Included,ssbc00000,C07,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.960396,Pass,0.2791,Pass,0.970802,Pass,-0.042666 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number055,beadchip_ABC123456,supplier_WeylandYutani00055,xenomorph_cohort,urn:wtsi:plate0001_H07_sample000055,Included,ssbc00000,C08,Fail,Pass,1.0000,1.0000,Fail,1.0000,Fail,0.000000,Male,Female,Pass,0.970297,Pass,0.3636,Pass,0.986665,Pass,-0.168941 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number056,beadchip_ABC123456,supplier_WeylandYutani00056,xenomorph_cohort,urn:wtsi:plate0001_A08_sample000056,Included,ssbc00000,C09,Fail,Pass,1.0000,1.0000,Fail,1.0000,Fail,0.000000,Male,Female,Pass,0.970297,Pass,0.2826,Pass,1.004768,Pass,-0.107821 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number057,beadchip_ABC123456,supplier_WeylandYutani00057,xenomorph_cohort,urn:wtsi:plate0001_B08_sample000057,Included,ssbc00000,C10,Fail,Pass,1.0000,1.0000,Fail,1.0000,Fail,0.000000,Male,Female,Pass,0.960396,Pass,0.2326,Pass,1.003525,Pass,-0.119656 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number058,beadchip_ABC123456,supplier_WeylandYutani00058,xenomorph_cohort,urn:wtsi:plate0001_C08_sample000058,Included,ssbc00000,C11,Fail,Pass,1.0000,1.0000,Pass,1.0000,Fail,0.500000,Female,Male,Pass,0.980198,Pass,0.1556,Pass,1.036527,Pass,-0.061958 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number059,beadchip_ABC123456,supplier_WeylandYutani00059,xenomorph_cohort,urn:wtsi:plate0001_D08_sample000059,Included,ssbc00000,C12,Fail,Fail,0.0000,0.0000,Fail,1.0000,Fail,0.000000,Male,Female,Pass,0.960396,Pass,0.1591,Pass,1.035433,Pass,-0.227489 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number060,beadchip_ABC123456,supplier_WeylandYutani00060,xenomorph_cohort,urn:wtsi:plate0001_E08_sample000060,Included,ssbc00000,C13,Fail,Fail,0.0000,0.0000,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.960396,Pass,0.2093,Pass,0.977505,Pass,-0.149240 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number061,beadchip_ABC123456,supplier_WeylandYutani00061,xenomorph_cohort,urn:wtsi:plate0001_F08_sample000061,Included,ssbc00000,C14,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.960396,Pass,0.1778,Pass,1.013088,Pass,-0.196718 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number062,beadchip_ABC123456,supplier_WeylandYutani00062,xenomorph_cohort,urn:wtsi:plate0001_G08_sample000062,Included,ssbc00000,C15,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.000000,Male,Male,Fail,0.940594,Pass,0.2195,Pass,1.015147,Pass,-0.123747 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number063,beadchip_ABC123456,supplier_WeylandYutani00063,xenomorph_cohort,urn:wtsi:plate0001_H08_sample000063,Included,ssbc00000,C16,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.950495,Pass,0.2222,Pass,0.986621,Pass,-0.058612 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number064,beadchip_ABC123456,supplier_WeylandYutani00064,xenomorph_cohort,urn:wtsi:plate0001_A09_sample000064,Included,ssbc00000,C17,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.950495,Pass,0.2889,Pass,0.991262,Pass,-0.250982 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number065,beadchip_ABC123456,supplier_WeylandYutani00065,xenomorph_cohort,urn:wtsi:plate0001_B09_sample000065,Included,ssbc00000,C18,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.950495,Pass,0.2381,Pass,1.002049,Pass,-0.208031 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number066,beadchip_ABC123456,supplier_WeylandYutani00066,xenomorph_cohort,urn:wtsi:plate0001_C09_sample000066,Included,ssbc00000,C19,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.500000,Female,Female,Pass,0.950495,Pass,0.3023,Pass,0.971911,Pass,-0.117757 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number067,beadchip_ABC123456,supplier_WeylandYutani00067,xenomorph_cohort,urn:wtsi:plate0001_D09_sample000067,Included,ssbc00000,C20,Pass,Pass,1.0000,1.0000,Pass,1.0000,Pass,0.500000,Female,Female,Pass,0.980198,Pass,0.2391,Pass,0.999049,Pass,-0.100353 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number068,beadchip_ABC123456,supplier_WeylandYutani00068,xenomorph_cohort,urn:wtsi:plate0001_E09_sample000068,Included,ssbc00000,C21,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.950495,Pass,0.1905,Pass,1.029257,Pass,-0.090627 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number069,beadchip_ABC123456,supplier_WeylandYutani00069,xenomorph_cohort,urn:wtsi:plate0001_F09_sample000069,Included,ssbc00000,C22,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.500000,Female,Female,Pass,0.960396,Pass,0.2609,Pass,1.039111,Pass,-0.108667 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number070,beadchip_ABC123456,supplier_WeylandYutani00070,xenomorph_cohort,urn:wtsi:plate0001_G09_sample000070,Included,ssbc00000,C23,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.500000,Female,Female,Pass,0.960396,Pass,0.2727,Pass,0.994820,Pass,-0.125439 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number071,beadchip_ABC123456,supplier_WeylandYutani00071,xenomorph_cohort,urn:wtsi:plate0001_H09_sample000071,Included,ssbc00000,C24,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.960396,Pass,0.2826,Pass,0.964609,Pass,-0.166427 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number072,beadchip_ABC123456,supplier_WeylandYutani00072,xenomorph_cohort,urn:wtsi:plate0001_A10_sample000072,Included,ssbc00000,D01,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.960396,Pass,0.2381,Pass,0.966010,Pass,-0.086076 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number073,beadchip_ABC123456,supplier_WeylandYutani00073,xenomorph_cohort,urn:wtsi:plate0001_B10_sample000073,Included,ssbc00000,D02,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.970297,Pass,0.2889,Pass,0.992177,Pass,-0.120641 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number074,beadchip_ABC123456,supplier_WeylandYutani00074,xenomorph_cohort,urn:wtsi:plate0001_C10_sample000074,Included,ssbc00000,D03,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.990099,Pass,0.4000,Pass,0.998443,Pass,-0.174678 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number075,beadchip_ABC123456,supplier_WeylandYutani00075,xenomorph_cohort,urn:wtsi:plate0001_D10_sample000075,Included,ssbc00000,D04,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.980198,Pass,0.1364,Pass,1.028869,Pass,-0.065512 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number076,beadchip_ABC123456,supplier_WeylandYutani00076,xenomorph_cohort,urn:wtsi:plate0001_E10_sample000076,Included,ssbc00000,D05,Fail,Fail,0.0000,0.0000,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.970297,Pass,0.3556,Pass,0.976225,Pass,-0.090911 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number077,beadchip_ABC123456,supplier_WeylandYutani00077,xenomorph_cohort,urn:wtsi:plate0001_F10_sample000077,Included,ssbc00000,D06,Fail,Fail,0.0000,0.0000,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.960396,Pass,0.2391,Pass,1.002032,Pass,-0.127432 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number078,beadchip_ABC123456,supplier_WeylandYutani00078,xenomorph_cohort,urn:wtsi:plate0001_G10_sample000078,Included,ssbc00000,D07,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.000000,Male,Male,Fail,0.930693,Pass,0.1951,Pass,0.980207,Pass,-0.202984 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number079,beadchip_ABC123456,supplier_WeylandYutani00079,xenomorph_cohort,urn:wtsi:plate0001_H10_sample000079,Included,ssbc00000,D08,Fail,Pass,1.0000,1.0000,Fail,1.0000,Fail,0.000000,Male,Female,Pass,0.960396,Pass,0.3478,Pass,1.003459,Pass,-0.141715 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number080,beadchip_ABC123456,supplier_WeylandYutani00080,xenomorph_cohort,urn:wtsi:plate0001_A11_sample000080,Included,ssbc00000,D09,Fail,Pass,1.0000,1.0000,Fail,1.0000,Fail,0.000000,Male,Female,Pass,0.980198,Pass,0.3409,Pass,1.037730,Pass,-0.245462 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number081,beadchip_ABC123456,supplier_WeylandYutani00081,xenomorph_cohort,urn:wtsi:plate0001_B11_sample000081,Included,ssbc00000,D10,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.960396,Pass,0.2444,Pass,1.023849,Pass,-0.067639 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number082,beadchip_ABC123456,supplier_WeylandYutani00082,xenomorph_cohort,urn:wtsi:plate0001_C11_sample000082,Included,ssbc00000,D11,Pass,Pass,1.0000,1.0000,Pass,1.0000,Pass,0.500000,Female,Female,Pass,0.970297,Pass,0.2500,Pass,0.987439,Pass,-0.134052 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number083,beadchip_ABC123456,supplier_WeylandYutani00083,xenomorph_cohort,urn:wtsi:plate0001_D11_sample000083,Included,ssbc00000,D12,Pass,Pass,1.0000,1.0000,Pass,1.0000,Pass,0.000000,Male,Male,Pass,0.990099,Pass,0.2222,Pass,1.041952,Pass,-0.147986 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number084,beadchip_ABC123456,supplier_WeylandYutani00084,xenomorph_cohort,urn:wtsi:plate0001_E11_sample000084,Included,ssbc00000,D13,Fail,Pass,1.0000,1.0000,Fail,1.0000,Fail,0.000000,Male,Female,Pass,0.990099,Pass,0.1304,Pass,0.992127,Pass,-0.144665 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number085,beadchip_ABC123456,supplier_WeylandYutani00085,xenomorph_cohort,urn:wtsi:plate0001_F11_sample000085,Included,ssbc00000,D14,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.500000,Female,Female,Pass,0.980198,Pass,0.2222,Pass,0.999356,Pass,-0.191296 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number086,beadchip_ABC123456,supplier_WeylandYutani00086,xenomorph_cohort,urn:wtsi:plate0001_G11_sample000086,Included,ssbc00000,D15,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.980198,Pass,0.2727,Pass,1.038192,Pass,-0.108705 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number087,beadchip_ABC123456,supplier_WeylandYutani00087,xenomorph_cohort,urn:wtsi:plate0001_H11_sample000087,Included,ssbc00000,D16,Fail,Pass,1.0000,1.0000,Fail,1.0000,Fail,0.000000,Male,Female,Pass,0.990099,Pass,0.1957,Pass,0.996005,Pass,-0.159525 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number088,beadchip_ABC123456,supplier_WeylandYutani00088,xenomorph_cohort,urn:wtsi:plate0001_A12_sample000088,Included,ssbc00000,D17,Fail,Pass,1.0000,1.0000,Fail,1.0000,Fail,0.000000,Male,Female,Pass,0.970297,Pass,0.1556,Pass,1.018251,Pass,-0.240315 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number089,beadchip_ABC123456,supplier_WeylandYutani00089,xenomorph_cohort,urn:wtsi:plate0001_B12_sample000089,Included,ssbc00000,D18,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.950495,Pass,0.2444,Pass,0.999501,Pass,-0.190969 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number090,beadchip_ABC123456,supplier_WeylandYutani00090,xenomorph_cohort,urn:wtsi:plate0001_C12_sample000090,Included,ssbc00000,D19,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.000000,Male,Male,Fail,0.940594,Pass,0.2558,Pass,0.980026,Pass,-0.105226 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number091,beadchip_ABC123456,supplier_WeylandYutani00091,xenomorph_cohort,urn:wtsi:plate0001_D12_sample000091,Included,ssbc00000,D20,Pass,Pass,1.0000,1.0000,Pass,1.0000,Pass,0.500000,Female,Female,Pass,0.990099,Pass,0.1957,Pass,0.977348,Pass,-0.129244 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number092,beadchip_ABC123456,supplier_WeylandYutani00092,xenomorph_cohort,urn:wtsi:plate0001_E12_sample000092,Included,ssbc00000,D21,Fail,Pass,1.0000,1.0000,Fail,1.0000,Fail,0.500000,Female,Male,Pass,0.980198,Pass,0.3043,Pass,1.023070,Pass,-0.113106 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number093,beadchip_ABC123456,supplier_WeylandYutani00093,xenomorph_cohort,urn:wtsi:plate0001_F12_sample000093,Included,ssbc00000,D22,Fail,Fail,0.0000,0.0000,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.950495,Pass,0.2273,Pass,0.977187,Pass,-0.193157 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number094,beadchip_ABC123456,supplier_WeylandYutani00094,xenomorph_cohort,urn:wtsi:plate0001_G12_sample000094,Included,ssbc00000,D23,Fail,Fail,0.0000,0.0000,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.990099,Pass,0.3261,Pass,1.029707,Pass,-0.148270 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number095,beadchip_ABC123456,supplier_WeylandYutani00095,xenomorph_cohort,urn:wtsi:plate0001_H12_sample000095,Included,ssbc00000,D24,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.500000,Female,Female,Pass,0.950495,Pass,0.3478,Pass,0.967335,Pass,-0.196799 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number000,beadchip_ABC123456,supplier_WeylandYutani00096,xenomorph_cohort,urn:wtsi:plate0002_A01_sample000096,Included,ssbc00001,A01,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.000000,Male,Male,Fail,0.940594,Pass,0.3023,Pass,1.037985,Pass,-0.149908 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number001,beadchip_ABC123456,supplier_WeylandYutani00097,xenomorph_cohort,urn:wtsi:plate0002_B01_sample000097,Included,ssbc00001,A02,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.970297,Pass,0.2174,Pass,0.997330,Pass,-0.240348 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number002,beadchip_ABC123456,supplier_WeylandYutani00098,xenomorph_cohort,urn:wtsi:plate0002_C01_sample000098,Included,ssbc00001,A03,Fail,Pass,1.0000,1.0000,Fail,1.0000,Pass,0.000000,Male,Male,Pass,0.990099,Pass,0.2826,Pass,1.039791,Pass,-0.162776 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number003,beadchip_ABC123456,supplier_WeylandYutani00099,xenomorph_cohort,urn:wtsi:plate0002_D01_sample000099,Included,ssbc00001,A04,Fail,Pass,1.0000,1.0000,Fail,1.0000,Fail,0.500000,Female,Male,Pass,0.960396,Pass,0.3478,Pass,0.975443,Pass,-0.109670 +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number000,beadchip_ABC123456,supplier_WeylandYutani00000,xenomorph_cohort,urn:wtsi:plate0001_A01_sample000000,Excluded,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number003,beadchip_ABC123456,supplier_WeylandYutani00003,xenomorph_cohort,urn:wtsi:plate0001_D01_sample000003,Excluded,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number022,beadchip_ABC123456,supplier_WeylandYutani00022,xenomorph_cohort,urn:wtsi:plate0001_G03_sample000022,Excluded,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA +pipeline_run,test_project,ib5,HumanOmni25-8v1,rowcol_number044,beadchip_ABC123456,supplier_WeylandYutani00044,xenomorph_cohort,urn:wtsi:plate0001_E06_sample000044,Excluded,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA diff --git a/src/perl/t/qc_test_data/output_examples/qc_results.json b/src/perl/t/qc_test_data/output_examples/qc_results.json index b904ee1db..c91a7320d 100644 --- a/src/perl/t/qc_test_data/output_examples/qc_results.json +++ b/src/perl/t/qc_test_data/output_examples/qc_results.json @@ -1 +1 @@ -{"urn:wtsi:plate0001_C06_sample000042":{"magnitude":[1,"1.005553"],"xydiff":[1,"-0.140127"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.1111"],"call_rate":[1,"0.950495"],"identity":[1,"NA"],"high_maf_het":[1,0.104762],"duplicate":[1,0],"address":"B19","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_A10_sample000072":{"magnitude":[1,"0.966010"],"xydiff":[1,"-0.086076"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2381"],"call_rate":[1,"0.960396"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.085714],"address":"D01","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_B08_sample000057":{"magnitude":[1,"1.003525"],"xydiff":[1,"-0.119656"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2326"],"call_rate":[1,"0.960396"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.209524],"address":"C10","gender":[0,"0.000000","1","2"]},"urn:wtsi:plate0001_C03_sample000018":{"magnitude":[1,"0.985645"],"xydiff":[1,"-0.110577"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2667"],"call_rate":[1,"0.960396"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.128571],"address":"A19","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_A07_sample000048":{"magnitude":[1,"0.996882"],"xydiff":[1,"-0.128223"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2222"],"call_rate":[1,"0.980198"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.119048],"address":"C01","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0002_B01_sample000097":{"magnitude":[1,"0.997330"],"xydiff":[1,"-0.240348"],"low_maf_het":[1,0],"plate":"ssbc00001","heterozygosity":[1,"0.2174"],"call_rate":[1,"0.970297"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.114286],"address":"A02","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_G09_sample000070":{"magnitude":[1,"0.994820"],"xydiff":[1,"-0.125439"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2727"],"call_rate":[1,"0.960396"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.219048],"address":"C23","gender":[1,"0.500000","2","2"]},"urn:wtsi:plate0001_H03_sample000023":{"magnitude":[1,"1.013329"],"xydiff":[1,"-0.217666"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2609"],"call_rate":[1,"0.990099"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.119048],"address":"A24","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_A02_sample000008":{"magnitude":[1,"0.960365"],"xydiff":[1,"-0.157923"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2143"],"call_rate":[1,"0.950495"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.233333],"address":"A09","gender":[1,"0.500000","2","2"]},"urn:wtsi:plate0001_B01_sample000001":{"magnitude":[1,"1.026298"],"xydiff":[1,"-0.089915"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2826"],"call_rate":[1,"0.970297"],"identity":[1,"NA"],"duplicate":[0,"1.0000"],"high_maf_het":[1,0.12381],"address":"A02","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_A03_sample000016":{"magnitude":[1,"1.014335"],"xydiff":[1,"-0.245071"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2143"],"call_rate":[1,"0.960396"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.119048],"address":"A17","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_D02_sample000011":{"magnitude":[1,"0.990876"],"xydiff":[1,"-0.109427"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.3023"],"call_rate":[1,"0.960396"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.133333],"address":"A12","gender":[0,"0.500000","2","1"]},"urn:wtsi:plate0001_D10_sample000075":{"magnitude":[1,"1.028869"],"xydiff":[1,"-0.065512"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.1364"],"call_rate":[1,"0.980198"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.119048],"address":"D04","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_F12_sample000093":{"magnitude":[1,"0.977187"],"xydiff":[1,"-0.193157"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2273"],"call_rate":[1,"0.950495"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.128571],"address":"D22","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0002_A01_sample000096":{"magnitude":[1,"1.037985"],"xydiff":[1,"-0.149908"],"low_maf_het":[1,0],"plate":"ssbc00001","heterozygosity":[1,"0.3023"],"call_rate":[0,"0.940594"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.147619],"address":"A01","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_E07_sample000052":{"magnitude":[1,"1.007954"],"xydiff":[1,"-0.107912"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.3333"],"call_rate":[1,"0.970297"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.242857],"address":"C05","gender":[1,"0.500000","2","2"]},"urn:wtsi:plate0001_B10_sample000073":{"magnitude":[1,"0.992177"],"xydiff":[1,"-0.120641"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2889"],"call_rate":[1,"0.970297"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.109524],"address":"D02","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_A05_sample000032":{"magnitude":[1,"1.026305"],"xydiff":[1,"-0.145595"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2619"],"call_rate":[0,"0.940594"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.157143],"address":"B09","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_E02_sample000012":{"magnitude":[1,"1.007754"],"xydiff":[1,"-0.149734"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2093"],"call_rate":[1,"0.950495"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.128571],"address":"A13","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_D04_sample000027":{"magnitude":[1,"0.991528"],"xydiff":[1,"-0.182563"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.3182"],"call_rate":[1,"0.960396"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.27619],"address":"B04","gender":[1,"1.000000","2","2"]},"urn:wtsi:plate0001_C04_sample000026":{"magnitude":[1,"0.969004"],"xydiff":[1,"-0.161896"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2000"],"call_rate":[1,"0.960396"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.22381],"address":"B03","gender":[1,"0.500000","2","2"]},"urn:wtsi:plate0001_B05_sample000033":{"magnitude":[1,"0.971288"],"xydiff":[1,"-0.196105"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2791"],"call_rate":[1,"0.960396"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.119048],"address":"B10","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_F08_sample000061":{"magnitude":[1,"1.013088"],"xydiff":[1,"-0.196718"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.1778"],"call_rate":[1,"0.960396"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.128571],"address":"C14","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_C11_sample000082":{"magnitude":[1,"0.987439"],"xydiff":[1,"-0.134052"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2500"],"call_rate":[1,"0.970297"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.27619],"address":"D11","gender":[1,"0.500000","2","2"]},"urn:wtsi:plate0001_G12_sample000094":{"magnitude":[1,"1.029707"],"xydiff":[1,"-0.148270"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.3261"],"call_rate":[1,"0.990099"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.12381],"address":"D23","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_F04_sample000029":{"magnitude":[1,"1.016970"],"xydiff":[1,"-0.201367"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2391"],"call_rate":[1,"0.990099"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.138095],"address":"B06","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_G10_sample000078":{"magnitude":[1,"0.980207"],"xydiff":[1,"-0.202984"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.1951"],"call_rate":[0,"0.930693"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.109524],"address":"D07","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_D09_sample000067":{"magnitude":[1,"0.999049"],"xydiff":[1,"-0.100353"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2391"],"call_rate":[1,"0.980198"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.22381],"address":"C20","gender":[1,"0.500000","2","2"]},"urn:wtsi:plate0001_E09_sample000068":{"magnitude":[1,"1.029257"],"xydiff":[1,"-0.090627"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.1905"],"call_rate":[1,"0.950495"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.1],"address":"C21","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0002_C01_sample000098":{"magnitude":[1,"1.039791"],"xydiff":[1,"-0.162776"],"low_maf_het":[1,0],"plate":"ssbc00001","heterozygosity":[1,"0.2826"],"call_rate":[1,"0.990099"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.138095],"address":"A03","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_G11_sample000086":{"magnitude":[1,"1.038192"],"xydiff":[1,"-0.108705"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2727"],"call_rate":[1,"0.980198"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.128571],"address":"D15","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_H05_sample000039":{"magnitude":[1,"0.994305"],"xydiff":[1,"-0.242296"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2500"],"call_rate":[1,"0.970297"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.104762],"address":"B16","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_F09_sample000069":{"magnitude":[1,"1.039111"],"xydiff":[1,"-0.108667"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2609"],"call_rate":[1,"0.960396"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.257143],"address":"C22","gender":[1,"0.500000","2","2"]},"urn:wtsi:plate0001_B03_sample000017":{"magnitude":[1,"1.043134"],"xydiff":[1,"-0.173508"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.1778"],"call_rate":[1,"0.960396"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.114286],"address":"A18","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_C09_sample000066":{"magnitude":[1,"0.971911"],"xydiff":[1,"-0.117757"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.3023"],"call_rate":[1,"0.950495"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.290476],"address":"C19","gender":[1,"0.500000","2","2"]},"urn:wtsi:plate0001_F05_sample000037":{"magnitude":[1,"0.998067"],"xydiff":[1,"-0.049692"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2889"],"call_rate":[1,"0.950495"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.128571],"address":"B14","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_F06_sample000045":{"magnitude":[1,"1.031918"],"xydiff":[1,"-0.029179"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.3333"],"call_rate":[1,"0.990099"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.266667],"address":"B22","gender":[0,"0.000000","1","2"]},"urn:wtsi:plate0001_B07_sample000049":{"magnitude":[1,"0.967954"],"xydiff":[1,"-0.097461"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2727"],"call_rate":[1,"0.980198"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.104762],"address":"C02","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_F11_sample000085":{"magnitude":[1,"0.999356"],"xydiff":[1,"-0.191296"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2222"],"call_rate":[1,"0.980198"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.280952],"address":"D14","gender":[1,"0.500000","2","2"]},"urn:wtsi:plate0001_F03_sample000021":{"magnitude":[1,"0.994190"],"xydiff":[1,"-0.246363"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.1739"],"call_rate":[1,"0.990099"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.095238],"address":"A22","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_C07_sample000050":{"magnitude":[1,"1.038989"],"xydiff":[1,"-0.141620"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.1818"],"call_rate":[1,"0.970297"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.119048],"address":"C03","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_C05_sample000034":{"magnitude":[1,"0.991093"],"xydiff":[1,"-0.104210"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2889"],"call_rate":[1,"0.980198"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.114286],"address":"B11","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_C02_sample000010":{"magnitude":[1,"0.964957"],"xydiff":[1,"-0.113543"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2326"],"call_rate":[1,"0.970297"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.228571],"address":"A11","gender":[1,"1.000000","2","2"]},"urn:wtsi:plate0001_E11_sample000084":{"magnitude":[1,"0.992127"],"xydiff":[1,"-0.144665"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.1304"],"call_rate":[1,"0.990099"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.195238],"address":"D13","gender":[0,"0.000000","1","2"]},"urn:wtsi:plate0001_B09_sample000065":{"magnitude":[1,"1.002049"],"xydiff":[1,"-0.208031"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2381"],"call_rate":[1,"0.950495"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.090476],"address":"C18","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_C12_sample000090":{"magnitude":[1,"0.980026"],"xydiff":[1,"-0.105226"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2558"],"call_rate":[0,"0.940594"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.12381],"address":"D19","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_B11_sample000081":{"magnitude":[1,"1.023849"],"xydiff":[1,"-0.067639"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2444"],"call_rate":[1,"0.960396"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.114286],"address":"D10","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_H02_sample000015":{"magnitude":[1,"0.988325"],"xydiff":[1,"-0.139028"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2444"],"call_rate":[1,"0.950495"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.261905],"address":"A16","gender":[1,"0.500000","2","2"]},"urn:wtsi:plate0001_E03_sample000020":{"magnitude":[1,"0.966975"],"xydiff":[1,"-0.011922"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2222"],"call_rate":[1,"0.990099"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.138095],"address":"A21","gender":[0,"0.500000","2","1"]},"urn:wtsi:plate0001_G01_sample000006":{"magnitude":[1,"1.016030"],"xydiff":[1,"-0.075592"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2000"],"call_rate":[1,"0.970297"],"identity":[1,"NA"],"duplicate":[0,"1.0000"],"high_maf_het":[1,0.233333],"address":"A07","gender":[0,"0.000000","1","2"]},"urn:wtsi:plate0001_F07_sample000053":{"magnitude":[1,"0.988512"],"xydiff":[1,"-0.115962"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.1778"],"call_rate":[1,"0.970297"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.214286],"address":"C06","gender":[0,"0.000000","1","2"]},"urn:wtsi:plate0001_H12_sample000095":{"magnitude":[1,"0.967335"],"xydiff":[1,"-0.196799"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.3478"],"call_rate":[1,"0.950495"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.285714],"address":"D24","gender":[1,"0.500000","2","2"]},"urn:wtsi:plate0001_G07_sample000054":{"magnitude":[1,"0.970802"],"xydiff":[1,"-0.042666"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2791"],"call_rate":[1,"0.960396"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.128571],"address":"C07","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_H09_sample000071":{"magnitude":[1,"0.964609"],"xydiff":[1,"-0.166427"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2826"],"call_rate":[1,"0.960396"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.171429],"address":"C24","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_B04_sample000025":{"magnitude":[1,"1.016424"],"xydiff":[1,"-0.039542"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2955"],"call_rate":[1,"0.950495"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.228571],"address":"B02","gender":[0,"0.000000","1","2"]},"urn:wtsi:plate0001_A11_sample000080":{"magnitude":[1,"1.037730"],"xydiff":[1,"-0.245462"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.3409"],"call_rate":[1,"0.980198"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.266667],"address":"D09","gender":[0,"0.000000","1","2"]},"urn:wtsi:plate0001_B06_sample000041":{"magnitude":[1,"0.987562"],"xydiff":[1,"-0.126078"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.3043"],"call_rate":[1,"1.000000"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.266667],"address":"B18","gender":[1,"0.500000","2","2"]},"urn:wtsi:plate0001_D07_sample000051":{"magnitude":[1,"0.949601"],"xydiff":[1,"-0.138272"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2667"],"call_rate":[1,"0.970297"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.209524],"address":"C04","gender":[1,"1.000000","2","2"]},"urn:wtsi:plate0001_H10_sample000079":{"magnitude":[1,"1.003459"],"xydiff":[1,"-0.141715"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.3478"],"call_rate":[1,"0.960396"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.209524],"address":"D08","gender":[0,"0.000000","1","2"]},"urn:wtsi:plate0001_E05_sample000036":{"magnitude":[1,"1.014827"],"xydiff":[1,"-0.139358"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2045"],"call_rate":[1,"0.970297"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.242857],"address":"B13","gender":[0,"0.000000","1","2"]},"urn:wtsi:plate0001_D12_sample000091":{"magnitude":[1,"0.977348"],"xydiff":[1,"-0.129244"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.1957"],"call_rate":[1,"0.990099"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.190476],"address":"D20","gender":[1,"0.500000","2","2"]},"urn:wtsi:plate0001_C08_sample000058":{"magnitude":[1,"1.036527"],"xydiff":[1,"-0.061958"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.1556"],"call_rate":[1,"0.980198"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.090476],"address":"C11","gender":[0,"0.500000","2","1"]},"urn:wtsi:plate0001_G02_sample000014":{"magnitude":[1,"0.998786"],"xydiff":[1,"-0.093042"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.3556"],"call_rate":[1,"0.970297"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.147619],"address":"A15","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_E01_sample000004":{"magnitude":[1,"1.004945"],"xydiff":[1,"-0.079625"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.1364"],"call_rate":[1,"0.980198"],"identity":[1,"NA"],"duplicate":[1,"1.0000"],"high_maf_het":[1,0.204762],"address":"A05","gender":[1,"0.500000","2","2"]},"urn:wtsi:plate0001_G06_sample000046":{"magnitude":[1,"1.015049"],"xydiff":[1,"-0.137649"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2174"],"call_rate":[1,"0.980198"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.1],"address":"B23","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_E08_sample000060":{"magnitude":[1,"0.977505"],"xydiff":[1,"-0.149240"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2093"],"call_rate":[1,"0.960396"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.128571],"address":"C13","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_F01_sample000005":{"magnitude":[1,"0.992848"],"xydiff":[1,"-0.105508"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.1364"],"call_rate":[1,"0.980198"],"identity":[1,"NA"],"duplicate":[1,"1.0000"],"high_maf_het":[1,0.204762],"address":"A06","gender":[1,"0.500000","2","2"]},"urn:wtsi:plate0001_E04_sample000028":{"magnitude":[1,"1.005525"],"xydiff":[1,"-0.120576"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.3261"],"call_rate":[1,"0.950495"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.319048],"address":"B05","gender":[1,"0.500000","2","2"]},"urn:wtsi:plate0001_C10_sample000074":{"magnitude":[1,"0.998443"],"xydiff":[1,"-0.174678"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.4000"],"call_rate":[1,"0.990099"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.180952],"address":"D03","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_A12_sample000088":{"magnitude":[1,"1.018251"],"xydiff":[1,"-0.240315"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.1556"],"call_rate":[1,"0.970297"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.209524],"address":"D17","gender":[0,"0.000000","1","2"]},"urn:wtsi:plate0001_G04_sample000030":{"magnitude":[1,"1.024849"],"xydiff":[1,"-0.240325"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.1364"],"call_rate":[1,"0.970297"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.219048],"address":"B07","gender":[1,"1.000000","2","2"]},"urn:wtsi:plate0001_E10_sample000076":{"magnitude":[1,"0.976225"],"xydiff":[1,"-0.090911"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.3556"],"call_rate":[1,"0.970297"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.157143],"address":"D05","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_F10_sample000077":{"magnitude":[1,"1.002032"],"xydiff":[1,"-0.127432"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2391"],"call_rate":[1,"0.960396"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.114286],"address":"D06","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_A08_sample000056":{"magnitude":[1,"1.004768"],"xydiff":[1,"-0.107821"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2826"],"call_rate":[1,"0.970297"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.242857],"address":"C09","gender":[0,"0.000000","1","2"]},"urn:wtsi:plate0001_B02_sample000009":{"magnitude":[1,"0.985721"],"xydiff":[1,"-0.152706"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2143"],"call_rate":[1,"0.950495"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.233333],"address":"A10","gender":[1,"0.500000","2","2"]},"urn:wtsi:plate0001_D03_sample000019":{"magnitude":[1,"1.025111"],"xydiff":[1,"-0.099961"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.3111"],"call_rate":[1,"0.970297"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.152381],"address":"A20","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_A04_sample000024":{"magnitude":[1,"0.986381"],"xydiff":[1,"-0.100486"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.1304"],"call_rate":[1,"1.000000"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.214286],"address":"B01","gender":[1,"0.500000","2","2"]},"urn:wtsi:plate0001_H11_sample000087":{"magnitude":[1,"0.996005"],"xydiff":[1,"-0.159525"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.1957"],"call_rate":[1,"0.990099"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.247619],"address":"D16","gender":[0,"0.000000","1","2"]},"urn:wtsi:plate0001_H08_sample000063":{"magnitude":[1,"0.986621"],"xydiff":[1,"-0.058612"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2222"],"call_rate":[1,"0.950495"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.142857],"address":"C16","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_H04_sample000031":{"magnitude":[1,"1.011570"],"xydiff":[1,"-0.181667"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.3556"],"call_rate":[1,"0.990099"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.161905],"address":"B08","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_H06_sample000047":{"magnitude":[1,"0.966256"],"xydiff":[1,"-0.182645"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.3778"],"call_rate":[1,"0.980198"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.252381],"address":"B24","gender":[1,"0.500000","2","2"]},"urn:wtsi:plate0001_B12_sample000089":{"magnitude":[1,"0.999501"],"xydiff":[1,"-0.190969"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2444"],"call_rate":[1,"0.950495"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.152381],"address":"D18","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_E12_sample000092":{"magnitude":[1,"1.023070"],"xydiff":[1,"-0.113106"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.3043"],"call_rate":[1,"0.980198"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.138095],"address":"D21","gender":[0,"0.500000","2","1"]},"urn:wtsi:plate0001_G08_sample000062":{"magnitude":[1,"1.015147"],"xydiff":[1,"-0.123747"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2195"],"call_rate":[0,"0.940594"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.104762],"address":"C15","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_D11_sample000083":{"magnitude":[1,"1.041952"],"xydiff":[1,"-0.147986"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2222"],"call_rate":[1,"0.990099"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.128571],"address":"D12","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_H01_sample000007":{"magnitude":[1,"1.011790"],"xydiff":[1,"-0.082686"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2000"],"call_rate":[1,"0.970297"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.233333],"address":"A08","gender":[0,"0.000000","1","2"]},"urn:wtsi:plate0002_D01_sample000099":{"magnitude":[1,"0.975443"],"xydiff":[1,"-0.109670"],"low_maf_het":[1,0],"plate":"ssbc00001","heterozygosity":[1,"0.3478"],"call_rate":[1,"0.960396"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.157143],"address":"A04","gender":[0,"0.500000","2","1"]},"urn:wtsi:plate0001_D06_sample000043":{"magnitude":[1,"0.999255"],"xydiff":[1,"-0.228706"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2000"],"call_rate":[1,"0.980198"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.104762],"address":"B20","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_D05_sample000035":{"magnitude":[1,"0.996472"],"xydiff":[0,"0.001561"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.3556"],"call_rate":[1,"0.980198"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.285714],"address":"B12","gender":[1,"0.500000","2","2"]},"urn:wtsi:plate0001_H07_sample000055":{"magnitude":[1,"0.986665"],"xydiff":[1,"-0.168941"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.3636"],"call_rate":[1,"0.970297"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.242857],"address":"C08","gender":[0,"0.000000","1","2"]},"urn:wtsi:plate0001_A06_sample000040":{"magnitude":[1,"0.971424"],"xydiff":[1,"-0.064558"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.1860"],"call_rate":[1,"0.960396"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.104762],"address":"B17","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_D08_sample000059":{"magnitude":[1,"1.035433"],"xydiff":[1,"-0.227489"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.1591"],"call_rate":[1,"0.960396"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.22381],"address":"C12","gender":[0,"0.000000","1","2"]},"urn:wtsi:plate0001_F02_sample000013":{"magnitude":[1,"0.981736"],"xydiff":[1,"-0.130109"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.1111"],"call_rate":[0,"0.940594"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.142857],"address":"A14","gender":[1,"1.000000","2","2"]},"urn:wtsi:plate0001_A09_sample000064":{"magnitude":[1,"0.991262"],"xydiff":[1,"-0.250982"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2889"],"call_rate":[1,"0.950495"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.147619],"address":"C17","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_G05_sample000038":{"magnitude":[1,"1.015826"],"xydiff":[1,"-0.174420"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2326"],"call_rate":[1,"0.960396"],"identity":[1,"NA"],"duplicate":[1,0],"high_maf_het":[1,0.22381],"address":"B15","gender":[1,"0.500000","2","2"]},"urn:wtsi:plate0001_C01_sample000002":{"magnitude":[1,"0.960316"],"xydiff":[1,"-0.209444"],"low_maf_het":[1,0],"plate":"ssbc00000","heterozygosity":[1,"0.2683"],"call_rate":[0,"0.920792"],"identity":[1,"NA"],"duplicate":[0,"1.0000"],"high_maf_het":[1,0.12381],"address":"A03","gender":[1,"0.000000","1","1"]}} \ No newline at end of file +{"urn:wtsi:plate0001_C06_sample000042":{"magnitude":[1,"1.005553"],"xydiff":[1,"-0.140127"],"plate":"ssbc00000","heterozygosity":[1,"0.1111"],"call_rate":[1,"0.950495"],"identity":[0,"0.0000","0.0000"],"duplicate":[0,"1.0000"],"address":"B19","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_A10_sample000072":{"magnitude":[1,"0.966010"],"xydiff":[1,"-0.086076"],"plate":"ssbc00000","heterozygosity":[1,"0.2381"],"call_rate":[1,"0.960396"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"D01","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_B08_sample000057":{"magnitude":[1,"1.003525"],"xydiff":[1,"-0.119656"],"plate":"ssbc00000","heterozygosity":[1,"0.2326"],"call_rate":[1,"0.960396"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"C10","gender":[0,"0.000000","1","2"]},"urn:wtsi:plate0001_C03_sample000018":{"magnitude":[1,"0.985645"],"xydiff":[1,"-0.110577"],"plate":"ssbc00000","heterozygosity":[1,"0.2667"],"call_rate":[1,"0.960396"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"A19","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_A07_sample000048":{"magnitude":[1,"0.996882"],"xydiff":[1,"-0.128223"],"plate":"ssbc00000","heterozygosity":[1,"0.2222"],"call_rate":[1,"0.980198"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"C01","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0002_B01_sample000097":{"magnitude":[1,"0.997330"],"xydiff":[1,"-0.240348"],"plate":"ssbc00001","heterozygosity":[1,"0.2174"],"call_rate":[1,"0.970297"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"A02","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_G09_sample000070":{"magnitude":[1,"0.994820"],"xydiff":[1,"-0.125439"],"plate":"ssbc00000","heterozygosity":[1,"0.2727"],"call_rate":[1,"0.960396"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"C23","gender":[1,"0.500000","2","2"]},"urn:wtsi:plate0001_H03_sample000023":{"magnitude":[1,"1.013329"],"xydiff":[1,"-0.217666"],"plate":"ssbc00000","heterozygosity":[1,"0.2609"],"call_rate":[1,"0.990099"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"A24","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_A02_sample000008":{"magnitude":[1,"0.960365"],"xydiff":[1,"-0.157923"],"plate":"ssbc00000","heterozygosity":[1,"0.2143"],"call_rate":[1,"0.950495"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"A09","gender":[1,"0.500000","2","2"]},"urn:wtsi:plate0001_B01_sample000001":{"magnitude":[1,"1.026298"],"xydiff":[1,"-0.089915"],"plate":"ssbc00000","heterozygosity":[1,"0.2826"],"call_rate":[1,"0.970297"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"A02","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_A03_sample000016":{"magnitude":[1,"1.014335"],"xydiff":[1,"-0.245071"],"plate":"ssbc00000","heterozygosity":[1,"0.2143"],"call_rate":[1,"0.960396"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"A17","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_D02_sample000011":{"magnitude":[1,"0.990876"],"xydiff":[1,"-0.109427"],"plate":"ssbc00000","heterozygosity":[1,"0.3023"],"call_rate":[1,"0.960396"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"A12","gender":[0,"0.500000","2","1"]},"urn:wtsi:plate0001_D10_sample000075":{"magnitude":[1,"1.028869"],"xydiff":[1,"-0.065512"],"plate":"ssbc00000","heterozygosity":[1,"0.1364"],"call_rate":[1,"0.980198"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"D04","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_F12_sample000093":{"magnitude":[1,"0.977187"],"xydiff":[1,"-0.193157"],"plate":"ssbc00000","heterozygosity":[1,"0.2273"],"call_rate":[1,"0.950495"],"identity":[0,"0.0000","0.0000"],"duplicate":[0,"1.0000"],"address":"D22","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0002_A01_sample000096":{"magnitude":[1,"1.037985"],"xydiff":[1,"-0.149908"],"plate":"ssbc00001","heterozygosity":[1,"0.3023"],"call_rate":[0,"0.940594"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"A01","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_E07_sample000052":{"magnitude":[1,"1.007954"],"xydiff":[1,"-0.107912"],"plate":"ssbc00000","heterozygosity":[1,"0.3333"],"call_rate":[1,"0.970297"],"identity":[1,"1.0000","1.0000"],"duplicate":[1,"1.0000"],"address":"C05","gender":[1,"0.500000","2","2"]},"urn:wtsi:plate0001_B10_sample000073":{"magnitude":[1,"0.992177"],"xydiff":[1,"-0.120641"],"plate":"ssbc00000","heterozygosity":[1,"0.2889"],"call_rate":[1,"0.970297"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"D02","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_A05_sample000032":{"magnitude":[1,"1.026305"],"xydiff":[1,"-0.145595"],"plate":"ssbc00000","heterozygosity":[1,"0.2619"],"call_rate":[0,"0.940594"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"B09","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_E02_sample000012":{"magnitude":[1,"1.007754"],"xydiff":[1,"-0.149734"],"plate":"ssbc00000","heterozygosity":[1,"0.2093"],"call_rate":[1,"0.950495"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"A13","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_D04_sample000027":{"magnitude":[1,"0.991528"],"xydiff":[1,"-0.182563"],"plate":"ssbc00000","heterozygosity":[1,"0.3182"],"call_rate":[1,"0.960396"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"B04","gender":[1,"1.000000","2","2"]},"urn:wtsi:plate0001_C04_sample000026":{"magnitude":[1,"0.969004"],"xydiff":[1,"-0.161896"],"plate":"ssbc00000","heterozygosity":[1,"0.2000"],"call_rate":[1,"0.960396"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"B03","gender":[1,"0.500000","2","2"]},"urn:wtsi:plate0001_B05_sample000033":{"magnitude":[1,"0.971288"],"xydiff":[1,"-0.196105"],"plate":"ssbc00000","heterozygosity":[1,"0.2791"],"call_rate":[1,"0.960396"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"B10","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_F08_sample000061":{"magnitude":[1,"1.013088"],"xydiff":[1,"-0.196718"],"plate":"ssbc00000","heterozygosity":[1,"0.1778"],"call_rate":[1,"0.960396"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"C14","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_C11_sample000082":{"magnitude":[1,"0.987439"],"xydiff":[1,"-0.134052"],"plate":"ssbc00000","heterozygosity":[1,"0.2500"],"call_rate":[1,"0.970297"],"identity":[1,"1.0000","1.0000"],"duplicate":[1,"1.0000"],"address":"D11","gender":[1,"0.500000","2","2"]},"urn:wtsi:plate0001_G12_sample000094":{"magnitude":[1,"1.029707"],"xydiff":[1,"-0.148270"],"plate":"ssbc00000","heterozygosity":[1,"0.3261"],"call_rate":[1,"0.990099"],"identity":[0,"0.0000","0.0000"],"duplicate":[0,"1.0000"],"address":"D23","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_F04_sample000029":{"magnitude":[1,"1.016970"],"xydiff":[1,"-0.201367"],"plate":"ssbc00000","heterozygosity":[1,"0.2391"],"call_rate":[1,"0.990099"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"B06","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_G10_sample000078":{"magnitude":[1,"0.980207"],"xydiff":[1,"-0.202984"],"plate":"ssbc00000","heterozygosity":[1,"0.1951"],"call_rate":[0,"0.930693"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"D07","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_D09_sample000067":{"magnitude":[1,"0.999049"],"xydiff":[1,"-0.100353"],"plate":"ssbc00000","heterozygosity":[1,"0.2391"],"call_rate":[1,"0.980198"],"identity":[1,"1.0000","1.0000"],"duplicate":[1,"1.0000"],"address":"C20","gender":[1,"0.500000","2","2"]},"urn:wtsi:plate0001_E09_sample000068":{"magnitude":[1,"1.029257"],"xydiff":[1,"-0.090627"],"plate":"ssbc00000","heterozygosity":[1,"0.1905"],"call_rate":[1,"0.950495"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"C21","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0002_C01_sample000098":{"magnitude":[1,"1.039791"],"xydiff":[1,"-0.162776"],"plate":"ssbc00001","heterozygosity":[1,"0.2826"],"call_rate":[1,"0.990099"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"A03","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_G11_sample000086":{"magnitude":[1,"1.038192"],"xydiff":[1,"-0.108705"],"plate":"ssbc00000","heterozygosity":[1,"0.2727"],"call_rate":[1,"0.980198"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"D15","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_H05_sample000039":{"magnitude":[1,"0.994305"],"xydiff":[1,"-0.242296"],"plate":"ssbc00000","heterozygosity":[1,"0.2500"],"call_rate":[1,"0.970297"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"B16","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_F09_sample000069":{"magnitude":[1,"1.039111"],"xydiff":[1,"-0.108667"],"plate":"ssbc00000","heterozygosity":[1,"0.2609"],"call_rate":[1,"0.960396"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"C22","gender":[1,"0.500000","2","2"]},"urn:wtsi:plate0001_B03_sample000017":{"magnitude":[1,"1.043134"],"xydiff":[1,"-0.173508"],"plate":"ssbc00000","heterozygosity":[1,"0.1778"],"call_rate":[1,"0.960396"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"A18","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_C09_sample000066":{"magnitude":[1,"0.971911"],"xydiff":[1,"-0.117757"],"plate":"ssbc00000","heterozygosity":[1,"0.3023"],"call_rate":[1,"0.950495"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"C19","gender":[1,"0.500000","2","2"]},"urn:wtsi:plate0001_F05_sample000037":{"magnitude":[1,"0.998067"],"xydiff":[1,"-0.049692"],"plate":"ssbc00000","heterozygosity":[1,"0.2889"],"call_rate":[1,"0.950495"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"B14","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_F06_sample000045":{"magnitude":[1,"1.031918"],"xydiff":[1,"-0.029179"],"plate":"ssbc00000","heterozygosity":[1,"0.3333"],"call_rate":[1,"0.990099"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"B22","gender":[0,"0.000000","1","2"]},"urn:wtsi:plate0001_B07_sample000049":{"magnitude":[1,"0.967954"],"xydiff":[1,"-0.097461"],"plate":"ssbc00000","heterozygosity":[1,"0.2727"],"call_rate":[1,"0.980198"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"C02","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_F11_sample000085":{"magnitude":[1,"0.999356"],"xydiff":[1,"-0.191296"],"plate":"ssbc00000","heterozygosity":[1,"0.2222"],"call_rate":[1,"0.980198"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"D14","gender":[1,"0.500000","2","2"]},"urn:wtsi:plate0001_F03_sample000021":{"magnitude":[1,"0.994190"],"xydiff":[1,"-0.246363"],"plate":"ssbc00000","heterozygosity":[1,"0.1739"],"call_rate":[1,"0.990099"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"A22","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_C07_sample000050":{"magnitude":[1,"1.038989"],"xydiff":[1,"-0.141620"],"plate":"ssbc00000","heterozygosity":[1,"0.1818"],"call_rate":[1,"0.970297"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"C03","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_C05_sample000034":{"magnitude":[1,"0.991093"],"xydiff":[1,"-0.104210"],"plate":"ssbc00000","heterozygosity":[1,"0.2889"],"call_rate":[1,"0.980198"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"B11","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_C02_sample000010":{"magnitude":[1,"0.964957"],"xydiff":[1,"-0.113543"],"plate":"ssbc00000","heterozygosity":[1,"0.2326"],"call_rate":[1,"0.970297"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"A11","gender":[1,"1.000000","2","2"]},"urn:wtsi:plate0001_E11_sample000084":{"magnitude":[1,"0.992127"],"xydiff":[1,"-0.144665"],"plate":"ssbc00000","heterozygosity":[1,"0.1304"],"call_rate":[1,"0.990099"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"D13","gender":[0,"0.000000","1","2"]},"urn:wtsi:plate0001_B09_sample000065":{"magnitude":[1,"1.002049"],"xydiff":[1,"-0.208031"],"plate":"ssbc00000","heterozygosity":[1,"0.2381"],"call_rate":[1,"0.950495"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"C18","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_C12_sample000090":{"magnitude":[1,"0.980026"],"xydiff":[1,"-0.105226"],"plate":"ssbc00000","heterozygosity":[1,"0.2558"],"call_rate":[0,"0.940594"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"D19","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_B11_sample000081":{"magnitude":[1,"1.023849"],"xydiff":[1,"-0.067639"],"plate":"ssbc00000","heterozygosity":[1,"0.2444"],"call_rate":[1,"0.960396"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"D10","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_H02_sample000015":{"magnitude":[1,"0.988325"],"xydiff":[1,"-0.139028"],"plate":"ssbc00000","heterozygosity":[1,"0.2444"],"call_rate":[1,"0.950495"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"A16","gender":[1,"0.500000","2","2"]},"urn:wtsi:plate0001_E03_sample000020":{"magnitude":[1,"0.966975"],"xydiff":[1,"-0.011922"],"plate":"ssbc00000","heterozygosity":[1,"0.2222"],"call_rate":[1,"0.990099"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"A21","gender":[0,"0.500000","2","1"]},"urn:wtsi:plate0001_G01_sample000006":{"magnitude":[1,"1.016030"],"xydiff":[1,"-0.075592"],"plate":"ssbc00000","heterozygosity":[1,"0.2000"],"call_rate":[1,"0.970297"],"identity":[0,"0.0000","0.0000"],"duplicate":[0,"1.0000"],"address":"A07","gender":[0,"0.000000","1","2"]},"urn:wtsi:plate0001_F07_sample000053":{"magnitude":[1,"0.988512"],"xydiff":[1,"-0.115962"],"plate":"ssbc00000","heterozygosity":[1,"0.1778"],"call_rate":[1,"0.970297"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"C06","gender":[0,"0.000000","1","2"]},"urn:wtsi:plate0001_H12_sample000095":{"magnitude":[1,"0.967335"],"xydiff":[1,"-0.196799"],"plate":"ssbc00000","heterozygosity":[1,"0.3478"],"call_rate":[1,"0.950495"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"D24","gender":[1,"0.500000","2","2"]},"urn:wtsi:plate0001_G07_sample000054":{"magnitude":[1,"0.970802"],"xydiff":[1,"-0.042666"],"plate":"ssbc00000","heterozygosity":[1,"0.2791"],"call_rate":[1,"0.960396"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"C07","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_H09_sample000071":{"magnitude":[1,"0.964609"],"xydiff":[1,"-0.166427"],"plate":"ssbc00000","heterozygosity":[1,"0.2826"],"call_rate":[1,"0.960396"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"C24","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_B04_sample000025":{"magnitude":[1,"1.016424"],"xydiff":[1,"-0.039542"],"plate":"ssbc00000","heterozygosity":[1,"0.2955"],"call_rate":[1,"0.950495"],"identity":[0,"0.0000","0.0000"],"duplicate":[0,"1.0000"],"address":"B02","gender":[0,"0.000000","1","2"]},"urn:wtsi:plate0001_A11_sample000080":{"magnitude":[1,"1.037730"],"xydiff":[1,"-0.245462"],"plate":"ssbc00000","heterozygosity":[1,"0.3409"],"call_rate":[1,"0.980198"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"D09","gender":[0,"0.000000","1","2"]},"urn:wtsi:plate0001_B06_sample000041":{"magnitude":[1,"0.987562"],"xydiff":[1,"-0.126078"],"plate":"ssbc00000","heterozygosity":[1,"0.3043"],"call_rate":[1,"1.000000"],"identity":[0,"0.0000","0.0000"],"duplicate":[1,"1.0000"],"address":"B18","gender":[1,"0.500000","2","2"]},"urn:wtsi:plate0001_D07_sample000051":{"magnitude":[1,"0.949601"],"xydiff":[1,"-0.138272"],"plate":"ssbc00000","heterozygosity":[1,"0.2667"],"call_rate":[1,"0.970297"],"identity":[1,"1.0000","1.0000"],"duplicate":[1,"1.0000"],"address":"C04","gender":[1,"1.000000","2","2"]},"urn:wtsi:plate0001_H10_sample000079":{"magnitude":[1,"1.003459"],"xydiff":[1,"-0.141715"],"plate":"ssbc00000","heterozygosity":[1,"0.3478"],"call_rate":[1,"0.960396"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"D08","gender":[0,"0.000000","1","2"]},"urn:wtsi:plate0001_E05_sample000036":{"magnitude":[1,"1.014827"],"xydiff":[1,"-0.139358"],"plate":"ssbc00000","heterozygosity":[1,"0.2045"],"call_rate":[1,"0.970297"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"B13","gender":[0,"0.000000","1","2"]},"urn:wtsi:plate0001_D12_sample000091":{"magnitude":[1,"0.977348"],"xydiff":[1,"-0.129244"],"plate":"ssbc00000","heterozygosity":[1,"0.1957"],"call_rate":[1,"0.990099"],"identity":[1,"1.0000","1.0000"],"duplicate":[1,"1.0000"],"address":"D20","gender":[1,"0.500000","2","2"]},"urn:wtsi:plate0001_C08_sample000058":{"magnitude":[1,"1.036527"],"xydiff":[1,"-0.061958"],"plate":"ssbc00000","heterozygosity":[1,"0.1556"],"call_rate":[1,"0.980198"],"identity":[1,"1.0000","1.0000"],"duplicate":[1,"1.0000"],"address":"C11","gender":[0,"0.500000","2","1"]},"urn:wtsi:plate0001_G02_sample000014":{"magnitude":[1,"0.998786"],"xydiff":[1,"-0.093042"],"plate":"ssbc00000","heterozygosity":[1,"0.3556"],"call_rate":[1,"0.970297"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"A15","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_E01_sample000004":{"magnitude":[1,"1.004945"],"xydiff":[1,"-0.079625"],"plate":"ssbc00000","heterozygosity":[1,"0.1364"],"call_rate":[1,"0.980198"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"A05","gender":[1,"0.500000","2","2"]},"urn:wtsi:plate0001_G06_sample000046":{"magnitude":[1,"1.015049"],"xydiff":[1,"-0.137649"],"plate":"ssbc00000","heterozygosity":[1,"0.2174"],"call_rate":[1,"0.980198"],"identity":[1,"1.0000","1.0000"],"duplicate":[1,"1.0000"],"address":"B23","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_E08_sample000060":{"magnitude":[1,"0.977505"],"xydiff":[1,"-0.149240"],"plate":"ssbc00000","heterozygosity":[1,"0.2093"],"call_rate":[1,"0.960396"],"identity":[0,"0.0000","0.0000"],"duplicate":[0,"1.0000"],"address":"C13","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_F01_sample000005":{"magnitude":[1,"0.992848"],"xydiff":[1,"-0.105508"],"plate":"ssbc00000","heterozygosity":[1,"0.1364"],"call_rate":[1,"0.980198"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"A06","gender":[1,"0.500000","2","2"]},"urn:wtsi:plate0001_E04_sample000028":{"magnitude":[1,"1.005525"],"xydiff":[1,"-0.120576"],"plate":"ssbc00000","heterozygosity":[1,"0.3261"],"call_rate":[1,"0.950495"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"B05","gender":[1,"0.500000","2","2"]},"urn:wtsi:plate0001_C10_sample000074":{"magnitude":[1,"0.998443"],"xydiff":[1,"-0.174678"],"plate":"ssbc00000","heterozygosity":[1,"0.4000"],"call_rate":[1,"0.990099"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"D03","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_A12_sample000088":{"magnitude":[1,"1.018251"],"xydiff":[1,"-0.240315"],"plate":"ssbc00000","heterozygosity":[1,"0.1556"],"call_rate":[1,"0.970297"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"D17","gender":[0,"0.000000","1","2"]},"urn:wtsi:plate0001_G04_sample000030":{"magnitude":[1,"1.024849"],"xydiff":[1,"-0.240325"],"plate":"ssbc00000","heterozygosity":[1,"0.1364"],"call_rate":[1,"0.970297"],"identity":[1,"1.0000","1.0000"],"duplicate":[1,"1.0000"],"address":"B07","gender":[1,"1.000000","2","2"]},"urn:wtsi:plate0001_E10_sample000076":{"magnitude":[1,"0.976225"],"xydiff":[1,"-0.090911"],"plate":"ssbc00000","heterozygosity":[1,"0.3556"],"call_rate":[1,"0.970297"],"identity":[0,"0.0000","0.0000"],"duplicate":[0,"1.0000"],"address":"D05","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_F10_sample000077":{"magnitude":[1,"1.002032"],"xydiff":[1,"-0.127432"],"plate":"ssbc00000","heterozygosity":[1,"0.2391"],"call_rate":[1,"0.960396"],"identity":[0,"0.0000","0.0000"],"duplicate":[0,"1.0000"],"address":"D06","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_A08_sample000056":{"magnitude":[1,"1.004768"],"xydiff":[1,"-0.107821"],"plate":"ssbc00000","heterozygosity":[1,"0.2826"],"call_rate":[1,"0.970297"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"C09","gender":[0,"0.000000","1","2"]},"urn:wtsi:plate0001_B02_sample000009":{"magnitude":[1,"0.985721"],"xydiff":[1,"-0.152706"],"plate":"ssbc00000","heterozygosity":[1,"0.2143"],"call_rate":[1,"0.950495"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"A10","gender":[1,"0.500000","2","2"]},"urn:wtsi:plate0001_D03_sample000019":{"magnitude":[1,"1.025111"],"xydiff":[1,"-0.099961"],"plate":"ssbc00000","heterozygosity":[1,"0.3111"],"call_rate":[1,"0.970297"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"A20","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_A04_sample000024":{"magnitude":[1,"0.986381"],"xydiff":[1,"-0.100486"],"plate":"ssbc00000","heterozygosity":[1,"0.1304"],"call_rate":[1,"1.000000"],"identity":[0,"0.0000","0.0000"],"duplicate":[1,"1.0000"],"address":"B01","gender":[1,"0.500000","2","2"]},"urn:wtsi:plate0001_H11_sample000087":{"magnitude":[1,"0.996005"],"xydiff":[1,"-0.159525"],"plate":"ssbc00000","heterozygosity":[1,"0.1957"],"call_rate":[1,"0.990099"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"D16","gender":[0,"0.000000","1","2"]},"urn:wtsi:plate0001_H08_sample000063":{"magnitude":[1,"0.986621"],"xydiff":[1,"-0.058612"],"plate":"ssbc00000","heterozygosity":[1,"0.2222"],"call_rate":[1,"0.950495"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"C16","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_H04_sample000031":{"magnitude":[1,"1.011570"],"xydiff":[1,"-0.181667"],"plate":"ssbc00000","heterozygosity":[1,"0.3556"],"call_rate":[1,"0.990099"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"B08","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_H06_sample000047":{"magnitude":[1,"0.966256"],"xydiff":[1,"-0.182645"],"plate":"ssbc00000","heterozygosity":[1,"0.3778"],"call_rate":[1,"0.980198"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"B24","gender":[1,"0.500000","2","2"]},"urn:wtsi:plate0001_B12_sample000089":{"magnitude":[1,"0.999501"],"xydiff":[1,"-0.190969"],"plate":"ssbc00000","heterozygosity":[1,"0.2444"],"call_rate":[1,"0.950495"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"D18","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_E12_sample000092":{"magnitude":[1,"1.023070"],"xydiff":[1,"-0.113106"],"plate":"ssbc00000","heterozygosity":[1,"0.3043"],"call_rate":[1,"0.980198"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"D21","gender":[0,"0.500000","2","1"]},"urn:wtsi:plate0001_G08_sample000062":{"magnitude":[1,"1.015147"],"xydiff":[1,"-0.123747"],"plate":"ssbc00000","heterozygosity":[1,"0.2195"],"call_rate":[0,"0.940594"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"C15","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_D11_sample000083":{"magnitude":[1,"1.041952"],"xydiff":[1,"-0.147986"],"plate":"ssbc00000","heterozygosity":[1,"0.2222"],"call_rate":[1,"0.990099"],"identity":[1,"1.0000","1.0000"],"duplicate":[1,"1.0000"],"address":"D12","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_H01_sample000007":{"magnitude":[1,"1.011790"],"xydiff":[1,"-0.082686"],"plate":"ssbc00000","heterozygosity":[1,"0.2000"],"call_rate":[1,"0.970297"],"identity":[0,"0.0000","0.0000"],"duplicate":[0,"1.0000"],"address":"A08","gender":[0,"0.000000","1","2"]},"urn:wtsi:plate0002_D01_sample000099":{"magnitude":[1,"0.975443"],"xydiff":[1,"-0.109670"],"plate":"ssbc00001","heterozygosity":[1,"0.3478"],"call_rate":[1,"0.960396"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"A04","gender":[0,"0.500000","2","1"]},"urn:wtsi:plate0001_D06_sample000043":{"magnitude":[1,"0.999255"],"xydiff":[1,"-0.228706"],"plate":"ssbc00000","heterozygosity":[1,"0.2000"],"call_rate":[1,"0.980198"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"B20","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_D05_sample000035":{"magnitude":[1,"0.996472"],"xydiff":[0,"0.001561"],"plate":"ssbc00000","heterozygosity":[1,"0.3556"],"call_rate":[1,"0.980198"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"B12","gender":[1,"0.500000","2","2"]},"urn:wtsi:plate0001_H07_sample000055":{"magnitude":[1,"0.986665"],"xydiff":[1,"-0.168941"],"plate":"ssbc00000","heterozygosity":[1,"0.3636"],"call_rate":[1,"0.970297"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"C08","gender":[0,"0.000000","1","2"]},"urn:wtsi:plate0001_A06_sample000040":{"magnitude":[1,"0.971424"],"xydiff":[1,"-0.064558"],"plate":"ssbc00000","heterozygosity":[1,"0.1860"],"call_rate":[1,"0.960396"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"B17","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_D08_sample000059":{"magnitude":[1,"1.035433"],"xydiff":[1,"-0.227489"],"plate":"ssbc00000","heterozygosity":[1,"0.1591"],"call_rate":[1,"0.960396"],"identity":[0,"0.0000","0.0000"],"duplicate":[0,"1.0000"],"address":"C12","gender":[0,"0.000000","1","2"]},"urn:wtsi:plate0001_F02_sample000013":{"magnitude":[1,"0.981736"],"xydiff":[1,"-0.130109"],"plate":"ssbc00000","heterozygosity":[1,"0.1111"],"call_rate":[0,"0.940594"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"A14","gender":[1,"1.000000","2","2"]},"urn:wtsi:plate0001_A09_sample000064":{"magnitude":[1,"0.991262"],"xydiff":[1,"-0.250982"],"plate":"ssbc00000","heterozygosity":[1,"0.2889"],"call_rate":[1,"0.950495"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"C17","gender":[1,"0.000000","1","1"]},"urn:wtsi:plate0001_G05_sample000038":{"magnitude":[1,"1.015826"],"xydiff":[1,"-0.174420"],"plate":"ssbc00000","heterozygosity":[1,"0.2326"],"call_rate":[1,"0.960396"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"B15","gender":[1,"0.500000","2","2"]},"urn:wtsi:plate0001_C01_sample000002":{"magnitude":[1,"0.960316"],"xydiff":[1,"-0.209444"],"plate":"ssbc00000","heterozygosity":[1,"0.2683"],"call_rate":[0,"0.920792"],"identity":[1,"1.0000","1.0000"],"duplicate":[0,"1.0000"],"address":"A03","gender":[1,"0.000000","1","1"]}} \ No newline at end of file diff --git a/src/perl/t/reports.t b/src/perl/t/reports.t index b5686d68a..48925ce9c 100644 --- a/src/perl/t/reports.t +++ b/src/perl/t/reports.t @@ -25,8 +25,8 @@ my $gtName = "sample_xhet_gender_thresholds.txt"; my $tempdir = tempdir("/tmp/qc_report_tXXXXXX", CLEANUP => 1); my $cmd = "cp $inputdir$dbName $inputdir$resultName $inputdir$gtName ". "$inputdir$idName ${inputdir}*.pdf $tempdir"; -if (system($cmd)!=0) { - croak "Cannot copy input files to temporary directory!"; +if (system($cmd)!=0) { + croak "Cannot copy input files to temporary directory!"; } my $dbPath = $tempdir."/".$dbName; my $resultPath = $tempdir."/".$resultName; @@ -42,11 +42,11 @@ ok(@text, "Read database dataset info"); my ($sumRef, $keyRef, $countRef, $rateRef) = WTSI::NPG::Genotyping::QC::Reports::textForPlates($resultPath, $config); # expect exactly 13 lines, including header -is(@{$countRef}, 13, "Find pass/fail count table text"); -is(@{$rateRef}, 13, "Find pass/fail rate table text"); +is(@{$countRef}, 13, "Find pass/fail count table text"); +is(@{$rateRef}, 13, "Find pass/fail rate table text"); ok(WTSI::NPG::Genotyping::QC::Reports::writeSummaryLatex - ($texPath, $resultPath, $idPath, $config, $dbPath, $gtPath, $tempdir, + ($texPath, $resultPath, $config, $dbPath, $gtPath, $tempdir, $introPath, $qcName, $title, $author), "Write summary .tex"); if (-e $pdfPath) { system("rm -f $pdfPath"); } @@ -55,7 +55,7 @@ ok(WTSI::NPG::Genotyping::QC::Reports::texToPdf($texPath), "Convert .tex to .pdf ok((-e $pdfPath), "PDF file exists"); -ok(createReports($texPath, $resultPath, $idPath, $config, $dbPath, $gtPath, +ok(createReports($texPath, $resultPath, $config, $dbPath, $gtPath, $tempdir, $introPath, $qcName, $title, $author), "Main method to create PDF reports"); diff --git a/src/r/bin/check_xhet_gender.R b/src/r/bin/check_xhet_gender.R index c65930c97..a878051aa 100755 --- a/src/r/bin/check_xhet_gender.R +++ b/src/r/bin/check_xhet_gender.R @@ -1,24 +1,5 @@ #!/usr/bin/env Rscript -# Author: Iain Bancarz, ib5@sanger.ac.uk -# April 2012 - -# -# Copyright (c) 2012 Genome Research Ltd. All rights reserved. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# ######################################################### # script to infer sample gender from xhet (x chromosome heterozygosity) @@ -284,3 +265,19 @@ cat(paste('Ambiguity_rate ', signif(ambig/total,4), "\n", sep='')) write.table(data.new, textPath, sep="\t", quote=FALSE, row.names=FALSE) # note that R will automatically close logfile + +##################################################################### + +# Author: Iain Bancarz + +# Copyright (c) 2012, 2016 Genome Research Limited. All Rights Reserved. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. diff --git a/src/r/bin/heatmapCrHetDensity.R b/src/r/bin/heatmapCrHetDensity.R index 58fc5a25b..dd2379604 100755 --- a/src/r/bin/heatmapCrHetDensity.R +++ b/src/r/bin/heatmapCrHetDensity.R @@ -46,3 +46,17 @@ make.plot <- function(data, title, hetMin, hetMax, type, outPath) { make.plot(data, title, hetMin, hetMax, 'pdf', pdfPath) make.plot(data, title, hetMin, hetMax, 'png', pngPath) + +# Author: Iain Bancarz + +# Copyright (c) 2012, 2016 Genome Research Limited. All Rights Reserved. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. diff --git a/src/r/bin/plotCombinedFails.R b/src/r/bin/plotCombinedFails.R index c2a427235..2b22d7084 100755 --- a/src/r/bin/plotCombinedFails.R +++ b/src/r/bin/plotCombinedFails.R @@ -16,7 +16,7 @@ make.plot <- function(experiment, combined.counts, combined.causes, total, type, outPath) { if (type=='pdf') { pdf(outPath, paper="a4") } else if (type=='png') { png(outPath, width=800,height=800,pointsize=18) } - cause.key <- c("C = Call_rate", "D = Duplicate", "G = Gender", "H = Heterozygosity", "I = Identity_with_Sequenom", "M = Magnitude_of_intensity") + cause.key <- c("C = Call_rate", "D = Duplicate", "G = Gender", "H = Heterozygosity", "I = Probability_of_identity", "M = Magnitude_of_intensity") layout(matrix(c(1,2), 2, 1), heights=c(2,1)) par(mar=c(5.1, 4.1, 7.1, 2.1)) # increase top margin barplot(rev(combined.counts), names.arg=rev(combined.causes), col=2, las=1, horiz=TRUE, xlab="Total failed samples", main=paste(experiment, "\nCombined causes of sample failure\n", sep=""), cex.names=0.8) @@ -31,3 +31,17 @@ make.plot <- function(experiment, combined.counts, combined.causes, total, make.plot(experiment, combined.counts, combined.causes, total, 'pdf', pdfPath) make.plot(experiment, combined.counts, combined.causes, total, 'png', pngPath) + +# Author: Iain Bancarz + +# Copyright (c) 2012, 2016, 2017 Genome Research Limited. All Rights Reserved. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. diff --git a/src/r/bin/plotCrHetDensity.R b/src/r/bin/plotCrHetDensity.R index 8feb270f6..944287fe0 100755 --- a/src/r/bin/plotCrHetDensity.R +++ b/src/r/bin/plotCrHetDensity.R @@ -47,3 +47,19 @@ graphics.off() png(hetPng, height=800, width=800, pointsize=18) hist(het, col=2, breaks=40, xlab="Autosome heterozygosity rate", main=paste(title, "Sample Het Rate")) dev.off() + + +# Author: Iain Bancarz + +# Copyright (c) 2012, 2016 Genome Research Limited. All Rights Reserved. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + diff --git a/src/r/bin/plotCrPlate.R b/src/r/bin/plotCrPlate.R index f9cad7515..fb5820366 100755 --- a/src/r/bin/plotCrPlate.R +++ b/src/r/bin/plotCrPlate.R @@ -22,3 +22,18 @@ image(c(0:40), c(1), as.matrix(c(1:40)), col=c("#000000", rainbow(40, end=0.8)), axis(3, at=c(0,10,20,30,40), labels=c('No data', '90%', '99%', '99.9%', '99.99%')) dev.off() q(status=0) + + +# Author: Iain Bancarz + +# Copyright (c) 2012, 2016 Genome Research Limited. All Rights Reserved. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. diff --git a/src/r/bin/plotHetPlate.R b/src/r/bin/plotHetPlate.R index 2e5dcadd8..aad98b75d 100755 --- a/src/r/bin/plotHetPlate.R +++ b/src/r/bin/plotHetPlate.R @@ -20,3 +20,18 @@ image(c(0:50)*0.02, c(1), as.matrix(c(1:50)), col=c("#000000", rainbow(50, end=0 axis(3, at=c(0), labels=c('No data')) dev.off() q(status=0) + + +# Author: Iain Bancarz + +# Copyright (c) 2012, 2016 Genome Research Limited. All Rights Reserved. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. diff --git a/src/r/bin/plotIndividualFails.R b/src/r/bin/plotIndividualFails.R index 425582323..8f85fdc99 100755 --- a/src/r/bin/plotIndividualFails.R +++ b/src/r/bin/plotIndividualFails.R @@ -27,4 +27,18 @@ make.plot(experiment, single.causes, single.counts, total, 'pdf', pdfPath) make.plot(experiment, single.causes, single.counts, total, 'png', pngPath) +# Author: Iain Bancarz + +# Copyright (c) 2012, 2016 Genome Research Limited. All Rights Reserved. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + diff --git a/src/r/bin/plotMagnitudePlate.R b/src/r/bin/plotMagnitudePlate.R index 6af9094c9..09eec2ee3 100755 --- a/src/r/bin/plotMagnitudePlate.R +++ b/src/r/bin/plotMagnitudePlate.R @@ -23,3 +23,18 @@ axis(2, at=0.5, labels=c("No data"), las=1, cex.axis=0.8) axis(3, at=c(0.8,1.2), labels=c('< 0.8', '> 1.2')) dev.off() q(status=0) + + +# Author: Iain Bancarz + +# Copyright (c) 2012, 2016 Genome Research Limited. All Rights Reserved. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. diff --git a/src/r/bin/plotXYdiffDensity.R b/src/r/bin/plotXYdiffDensity.R index 34cfc25f2..c119ab833 100755 --- a/src/r/bin/plotXYdiffDensity.R +++ b/src/r/bin/plotXYdiffDensity.R @@ -17,3 +17,18 @@ options(device="png") # sets default graphics output; prevents generation of emp png(pngOut, height=800, width=800, pointsize=18) hist(xydiff, breaks=40, col=2, xlab="xydiff", main=paste(title, ": XY intensity difference")) dev.off() + + +# Author: Iain Bancarz + +# Copyright (c) 2012, 2016 Genome Research Limited. All Rights Reserved. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. diff --git a/src/r/bin/plotXYdiffPlate.R b/src/r/bin/plotXYdiffPlate.R index 1751f5875..690f77c4c 100755 --- a/src/r/bin/plotXYdiffPlate.R +++ b/src/r/bin/plotXYdiffPlate.R @@ -31,3 +31,18 @@ image(seq(from=global.min, to=global.max, length.out=50), c(1), as.matrix(c(1:50 axis(3, at=c(global.min, global.max), labels=c(paste("< ", signif(global.min,3)), paste("> ", signif(global.max,3))) ) # round labels to 3 s.f. dev.off() q(status=0) + + +# Author: Iain Bancarz + +# Copyright (c) 2012, 2016 Genome Research Limited. All Rights Reserved. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. diff --git a/src/r/bin/scatterPlotFails.R b/src/r/bin/scatterPlotFails.R index e6c302ade..c7997e687 100755 --- a/src/r/bin/scatterPlotFails.R +++ b/src/r/bin/scatterPlotFails.R @@ -29,7 +29,7 @@ qmax <- 40 q = -10 * log10(1-cr) # convert to phred scale q[q>qmax] <- qmax # truncate CR better than Q40 (!) qmin <- -10 * log10(1-minCR) # minimum CR for QC pass -categories = c("Duplicate", "Gender", "Identity (Sequenom)", "Magnitude", "Multiple/Other") # legend categories +categories = c("Duplicate", "Gender", "Identity", "Magnitude", "Multiple/Other") # legend categories make.plot.full <- function(hetMean, hetMaxDist, minCR, experiment, categories, names, cr, het, d.fail, g.fail, i.fail, m.fail, fail.sum, q, qmin, qmax, type, outPath) { if (type=='pdf') { pdf(outPath, paper="a4") } @@ -96,3 +96,17 @@ make.plot.detail(hetMean, hetMaxDist, minCR, experiment, categories, names, cr, make.plot.detail(hetMean, hetMaxDist, minCR, experiment, categories, names, cr, het, d.fail, g.fail, i.fail, m.fail, fail.sum, q, qmin, qmax, 'png', pngDetail) + +# Author: Iain Bancarz + +# Copyright (c) 2012, 2016 Genome Research Limited. All Rights Reserved. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. diff --git a/src/r/bin/scatter_plot_metric.R b/src/r/bin/scatter_plot_metric.R index 26e571308..718efe0b5 100755 --- a/src/r/bin/scatter_plot_metric.R +++ b/src/r/bin/scatter_plot_metric.R @@ -120,7 +120,7 @@ ylab.name <- function(metricName) { } else if (metricName=='duplicate') { ylab.name <- "maximum similarity on test panel" } else if (metricName=='identity') { - ylab.name <- "identity with Sequenom results" + ylab.name <- "probability of identity with QC plex results" } else if (metricName=='magnitude') { ylab.name <- "normalised magnitude of intensity" } else { @@ -182,3 +182,18 @@ pn <- process.pn(pn) plot.pdf(index, metric, pass, pn, pb, metricName, metricMean, metricSd, metricThresh1, metricThresh2, sdThresh, plotNum, plotTotal, xmin, xmax, ymin, ymax, outPath) + + +# Author: Iain Bancarz + +# Copyright (c) 2012, 2016, 2017 Genome Research Limited. All Rights Reserved. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. diff --git a/src/ruby/genotyping-workflows/data/illuminus_test_prefilter.json b/src/ruby/genotyping-workflows/data/illuminus_test_prefilter.json index 68b134e77..2b06ed380 100644 --- a/src/ruby/genotyping-workflows/data/illuminus_test_prefilter.json +++ b/src/ruby/genotyping-workflows/data/illuminus_test_prefilter.json @@ -1,4 +1,7 @@ { + "collation_names": { + "call_rate":"sample_cr_het.txt" + }, "Metrics_thresholds": { "call_rate": 0.9995 }, diff --git a/src/ruby/genotyping-workflows/lib/genotyping.rb b/src/ruby/genotyping-workflows/lib/genotyping.rb index cc9d6b323..1ef120cc6 100644 --- a/src/ruby/genotyping-workflows/lib/genotyping.rb +++ b/src/ruby/genotyping-workflows/lib/genotyping.rb @@ -44,6 +44,7 @@ module Genotyping require 'genotyping/tasks/simtools' require 'genotyping/tasks/zcall' +require 'genotyping/workflows/genotype_gencall' require 'genotyping/workflows/genotype_illuminus' require 'genotyping/workflows/genotype_zcall' -require 'genotyping/workflows/identity_qc' + diff --git a/src/ruby/genotyping-workflows/lib/genotyping/tasks/quality_control.rb b/src/ruby/genotyping-workflows/lib/genotyping/tasks/quality_control.rb index d9a89e149..90d894d18 100644 --- a/src/ruby/genotyping-workflows/lib/genotyping/tasks/quality_control.rb +++ b/src/ruby/genotyping-workflows/lib/genotyping/tasks/quality_control.rb @@ -19,7 +19,6 @@ module Genotyping::Tasks RUN_QC = 'run_qc.pl' - CHECK_IDENTITY_BED = 'check_identity_bed.pl' module QualityControl include Genotyping::Tasks @@ -76,60 +75,5 @@ def quality_control(dbfile, input, output, end end end # quality_control - - - # Runs the identity check stand-alone on genotype call results. - # - # Arguments: - # - dbfile (String): The SQLite database file name. - # - input (String): Path to the Plink BED file; corresponding BIM, FAM files are assumed to be present in the same directory - # - output (String): Path to directory to write results - # - args (Hash): Arguments for the operation. - # - async (Hash): Arguments for asynchronous management. - # - # Returns: - # - boolean - # - # NOTE: This is the old version of the identity check. Calls are read - # from the SQLite pipeline database instead of a VCF file. - # - def check_identity(dbfile, input, output, args = {}, async = {}) - - args, work_dir, log_dir = process_task_args(args) - - if args_available?(dbfile, input, output, work_dir) - - base = File.basename(input, File.extname(input)) - plink = File.join(File.dirname(input), base) - Dir.mkdir(output) unless File.exist?(output) - - cli_args = args.merge({:db => dbfile, - :plink => plink, - :outdir => output}) - margs = [dbfile, input, output] - - - command = [CHECK_IDENTITY_BED, - cli_arg_map(cli_args, :prefix => '--')].flatten.join(' ') - task_id = task_identity(:check_identity, *margs) - log = File.join(log_dir, task_id + '.log') - - result_names = ['identity_check_failed_pairs.txt', - 'identity_check_gt.txt', - 'identity_check.json', - 'identity_check_results.txt' - ] - results = Array.new - result_names.each{ |name| results.push(File.join(output, name)) } - - async_task(margs, command, work_dir, log, - :post => lambda {ensure_files(results, :error => false)}, - :result => lambda { true }, - :async => async) - - end - - end # check_identity - - end + end # module QualityControl end diff --git a/src/ruby/genotyping-workflows/lib/genotyping/workflows/genotype_gencall.rb b/src/ruby/genotyping-workflows/lib/genotyping/workflows/genotype_gencall.rb new file mode 100644 index 000000000..5d6dfccb6 --- /dev/null +++ b/src/ruby/genotyping-workflows/lib/genotyping/workflows/genotype_gencall.rb @@ -0,0 +1,166 @@ +#-- encoding: UTF-8 +# +# Copyright (c) 2017 Genome Research Ltd. All rights reserved. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +module Genotyping::Workflows + + class GenotypeGencall < Percolate::Workflow + include Genotyping + include Genotyping::Tasks::Metadata + include Genotyping::Tasks::GenotypeCall + include Genotyping::Tasks::Simtools + include Genotyping::Tasks::Plink + include Genotyping::Tasks::QualityControl + + + description <<-DESC +Writes GenCall genotyping data in Plink binary format, and runs the +standard set of QC checks. + +Requires a populated pipeline database. + DESC + + usage <<-USAGE +GenotypeGencall args + +Arguments: + +- db_file : The SQLite pipeline database file. +- run_name : The name of a pipeline run defined in the pipeline +database. +- work_dir : The working directory, an absolute path. +- other arguments (keys and values): + + - config: of custom pipeline database .ini file. Optional. + - manifest: of the chip manifest file. Required. + - plex_manifest: containing paths to one or more qc plex + manifest files. If plex_manifest is supplied, vcf must also be given. + - gender_method: name of a gender determination method + described in methods.ini. Optional, defaults to 'Inferred' + - memory: number of Mb to request for jobs. + - queue: An LSF queue hint. Optional. + - fam_dummy: Dummy value for missing paternal/maternal ID or + phenotype in Plink .fam output. Must be equal to 0 or -9. Optional, + defaults to -9. + - vcf: containing paths to one or more VCF files for identity QC. + If vcf is supplied, plex_manifest must also be given. + +e.g. + + library: genotyping + workflow: Genotyping::Workflows::GenotypeGencall + arguments: + - /work/my_project/my_analysis.db + - sample_batch_1 + - /work/my_project/pipeline/ + - config: /work/my_project/pipeline/pipedb.ini + queue: small + manifest: /genotyping/manifests/Human670-QuadCustom_v1_A.bpm.csv + vcf: + - /work/my_project/qc_calls_foo.vcf + - /work/my_project/qc_calls_bar.vcf + plex_manifest: + -/genotyping/manifests/qc_foo.tsv + -/genotyping/manifests/qc_bar.tsv + +Returns: + +- boolean. + USAGE + + #version '0.1.0' + def run(dbfile, run_name, work_dir, args = {}) + defaults = {} + args = intern_keys(defaults.merge(args)) + args = ensure_valid_args(args, :config, :manifest, :plex_manifest, + :queue, :memory, :select, + :fam_dummy, :gender_method, :vcf) + + async_defaults = {:memory => 1024} + async = lsf_args(args, async_defaults, :memory, :queue, :select) + + manifest_raw = args.delete(:manifest) + plex_manifest = args.delete(:plex_manifest) || Array.new() + fam_dummy = args.delete(:fam_dummy) || -9 + gender_method = args.delete(:gender_method) + config = args.delete(:config) + vcf = args.delete(:vcf) || Array.new() + + args.delete(:memory) + args.delete(:queue) + args.delete(:select) + + if vcf.empty? and (not plex_manifest.empty?) + raise ArgumentError, "Plex manifest must be accompanied by VCF" + elsif (not vcf.empty?) and plex_manifest.empty? + raise ArgumentError, "VCF must be accompanied by plex manifest" + end + + ENV['PERL_INLINE_DIRECTORY'] = self.inline_dir + + work_dir = maybe_work_dir(work_dir) + log_dir = File.join(work_dir, 'log') + Dir.mkdir(log_dir) unless File.exist?(log_dir) + args = {:work_dir => work_dir, + :log_dir => log_dir}.merge(args) + maybe_version_log(log_dir) + + run_name = run_name.to_s + sjname = run_name + '.gencall.sample.json' + njname = run_name + '.snp.json' + cjname = run_name + '.chr.json' + smname = run_name + '.sim' + gciname = run_name + '.gencall.imajor.bed' + gcsname = run_name + '.gencall.smajor.bed' + + sjson = sample_intensities(dbfile, run_name, sjname, args) + gcifile, * = gtc_to_bed(sjson, manifest_raw, gciname, args, async) + # Must use raw manifest for gtc_to_bed; manifest needs to be consistent with allele values encoded in GTC files. g2i requires an un-normalized manifest as input, carries out normalization itself, and writes normalized .bim files in output. + gcsfile = transpose_bed(gcifile, gcsname, args, async) + manifest_name = File.basename(manifest_raw, '.bpm.csv') + manifest_name = manifest_name+'.normalized.bpm.csv' + manifest = normalize_manifest(manifest_raw, manifest_name, args) + njson, cjson = parse_manifest(manifest, njname, cjname, args) + + # generate .sim file to compute intensity metrics + smargs = {:normalize => true }.merge(args) + smfile = gtc_to_sim(sjson, manifest, smname, smargs, async) + + gcsfile = update_annotation(gcsfile, sjson, njson, fam_dummy, + args, async) + + output = File.join(work_dir, 'gencall_qc') + qcargs = { + :run => run_name, + :sim => smfile + }.merge(args) + if (not vcf.empty?) and (not plex_manifest.empty?) + # use comma-separated lists of VCF/plex files in QC args + qcargs = qcargs.merge({ + :vcf => vcf.join(","), + :plex_manifest => plex_manifest.join(","), + :sample_json => sjson + }) + end + + gcquality = quality_control(dbfile, gcsfile, output, qcargs, async) + + end + + end + +end diff --git a/src/ruby/genotyping-workflows/lib/genotyping/workflows/genotype_illuminus.rb b/src/ruby/genotyping-workflows/lib/genotyping/workflows/genotype_illuminus.rb index a5eadcc50..5345b69cc 100644 --- a/src/ruby/genotyping-workflows/lib/genotyping/workflows/genotype_illuminus.rb +++ b/src/ruby/genotyping-workflows/lib/genotyping/workflows/genotype_illuminus.rb @@ -48,7 +48,7 @@ class GenotypeIlluminus < Percolate::Workflow - config: of custom pipeline database .ini file. Optional. - manifest: of the chip manifest file. Required. - - plex_manifest: containing paths to one or more qc plex manifest files. Required. + - plex_manifest: containing paths to one or more qc plex manifest files. If plex_manifest is supplied, vcf must also be given. - gender_method: name of a gender determination method described in methods.ini. Optional, defaults to 'Inferred' - chunk_size: number of SNPs to analyse in a single Illuminus job. @@ -61,8 +61,7 @@ class GenotypeIlluminus < Percolate::Workflow - nofilter: omit the prefilter on GenCall QC. Optional. If true, overrides the filterconfig argument. - fam_dummy: Dummy value for missing paternal/maternal ID or phenotype in Plink .fam output. Must be equal to 0 or -9. Optional, defaults to -9. - - vcf: containing paths to one or more VCF files for identity QC - - plex_manifest: containing paths to one or more plex manifest files for identity QC + - vcf: containing paths to one or more VCF files for identity QC. If vcf is supplied, plex_manifest must also be given. e.g. @@ -93,16 +92,15 @@ def run(dbfile, run_name, work_dir, args = {}) defaults = {} args = intern_keys(defaults.merge(args)) args = ensure_valid_args(args, :config, :manifest, :plex_manifest, - :queue, :memory, - :select, :chunk_size, :fam_dummy, - :gender_method, :filterconfig, :nofilter, - :vcf, :plex_manifest) + :queue, :memory, :select, :chunk_size, + :fam_dummy, :gender_method, + :filterconfig, :nofilter, :vcf) async_defaults = {:memory => 1024} async = lsf_args(args, async_defaults, :memory, :queue, :select) manifest_raw = args.delete(:manifest) - plex_manifest = args.delete(:plex_manifest) + plex_manifest = args.delete(:plex_manifest) || Array.new() chunk_size = args.delete(:chunk_size) || 2000 fam_dummy = args.delete(:fam_dummy) || -9 gender_method = args.delete(:gender_method) @@ -115,6 +113,12 @@ def run(dbfile, run_name, work_dir, args = {}) args.delete(:queue) args.delete(:select) + if vcf.empty? and (not plex_manifest.empty?) + raise ArgumentError, "Plex manifest must be accompanied by VCF" + elsif (not vcf.empty?) and plex_manifest.empty? + raise ArgumentError, "VCF must be accompanied by plex manifest" + end + ENV['PERL_INLINE_DIRECTORY'] = self.inline_dir work_dir = maybe_work_dir(work_dir) diff --git a/src/ruby/genotyping-workflows/lib/genotyping/workflows/genotype_zcall.rb b/src/ruby/genotyping-workflows/lib/genotyping/workflows/genotype_zcall.rb index aa55ae0e8..08612efad 100644 --- a/src/ruby/genotyping-workflows/lib/genotyping/workflows/genotype_zcall.rb +++ b/src/ruby/genotyping-workflows/lib/genotyping/workflows/genotype_zcall.rb @@ -47,7 +47,6 @@ class GenotypeZCall < Percolate::Workflow config: of custom pipeline database .ini file. Optional. manifest: of the chip manifest file. Required. - plex_manifest: of the qc plex manifest file. Required. egt: of the .EGT intensity cluster file. Required. chunk_size: number of samples to analyse in a single job. Optional, defaults to 20. @@ -102,16 +101,17 @@ class GenotypeZCall < Percolate::Workflow def run(dbfile, run_name, work_dir, args = {}) defaults = {} args = intern_keys(defaults.merge(args)) - args = ensure_valid_args(args, :config, :manifest, :egt, :queue, - :memory, :select, :chunk_size, :fam_dummy, - :zstart, :ztotal, :filterconfig, :nofilter, - :nosim, :vcf, :plex_manifest) + args = ensure_valid_args(args, :config, :manifest, :plex_manifest, + :egt, :queue, :memory, :select, :chunk_size, + :fam_dummy, :zstart, :ztotal, + :filterconfig, :nofilter, + :nosim, :vcf) async_defaults = {:memory => 1024} async = lsf_args(args, async_defaults, :memory, :queue, :select) manifest_raw = args.delete(:manifest) - plex_manifest = args.delete(:plex_manifest) + plex_manifest = args.delete(:plex_manifest) || Array.new() egt_file = args.delete(:egt) chunk_size = args.delete(:chunk_size) || 10 fam_dummy = args.delete(:fam_dummy) || -9 @@ -127,6 +127,12 @@ def run(dbfile, run_name, work_dir, args = {}) args.delete(:queue) args.delete(:select) + if vcf.empty? and (not plex_manifest.empty?) + raise ArgumentError, "Plex manifest must be accompanied by VCF" + elsif (not vcf.empty?) and plex_manifest.empty? + raise ArgumentError, "VCF must be accompanied by plex manifest" + end + ENV['PERL_INLINE_DIRECTORY'] = self.inline_dir work_dir = maybe_work_dir(work_dir) diff --git a/src/ruby/genotyping-workflows/lib/genotyping/workflows/identity_qc.rb b/src/ruby/genotyping-workflows/lib/genotyping/workflows/identity_qc.rb deleted file mode 100644 index c5026d643..000000000 --- a/src/ruby/genotyping-workflows/lib/genotyping/workflows/identity_qc.rb +++ /dev/null @@ -1,112 +0,0 @@ -#-- encoding: UTF-8 -# -# Copyright (c) 2014 Genome Research Ltd. All rights reserved. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# - -module Genotyping::Workflows - - class IdentityQC < Percolate::Workflow - include Genotyping - include Genotyping::Tasks::Metadata - include Genotyping::Tasks::Plink - include Genotyping::Tasks::QualityControl - include Genotyping::Tasks::Simtools # needed for gtc_to_bed - - description <<-DESC -Convert GTC input files to Plink binary format and run the identity QC metric. -Requires a populated pipeline database containing QC plex calls (eg. Sequenom -or Fluidigm) - DESC - - usage <<-USAGE -IdentityQC args - -Arguments: - -- db_file (String): The SQLite pipeline database file. -- run_name (String): The name of a pipeline run defined in the pipeline database. -- work_dir (String): The working directory, an absolute path. -- other arguments (keys and values): - - - ini: of custom pipeline database .ini file. Optional. - - manifest: of the bpm.csv manifest file. Required. - - min_snps: minimum number of SNPs shared between the QC plex and -Plink dataset. Optional. - - min_ident: number between 0 and 1; minimum identity with the QC -plex for a smple to be marked as a pass. Optional. - - memory: number of Mb to request for jobs. - - queue: An LSF queue hint. Optional, defaults to - 'normal'. - -e.g. - - library: genotyping - workflow: Genotyping::Workflows::IdentityQC - arguments: - - /work/my_project/my_analysis.db - - sample_batch_1 - - /work/my_project/pipeline/ - - config: /work/my_project/pipeline/pipedb.ini - queue: small - manifest: /genotyping/manifests/Human670-QuadCustom_v1_A.bpm.csv - -Returns: - -- boolean. - USAGE - - def run(dbfile, run_name, work_dir, args = {}) - - defaults = {} - args = intern_keys(defaults.merge(args)) - args = ensure_valid_args(args, :ini, :queue, :memory, :select, - :manifest, :min_snps, :min_ident, :db_file) - async_defaults = {:memory => 1024} - async = lsf_args(args, async_defaults, :memory, :queue, :select) - - manifest_raw = args.delete(:manifest) - inipath = args.delete(:ini) - dbfile = args.delete(:db_file) - min_snps = args.delete(:min_snps) || 8 - min_ident = args.delete(:min_ident) || 0.9 - args.delete(:memory) - args.delete(:queue) - args.delete(:select) - - work_dir = maybe_work_dir(work_dir) - log_dir = File.join(work_dir, 'log') - Dir.mkdir(log_dir) unless File.exist?(log_dir) - args = {:work_dir => work_dir, - :log_dir => log_dir}.merge(args) - maybe_version_log(log_dir) - - run_name = run_name.to_s; - - gcsjname = run_name + '.gencall.sample.json' - gciname = run_name + '.gencall.imajor.bed' - gcsname = run_name + '.gencall.smajor.bed' - gcsjson = sample_intensities(dbfile, run_name, gcsjname, args) - gcifile, * = gtc_to_bed(gcsjson, manifest_raw, gciname, args, async) - gcsfile = transpose_bed(gcifile, gcsname, args, async) - - id_args = {:ini => inipath, :min_snps => min_snps, - :min_ident => min_ident}.merge(args) - check_identity(dbfile, gcsfile, work_dir, id_args, async) - - end - - end # end class -end # end module diff --git a/src/ruby/genotyping-workflows/test/test_gencall_workflow.rb b/src/ruby/genotyping-workflows/test/test_gencall_workflow.rb new file mode 100644 index 000000000..6ebccf009 --- /dev/null +++ b/src/ruby/genotyping-workflows/test/test_gencall_workflow.rb @@ -0,0 +1,148 @@ +#-- encoding: UTF-8 +# +# Copyright (c) 2017 Genome Research Ltd. All rights reserved. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +devpath = File.expand_path(File.join(File.dirname(__FILE__), '..')) +libpath = File.join(devpath, 'lib') +testpath = File.join(devpath, 'test') + +$:.unshift(libpath) unless $:.include?(libpath) + +require 'rubygems' +require 'test/unit' +require 'fileutils' +require 'json' + +require 'genotyping' +require File.join(testpath, 'test_helper') + +class TestGencallWorkflow < Test::Unit::TestCase + + include TestHelper + include Genotyping + include Genotyping::Tasks + + def initialize(name) + super(name) + @msg_host = Socket.gethostname + @msg_port = 11300 + end + + def test_genotype_gencall + + external_data = ENV['GENOTYPE_TEST_DATA'] + manifest = manifest_path + name = 'test_genotype_gencall' + + run_name = 'run1' + pipe_ini = File.join(data_path, 'genotyping.ini') + vcf = File.join(external_data, 'sequenom_abvc.vcf') + plex_0 = File.join(external_data, 'W30467_snp_set_info_GRCh37.tsv') + plex_1 = File.join(external_data, 'qc_fluidigm_snp_info_GRCh37.tsv') + # plex_1 not needed for workflow, but tests handling multiple plex args + + run_test_if((lambda {manifest} and method(:plinktools_diff_available?)), "Skipping #{name}") do + + work_dir = make_work_dir(name, data_path) + dbfile = File.join(work_dir, name + '.db') + FileUtils.copy(File.join(external_data, 'genotyping.db'), dbfile) + args_hash = {:manifest => manifest, + :plex_manifest => [plex_0, plex_1], + :config => pipe_ini, + :gender_method => 'Supplied', + :memory => 2048, + :queue => 'yesterday', + :vcf => [vcf, ] + } + args = [dbfile, run_name, work_dir, args_hash] + timeout = 1400 + log = 'percolate.log' + result = test_workflow(name, Genotyping::Workflows::GenotypeGencall, + timeout, work_dir, log, args) + assert(result) + + plink_name = run_name+'.gencall.smajor' + stem = File.join(work_dir, plink_name) + master = File.join(external_data, plink_name) + equiv = plink_equivalent?(stem, master, run_name, + {:work_dir => work_dir, + :log_dir => work_dir}) + assert(equiv) + Percolate.log.close + remove_work_dir(work_dir) if (result and equiv) + + end + end + + def test_genotype_gencall_invalid_args + external_data = ENV['GENOTYPE_TEST_DATA'] + manifest = manifest_path + name = 'test_genotype_gencall_invalid_args' + timeout = 1400 + run_name = 'run1' + log = 'percolate.log' + + pipe_ini = File.join(data_path, 'genotyping.ini') + vcf = File.join(external_data, 'sequenom_abvc.vcf') + plex_0 = File.join(external_data, 'W30467_snp_set_info_GRCh37.tsv') + plex_1 = File.join(external_data, 'qc_fluidigm_snp_info_GRCh37.tsv') + # plex_1 not needed for workflow, but tests handling multiple plex args + + run_test_if((lambda { manifest }), "Skipping #{name}") do + + ### invalid arguments: plex manifest without VCF + work_dir1 = make_work_dir(name+'.1', data_path) + dbfile1 = File.join(work_dir1, name + '.db') + FileUtils.copy(File.join(external_data, 'genotyping.db'), dbfile1) + args_hash = {:manifest => manifest, + :plex_manifest => [plex_0, plex_1], + :config => pipe_ini, + :gender_method => 'Supplied', + :memory => 2048, + :queue => 'yesterday', + :vcf => [ ] + } + args = [dbfile1, run_name, work_dir1, args_hash] + result1 = test_workflow(name,Genotyping::Workflows::GenotypeGencall, + timeout, work_dir1, log, args) + assert(result1 == false) + Percolate.log.close + remove_work_dir(work_dir1) if result1 == false + + ### invalid arguments: VCF without plex manifest + work_dir2 = make_work_dir(name+'.2', data_path) + dbfile2 = File.join(work_dir2, name + '.db') + FileUtils.copy(File.join(external_data, 'genotyping.db'), dbfile2) + args_hash = {:manifest => manifest, + :plex_manifest => [ ], + :config => pipe_ini, + :gender_method => 'Supplied', + :memory => 2048, + :queue => 'yesterday', + :vcf => [ vcf, ] + } + args = [dbfile2, run_name, work_dir2, args_hash] + result2 = test_workflow(name,Genotyping::Workflows::GenotypeGencall, + timeout, work_dir2, log, args) + assert(result2 == false) + Percolate.log.close + remove_work_dir(work_dir2) if result2 == false + + end + end + +end diff --git a/src/ruby/genotyping-workflows/test/test_helper.rb b/src/ruby/genotyping-workflows/test/test_helper.rb index 04befce82..dad569410 100644 --- a/src/ruby/genotyping-workflows/test/test_helper.rb +++ b/src/ruby/genotyping-workflows/test/test_helper.rb @@ -34,10 +34,6 @@ def manifest_path end end - def plex_path - File.join(data_path, 'W30467_snp_set_info_1000Genomes.tsv') - end - def egt_path if ENV['GENOTYPE_TEST_DATA'] Dir.glob(ENV['GENOTYPE_TEST_DATA']+"/*.egt").first @@ -85,7 +81,7 @@ def return_available?(value) else true end - end + end def wait_for(name, timeout, interval, &test) result = nil diff --git a/src/ruby/genotyping-workflows/test/test_identity_qc_workflow.rb b/src/ruby/genotyping-workflows/test/test_identity_qc_workflow.rb deleted file mode 100644 index 4f245ddbd..000000000 --- a/src/ruby/genotyping-workflows/test/test_identity_qc_workflow.rb +++ /dev/null @@ -1,73 +0,0 @@ -#-- encoding: UTF-8 -# -# Copyright (c) 2014 Genome Research Ltd. All rights reserved. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# - -devpath = File.expand_path(File.join(File.dirname(__FILE__), '..')) -libpath = File.join(devpath, 'lib') -testpath = File.join(devpath, 'test') - -$:.unshift(libpath) unless $:.include?(libpath) - -require 'rubygems' -require 'test/unit' -require 'fileutils' -require 'json' - -require 'genotyping' -require File.join(testpath, 'test_helper') - -class TestIdentityQC < Test::Unit::TestCase - include TestHelper - include Genotyping - include Genotyping::Tasks - - def initialize(name) - super(name) - @msg_host = Socket.gethostname - @msg_port = 11300 - end - - def test_identity_qc - external_data = ENV['GENOTYPE_TEST_DATA'] - manifest = manifest_path - name = 'test_identity_qc' - - work_dir = make_work_dir(name, data_path) - dbfile = File.join(work_dir, name + '.db') - run_name = 'run1' - pipe_ini = File.join(data_path, 'genotyping.ini') - - FileUtils.copy(File.join(external_data, 'genotyping.db'), dbfile) - manifest = File.join(external_data, 'Human670-QuadCustom_v1_A.bpm.csv') - args_hash = {:ini => pipe_ini, - :manifest => manifest, - :memory => 2048, - :db_file => dbfile} - args = [dbfile, run_name, work_dir, args_hash] - timeout = 1400 - log = 'percolate.log' - result = test_workflow(name, Genotyping::Workflows::IdentityQC, - timeout, work_dir, log, args) - assert(result) - - Percolate.log.close - - remove_work_dir(work_dir) if (result) - end - - -end diff --git a/src/ruby/genotyping-workflows/test/test_illuminus_workflow.rb b/src/ruby/genotyping-workflows/test/test_illuminus_workflow.rb index 149daaa55..16dcecd63 100644 --- a/src/ruby/genotyping-workflows/test/test_illuminus_workflow.rb +++ b/src/ruby/genotyping-workflows/test/test_illuminus_workflow.rb @@ -46,29 +46,28 @@ def test_genotype_illuminus manifest = manifest_path name = 'test_genotype_illuminus' + run_name = 'run1' + pipe_ini = File.join(data_path, 'genotyping.ini') + fconfig = File.join(data_path, 'illuminus_test_prefilter.json') + vcf = File.join(external_data, 'sequenom_abvc.vcf') + plex_0 = File.join(external_data, 'W30467_snp_set_info_GRCh37.tsv') + plex_1 = File.join(external_data, 'qc_fluidigm_snp_info_GRCh37.tsv') + # plex_1 not needed for workflow, but tests handling multiple plex args + run_test_if((lambda { illuminus_available? && manifest } and method(:plinktools_diff_available?)), "Skipping #{name}") do + work_dir = make_work_dir(name, data_path) dbfile = File.join(work_dir, name + '.db') - run_name = 'run1' - pipe_ini = File.join(data_path, 'genotyping.ini') - FileUtils.copy(File.join(external_data, 'genotyping.db'), dbfile) - fconfig = File.join(data_path, 'illuminus_test_prefilter.json') - vcf = File.join(external_data, 'sequenom_abvc.vcf') - plex_0 = File.join(external_data, 'W30467_snp_set_info_GRCh37.tsv') - plex_1 = File.join(external_data, 'qc_fluidigm_snp_info_GRCh37.tsv') - # plex_1 not needed for workflow, but tests handling multiple plex args - args_hash = {:manifest => manifest, - :plex_manifest => plex_path, + :plex_manifest => [plex_0, plex_1], :config => pipe_ini, :filterconfig => fconfig, :gender_method => 'Supplied', :chunk_size => 10000, :memory => 2048, :queue => 'yesterday', - :vcf => [vcf, ], - :plex_manifest => [plex_0, plex_1] + :vcf => [vcf, ] } args = [dbfile, run_name, work_dir, args_hash] timeout = 1400 @@ -76,7 +75,6 @@ def test_genotype_illuminus result = test_workflow(name, Genotyping::Workflows::GenotypeIlluminus, timeout, work_dir, log, args) assert(result) - plink_name = run_name+'.illuminus' stem = File.join(work_dir, plink_name) master = File.join(external_data, plink_name) @@ -85,10 +83,69 @@ def test_genotype_illuminus :log_dir => work_dir}) assert(equiv) Percolate.log.close - remove_work_dir(work_dir) if (result and equiv) end end + def test_genotype_illuminus_invalid_args + external_data = ENV['GENOTYPE_TEST_DATA'] + manifest = manifest_path + name = 'test_genotype_illuminus_invalid_args' + timeout = 1400 + run_name = 'run1' + log = 'percolate.log' + + pipe_ini = File.join(data_path, 'genotyping.ini') + fconfig = File.join(data_path, 'illuminus_test_prefilter.json') + vcf = File.join(external_data, 'sequenom_abvc.vcf') + plex_0 = File.join(external_data, 'W30467_snp_set_info_GRCh37.tsv') + plex_1 = File.join(external_data, 'qc_fluidigm_snp_info_GRCh37.tsv') + # plex_1 not needed for workflow, but tests handling multiple plex args + + run_test_if((lambda { illuminus_available? && manifest }), "Skipping #{name}") do + + ### invalid arguments: plex manifest without VCF + work_dir1 = make_work_dir(name+'.1', data_path) + dbfile1 = File.join(work_dir1, name + '.db') + FileUtils.copy(File.join(external_data, 'genotyping.db'), dbfile1) + args_hash = {:manifest => manifest, + :plex_manifest => [plex_0, plex_1], + :config => pipe_ini, + :filterconfig => fconfig, + :gender_method => 'Supplied', + :chunk_size => 10000, + :memory => 2048, + :queue => 'yesterday', + :vcf => [ ] + } + args = [dbfile1, run_name, work_dir1, args_hash] + result1 = test_workflow(name,Genotyping::Workflows::GenotypeIlluminus, + timeout, work_dir1, log, args) + assert(result1 == false) + Percolate.log.close + remove_work_dir(work_dir1) if result1 == false + + ### invalid arguments: VCF without plex manifest + work_dir2 = make_work_dir(name+'.2', data_path) + dbfile2 = File.join(work_dir2, name + '.db') + FileUtils.copy(File.join(external_data, 'genotyping.db'), dbfile2) + args_hash = {:manifest => manifest, + :plex_manifest => [ ], + :config => pipe_ini, + :filterconfig => fconfig, + :gender_method => 'Supplied', + :chunk_size => 10000, + :memory => 2048, + :queue => 'yesterday', + :vcf => [ vcf, ] + } + args = [dbfile2, run_name, work_dir2, args_hash] + result2 = test_workflow(name,Genotyping::Workflows::GenotypeIlluminus, + timeout, work_dir2, log, args) + assert(result2 == false) + Percolate.log.close + remove_work_dir(work_dir2) if result2 == false + end + end end diff --git a/src/ruby/genotyping-workflows/test/test_zcall_workflow.rb b/src/ruby/genotyping-workflows/test/test_zcall_workflow.rb index 7d07f653e..6224a9084 100644 --- a/src/ruby/genotyping-workflows/test/test_zcall_workflow.rb +++ b/src/ruby/genotyping-workflows/test/test_zcall_workflow.rb @@ -65,7 +65,6 @@ def test_genotype_zcall # Only 1 zscore in range; faster but omits threshold evaluation # The evaluation is tested by test_zcall_tasks.rb args = [dbfile, run_name, work_dir, {:manifest => manifest, - :plex_manifest => plex_path, :egt => egt, :chunk_size => 3, :zstart => 6, @@ -91,6 +90,65 @@ def test_genotype_zcall Percolate.log.close remove_work_dir(work_dir) if result and equiv end + end + + def test_genotype_zcall_invalid_args + external_data = ENV['GENOTYPE_TEST_DATA'] + manifest = manifest_path + name = 'test_genotype_zcall_invalid_args' + timeout = 1400 + run_name = 'run1' + log = 'percolate.log' + + pipe_ini = File.join(data_path, 'genotyping.ini') + vcf = File.join(external_data, 'sequenom_abvc.vcf') + plex_0 = File.join(external_data, 'W30467_snp_set_info_GRCh37.tsv') + plex_1 = File.join(external_data, 'qc_fluidigm_snp_info_GRCh37.tsv') + # plex_1 not needed for workflow, but tests handling multiple plex args + + run_test_if((lambda { zcall_available? && manifest }), "Skipping #{name}") do + ### invalid arguments: plex manifest without VCF + work_dir1 = make_work_dir(name+'.1', data_path) + dbfile1 = File.join(work_dir1, name + '.db') + FileUtils.copy(File.join(external_data, 'genotyping.db'), dbfile1) + args_hash = {:manifest => manifest, + :plex_manifest => [plex_0, plex_1], + :config => pipe_ini, + :gender_method => 'Supplied', + :chunk_size => 10000, + :memory => 2048, + :queue => 'yesterday', + :vcf => [ ] + } + args = [dbfile1, run_name, work_dir1, args_hash] + result1 = test_workflow(name,Genotyping::Workflows::GenotypeZCall, + timeout, work_dir1, log, args) + assert(result1 == false) + Percolate.log.close + remove_work_dir(work_dir1) if result1 == false + + ### invalid arguments: VCF without plex manifest + work_dir2 = make_work_dir(name+'.2', data_path) + dbfile2 = File.join(work_dir2, name + '.db') + FileUtils.copy(File.join(external_data, 'genotyping.db'), dbfile2) + args_hash = {:manifest => manifest, + :plex_manifest => [ ], + :config => pipe_ini, + :gender_method => 'Supplied', + :chunk_size => 10000, + :memory => 2048, + :queue => 'yesterday', + :vcf => [ vcf, ] + } + args = [dbfile2, run_name, work_dir2, args_hash] + result2 = test_workflow(name,Genotyping::Workflows::GenotypeZCall, + timeout, work_dir2, log, args) + assert(result2 == false) + Percolate.log.close + remove_work_dir(work_dir2) if result2 == false + + end end + end