diff --git a/README.md b/README.md index 0a0afad..c274320 100644 --- a/README.md +++ b/README.md @@ -19,8 +19,17 @@ This package is built to either be used as a library in python projects and a co If you want to add auto-completion to the scripts master function [pmotools-python](scripts/pmotools-runner.py) you can add the following to your `~/.bash_completion`. This can also be found in etc/bash_completion in the current directory. Or can be generated with `pmotools-python --bash-completion` ```bash +# bash completion for pmotools-python +# add the below to your ~/.bash_completion + _pmotools_python_complete() { + # Make sure underscores (and =) are NOT treated as word breaks + # so options like --pmo_files or --file=path complete as one token. + local _OLD_WB="${COMP_WORDBREAKS-}" + COMP_WORDBREAKS="${COMP_WORDBREAKS//_/}" + COMP_WORDBREAKS="${COMP_WORDBREAKS//=}" + local cur prev COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" @@ -34,6 +43,9 @@ _pmotools_python_complete() lines="$(${COMP_WORDS[0]} --list-plain 2>/dev/null)" cmds="$(printf '%s\n' "${lines}" | awk -F'\t' '{print $1}')" COMPREPLY=( $(compgen -W "${cmds}" -- "${cur}") ) + + # restore wordbreaks before returning + COMP_WORDBREAKS="$_OLD_WB" return 0 fi @@ -42,19 +54,26 @@ _pmotools_python_complete() local helps opts helps="$(${COMP_WORDS[0]} ${COMP_WORDS[1]} -h 2>/dev/null)" # Pull out flag tokens and split comma-separated forms + # Keep underscores intact in the tokens. opts="$(printf '%s\n' "${helps}" \ - | sed -n 's/^[[:space:]]\{0,\}\(-[-[:alnum:]][-[:alnum:]]*\)\(, *-[[:alnum:]][-[:alnum:]]*\)\{0,\}.*/\1/p' \ + | sed -n 's/^[[:space:]]\{0,\}\(-[-[:alnum:]_][-[:alnum:]_]*\)\(, *-[[:alnum:]_][-[:alnum:]_]*\)\{0,\}.*/\1/p' \ | sed 's/, / /g')" COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) + + COMP_WORDBREAKS="$_OLD_WB" return 0 fi # 3) Otherwise, fall back to filename completion for positional args COMPREPLY=( $(compgen -f -- "${cur}") ) + + # restore original word breaks + COMP_WORDBREAKS="$_OLD_WB" return 0 } complete -F _pmotools_python_complete pmotools-python + ``` ## Developer Setup diff --git a/docs/conf.py b/docs/conf.py index 4357844..be05304 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -14,7 +14,7 @@ project = "pmotools-python" copyright = "2024, Plasmogenepi" author = "Plasmogenepi" -release = "1.0.0" +release = "0.1.0" # -- General configuration --------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration diff --git a/etc/bash_completion b/etc/bash_completion index acd5913..6d89293 100644 --- a/etc/bash_completion +++ b/etc/bash_completion @@ -3,6 +3,12 @@ _pmotools_python_complete() { + # Make sure underscores (and =) are NOT treated as word breaks + # so options like --pmo_files or --file=path complete as one token. + local _OLD_WB="${COMP_WORDBREAKS-}" + COMP_WORDBREAKS="${COMP_WORDBREAKS//_/}" + COMP_WORDBREAKS="${COMP_WORDBREAKS//=}" + local cur prev COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" @@ -16,6 +22,9 @@ _pmotools_python_complete() lines="$(${COMP_WORDS[0]} --list-plain 2>/dev/null)" cmds="$(printf '%s\n' "${lines}" | awk -F'\t' '{print $1}')" COMPREPLY=( $(compgen -W "${cmds}" -- "${cur}") ) + + # restore wordbreaks before returning + COMP_WORDBREAKS="$_OLD_WB" return 0 fi @@ -24,15 +33,21 @@ _pmotools_python_complete() local helps opts helps="$(${COMP_WORDS[0]} ${COMP_WORDS[1]} -h 2>/dev/null)" # Pull out flag tokens and split comma-separated forms + # Keep underscores intact in the tokens. opts="$(printf '%s\n' "${helps}" \ - | sed -n 's/^[[:space:]]\{0,\}\(-[-[:alnum:]][-[:alnum:]]*\)\(, *-[[:alnum:]][-[:alnum:]]*\)\{0,\}.*/\1/p' \ + | sed -n 's/^[[:space:]]\{0,\}\(-[-[:alnum:]_][-[:alnum:]_]*\)\(, *-[[:alnum:]_][-[:alnum:]_]*\)\{0,\}.*/\1/p' \ | sed 's/, / /g')" COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) + + COMP_WORDBREAKS="$_OLD_WB" return 0 fi # 3) Otherwise, fall back to filename completion for positional args COMPREPLY=( $(compgen -f -- "${cur}") ) + + # restore original word breaks + COMP_WORDBREAKS="$_OLD_WB" return 0 } diff --git a/src/pmotools/cli.py b/src/pmotools/cli.py index dfc12ec..ce368ac 100644 --- a/src/pmotools/cli.py +++ b/src/pmotools/cli.py @@ -37,7 +37,7 @@ from pmotools.scripts.extractors_from_pmo.extract_pmo_with_read_filter import ( extract_pmo_with_read_filter, ) -from pmotools.scripts.extractors_from_pmo.extract_allele_table import ( +from pmotools.scripts.pmo_to_tables.extract_allele_table import ( extract_for_allele_table, ) @@ -66,13 +66,37 @@ ) # panel info subset -from pmotools.scripts.extract_info_from_pmo.extract_insert_of_panels import ( +from pmotools.scripts.pmo_to_tables.extract_insert_of_panels import ( extract_insert_of_panels, ) -from pmotools.scripts.extract_info_from_pmo.extract_refseq_of_inserts_of_panels import ( +from pmotools.scripts.pmo_to_tables.extract_refseq_of_inserts_of_panels import ( extract_refseq_of_inserts_of_panels, ) +# pmo to tables + +from pmotools.scripts.pmo_to_tables.export_specimen_meta_table import ( + export_specimen_meta_table, +) +from pmotools.scripts.pmo_to_tables.export_library_sample_meta_table import ( + export_library_sample_meta_table, +) +from pmotools.scripts.pmo_to_tables.export_project_info_meta_table import ( + export_project_info_meta_table, +) +from pmotools.scripts.pmo_to_tables.export_sequencing_info_meta_table import ( + export_sequencing_info_meta_table, +) +from pmotools.scripts.pmo_to_tables.export_specimen_travel_meta_table import ( + export_specimen_travel_meta_table, +) +from pmotools.scripts.pmo_to_tables.export_target_info_meta_table import ( + export_target_info_meta_table, +) +from pmotools.scripts.pmo_to_tables.export_panel_info_meta_table import ( + export_panel_info_meta_table, +) + @dataclass(frozen=True) class PmoCommand: @@ -115,17 +139,6 @@ class PmoCommand: "extract_pmo_with_read_filter": PmoCommand( extract_pmo_with_read_filter, "Extract with a read filter" ), - "extract_allele_table": PmoCommand( - extract_for_allele_table, - "Extract allele tables for tools like dcifer or moire", - ), - "extract_insert_of_panels": PmoCommand( - extract_insert_of_panels, "Extract inserts of panels from a PMO" - ), - "extract_refseq_of_inserts_of_panels": PmoCommand( - extract_refseq_of_inserts_of_panels, - "Extract ref_seq of panel inserts from a PMO", - ), }, "working_with_multiple_pmos": { "combine_pmos": PmoCommand( @@ -160,6 +173,46 @@ class PmoCommand: validate_pmo, "Validate a PMO file against a JSON Schema" ) }, + "pmo_to_table": { + "export_specimen_meta_table": PmoCommand( + export_specimen_meta_table, "export the specimen meta table from a PMO file" + ), + "export_library_sample_meta_table": PmoCommand( + export_library_sample_meta_table, + "export the library_sample meta table from a PMO file", + ), + "export_project_info_meta_table": PmoCommand( + export_project_info_meta_table, + "export the project_info meta table from a PMO file", + ), + "export_sequencing_info_meta_table": PmoCommand( + export_sequencing_info_meta_table, + "export the sequencing_info meta table from a PMO file", + ), + "export_specimen_travel_meta_table": PmoCommand( + export_specimen_travel_meta_table, + "export the specimen travel_info meta table from a PMO file", + ), + "export_target_info_meta_table": PmoCommand( + export_target_info_meta_table, + "export the target info meta table from a PMO file", + ), + "export_panel_info_meta_table": PmoCommand( + export_panel_info_meta_table, + "export the panel info meta table from a PMO file", + ), + "extract_allele_table": PmoCommand( + extract_for_allele_table, + "Extract allele tables for tools like dcifer or moire", + ), + "extract_insert_of_panels": PmoCommand( + extract_insert_of_panels, "Extract inserts of panels from a PMO" + ), + "extract_refseq_of_inserts_of_panels": PmoCommand( + extract_refseq_of_inserts_of_panels, + "Extract ref_seq of panel inserts from a PMO", + ), + }, } @@ -223,6 +276,12 @@ def _print_bash_completion(): _pmotools_python_complete() { + # Make sure underscores (and =) are NOT treated as word breaks + # so options like --pmo_files or --file=path complete as one token. + local _OLD_WB="${COMP_WORDBREAKS-}" + COMP_WORDBREAKS="${COMP_WORDBREAKS//_/}" + COMP_WORDBREAKS="${COMP_WORDBREAKS//=}" + local cur prev COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" @@ -236,6 +295,9 @@ def _print_bash_completion(): lines="$(${COMP_WORDS[0]} --list-plain 2>/dev/null)" cmds="$(printf '%s\n' "${lines}" | awk -F'\t' '{print $1}')" COMPREPLY=( $(compgen -W "${cmds}" -- "${cur}") ) + + # restore wordbreaks before returning + COMP_WORDBREAKS="$_OLD_WB" return 0 fi @@ -244,19 +306,26 @@ def _print_bash_completion(): local helps opts helps="$(${COMP_WORDS[0]} ${COMP_WORDS[1]} -h 2>/dev/null)" # Pull out flag tokens and split comma-separated forms + # Keep underscores intact in the tokens. opts="$(printf '%s\n' "${helps}" \ - | sed -n 's/^[[:space:]]\{0,\}\(-[-[:alnum:]][-[:alnum:]]*\)\(, *-[[:alnum:]][-[:alnum:]]*\)\{0,\}.*/\1/p' \ + | sed -n 's/^[[:space:]]\{0,\}\(-[-[:alnum:]_][-[:alnum:]_]*\)\(, *-[[:alnum:]_][-[:alnum:]_]*\)\{0,\}.*/\1/p' \ | sed 's/, / /g')" COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) + + COMP_WORDBREAKS="$_OLD_WB" return 0 fi # 3) Otherwise, fall back to filename completion for positional args COMPREPLY=( $(compgen -f -- "${cur}") ) + + # restore original word breaks + COMP_WORDBREAKS="$_OLD_WB" return 0 } complete -F _pmotools_python_complete pmotools-python + """ import sys diff --git a/src/pmotools/pmo_builder/json_convert_utils.py b/src/pmotools/pmo_builder/json_convert_utils.py index 6eb89e9..e64c063 100644 --- a/src/pmotools/pmo_builder/json_convert_utils.py +++ b/src/pmotools/pmo_builder/json_convert_utils.py @@ -3,3 +3,48 @@ def check_additional_columns_exist(df, additional_column_list): missing_cols = set(additional_column_list) - set(df.columns) if missing_cols: raise ValueError(f"Missing additional columns: {missing_cols}") + + +def remove_optional_null_values(json_data, optional_columns): + """ + Remove empty values from optional fields in a list of dictionaries. + + :param json_data: List of dictionaries to process + :param optional_columns: List of optional field names to check for empty values + :return: List of dictionaries with empty optional fields removed + + Empty values include: None, empty strings (''), empty dicts ({}), and empty lists ([]) + """ + # Convert optional_columns to a set for faster lookup + optional_fields_set = set(optional_columns) if optional_columns else set() + + for item in json_data: + # Collect keys to remove to avoid modifying dict while iterating + keys_to_remove = [] + for key, value in item.items(): + if key in optional_fields_set: + # Check if value is empty: None, empty string, empty dict, or empty list + if value is None or value == "" or value == {} or value == []: + keys_to_remove.append(key) + + # Remove the empty optional fields + for key in keys_to_remove: + del item[key] + + return json_data + + +def check_null_values(df, columns): + """ + Check for null values in a list of columns + + :param df: DataFrame to check + :param columns: List of column names to check + :return: None + """ + null_columns = [] + for col in columns: + if df[col].isna().any(): + null_columns.append(col) + if null_columns: + raise ValueError(f"The following columns contain null values: {null_columns}") diff --git a/src/pmotools/pmo_builder/merge_to_pmo.py b/src/pmotools/pmo_builder/merge_to_pmo.py index 12e006d..c52d7b3 100644 --- a/src/pmotools/pmo_builder/merge_to_pmo.py +++ b/src/pmotools/pmo_builder/merge_to_pmo.py @@ -1,6 +1,18 @@ #!/usr/bin/env python3 from datetime import date -import json +import numpy as np +from pmotools import __version__ as __pmotools_version__ + + +def _convert_numpy_scalars(obj): + """Recursively convert numpy scalar types to native Python types.""" + if isinstance(obj, dict): + return {key: _convert_numpy_scalars(value) for key, value in obj.items()} + if isinstance(obj, list): + return [_convert_numpy_scalars(value) for value in obj] + if isinstance(obj, np.generic): + return obj.item() + return obj def merge_to_pmo( @@ -12,6 +24,7 @@ def merge_to_pmo( bioinfo_method_info: list, bioinfo_run_info: list, project_info: list, + read_counts_by_stage_info: list | None = None, ): """ Merge components into PMO, replacing names with indeces. @@ -24,6 +37,7 @@ def merge_to_pmo( :param bioinfo_method_info (list) : the bioinformatics pipeline/methods used to generated the amplicon analysis for this project :param bioinfo_run_info (list) : the runtime info for the bioinformatics pipeline used to generated the amplicon analysis for this project :param project_info (list) : the information about the projects stored in this PMO + :param read_counts_by_stage_info (Optional[list]) : the read counts by stage information for this project :return: a json formatted PMO string. """ @@ -34,8 +48,21 @@ def merge_to_pmo( bioinfo_method_info = [dict(d) for d in bioinfo_method_info] bioinfo_run_info = [dict(d) for d in bioinfo_run_info] project_info = [dict(d) for d in project_info] - panel_info = json.loads(json.dumps(panel_info)) - mhap_info = json.loads(json.dumps(mhap_info)) + panel_info = _convert_numpy_scalars(panel_info) + mhap_info = _convert_numpy_scalars(mhap_info) + + # Handle read_counts_by_stage_info if provided + if read_counts_by_stage_info is not None: + read_counts_by_stage_info = [ + _convert_numpy_scalars(dict(d)) for d in read_counts_by_stage_info + ] + + specimen_info = _convert_numpy_scalars(specimen_info) + library_sample_info = _convert_numpy_scalars(library_sample_info) + sequencing_info = _convert_numpy_scalars(sequencing_info) + bioinfo_method_info = _convert_numpy_scalars(bioinfo_method_info) + bioinfo_run_info = _convert_numpy_scalars(bioinfo_run_info) + project_info = _convert_numpy_scalars(project_info) _replace_names_with_IDs( specimen_info, @@ -45,6 +72,7 @@ def merge_to_pmo( panel_info, mhap_info, bioinfo_run_info, + read_counts_by_stage_info, ) # Build PMO @@ -62,7 +90,12 @@ def merge_to_pmo( | panel_info | mhap_info ) - return pmo + + # Add read_counts_by_stage_info if provided + if read_counts_by_stage_info is not None: + pmo["read_counts_by_stage"] = read_counts_by_stage_info + + return _convert_numpy_scalars(pmo) def _make_lookup(dict, key): @@ -89,11 +122,11 @@ def _generate_pmo_header(): today = date.today().isoformat() # TODO: update to grab pmo version - will put this in a seperate PR pmo_header = { - "pmo_version": "1.0.0", + "pmo_version": __pmotools_version__, "creation_date": today, "generation_method": { "program_name": "pmotools-python", - "program_version": "1.0.0", + "program_version": __pmotools_version__, }, } return pmo_header @@ -107,6 +140,9 @@ def _report_missing_IDs( missing_targets, missing_bioinfo_runs, missing_libs, + missing_read_counts_bioinfo_runs, + missing_read_counts_libs, + missing_read_counts_targets, ): if any( [ @@ -117,6 +153,9 @@ def _report_missing_IDs( missing_targets, missing_bioinfo_runs, missing_libs, + missing_read_counts_bioinfo_runs, + missing_read_counts_libs, + missing_read_counts_targets, ] ): error_message = ( @@ -136,6 +175,12 @@ def _report_missing_IDs( error_message += f"Bioinformatics run names in Detected Microhaplotypes not in Bioinformatic Run Info: {missing_bioinfo_runs}\n" if missing_libs: error_message += f"Library Sample names in Detected Microhaplotypes not in Library Sample Info: {missing_libs}\n" + if missing_read_counts_bioinfo_runs: + error_message += f"Bioinformatics run names in Read Counts by Stage not in Bioinformatic Run Info: {missing_read_counts_bioinfo_runs}\n" + if missing_read_counts_libs: + error_message += f"Library Sample names in Read Counts by Stage not in Library Sample Info: {missing_read_counts_libs}\n" + if missing_read_counts_targets: + error_message += f"Target names in Read Counts by Stage not in Target Info: {missing_read_counts_targets}\n" raise ValueError(error_message) @@ -147,6 +192,7 @@ def _replace_names_with_IDs( panel_info, mhap_info, bioinfo_run_info, + read_counts_by_stage_info, ): # SPECIMEN INFO # replace name with project ID @@ -197,6 +243,44 @@ def _replace_names_with_IDs( lookup=lib_sample_lookup, ) + # READ COUNTS BY STAGE + # Replace bioinformatics_run_name and library_sample_name if provided + missing_read_counts_bioinfo_runs = [] + missing_read_counts_libs = [] + missing_read_counts_targets = [] + target_lookup = _make_lookup(panel_info["target_info"], "target_name") + if read_counts_by_stage_info is not None: + # Replace bioinformatics_run_name with bioinformatics_run_id + missing_read_counts_bioinfo_runs = _replace_key_with_id( + read_counts_by_stage_info, + bioinfo_run_info, + "bioinformatics_run_name", + "bioinformatics_run_id", + ) + + # Replace library_sample_name with library_sample_id in each run and map targets + for read_counts_run in read_counts_by_stage_info: + missing_read_counts_libs += _replace_key_with_id( + read_counts_run["read_counts_by_library_sample_by_stage"], + library_sample_info, + "library_sample_name", + "library_sample_id", + lookup=lib_sample_lookup, + ) + + for library_entry in read_counts_run.get( + "read_counts_by_library_sample_by_stage", [] + ): + target_entries = library_entry.get("read_counts_for_targets") or [] + for target_entry in target_entries: + target_name = target_entry.pop("target_name", None) + if target_name is None: + continue + if target_name in target_lookup: + target_entry["target_id"] = target_lookup[target_name] + else: + missing_read_counts_targets.append(target_name) + # If any names were missing from reference tables error _report_missing_IDs( missing_projects, @@ -206,4 +290,7 @@ def _replace_names_with_IDs( missing_targets, missing_bioinfo_runs, missing_libs, + missing_read_counts_bioinfo_runs, + missing_read_counts_libs, + missing_read_counts_targets, ) diff --git a/src/pmotools/pmo_builder/metatable_to_pmo.py b/src/pmotools/pmo_builder/metatable_to_pmo.py index 35c3738..ab1e5ad 100644 --- a/src/pmotools/pmo_builder/metatable_to_pmo.py +++ b/src/pmotools/pmo_builder/metatable_to_pmo.py @@ -1,6 +1,7 @@ #!/usr/bin/env python3 import pandas as pd import json +from .json_convert_utils import remove_optional_null_values, check_null_values def pandas_table_to_json(contents: pd.DataFrame, return_indexed_dict: bool = False): @@ -35,11 +36,16 @@ def library_sample_info_table_to_pmo( sequencing_info_name_col: str = "sequencing_info_name", specimen_name_col: str = "specimen_name", panel_name_col: str = "panel_name", - accession_col: str = None, + alternate_identifiers_col: str = None, + experiment_accession_col: str = None, + fastqs_loc_col: str = None, library_prep_plate_name_col: str = None, library_prep_plate_col_col: str = None, library_prep_plate_row_col: str = None, library_prep_plate_position_col: str = None, + parasite_density_col: str = None, + parasite_density_method_col: str = None, + run_accession_col: str = None, additional_library_sample_info_cols: list | None = None, ): """ @@ -50,11 +56,16 @@ def library_sample_info_table_to_pmo( :param sequencing_info_name_col (str): Column name for sequencing information names. Default: sequencing_info_name :param specimen_name_col (str): Column name for specimen IDs. Default: specimen_name :param panel_name_col (str): Column name for panel IDs. Default: panel_name - :param accession_col (Optional[str]): Column name for accession information. + :param alternate_identifiers_col (Optional[str]): Column name for alternate identifiers. + :param experiment_accession_col (Optional[str]): Column name for experiment accession information. + :param fastqs_loc_col (Optional[str]): Column name for location of fastqs. :param library_prep_plate_name_col (Optional[str]): Column name containing plate name for sequencing. :param library_prep_plate_col_col (Optional[str]): Column name for col of sample on sequencing plate. :param library_prep_plate_row_col (Optional[str]): Column name for row of sample on sequencing plate. :param library_prep_plate_position_col (Optional[str]): Column name for position on sequencing plate (e.g. A01). Can't be set if library_prep_plate_col_col and library_prep_plate_row_col are specified. + :param parasite_density_col (Optional[str, list[str]]): The parasite density in parasites per microliters + :param parasite_density_method_col (Optional[str or list[str]]): The method of how the density was obtained. If set parasite_density_col must also be specified. + :param run_accession_col (Optional[str]): Column name for run accession information. :param additional_library_sample_info_cols (Optional[List[str], None]]): Additional column names to include. :return: JSON format where keys are `library_sample_id` and values are corresponding row data. @@ -66,13 +77,18 @@ def library_sample_info_table_to_pmo( copy_contents = contents.copy() column_mapping = { library_sample_name_col: "library_sample_name", - sequencing_info_name_col: "sequencing_info_name", specimen_name_col: "specimen_name", panel_name_col: "panel_name", + sequencing_info_name_col: "sequencing_info_name", } - + required_columns = list(column_mapping.keys()) # Add optional columns - optional_column_mapping = {accession_col: "accession"} + optional_column_mapping = { + alternate_identifiers_col: "alternate_identifiers", + experiment_accession_col: "experiment_accession", + fastqs_loc_col: "fastqs_loc", + run_accession_col: "run_accession", + } column_mapping.update( {k: v for k, v in optional_column_mapping.items() if k is not None} ) @@ -89,11 +105,16 @@ def library_sample_info_table_to_pmo( sequencing_info_name_col, specimen_name_col, panel_name_col, - accession_col, + alternate_identifiers_col, + experiment_accession_col, + fastqs_loc_col, ] ) check_columns_exist(copy_contents, list(column_mapping.keys())) + # Check for null values in required columns + check_null_values(copy_contents, required_columns) + # Rename and subset columns selected_pmo_fields = list(column_mapping.values()) copy_contents = copy_contents.rename(columns=column_mapping) @@ -111,7 +132,17 @@ def library_sample_info_table_to_pmo( "specimen_name", "library_prep_plate_info", ) - + meta_json = add_parasite_density_info( + parasite_density_col, + parasite_density_method_col, + meta_json, + copy_contents, + "library_sample_name", + entry_name="parasite_density_info", + ) + meta_json = remove_optional_null_values( + meta_json, list(optional_column_mapping.values()) + ) return meta_json @@ -124,7 +155,7 @@ def specimen_info_table_to_pmo( collection_country_col: str = "collection_country", project_name_col: str = "project_name", alternate_identifiers_col: str = None, - # collector_chief_scientist_col: str = None, + blood_meal_col: str = None, drug_usage_col: str = None, env_broad_scale_col: str = None, env_local_scale_col: str = None, @@ -132,12 +163,16 @@ def specimen_info_table_to_pmo( geo_admin1_col: str = None, geo_admin2_col: str = None, geo_admin3_col: str = None, + gravid_col: str = None, + gravidity_col: str = None, + has_travel_out_six_month_col: str = None, host_age_col: str = None, host_sex_col: str = None, host_subject_id: str = None, lat_lon_col: str = None, parasite_density_col: str = None, parasite_density_method_col: str = None, + specimen_accession_col: str = None, storage_plate_col_col: str = None, storage_plate_name_col: str = None, storage_plate_row_col: str = None, @@ -145,8 +180,15 @@ def specimen_info_table_to_pmo( specimen_collect_device_col: str = None, specimen_comments_col: str = None, specimen_store_loc_col: str = None, + specimen_type_col: str = None, + treatment_status_col: str = None, additional_specimen_cols: list | None = None, - list_values_specimen_columns: list | None = ["alternate_identifiers_col"], + list_values_specimen_columns: list | None = [ + "alternate_identifiers_col", + "drug_usage_col", + "specimen_comments_col", + "treatment_status_col", + ], list_values_specimen_columns_delimiter: str = ",", ): """ @@ -160,6 +202,7 @@ def specimen_info_table_to_pmo( :param collection_country_col (string): Name of country collected in (admin level 0). Default : collection_country :param project_name_col (string): Name of the project. Default : project_name :param alternate_identifiers_col (Optional[str]): List of optional alternative names for the samples + :param blood_meal_col (Optional[str]): Whether host specimen has had a recent blood meal :param drug_usage_col (Optional[str]): Any drug used by subject and the frequency of usage; can include multiple drugs used :param env_broad_scale_col (Optional[str]): The broad environment from which the specimen was collected :param env_local_scale_col (Optional[str]): The local environment from which the specimen was collected @@ -167,12 +210,16 @@ def specimen_info_table_to_pmo( :param geo_admin1_col (Optional[str]): Geographical admin level 1 :param geo_admin2_col (Optional[str]): Geographical admin level 2 :param geo_admin3_col (Optional[str]): Geographical admin level 3 + :param gravid_col (Optional[str]): Whether host specimen is pregnant + :param gravidity_col (Optional[str]): The number of previous pregnancies + :param has_travel_out_six_month_col (Optional[str]): Whether host specimen has travelled out from local region in the last six months :param host_age_col (Optional[str]): The age in years of the person :param host_sex_col (Optional[str]): If specimen is from a person, the sex of that person :param host_subject_id (Optional[str]): ID for the individual a specimen was collected from :param lat_lon_col (Optional[str]): Latitude and longitude of the collection site :param parasite_density_col (Optional[str, list[str]]): The parasite density in parasites per microliters :param parasite_density_method_col (Optional[str or list[str]]): The method of how the density was obtained. If set parasite_density_col must also be specified. + :param specimen_accession_col (Optional[str]): The accession number of the specimen :param storage_plate_col_col (Optional[str]): Column the specimen was in in the plate. If set storage_plate_row_col must also be specified. :param storage_plate_name_col (Optional[str]): Name of plate the specimen was in :param storage_plate_row_col (Optional[str]): Row the specimen was in in the plate. If set storage_plate_col_col must also be specified. @@ -180,6 +227,8 @@ def specimen_info_table_to_pmo( :param specimen_collect_device_col (Optional[str]): The way the specimen was collected :param specimen_comments_col (Optional[str]): Additional comments about the specimen :param specimen_store_loc_col (Optional[str]): Specimen storage site + :param specimen_type_col (Optional[str]): Type of specimen, e.g. negative_control, positive_control, field_sample + :param treatment_status_col (Optional[str]): If person has been treated with drugs, what was the treatment outcome :param additional_specimen_cols (Optional[List[str], None]]): Additional column names to include :param list_values_specimen_columns (Optional[List[str], None]): columns that contain values that could be list, are delimited by the argument list_values_specimen_columns_delimiter :param list_values_specimen_columns_delimiter (','): delimiter between list_values_specimen_columns @@ -200,10 +249,14 @@ def specimen_info_table_to_pmo( collection_country_col: "collection_country", project_name_col: "project_name", } - + required_columns = list(column_mapping.keys()) optional_column_mapping = { alternate_identifiers_col: "alternate_identifiers", drug_usage_col: "drug_usage", + blood_meal_col: "blood_meal", + gravid_col: "gravid", + gravidity_col: "gravidity", + has_travel_out_six_month_col: "has_travel_out_six_month", env_broad_scale_col: "env_broad_scale", env_local_scale_col: "env_local_scale", env_medium_col: "env_medium", @@ -214,6 +267,9 @@ def specimen_info_table_to_pmo( host_sex_col: "host_sex", host_subject_id: "host_subject_id", lat_lon_col: "lat_lon", + specimen_accession_col: "specimen_accession", + specimen_type_col: "specimen_type", + treatment_status_col: "treatment_status", specimen_collect_device_col: "specimen_collect_device", specimen_comments_col: "specimen_comments", specimen_store_loc_col: "specimen_store_loc", @@ -250,6 +306,9 @@ def specimen_info_table_to_pmo( host_sex_col, host_subject_id, lat_lon_col, + specimen_accession_col, + specimen_type_col, + treatment_status_col, storage_plate_col_col, storage_plate_name_col, storage_plate_row_col, @@ -257,10 +316,17 @@ def specimen_info_table_to_pmo( specimen_collect_device_col, specimen_comments_col, specimen_store_loc_col, + blood_meal_col, + gravid_col, + gravidity_col, + has_travel_out_six_month_col, ] ) check_columns_exist(copy_contents, list(column_mapping.keys())) + # Check for null values in required columns + check_null_values(copy_contents, required_columns) + # Rename and subset columns selected_pmo_fields = list(column_mapping.values()) copy_contents = copy_contents.rename(columns=column_mapping) @@ -291,6 +357,10 @@ def specimen_info_table_to_pmo( meta_json[col] = meta_json[col].split( list_values_specimen_columns_delimiter ) + + meta_json = remove_optional_null_values( + meta_json, list(optional_column_mapping.values()) + ) return meta_json @@ -362,12 +432,17 @@ def add_plate_info( content_row[plate_row_col].iloc[0].upper() if plate_row_col else None ) plate_col_val = content_row[plate_col_col].iloc[0] if plate_col_col else None + if plate_col_val is not None and not pd.isna(plate_col_val): + try: + plate_col_val = int(plate_col_val) + except (TypeError, ValueError): + plate_col_val = plate_col_val plate_info = {} if plate_name_val: plate_info["plate_name"] = plate_name_val if plate_row_val: plate_info["plate_row"] = plate_row_val - if plate_col_val: + if plate_col_val is not None and not pd.isna(plate_col_val): plate_info["plate_col"] = plate_col_val if plate_info: diff --git a/src/pmotools/pmo_builder/panel_information_to_pmo.py b/src/pmotools/pmo_builder/panel_information_to_pmo.py index 36d381e..6c462ec 100644 --- a/src/pmotools/pmo_builder/panel_information_to_pmo.py +++ b/src/pmotools/pmo_builder/panel_information_to_pmo.py @@ -1,6 +1,9 @@ #!/usr/bin/env python3 -import pandas as pd +import copy +import json + import numpy as np +import pandas as pd import warnings from ..pmo_builder.json_convert_utils import check_additional_columns_exist @@ -10,7 +13,7 @@ def panel_info_table_to_pmo( target_table: pd.DataFrame, panel_name: str, - genome_info: dict, + genome_info: dict | list, target_name_col: str = "target_name", forward_primers_seq_col: str = "fwd_primer", reverse_primers_seq_col: str = "rev_primer", @@ -25,6 +28,7 @@ def panel_info_table_to_pmo( strand_col: str | None = None, ref_seq_col: str | None = None, gene_name_col: str | None = None, + genome_id_col: str | None = None, target_attributes_col: str | None = None, additional_target_info_cols: list | None = None, ): @@ -34,7 +38,7 @@ def panel_info_table_to_pmo( :param target_table: The dataframe containing the target information :param panel_name: the panel ID assigned to the panel - :param genome_info: A dictionary containing the genome information + :param genome_info: A dictionary or list of dictionaries containing the genome information :param target_name_col: the name of the column containing the target IDs :param forward_primers_seq_col: the name of the column containing the sequence of the forward primer :param reverse_primers_seq_col: the name of the column containing the sequence of the reverse primer @@ -49,12 +53,18 @@ def panel_info_table_to_pmo( :param gene_name_col (Optional): the name of the column containing the gene id :param strand_col (Optional): the name of the column containing the strand for the target :param target_attributes_col (Optional): a list of classification type for the primer target + :param genome_id_col (Optional): the name of the column containing the genome ID (default is 0) :param additional_target_info_cols (Optional): dictionary of optional additional columns to add to the target information dictionary. Keys are column names and values are the type. :return: a dict of the panel information """ if not isinstance(target_table, pd.DataFrame): raise ValueError("target_table must be a pandas DataFrame.") + + # Convert genome_info to list if it's a dict + if isinstance(genome_info, dict): + genome_info = [genome_info] + check_genome_info(genome_info) # Check additional columns if any are added @@ -82,12 +92,12 @@ def panel_info_table_to_pmo( ) # Create dictionary of targets and panels - targets_dict = builder.create_targets_dict() + targets_dict = builder.create_targets_dict(genome_id_col) panel_dict = builder.build_panel_info(targets_dict) # Put together components panel_info_dict = { "panel_info": [panel_dict], - "targeted_genomes": [genome_info], + "targeted_genomes": genome_info, "target_info": targets_dict, } return panel_info_dict @@ -98,7 +108,7 @@ def __init__( self, target_table: pd.DataFrame, panel_name: str, - genome_info: dict, + genome_info: dict | list, target_name_col: str = "target_name", forward_primers_seq_col: str = "fwd_primer", reverse_primers_seq_col: str = "rev_primer", @@ -259,7 +269,7 @@ def check_missing(name, cols): def create_targets_dict( self, - genome_id: int = 0, + genome_id_col: str | None = None, ): # Check targets before putting into JSON ( @@ -311,6 +321,10 @@ def create_targets_dict( # Add insert location info if location_info_cols are provided if insert_start_col and target_name not in missing_insert_loc: + if genome_id_col: + genome_id = int(row[genome_id_col]) + else: + genome_id = 0 target_dict["insert_location"] = { "genome_id": genome_id, "chrom": row[chrom_col], @@ -326,6 +340,10 @@ def create_targets_dict( fwd_primer_dict = {"seq": row[self.forward_primers_seq_col]} rev_primer_dict = {"seq": row[self.reverse_primers_seq_col]} if forward_primers_start_col and target_name not in missing_fwd_primer_loc: + if genome_id_col: + genome_id = int(row[genome_id_col]) + else: + genome_id = 0 fwd_primer_dict["location"] = { "genome_id": genome_id, "chrom": row[chrom_col], @@ -335,6 +353,10 @@ def create_targets_dict( if strand_col and pd.notna(row[strand_col]): fwd_primer_dict["location"]["strand"] = row[strand_col] if reverse_primers_start_col and target_name not in missing_rev_primer_loc: + if genome_id_col: + genome_id = int(row[genome_id_col]) + else: + genome_id = 0 rev_primer_dict["location"] = { "genome_id": genome_id, "chrom": row[chrom_col], @@ -379,7 +401,106 @@ def check_genome_info(genome_info): raise ValueError( f"genome_info missing required keys: {', '.join(missing_keys)}" ) + elif isinstance(genome_info, list): + if not genome_info: + raise ValueError("genome_info list cannot be empty") + required_keys = {"name", "genome_version", "taxon_id", "url"} + for i, genome_dict in enumerate(genome_info): + if not isinstance(genome_dict, dict): + raise TypeError( + f"genome_info[{i}] must be a dict, but got {type(genome_dict).__name__}" + ) + missing_keys = required_keys - genome_dict.keys() + if missing_keys: + raise ValueError( + f"genome_info[{i}] missing required keys: {', '.join(missing_keys)}" + ) else: raise TypeError( - f"genome_info must be a dict, but got {type(genome_info).__name__}" + f"genome_info must be a dict or list, but got {type(genome_info).__name__}" ) + + +def merge_panel_info_dicts(panel_info_dicts: list[dict]) -> dict: + """ + Merge multiple panel_info dictionaries produced by panel_info_table_to_pmo. + + Target lists are concatenated (deduplicated by target_name) and all + genome references are collapsed so that genome identifiers remain valid + across the merged structure. + """ + if not panel_info_dicts: + raise ValueError("panel_info_dicts must contain at least one entry.") + + merged_targets: list[dict] = [] + target_name_to_index: dict[str, int] = {} + merged_panels: list[dict] = [] + + merged_genomes: list[dict] = [] + genome_signature_to_index: dict[str, int] = {} + + def canonicalise_genome(genome: dict) -> str: + return json.dumps(genome, sort_keys=True) + + def remap_genome_ids(target_entry: dict, mapping: dict[int, int]) -> None: + insert_loc = target_entry.get("insert_location") + if insert_loc and "genome_id" in insert_loc: + old_id = insert_loc["genome_id"] + if old_id in mapping: + insert_loc["genome_id"] = mapping[old_id] + + for primer_key in ("forward_primer", "reverse_primer"): + primer = target_entry.get(primer_key) + if primer and isinstance(primer, dict): + primer_loc = primer.get("location") + if primer_loc and "genome_id" in primer_loc: + old_id = primer_loc["genome_id"] + if old_id in mapping: + primer_loc["genome_id"] = mapping[old_id] + + for panel_dict in panel_info_dicts: + if "targeted_genomes" not in panel_dict: + raise ValueError("panel_info_dict missing 'targeted_genomes'.") + + genome_mapping: dict[int, int] = {} + for idx, genome in enumerate(panel_dict["targeted_genomes"]): + signature = canonicalise_genome(genome) + if signature not in genome_signature_to_index: + genome_signature_to_index[signature] = len(merged_genomes) + merged_genomes.append(genome) + genome_mapping[idx] = genome_signature_to_index[signature] + + if "target_info" not in panel_dict: + raise ValueError("panel_info_dict missing 'target_info'.") + + for target in panel_dict["target_info"]: + target_name = target.get("target_name") + if target_name is None: + raise ValueError("Each target_info entry must include a 'target_name'.") + + if target_name not in target_name_to_index: + target_copy = copy.deepcopy(target) + remap_genome_ids(target_copy, genome_mapping) + target_name_to_index[target_name] = len(merged_targets) + merged_targets.append(target_copy) + + for panel in panel_dict.get("panel_info", []): + remapped_panel = {"panel_name": panel["panel_name"], "reactions": []} + for reaction in panel.get("reactions", []): + remapped_targets = [] + for target_idx in reaction["panel_targets"]: + target_name = panel_dict["target_info"][target_idx]["target_name"] + remapped_targets.append(target_name_to_index[target_name]) + remapped_panel["reactions"].append( + { + "reaction_name": reaction["reaction_name"], + "panel_targets": remapped_targets, + } + ) + merged_panels.append(remapped_panel) + + return { + "panel_info": merged_panels, + "target_info": merged_targets, + "targeted_genomes": merged_genomes, + } diff --git a/src/pmotools/pmo_builder/pmo_updater.py b/src/pmotools/pmo_builder/pmo_updater.py new file mode 100644 index 0000000..7291f09 --- /dev/null +++ b/src/pmotools/pmo_builder/pmo_updater.py @@ -0,0 +1,125 @@ +#!/usr/bin/env python3 + +import pandas as pd +from pmotools.pmo_engine.pmo_processor import PMOProcessor +from datetime import datetime + + +class PMOUpdater(object): + @staticmethod + def check_if_date_yyyy_mm_or_yyyy_mm_dd(date_string: str) -> bool: + """ + Checks if a string is in YYYY-MM or YYYY-MM-DD format. + :param date_string: the string to be checked + """ + try: + datetime.strptime(date_string, "%Y-%m-%d") + return True # Matches YYYY-MM-DD + except ValueError: + try: + datetime.strptime(date_string, "%Y-%m") + return True # Matches YYYY-MM + except ValueError: + return False # Does not match either format + + @staticmethod + def update_specimen_meta_with_traveler_info( + pmo, + traveler_info: pd.DataFrame, + specimen_name_col: str = "specimen_name", + travel_country_col: str = "travel_country", + travel_start_col: str = "travel_start_date", + travel_end_col: str = "travel_end_date", + bed_net_usage_col: str = None, + geo_admin1_col: str = None, + geo_admin2_col: str = None, + geo_admin3_col: str = None, + lat_lon_col: str = None, + replace_current_traveler_info: bool = False, + ): + """ + Update a PMO's specimen's metadata with travel info + :param pmo: the PMO to update, will directly modify this PMO + :param traveler_info: the traveler info + :param specimen_name_col: the specimen name column within the traveler input table + :param travel_country_col: the column name containing the traveled to country + :param travel_start_col: the column name containing the traveled start date, format YYYY-MM-DD or YYYY-MM + :param travel_end_col: the column name containing the traveled end date, format YYYY-MM-DD or YYYY-MM + :param bed_net_usage_col: (Optional) a number between 0 - 1 for rough frequency of bednet usage while traveling + :param geo_admin1_col: (Optional) the column name containing the traveled to country admin level 1 info + :param geo_admin2_col: (Optional) the column name containing the traveled to country admin level 2 info + :param geo_admin3_col: (Optional) the column name containing the traveled to country admin level 3 info + :param lat_lon_col: (Optional) the latitude and longitude column name containing the region traveled to latitude and longitude + :param replace_current_traveler_info: whether to replace current travel info + :return: a reference to the updated PMO + """ + required_cols = [ + specimen_name_col, + travel_country_col, + travel_start_col, + travel_end_col, + ] + if bed_net_usage_col is not None: + required_cols.append(bed_net_usage_col) + if geo_admin1_col is not None: + required_cols.append(geo_admin1_col) + if geo_admin2_col is not None: + required_cols.append(geo_admin2_col) + if geo_admin3_col is not None: + required_cols.append(geo_admin3_col) + if lat_lon_col is not None: + required_cols.append(lat_lon_col) + + if not set(required_cols).issubset(traveler_info.columns): + raise Exception( + "missing traveler_info columns: " + ",".join(required_cols), + " columns in table: " + ",".join(traveler_info.columns), + ) + + specimen_names_in_pmo = set(PMOProcessor.get_specimen_names(pmo)) + specimen_names_in_traveler_info = set( + traveler_info[specimen_name_col].astype(str).tolist() + ) + + # check to see if provided traveler info for a specimen that cannot be found in PMO + missing_traveler_specs = specimen_names_in_traveler_info - specimen_names_in_pmo + + if missing_traveler_specs: + raise ValueError( + f"Provided traveler info for the following specimens but they are missing from the PMO: {sorted(missing_traveler_specs)}" + ) + traveler_info_records = traveler_info[required_cols].to_dict(orient="records") + spec_indexs = PMOProcessor.get_index_key_of_specimen_names(pmo) + + # prep traveler info lists, clear the list if we are replacing or start an empty list to append to if none exist already + for specimen_name in specimen_names_in_traveler_info: + if ( + replace_current_traveler_info + or "travel_out_six_month" + not in pmo["specimen_info"][spec_indexs[specimen_name]] + ): + pmo["specimen_info"][spec_indexs[specimen_name]][ + "travel_out_six_month" + ] = [] + + for travel_rec in traveler_info_records: + specimen_name = str(travel_rec[specimen_name_col]) + # Validate date formats + for date_col in (travel_start_col, travel_end_col): + val = travel_rec[date_col] + if pd.isna(val): + raise ValueError( + f"Missing required date value in column '{date_col}' for specimen '{specimen_name}'" + ) + val_str = str(val) + if not PMOUpdater.check_if_date_yyyy_mm_or_yyyy_mm_dd(val_str): + raise ValueError( + f"Invalid date format in '{date_col}' for specimen '{specimen_name}': '{val_str}'. " + f"Expected YYYY-MM or YYYY-MM-DD" + ) + # add in travel_rec + travel_rec.pop(specimen_name_col, None) + pmo["specimen_info"][spec_indexs[specimen_name]][ + "travel_out_six_month" + ].append(travel_rec) + return pmo diff --git a/src/pmotools/pmo_builder/read_count_by_stage_table_to_pmo.py b/src/pmotools/pmo_builder/read_count_by_stage_table_to_pmo.py new file mode 100644 index 0000000..8877412 --- /dev/null +++ b/src/pmotools/pmo_builder/read_count_by_stage_table_to_pmo.py @@ -0,0 +1,337 @@ +#!/usr/bin/env python3 +import pandas as pd + +from ..pmo_builder.json_convert_utils import check_additional_columns_exist + + +def read_count_by_stage_table_to_pmo( + bioinformatics_run_name: str, + total_raw_count_table: pd.DataFrame, + reads_by_stage_table: pd.DataFrame | None = None, + library_sample_name_col: str = "library_sample_name", + target_name_col: str = "target_name", + total_raw_count_col: str = "total_raw_count", + stage_col: str | list = "stage", + read_count_col: str = "read_count", + additional_library_sample_cols: list | None = None, + additional_target_cols: list | None = None, +) -> list[dict]: + """ + Convert tables of read counts by stage into PMO read_counts_by_stage format. + + :param bioinformatics_run_name (str): Name for the bioinformatics run (column name or individual run name) + :param total_raw_count_table (pd.DataFrame): Table with total raw counts per sample + :param reads_by_stage_table (Optional[pd.DataFrame]): Table of reads per sample, per locus, per stage. Can be long format (single stage column) or wide format (multiple stage columns) + :param library_sample_name_col (str): Column name for library sample names. Default: library_sample_name + :param target_name_col (str): Column name for target names. Default: target_name + :param total_raw_count_col (str): Column name for total raw counts. Default: total_raw_count + :param stage_col (str or list): Column name for pipeline stages (long format), or list of stage column names for wide format. Default: stage + :param read_count_col (str): Column name for read counts. Default: read_count + :param additional_library_sample_cols (Optional[List[str]]): Additional columns to include for library samples + :param additional_target_cols (Optional[List[str]]): Additional columns to include for targets + + :return: list of dicts formatted for PMO read_counts_by_stage section. Always returns a list, with one + entry for single runs or multiple entries when bioinformatics_run_name is a column in total_raw_count_table. + + Note: For wide format data, provide stage_col as a list of column names. The function will use pd.melt() + to convert wide format to long format before processing. + """ + + # Validate input + if not isinstance(total_raw_count_table, pd.DataFrame): + raise ValueError("total_raw_count_table must be a pandas DataFrame.") + + if reads_by_stage_table is not None and not isinstance( + reads_by_stage_table, pd.DataFrame + ): + raise ValueError("reads_by_stage_table must be a pandas DataFrame or None.") + + # Check additional columns if provided + if additional_library_sample_cols: + check_additional_columns_exist( + total_raw_count_table, additional_library_sample_cols + ) + + if reads_by_stage_table is not None and additional_target_cols: + check_additional_columns_exist(reads_by_stage_table, additional_target_cols) + + # Check if bioinformatics_run_name is a column in total_raw_count_table + if bioinformatics_run_name in total_raw_count_table.columns: + # Create separate entries for each unique run + output_data_list = [] + unique_runs = total_raw_count_table[bioinformatics_run_name].unique() + + for run_name in unique_runs: + # Filter data for this specific run + run_total_table = total_raw_count_table[ + total_raw_count_table[bioinformatics_run_name] == run_name + ].drop(columns=[bioinformatics_run_name]) + + run_reads_table = None + if reads_by_stage_table is not None: + if bioinformatics_run_name in reads_by_stage_table.columns: + run_reads_table = reads_by_stage_table[ + reads_by_stage_table[bioinformatics_run_name] == run_name + ].drop(columns=[bioinformatics_run_name]) + else: + # If reads_by_stage_table doesn't have bioinformatics_run_name column, + # use all data for all runs + run_reads_table = reads_by_stage_table + + # Process data for this run + library_sample_data = _process_total_raw_count_table( + run_total_table, + library_sample_name_col, + total_raw_count_col, + additional_library_sample_cols, + ) + + reads_by_stage_data = None + if run_reads_table is not None: + reads_by_stage_data = _process_reads_by_stage_table( + run_reads_table, + library_sample_name_col, + target_name_col, + stage_col, + read_count_col, + additional_target_cols, + ) + + # Build output for this run + run_output = _build_read_counts_by_stage_output( + library_sample_data, + reads_by_stage_data, + run_name, + ) + output_data_list.append(run_output) + + return output_data_list + else: + # Single run - still return as list for consistency + library_sample_data = _process_total_raw_count_table( + total_raw_count_table, + library_sample_name_col, + total_raw_count_col, + additional_library_sample_cols, + ) + + reads_by_stage_data = None + if reads_by_stage_table is not None: + reads_by_stage_data = _process_reads_by_stage_table( + reads_by_stage_table, + library_sample_name_col, + target_name_col, + stage_col, + read_count_col, + additional_target_cols, + ) + + output_data = _build_read_counts_by_stage_output( + library_sample_data, + reads_by_stage_data, + bioinformatics_run_name, + ) + + return [output_data] # Return as list for consistency + + +def _process_total_raw_count_table( + total_raw_count_table: pd.DataFrame, + library_sample_name_col: str, + total_raw_count_col: str, + additional_cols: list | None = None, +) -> dict: + """ + Process the total raw count table into a dictionary mapping library samples to their data. + + :param total_raw_count_table: DataFrame with total raw counts + :param library_sample_name_col: Column name for library sample names + :param total_raw_count_col: Column name for total raw counts + :param additional_cols: Additional columns to include + + :return: Dictionary mapping library_sample_name to sample data + """ + # Validate required columns exist + required_cols = [library_sample_name_col, total_raw_count_col] + missing_cols = [ + col for col in required_cols if col not in total_raw_count_table.columns + ] + if missing_cols: + raise ValueError( + f"Missing required columns in total_raw_count_table: {missing_cols}" + ) + + # Check for duplicates in library_sample_name_col + if total_raw_count_table[library_sample_name_col].duplicated().any(): + duplicates = total_raw_count_table[ + total_raw_count_table[library_sample_name_col].duplicated(keep=False) + ] + raise ValueError( + f"Duplicate library sample names found in total_raw_count_table:\n{duplicates}" + ) + + # Build the output dictionary + sample_data = {} + for _, row in total_raw_count_table.iterrows(): + sample_name = row[library_sample_name_col] + total_raw_count = int(row[total_raw_count_col]) + + sample_info = { + "total_raw_count": total_raw_count, + } + + # Add additional columns if specified + if additional_cols: + for col in additional_cols: + if col in row and pd.notna(row[col]): + sample_info[col] = row[col] + + sample_data[sample_name] = sample_info + + return sample_data + + +def _process_reads_by_stage_table( + reads_by_stage_table: pd.DataFrame, + library_sample_name_col: str, + target_name_col: str, + stage_col: str | list, + read_count_col: str, + additional_cols: list | None = None, +) -> dict: + """ + Process the reads by stage table into a nested dictionary structure. + + :param reads_by_stage_table: DataFrame with reads by stage information + :param library_sample_name_col: Column name for library sample names + :param target_name_col: Column name for target names + :param stage_col: Column name for pipeline stages, or list of stage column names for wide format + :param read_count_col: Column name for read counts + :param additional_cols: Additional columns to include + + :return: Nested dictionary: {library_sample_name: {target_name: {stage: read_count}}} + """ + # Handle wide format conversion if stage_col is a list + if isinstance(stage_col, list): + # Include additional columns in id_vars for wide format conversion + id_vars = [library_sample_name_col, target_name_col] + if additional_cols: + id_vars.extend(additional_cols) + + # Convert wide format to long format using pd.melt + processed_table = pd.melt( + reads_by_stage_table, + id_vars=id_vars, + value_vars=stage_col, + var_name="stage", + value_name=read_count_col, + ) + # Update stage_col to the new column name after melt + stage_col = "stage" + else: + # Use the table as-is for long format + processed_table = reads_by_stage_table.copy() + + # Validate required columns exist + required_cols = [ + library_sample_name_col, + target_name_col, + stage_col, + read_count_col, + ] + missing_cols = [col for col in required_cols if col not in processed_table.columns] + if missing_cols: + raise ValueError( + f"Missing required columns in reads_by_stage_table: {missing_cols}" + ) + + # Build the nested dictionary structure + reads_data = {} + + for _, row in processed_table.iterrows(): + sample_name = row[library_sample_name_col] + target_name = row[target_name_col] + stage = row[stage_col] + read_count = int(row[read_count_col]) + + # Initialize nested structure if needed + if sample_name not in reads_data: + reads_data[sample_name] = {} + if target_name not in reads_data[sample_name]: + reads_data[sample_name][target_name] = {} + + # Create stage data with read count and additional columns + stage_data = {"stage": stage, "reads": read_count} + + # Add additional columns if present and not null + if additional_cols: + for col in additional_cols: + if col in row and pd.notna(row[col]): + stage_data[col] = row[col] + + # Store the stage data + reads_data[sample_name][target_name][stage] = stage_data + + return reads_data + + +def _build_read_counts_by_stage_output( + library_sample_data: dict, + reads_by_stage_data: dict | None, + bioinformatics_run_name: str, +) -> dict: + """ + Build the final output structure for read_counts_by_stage. + + :param library_sample_data: Dictionary with library sample data + :param reads_by_stage_data: Optional dictionary with reads by stage data + :param bioinformatics_run_name: Name for the bioinformatics run + + :return: Dictionary formatted for PMO read_counts_by_stage section + """ + read_counts_by_library_sample_by_stage = [] + + for sample_name, sample_info in library_sample_data.items(): + # Start building the library sample entry + library_sample_entry = { + "library_sample_name": sample_name, + "total_raw_count": sample_info["total_raw_count"], + } + + # Add additional fields from sample_info + for key, value in sample_info.items(): + if key != "total_raw_count": + library_sample_entry[key] = value + + # Process reads by stage data if available + read_counts_for_targets = [] + if reads_by_stage_data and sample_name in reads_by_stage_data: + target_data = reads_by_stage_data[sample_name] + + for target_name, stages_data in target_data.items(): + # Build stages list + stages = [] + for stage_name, stage_info in stages_data.items(): + # stage_info is now a dictionary with stage, read_count, and additional columns + stages.append(stage_info) + + # Create target entry + target_entry = { + "target_name": target_name, + "stages": stages, + } + read_counts_for_targets.append(target_entry) + + # Add read_counts_for_targets if we have data + if read_counts_for_targets: + library_sample_entry["read_counts_for_targets"] = read_counts_for_targets + + read_counts_by_library_sample_by_stage.append(library_sample_entry) + + # Build the final output structure + output_data = { + "bioinformatics_run_name": bioinformatics_run_name, + "read_counts_by_library_sample_by_stage": read_counts_by_library_sample_by_stage, + } + + return output_data diff --git a/src/pmotools/pmo_engine/pmo_checker.py b/src/pmotools/pmo_engine/pmo_checker.py index d2047f0..46186ba 100644 --- a/src/pmotools/pmo_engine/pmo_checker.py +++ b/src/pmotools/pmo_engine/pmo_checker.py @@ -14,10 +14,10 @@ def __init__(self, pmo_jsonschema: dict): Constructor for PMOChecker with the json read from the json schema file for example: - with open("portable_microhaplotype_object_v0.1.0.schema.json") as f: pmo_jsonschema_data = json.load(f) + with open("portable_microhaplotype_object_v1.0.0.schema.json") as f: pmo_jsonschema_data = json.load(f) PMOChecker checker(pmo_jsonschema_data) or use loader - PMOChecker checker(load_schema("portable_microhaplotype_object_v0.1.0.schema.json") + PMOChecker checker(load_schema("portable_microhaplotype_object_v1.0.0.schema.json") """ self.pmo_jsonschema = pmo_jsonschema self.pmo_validator = Draft7Validator(pmo_jsonschema) diff --git a/src/pmotools/pmo_engine/pmo_exporter.py b/src/pmotools/pmo_engine/pmo_exporter.py new file mode 100644 index 0000000..1a39282 --- /dev/null +++ b/src/pmotools/pmo_engine/pmo_exporter.py @@ -0,0 +1,642 @@ +#!/usr/bin/env python3 +import copy +import json +import os +from collections import defaultdict +from typing import NamedTuple +import pandas as pd + +from pmotools.pmo_engine.pmo_checker import PMOChecker +from pmotools.pmo_engine.pmo_processor import PMOProcessor + +from pmotools import __version__ as __pmotools_version__ + +bed_loc_tuple = NamedTuple( + "bed_loc", + [ + ("chrom", str), + ("start", int), + ("end", int), + ("name", str), + ("score", float), + ("strand", str), + ("ref_seq", str), + ("extra_info", str), + ], +) + + +class PMOExporter(object): + """ + A collection of functions to export information out of a PMO + """ + + @staticmethod + def is_primitive(x) -> bool: + return isinstance(x, (str, int, float, bool)) or x is None + + @staticmethod + def is_primitive_list(x) -> bool: + return isinstance(x, (list, tuple)) and all( + PMOExporter.is_primitive(i) for i in x + ) + + @staticmethod + def is_exportable(x) -> bool: + return PMOExporter.is_primitive(x) or PMOExporter.is_primitive_list(x) + + @staticmethod + def export_specimen_travel_meta_table( + pmodata, separator: str = "," + ) -> pd.DataFrame: + """ + Export the specimen meta information of a PMO to a dataframe + Currently avoiding exporting values of complex object types like TravelInfo or Parasite densities, best to export such values in their own tables + :param pmodata: the pmo export the information from + :param separator: the separator to use for list values + :return: a pandas dataframe of the specimen metadata + """ + rows = [] + for specimen in pmodata["specimen_info"]: + if "travel_out_six_month" in specimen: + for travel_meta in specimen["travel_out_six_month"]: + export_row = {"specimen_name": specimen["specimen_name"]} + for key, value in travel_meta.items(): + if PMOExporter.is_primitive(value): + export_row[key] = value + elif PMOExporter.is_primitive_list(value): + export_row[key] = separator.join(str(v) for v in value) + rows.append(export_row) + return pd.DataFrame(rows) + + @staticmethod + def export_specimen_meta_table(pmodata, separator: str = ",") -> pd.DataFrame: + """ + Export the specimen meta information of a PMO to a dataframe + Currently avoiding exporting values of complex object types like TravelInfo or Parasite densities, best to export such values in their own tables + :param pmodata: the pmo export the information from + :param separator: the separator to use for list values + :return: a pandas dataframe of the specimen metadata + """ + rows = [] + for specimen in pmodata["specimen_info"]: + export_row = {} + for key, value in specimen.items(): + if "project_id" == key: + export_row["project_name"] = pmodata["project_info"][value][ + "project_name" + ] + elif PMOExporter.is_primitive(value): + export_row[key] = value + elif PMOExporter.is_primitive_list(value): + export_row[key] = separator.join(str(v) for v in value) + rows.append(export_row) + return pd.DataFrame(rows) + + @staticmethod + def export_library_sample_meta_table(pmodata, separator: str = ",") -> pd.DataFrame: + """ + Export the library_sample meta information of a PMO to a dataframe + :param pmodata: the pmo export the information from + :param separator: the separator to use for list values + :return: a pandas dataframe of the library_sample metadata + """ + rows = [] + for library_sample in pmodata["library_sample_info"]: + export_row = {} + for key, value in library_sample.items(): + if "sequencing_info_id" == key: + export_row["sequencing_info_name"] = pmodata["sequencing_info"][ + value + ]["sequencing_info_name"] + elif "specimen_id" == key: + export_row["specimen_name"] = pmodata["specimen_info"][value][ + "specimen_name" + ] + elif "panel_id" == key: + export_row["panel_name"] = pmodata["panel_info"][value][ + "panel_name" + ] + elif PMOExporter.is_primitive(value): + export_row[key] = value + elif PMOExporter.is_primitive_list(value): + export_row[key] = separator.join(str(v) for v in value) + rows.append(export_row) + return pd.DataFrame(rows) + + @staticmethod + def export_sequencing_info_meta_table( + pmodata, separator: str = "," + ) -> pd.DataFrame: + """ + Export the sequencing_info meta information of a PMO to a dataframe + :param pmodata: the pmo export the information from + :param separator: the separator to use for list values + :return: a pandas dataframe of the sequencing_info metadata + """ + rows = [] + for sequencing_info in pmodata["sequencing_info"]: + export_row = {} + for key, value in sequencing_info.items(): + if PMOExporter.is_primitive(value): + export_row[key] = value + elif PMOExporter.is_primitive_list(value): + export_row[key] = separator.join(str(v) for v in value) + rows.append(export_row) + return pd.DataFrame(rows) + + @staticmethod + def export_project_info_meta_table(pmodata, separator: str = ",") -> pd.DataFrame: + """ + Export the project_info meta information of a PMO to a dataframe + :param pmodata: the pmo export the information from + :param separator: the separator to use for list values + :return: a pandas dataframe of the project_info metadata + """ + rows = [] + for project_info in pmodata["project_info"]: + export_row = {} + for key, value in project_info.items(): + if PMOExporter.is_primitive(value): + export_row[key] = value + elif PMOExporter.is_primitive_list(value): + export_row[key] = separator.join(str(v) for v in value) + rows.append(export_row) + return pd.DataFrame(rows) + + @staticmethod + def export_panel_info_meta_table(pmodata, separator: str = ",") -> pd.DataFrame: + """ + Export the panel meta information of a PMO to a dataframe + :param pmodata: the pmo export the information from + :param separator: the separator to use for list values + :return: a pandas dataframe of the panel metadata + """ + rows = [] + for panel_info in pmodata["panel_info"]: + export_row = {} + for key, value in panel_info.items(): + if PMOExporter.is_primitive(value): + export_row[key] = value + elif PMOExporter.is_primitive_list(value): + export_row[key] = separator.join(str(v) for v in value) + reactions_for_target = defaultdict(list) + for reaction in panel_info["reactions"]: + for target_id in reaction["panel_targets"]: + reactions_for_target[ + pmodata["target_info"][target_id]["target_name"] + ].append(reaction["reaction_name"]) + for target, reactions in reactions_for_target.items(): + export_row_per_target = copy.deepcopy(export_row) + export_row_per_target["target_name"] = target + export_row_per_target["reaction_name"] = separator.join(reactions) + rows.append(export_row_per_target) + return pd.DataFrame(rows) + + @staticmethod + def export_target_info_meta_table(pmodata, separator: str = ",") -> pd.DataFrame: + """ + Export the target meta information of a PMO to a dataframe + :param pmodata: the pmo export the information from + :param separator: the separator to use for list values + :return: a pandas dataframe of the panel metadata + """ + rows = [] + for panel_info in pmodata["target_info"]: + export_row = {} + for key, value in panel_info.items(): + if "forward_primer" == key: + export_row["forward_primer_seq"] = panel_info["forward_primer"][ + "seq" + ] + elif "reverse_primer" == key: + export_row["reverse_primer_seq"] = panel_info["reverse_primer"][ + "seq" + ] + elif PMOExporter.is_primitive(value): + export_row[key] = value + elif PMOExporter.is_primitive_list(value): + export_row[key] = separator.join(str(v) for v in value) + rows.append(export_row) + return pd.DataFrame(rows) + + @staticmethod + def write_bed_locs(bed_locs: list[bed_loc_tuple], fnp, add_header: bool = False): + """ + Write out a list of bed_loc_tuple to a file, will auto overwrite it + :param bed_locs: a list of bed_loc_tuple + :param fnp: output file path, will be overwritten if it exists + :param add_header: add header of #chrom,start end,name,score,strand,ref_seq,extra_info, starts with comment so tools will treat it as a comment line + """ + with open(fnp, "w") as f: + if add_header: + f.write( + "\t".join( + [ + "#chrom", + "start", + "end", + "name", + "score", + "strand", + "ref_seq", + "extra_info", + ] + ) + ) + for bed_loc in bed_locs: + f.write( + "\t".join( + [ + bed_loc.chrom, + str(bed_loc.start), + str(bed_loc.end), + bed_loc.name, + str(bed_loc.score), + bed_loc.strand, + str(bed_loc.ref_seq), + bed_loc.extra_info, + ] + ) + ) + f.write("\n") + + @staticmethod + def extract_targets_insert_bed_loc( + pmodata, select_target_ids: list[int] = None, sort_output: bool = True + ): + """ + Extract out of a PMO the insert location for targets, will add ref seq if loaded into PMO + :param pmodata: the PMO to extract from + :param select_target_ids: a list of target ids to select, if None will select all targets + :param sort_output: whether to sort output by genomic location + :return: a list of target inserts, with named tuples with fields: chrom, start, end, name, score, strand, extra_info, ref_seq + """ + # bed_loc = NamedTuple("bed_loc", [("chrom", str), ("start", int), ("end", int), ("name", str), ("score", float), ("strand", str), ("extra_info", str), ("ref_seq", str)]) + bed_loc_out = [] + if select_target_ids is None: + select_target_ids = list(range(len(pmodata["target_info"]))) + for target_id in select_target_ids: + tar = pmodata["target_info"][target_id] + if "insert_location" not in tar: + raise Exception( + "no insert_location in pmodata for target id " + + str(target_id) + + " target_name " + + str(tar["target_name"]) + + ", cannot extract insert_location" + ) + genome_info = pmodata["targeted_genomes"][ + tar["insert_location"]["genome_id"] + ] + genome_name_version = ( + genome_info["name"] + "_" + genome_info["genome_version"] + ) + extra_info = ( + str("[") + str("genome_name_version=") + genome_name_version + ";]" + ) + strand = ( + "+" + if "strand" not in tar["insert_location"] + else tar["insert_location"]["strand"] + ) + ref_seq = ( + "" + if "ref_seq" not in tar["insert_location"] + else tar["insert_location"]["ref_seq"] + ) + bed_loc_out.append( + bed_loc_tuple( + tar["insert_location"]["chrom"], + tar["insert_location"]["start"], + tar["insert_location"]["end"], + tar["target_name"], + tar["insert_location"]["end"] - tar["insert_location"]["start"], + strand, + ref_seq, + extra_info, + ) + ) + if sort_output: + return sorted(bed_loc_out, key=lambda bed: (bed.chrom, bed.start, bed.end)) + return bed_loc_out + + @staticmethod + def extract_panels_insert_bed_loc( + pmodata, select_panel_ids: list[int] = None, sort_output: bool = True + ): + """ + Extract out of a PMO the insert location for panels, will add ref seq if loaded into PMO + :param pmodata: the PMO to extract from + :param select_panel_ids: a list of panels ids to select, if None will select all panels + :param sort_output: whether to sort output by genomic location + :return: a list of target inserts, with named tuples with fields: chrom, start, end, name, score, strand, extra_info, ref_seq + """ + bed_loc_out = {} + if select_panel_ids is None: + select_panel_ids = list(range(len(pmodata["panel_info"]))) + for panel_id in select_panel_ids: + bed_loc_out_per_panel = [] + for reaction_id in range(len(pmodata["panel_info"][panel_id]["reactions"])): + for target_id in pmodata["panel_info"][panel_id]["reactions"][ + reaction_id + ]["panel_targets"]: + tar = pmodata["target_info"][target_id] + if "insert_location" not in tar: + raise Exception( + "no insert_location in pmodata for target id " + + str(target_id) + + " target_name " + + str(tar["target_name"]) + + ", cannot extract insert_location" + ) + genome_info = pmodata["targeted_genomes"][ + tar["insert_location"]["genome_id"] + ] + genome_name_version = ( + genome_info["name"] + "_" + genome_info["genome_version"] + ) + extra_info = ( + str("[") + + "genome_name_version=" + + genome_name_version + + ";" + + "panel=" + + pmodata["panel_info"][panel_id]["panel_name"] + + ";" + + "reaction=" + + pmodata["panel_info"][panel_id]["reactions"][reaction_id][ + "reaction_name" + ] + + ";" + + "]" + ) + strand = ( + "+" + if "strand" not in tar["insert_location"] + else tar["insert_location"]["strand"] + ) + ref_seq = ( + "" + if "ref_seq" not in tar["insert_location"] + else tar["insert_location"]["ref_seq"] + ) + bed_loc_out_per_panel.append( + bed_loc_tuple( + tar["insert_location"]["chrom"], + tar["insert_location"]["start"], + tar["insert_location"]["end"], + tar["target_name"], + tar["insert_location"]["end"] + - tar["insert_location"]["start"], + strand, + ref_seq, + extra_info, + ) + ) + if sort_output: + return sorted( + bed_loc_out_per_panel, + key=lambda bed: (bed.chrom, bed.start, bed.end), + ) + bed_loc_out[panel_id] = bed_loc_out_per_panel + return bed_loc_out + + @staticmethod + def extract_alleles_per_sample_table( + pmodata, + additional_specimen_info_fields: list[str] = None, + additional_library_sample_info_fields: list[str] = None, + additional_microhap_fields: list[str] = None, + additional_representative_info_fields: list[str] = None, + default_base_col_names: list[str] = [ + "library_sample_name", + "target_name", + "mhap_id", + ], + jsonschema_fnp=os.path.join( + os.path.dirname( + os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + ), + "schemas/", + f"portable_microhaplotype_object_v{__pmotools_version__}.schema.json", + ), + validate_pmo: bool = False, + ) -> pd.DataFrame: + """ + Create a pd.Dataframe of sample, target and allele. Can optionally add on any other additional fields + + :param pmodata: the data to write from + :param additional_specimen_info_fields: any additional fields to write from the specimen_info object + :param additional_library_sample_info_fields: any additional fields to write from the library_samples object + :param additional_microhap_fields: any additional fields to write from the microhap object + :param additional_representative_info_fields: any additional fields to write from the representative_microhaplotype_sequences object + :param default_base_col_names: The default column name for the sample, locus and allele + :param jsonschema_fnp: path to the jsonschema schema file to validate the PMO against + :param validate_pmo: whether to validate the PMO with a jsonschema + :return: pandas dataframe + """ + + # check input + if validate_pmo: + with open(jsonschema_fnp) as f: + checker = PMOChecker(json.load(f)) + checker.validate_pmo_json(pmodata) + + # Check to see if at least 1 sample has supplied meta field + # samples without this meta field will have NA + if additional_specimen_info_fields is not None: + # Find meta fields that have at least some data + meta_fields_with_data = { + metafield + for metafield in additional_specimen_info_fields + for specimen_data in pmodata["specimen_info"] + if metafield in specimen_data + } + + # Determine meta fields with no samples having data + meta_fields_with_no_samples = ( + set(additional_specimen_info_fields) - meta_fields_with_data + ) + + if meta_fields_with_no_samples: + raise Exception( + f"No specimen_info have data for fields: {', '.join(meta_fields_with_no_samples)}" + ) + # Check to see if at least 1 sample has supplied meta field + # samples without this meta field will have NA + if additional_library_sample_info_fields is not None: + # Find meta fields that have at least some data + meta_fields_with_data = { + metafield + for metafield in additional_library_sample_info_fields + for library_data in pmodata["library_sample_info"] + if metafield in library_data + } + # Determine meta fields with no samples having data + meta_fields_with_no_samples = ( + set(additional_library_sample_info_fields) - meta_fields_with_data + ) + + if meta_fields_with_no_samples: + raise Exception( + f"No library_sample_info have data for fields: {', '.join(meta_fields_with_no_samples)}" + ) + + # Check to see if at least 1 haplotype has this field + # samples without this meta field will have NA + if additional_microhap_fields is not None: + # Find meta fields that have at least some data + additional_microhap_fields_with_data = { + additional_microhap_field + for additional_microhap_field in additional_microhap_fields + for detected_microhaplotypes in pmodata["detected_microhaplotypes"] + for library_samples_data in detected_microhaplotypes["library_samples"] + for target_data in library_samples_data["target_results"] + for microhap_data in target_data["mhaps"] + if additional_microhap_field in microhap_data + } + # Determine meta fields with no samples having data + additional_microhap_fields_with_no_samples = ( + set(additional_microhap_fields) - additional_microhap_fields_with_data + ) + + if additional_microhap_fields_with_no_samples: + raise Exception( + f"No detected_microhaplotypes have data for fields: {', '.join(additional_microhap_fields_with_no_samples)}" + ) + # Check to see if at least 1 haplotype has this field + # samples without this meta field will have NA + if additional_representative_info_fields is not None: + # Find meta fields that have at least some data + additional_microhap_fields_with_data = { + additional_microhap_field + for additional_microhap_field in additional_representative_info_fields + for target_data in pmodata["representative_microhaplotypes"]["targets"] + for microhap_data in target_data["microhaplotypes"] + if additional_microhap_field in microhap_data + } + # Determine meta fields with no samples having data + additional_microhap_fields_with_no_samples = ( + set(additional_representative_info_fields) + - additional_microhap_fields_with_data + ) + + if additional_microhap_fields_with_no_samples: + raise Exception( + f"No representative_microhaplotype_sequences have data for fields: {', '.join(additional_microhap_fields_with_no_samples)}" + ) + + if len(default_base_col_names) != 3: + raise Exception( + "Must have 3 default columns for allele counts, not {}".format( + len(default_base_col_names) + ) + ) + + rows = [] + specimen_info = pmodata["specimen_info"] + target_info = pmodata["target_info"] + library_sample_info = pmodata["library_sample_info"] + detected_microhaps = pmodata["detected_microhaplotypes"] + rep_haps = pmodata["representative_microhaplotypes"]["targets"] + bioinformatics_run_names = PMOProcessor.get_bioinformatics_run_names(pmodata) + for bio_run_for_detected_microhaps in detected_microhaps: + bioinformatics_run_id = bio_run_for_detected_microhaps[ + "bioinformatics_run_id" + ] + for sample_data in bio_run_for_detected_microhaps["library_samples"]: + library_sample_id = sample_data["library_sample_id"] + specimen_id = library_sample_info[library_sample_id]["specimen_id"] + library_meta = library_sample_info[library_sample_id] + specimen_meta = specimen_info[specimen_id] + for target_data in sample_data["target_results"]: + target_name = target_info[ + rep_haps[target_data["mhaps_target_id"]]["target_id"] + ]["target_name"] + for microhap_data in target_data["mhaps"]: + allele_id = microhap_data["mhap_id"] + # print(rep_haps[target_data["mhaps_target_id"]]) + rep_hap_meta = rep_haps[target_data["mhaps_target_id"]][ + "microhaplotypes" + ][allele_id] + row = { + "bioinformatics_run_name": bioinformatics_run_names[ + bioinformatics_run_id + ], + default_base_col_names[0]: library_meta[ + "library_sample_name" + ], + default_base_col_names[1]: target_name, + default_base_col_names[2]: allele_id, + } + if additional_library_sample_info_fields is not None: + for field in additional_library_sample_info_fields: + row[field] = library_meta.get(field, "NA") + if additional_specimen_info_fields is not None: + for field in additional_specimen_info_fields: + row[field] = specimen_meta.get(field, "NA") + if additional_microhap_fields is not None: + for field in additional_microhap_fields: + row[field] = microhap_data.get(field, "NA") + if additional_representative_info_fields is not None: + for field in additional_representative_info_fields: + row[field] = rep_hap_meta.get(field, "NA") + rows.append(row) + # Build and return DataFrame + return pd.DataFrame(rows) + + @staticmethod + def list_library_sample_names_per_specimen_name( + pmodata, + select_specimen_ids: list[int] = None, + select_specimen_names: list[str] = None, + ) -> pd.DataFrame: + """ + List all the library_sample_names per specimen_name + :param pmodata: the PMO + :param select_specimen_ids: a list of specimen_ids to select, if None, all specimen_ids are used + :param select_specimen_names: a list of specimen_names to select, if None, all specimen_names are used + :return: a pandas dataframe with 3 columns, specimen_id, library_sample_id, and library_sample_id_count(the number of library_sample_ids per specimen_id) + """ + if select_specimen_ids is not None and select_specimen_names is not None: + raise ValueError( + "Cannot specify both select_specimen_ids and select_specimen_names" + ) + lib_samples_per_spec = defaultdict(list[str]) + if select_specimen_names is not None: + select_specimen_ids = PMOProcessor.get_index_of_specimen_names( + pmodata, select_specimen_names + ) + for lib_sample in pmodata["library_sample_info"]: + if ( + select_specimen_ids is None + or lib_sample["specimen_id"] in select_specimen_ids + ): + lib_samples_per_spec[ + pmodata["specimen_info"][lib_sample["specimen_id"]]["specimen_name"] + ].append(lib_sample["library_sample_name"]) + + specimens_not_list = [] + for specimen in pmodata["specimen_info"]: + if specimen["specimen_name"] not in lib_samples_per_spec: + specimens_not_list.append(specimen["specimen_name"]) + + # Prepare the data for DataFrame creation + data = [] + for specimen_name, library_sample_names in lib_samples_per_spec.items(): + for library_sample_name in library_sample_names: + data.append( + { + "specimen_name": specimen_name, + "library_sample_name": library_sample_name, + "library_sample_count": len(library_sample_names), + } + ) + + # Create the DataFrame + df = pd.DataFrame( + data, + columns=["specimen_name", "library_sample_name", "library_sample_count"], + ) + return df diff --git a/src/pmotools/pmo_engine/pmo_processor.py b/src/pmotools/pmo_engine/pmo_processor.py index d6b1daf..7579ac8 100644 --- a/src/pmotools/pmo_engine/pmo_processor.py +++ b/src/pmotools/pmo_engine/pmo_processor.py @@ -1,29 +1,9 @@ #!/usr/bin/env python3 -import json import os -from typing import NamedTuple import copy -import pandas import pandas as pd + from collections import defaultdict -from pmotools.pmo_engine.pmo_checker import PMOChecker -from pmotools.utils.schema_loader import load_schema - -from pmotools import __version__ as __pmotools_version__ - -bed_loc_tuple = NamedTuple( - "bed_loc", - [ - ("chrom", str), - ("start", int), - ("end", int), - ("name", str), - ("score", float), - ("strand", str), - ("ref_seq", str), - ("extra_info", str), - ], -) class PMOProcessor: @@ -404,59 +384,25 @@ def count_library_samples_per_target( ) @staticmethod - def list_library_sample_names_per_specimen_name( - pmodata, - select_specimen_ids: list[int] = None, - select_specimen_names: list[str] = None, - ) -> pandas.DataFrame: - """ - List all the library_sample_names per specimen_name - :param pmodata: the PMO - :param select_specimen_ids: a list of specimen_ids to select, if None, all specimen_ids are used - :param select_specimen_names: a list of specimen_names to select, if None, all specimen_names are used - :return: a pandas dataframe with 3 columns, specimen_id, library_sample_id, and library_sample_id_count(the number of library_sample_ids per specimen_id) - """ - if select_specimen_ids is not None and select_specimen_names is not None: - raise ValueError( - "Cannot specify both select_specimen_ids and select_specimen_names" - ) - lib_samples_per_spec = defaultdict(list[str]) - if select_specimen_names is not None: - select_specimen_ids = PMOProcessor.get_index_of_specimen_names( - pmodata, select_specimen_names - ) - for lib_sample in pmodata["library_sample_info"]: - if ( - select_specimen_ids is None - or lib_sample["specimen_id"] in select_specimen_ids - ): - lib_samples_per_spec[ - pmodata["specimen_info"][lib_sample["specimen_id"]]["specimen_name"] - ].append(lib_sample["library_sample_name"]) - - specimens_not_list = [] - for specimen in pmodata["specimen_info"]: - if specimen["specimen_name"] not in lib_samples_per_spec: - specimens_not_list.append(specimen["specimen_name"]) - - # Prepare the data for DataFrame creation - data = [] - for specimen_name, library_sample_names in lib_samples_per_spec.items(): - for library_sample_name in library_sample_names: - data.append( - { - "specimen_name": specimen_name, - "library_sample_name": library_sample_name, - "library_sample_count": len(library_sample_names), - } - ) + def count_targets_per_panel(pmodata) -> pd.DataFrame: + """ + Count the targets per panel. - # Create the DataFrame - df = pd.DataFrame( - data, - columns=["specimen_name", "library_sample_name", "library_sample_count"], + :param pmodata: the pmo to count from + :return: counts for each panel + """ + # how many targets in each panel + panels = [] + target_count = [] + for panel in pmodata["panel_info"]: + panel_targets = [] + panels.append(panel["panel_name"]) + for reaction in panel["reactions"]: + panel_targets.extend(reaction["panel_targets"]) + target_count.append(len(set(panel_targets))) + return pd.DataFrame( + data={"panel_name": panels, "panel_target_count": target_count} ) - return df @staticmethod def count_specimen_per_meta_fields(pmodata) -> pd.DataFrame: @@ -534,9 +480,6 @@ def extract_allele_counts_freq_from_pmo( :param collapse_across_runs: whether to collapse count/freqs across bioinformatics_run_id runs :return: DataFrame with columns: bioinformatics_run_id, target, mhap_id, count, freq, target_total """ - schema = load_schema("portable_microhaplotype_object_v0.1.0.schema.json") - checker = PMOChecker(schema) - checker.check_for_required_base_fields(pmodata) allele_counts = defaultdict(lambda: defaultdict(lambda: defaultdict(int))) target_totals = defaultdict(lambda: defaultdict(int)) @@ -611,190 +554,6 @@ def extract_allele_counts_freq_from_pmo( ["bioinformatics_run_id", "target_name", "mhap_id"] ).reset_index(drop=True) - @staticmethod - def extract_alleles_per_sample_table( - pmodata, - additional_specimen_info_fields: list[str] = None, - additional_library_sample_info_fields: list[str] = None, - additional_microhap_fields: list[str] = None, - additional_representative_info_fields: list[str] = None, - default_base_col_names: list[str] = [ - "library_sample_name", - "target_name", - "mhap_id", - ], - jsonschema_fnp=os.path.join( - os.path.dirname( - os.path.dirname(os.path.dirname(os.path.abspath(__file__))) - ), - "schemas/", - f"portable_microhaplotype_object_v{__pmotools_version__}.schema.json", - ), - validate_pmo: bool = False, - ) -> pd.DataFrame: - """ - Create a pd.Dataframe of sample, target and allele. Can optionally add on any other additional fields - - :param pmodata: the data to write from - :param additional_specimen_info_fields: any additional fields to write from the specimen_info object - :param additional_library_sample_info_fields: any additional fields to write from the library_samples object - :param additional_microhap_fields: any additional fields to write from the microhap object - :param additional_representative_info_fields: any additional fields to write from the representative_microhaplotype_sequences object - :param default_base_col_names: The default column name for the sample, locus and allele - :param jsonschema_fnp: path to the jsonschema schema file to validate the PMO against - :param validate_pmo: whether to validate the PMO with a jsonschema - :return: pandas dataframe - """ - - # check input - if validate_pmo: - with open(jsonschema_fnp) as f: - checker = PMOChecker(json.load(f)) - checker.validate_pmo_json(pmodata) - - # Check to see if at least 1 sample has supplied meta field - # samples without this meta field will have NA - if additional_specimen_info_fields is not None: - # Find meta fields that have at least some data - meta_fields_with_data = { - metafield - for metafield in additional_specimen_info_fields - for specimen_data in pmodata["specimen_info"] - if metafield in specimen_data - } - - # Determine meta fields with no samples having data - meta_fields_with_no_samples = ( - set(additional_specimen_info_fields) - meta_fields_with_data - ) - - if meta_fields_with_no_samples: - raise Exception( - f"No specimen_info have data for fields: {', '.join(meta_fields_with_no_samples)}" - ) - # Check to see if at least 1 sample has supplied meta field - # samples without this meta field will have NA - if additional_library_sample_info_fields is not None: - # Find meta fields that have at least some data - meta_fields_with_data = { - metafield - for metafield in additional_library_sample_info_fields - for library_data in pmodata["library_sample_info"] - if metafield in library_data - } - # Determine meta fields with no samples having data - meta_fields_with_no_samples = ( - set(additional_library_sample_info_fields) - meta_fields_with_data - ) - - if meta_fields_with_no_samples: - raise Exception( - f"No library_sample_info have data for fields: {', '.join(meta_fields_with_no_samples)}" - ) - - # Check to see if at least 1 haplotype has this field - # samples without this meta field will have NA - if additional_microhap_fields is not None: - # Find meta fields that have at least some data - additional_microhap_fields_with_data = { - additional_microhap_field - for additional_microhap_field in additional_microhap_fields - for detected_microhaplotypes in pmodata["detected_microhaplotypes"] - for library_samples_data in detected_microhaplotypes["library_samples"] - for target_data in library_samples_data["target_results"] - for microhap_data in target_data["mhaps"] - if additional_microhap_field in microhap_data - } - # Determine meta fields with no samples having data - additional_microhap_fields_with_no_samples = ( - set(additional_microhap_fields) - additional_microhap_fields_with_data - ) - - if additional_microhap_fields_with_no_samples: - raise Exception( - f"No detected_microhaplotypes have data for fields: {', '.join(additional_microhap_fields_with_no_samples)}" - ) - # Check to see if at least 1 haplotype has this field - # samples without this meta field will have NA - if additional_representative_info_fields is not None: - # Find meta fields that have at least some data - additional_microhap_fields_with_data = { - additional_microhap_field - for additional_microhap_field in additional_representative_info_fields - for target_data in pmodata["representative_microhaplotypes"]["targets"] - for microhap_data in target_data["microhaplotypes"] - if additional_microhap_field in microhap_data - } - # Determine meta fields with no samples having data - additional_microhap_fields_with_no_samples = ( - set(additional_representative_info_fields) - - additional_microhap_fields_with_data - ) - - if additional_microhap_fields_with_no_samples: - raise Exception( - f"No representative_microhaplotype_sequences have data for fields: {', '.join(additional_microhap_fields_with_no_samples)}" - ) - - if len(default_base_col_names) != 3: - raise Exception( - "Must have 3 default columns for allele counts, not {}".format( - len(default_base_col_names) - ) - ) - - rows = [] - specimen_info = pmodata["specimen_info"] - target_info = pmodata["target_info"] - library_sample_info = pmodata["library_sample_info"] - detected_microhaps = pmodata["detected_microhaplotypes"] - rep_haps = pmodata["representative_microhaplotypes"]["targets"] - bioinformatics_run_names = PMOProcessor.get_bioinformatics_run_names(pmodata) - for bio_run_for_detected_microhaps in detected_microhaps: - bioinformatics_run_id = bio_run_for_detected_microhaps[ - "bioinformatics_run_id" - ] - for sample_data in bio_run_for_detected_microhaps["library_samples"]: - library_sample_id = sample_data["library_sample_id"] - specimen_id = library_sample_info[library_sample_id]["specimen_id"] - library_meta = library_sample_info[library_sample_id] - specimen_meta = specimen_info[specimen_id] - for target_data in sample_data["target_results"]: - target_name = target_info[ - rep_haps[target_data["mhaps_target_id"]]["target_id"] - ]["target_name"] - for microhap_data in target_data["mhaps"]: - allele_id = microhap_data["mhap_id"] - # print(rep_haps[target_data["mhaps_target_id"]]) - rep_hap_meta = rep_haps[target_data["mhaps_target_id"]][ - "microhaplotypes" - ][allele_id] - row = { - "bioinformatics_run_name": bioinformatics_run_names[ - bioinformatics_run_id - ], - default_base_col_names[0]: library_meta[ - "library_sample_name" - ], - default_base_col_names[1]: target_name, - default_base_col_names[2]: allele_id, - } - if additional_library_sample_info_fields is not None: - for field in additional_library_sample_info_fields: - row[field] = library_meta.get(field, "NA") - if additional_specimen_info_fields is not None: - for field in additional_specimen_info_fields: - row[field] = specimen_meta.get(field, "NA") - if additional_microhap_fields is not None: - for field in additional_microhap_fields: - row[field] = microhap_data.get(field, "NA") - if additional_representative_info_fields is not None: - for field in additional_representative_info_fields: - row[field] = rep_hap_meta.get(field, "NA") - rows.append(row) - # Build and return DataFrame - return pd.DataFrame(rows) - @staticmethod def filter_pmo_by_library_sample_ids(pmodata, library_sample_ids: set[int]): """ @@ -1303,185 +1062,3 @@ def extract_from_pmo_with_read_filter(pmodata, read_filter: float): ) pmo_out["detected_microhaplotypes"].append(extracted_microhaps_for_id) return pmo_out - - @staticmethod - def write_bed_locs(bed_locs: list[bed_loc_tuple], fnp, add_header: bool = False): - """ - Write out a list of bed_loc_tuple to a file, will auto overwrite it - :param bed_locs: a list of bed_loc_tuple - :param fnp: output file path, will be overwritten if it exists - :param add_header: add header of #chrom,start end,name,score,strand,ref_seq,extra_info, starts with comment so tools will treat it as a comment line - """ - with open(fnp, "w") as f: - if add_header: - f.write( - "\t".join( - [ - "#chrom", - "start", - "end", - "name", - "score", - "strand", - "ref_seq", - "extra_info", - ] - ) - ) - for bed_loc in bed_locs: - f.write( - "\t".join( - [ - bed_loc.chrom, - str(bed_loc.start), - str(bed_loc.end), - bed_loc.name, - str(bed_loc.score), - bed_loc.strand, - str(bed_loc.ref_seq), - bed_loc.extra_info, - ] - ) - ) - f.write("\n") - - @staticmethod - def extract_targets_insert_bed_loc( - pmodata, select_target_ids: list[int] = None, sort_output: bool = True - ): - """ - Extract out of a PMO the insert location for targets, will add ref seq if loaded into PMO - :param pmodata: the PMO to extract from - :param select_target_ids: a list of target ids to select, if None will select all targets - :param sort_output: whether to sort output by genomic location - :return: a list of target inserts, with named tuples with fields: chrom, start, end, name, score, strand, extra_info, ref_seq - """ - # bed_loc = NamedTuple("bed_loc", [("chrom", str), ("start", int), ("end", int), ("name", str), ("score", float), ("strand", str), ("extra_info", str), ("ref_seq", str)]) - bed_loc_out = [] - if select_target_ids is None: - select_target_ids = list(range(len(pmodata["target_info"]))) - for target_id in select_target_ids: - tar = pmodata["target_info"][target_id] - if "insert_location" not in tar: - raise Exception( - "no insert_location in pmodata for target id " - + str(target_id) - + " target_name " - + str(tar["target_name"]) - + ", cannot extract insert_location" - ) - genome_info = pmodata["targeted_genomes"][ - tar["insert_location"]["genome_id"] - ] - genome_name_version = ( - genome_info["name"] + "_" + genome_info["genome_version"] - ) - extra_info = ( - str("[") + str("genome_name_version=") + genome_name_version + ";]" - ) - strand = ( - "+" - if "strand" not in tar["insert_location"] - else tar["insert_location"]["strand"] - ) - ref_seq = ( - "" - if "ref_seq" not in tar["insert_location"] - else tar["insert_location"]["ref_seq"] - ) - bed_loc_out.append( - bed_loc_tuple( - tar["insert_location"]["chrom"], - tar["insert_location"]["start"], - tar["insert_location"]["end"], - tar["target_name"], - tar["insert_location"]["end"] - tar["insert_location"]["start"], - strand, - ref_seq, - extra_info, - ) - ) - if sort_output: - return sorted(bed_loc_out, key=lambda bed: (bed.chrom, bed.start, bed.end)) - return bed_loc_out - - @staticmethod - def extract_panels_insert_bed_loc( - pmodata, select_panel_ids: list[int] = None, sort_output: bool = True - ): - """ - Extract out of a PMO the insert location for panels, will add ref seq if loaded into PMO - :param pmodata: the PMO to extract from - :param select_panel_ids: a list of panels ids to select, if None will select all panels - :param sort_output: whether to sort output by genomic location - :return: a list of target inserts, with named tuples with fields: chrom, start, end, name, score, strand, extra_info, ref_seq - """ - bed_loc_out = {} - if select_panel_ids is None: - select_panel_ids = list(range(len(pmodata["panel_info"]))) - for panel_id in select_panel_ids: - bed_loc_out_per_panel = [] - for reaction_id in range(len(pmodata["panel_info"][panel_id]["reactions"])): - for target_id in pmodata["panel_info"][panel_id]["reactions"][ - reaction_id - ]["panel_targets"]: - tar = pmodata["target_info"][target_id] - if "insert_location" not in tar: - raise Exception( - "no insert_location in pmodata for target id " - + str(target_id) - + " target_name " - + str(tar["target_name"]) - + ", cannot extract insert_location" - ) - genome_info = pmodata["targeted_genomes"][ - tar["insert_location"]["genome_id"] - ] - genome_name_version = ( - genome_info["name"] + "_" + genome_info["genome_version"] - ) - extra_info = ( - str("[") - + "genome_name_version=" - + genome_name_version - + ";" - + "panel=" - + pmodata["panel_info"][panel_id]["panel_name"] - + ";" - + "reaction=" - + pmodata["panel_info"][panel_id]["reactions"][reaction_id][ - "reaction_name" - ] - + ";" - + "]" - ) - strand = ( - "+" - if "strand" not in tar["insert_location"] - else tar["insert_location"]["strand"] - ) - ref_seq = ( - "" - if "ref_seq" not in tar["insert_location"] - else tar["insert_location"]["ref_seq"] - ) - bed_loc_out_per_panel.append( - bed_loc_tuple( - tar["insert_location"]["chrom"], - tar["insert_location"]["start"], - tar["insert_location"]["end"], - tar["target_name"], - tar["insert_location"]["end"] - - tar["insert_location"]["start"], - strand, - ref_seq, - extra_info, - ) - ) - if sort_output: - return sorted( - bed_loc_out_per_panel, - key=lambda bed: (bed.chrom, bed.start, bed.end), - ) - bed_loc_out[panel_id] = bed_loc_out_per_panel - return bed_loc_out diff --git a/src/pmotools/pmo_engine/pmo_reader.py b/src/pmotools/pmo_engine/pmo_reader.py index 3b4f4af..f31e9e0 100644 --- a/src/pmotools/pmo_engine/pmo_reader.py +++ b/src/pmotools/pmo_engine/pmo_reader.py @@ -6,6 +6,7 @@ import os import sys from collections import defaultdict +from pmotools import __version__ as __pmotools_version__ class PMOReader: @@ -62,11 +63,11 @@ def combine_multiple_pmos(pmos: list[dict]): # currently losing all info about previous header info, # consider coming up with something in standard that might preserve this info if needed pmo_out["pmo_header"] = { - "pmo_version": "v1.0.0", + "pmo_version": __pmotools_version__, "creation_date": datetime.datetime.now().strftime("%Y-%m-%d"), "generation_method": { "program_name": "pmotools-python.PMOReader.combine_multiple_pmos", - "program_version": "v1.0.0", + "program_version": __pmotools_version__, }, } @@ -157,13 +158,11 @@ def combine_multiple_pmos(pmos: list[dict]): new_index = len(pmo_out["panel_info"]) # update target indexes to make sure reaction points to the right target indexes for reaction in panel_copy["reactions"]: - for target_id_reaction in range( - len(reaction["target_id_reactions"]) - ): - reaction["target_id_reactions"][ + for target_id_reaction in range(len(reaction["panel_targets"])): + reaction["panel_targets"][ target_id_reaction ] = target_info_old_index_key[pmo_index][ - reaction["target_id_reactions"][target_id_reaction] + reaction["panel_targets"][target_id_reaction] ] pmo_out["panel_info"].append(panel_copy) panel_info_out_index_key[panel_copy["panel_name"]] = new_index @@ -226,10 +225,12 @@ def combine_multiple_pmos(pmos: list[dict]): # update project_id pmo_out["specimen_info"] = copy.deepcopy(pmos[0]["specimen_info"]) specimen_names = [] + specimen_index_key = {} duplicate_specimen_names = [] for specimen in pmo_out["specimen_info"]: if specimen["specimen_name"] in specimen_names: duplicate_specimen_names.append(specimen["specimen_name"]) + specimen_index_key[specimen["specimen_name"]] = len(specimen_names) specimen_names.append(specimen["specimen_name"]) # key1 pmo_index, key2 old_index, val new_index @@ -238,16 +239,38 @@ def combine_multiple_pmos(pmos: list[dict]): for specimen_info_index, specimen_info in enumerate(pmo["specimen_info"]): # checkin for duplicates if specimen_info["specimen_name"] in specimen_names: - duplicate_specimen_names.append(specimen_info["specimen_name"]) - specimen_names.append(specimen_info["specimen_name"]) - new_index = len(pmo_out["specimen_info"]) - # update project_id - specimen_info_copy = copy.deepcopy(specimen_info) - specimen_info_copy["project_id"] = project_info_old_index_key[ - pmo_index - ][specimen_info_copy["project_id"]] - pmo_out["specimen_info"].append(specimen_info_copy) - specimen_info_old_index_key[pmo_index][specimen_info_index] = new_index + # if specimen is exactly the same, then no issues + # @todo allow merging of info and as long as the meta present in both are the same then it should be fine + if ( + specimen_info + != pmo_out["specimen_info"][ + specimen_index_key[specimen_info["specimen_name"]] + ] + ): + duplicate_specimen_names.append(specimen_info["specimen_name"]) + specimen_info_old_index_key[pmo_index][ + specimen_info_index + ] = specimen_index_key[specimen_info["specimen_name"]] + else: + # update key for the already present id + specimen_info_old_index_key[pmo_index][ + specimen_info_index + ] = specimen_index_key[specimen_info["specimen_name"]] + else: + specimen_index_key[specimen_info["specimen_name"]] = len( + specimen_names + ) + specimen_names.append(specimen_info["specimen_name"]) + new_index = len(pmo_out["specimen_info"]) + # update project_id + specimen_info_copy = copy.deepcopy(specimen_info) + specimen_info_copy["project_id"] = project_info_old_index_key[ + pmo_index + ][specimen_info_copy["project_id"]] + pmo_out["specimen_info"].append(specimen_info_copy) + specimen_info_old_index_key[pmo_index][ + specimen_info_index + ] = new_index ## library_sample_info pmo_out["library_sample_info"] = copy.deepcopy(pmos[0]["library_sample_info"]) @@ -255,6 +278,13 @@ def combine_multiple_pmos(pmos: list[dict]): library_sample_info_old_index_key = defaultdict(dict) duplicate_library_sample_names = [] library_sample_names = [] + # have to add the library_sample_names already added in the first PMO + for library_sample in pmo_out["library_sample_info"]: + if library_sample["library_sample_name"] in library_sample_names: + duplicate_library_sample_names.append( + library_sample["library_sample_name"] + ) + library_sample_names.append(library_sample["library_sample_name"]) for pmo_index, pmo in enumerate(pmos[1:], start=1): for library_sample_info_index, library_sample_info in enumerate( pmo["library_sample_info"] diff --git a/src/pmotools/schemas/portable_microhaplotype_object_v0.1.0.schema.json b/src/pmotools/schemas/portable_microhaplotype_object_v1.0.0.schema.json similarity index 92% rename from src/pmotools/schemas/portable_microhaplotype_object_v0.1.0.schema.json rename to src/pmotools/schemas/portable_microhaplotype_object_v1.0.0.schema.json index f4a2b37..e4025b3 100644 --- a/src/pmotools/schemas/portable_microhaplotype_object_v0.1.0.schema.json +++ b/src/pmotools/schemas/portable_microhaplotype_object_v1.0.0.schema.json @@ -2,10 +2,10 @@ "$defs": { "BioMethod": { "additionalProperties": true, - "description": "methodology description of a portion of a bioinformatics pipeline", + "description": "bioinformatics methodology description with info on program, version, and arguments different from the default", "properties": { "additional_argument": { - "description": "any additional arguments that differ from the default", + "description": "any additional arguments that differ from the default arguments", "items": { "pattern": "^[A-z-._0-9{}\\(\\),\\/\\ ]+$", "type": "string" @@ -37,7 +37,7 @@ ] }, "program_version": { - "description": "the version of generation method, should be in the format of v[MAJOR].[MINOR].[PATCH]", + "description": "the version of program, should be in the format of v[MAJOR].[MINOR].[PATCH]", "pattern": "^[A-z-._0-9 ]+$", "type": "string" } @@ -51,45 +51,25 @@ }, "BioinformaticsMethodInfo": { "additionalProperties": true, - "description": "the targeted amplicon bioinformatics pipeline", + "description": "the targeted amplicon bioinformatics methods used to generate the microhaplotype data in this PMO", "properties": { - "additional_methods": { - "description": "any additional methods used to analyze the data", + "methods": { + "description": "methodology used to generate the microhaplotype data stored in this PMO, e.g. demultiplexing method, denosing method, or a pipeline method that ties all th steps together", "items": { "$ref": "#/$defs/BioMethod" }, - "type": [ - "array", - "null" - ] - }, - "bioinformatics_method_name": { - "description": "name of the collection of methods is called, e.g. pipeline ", - "pattern": "^[A-z-._0-9 ]+$", - "type": [ - "string", - "null" - ] - }, - "demultiplexing_method": { - "$ref": "#/$defs/BioMethod", - "description": "the demultiplexing method used to separate raw reads from barcodes and primer targets" - }, - "denoising_method": { - "$ref": "#/$defs/BioMethod", - "description": "the method used to de-noise and/or cluster the raw reads" + "type": "array" } }, "required": [ - "demultiplexing_method", - "denoising_method" + "methods" ], "title": "BioinformaticsMethodInfo", "type": "object" }, "BioinformaticsRunInfo": { "additionalProperties": true, - "description": "Information about the pipeline run that generated some of the microhaplotype detected and reads_by_stage", + "description": "Information about the pipeline run that generated microhaplotype_detected and reads_by_stage", "properties": { "bioinformatics_methods_id": { "description": "the index into the bioinformatics_methods_info list", @@ -129,7 +109,7 @@ "type": "integer" }, "library_samples": { - "description": "a list of the microhaplotypes detected for a sample by targets ", + "description": "a list of the microhaplotypes detected for all samples with a list for each target ", "items": { "$ref": "#/$defs/DetectedMicrohaplotypesForSample" }, @@ -198,7 +178,7 @@ "description": "information on a genome", "properties": { "chromosomes": { - "description": "a list of chromosomes found within this genome", + "description": "a list of the chromosomes/contigs found within this genome", "items": { "pattern": "^[A-z-._0-9]+$", "type": "string" @@ -227,7 +207,7 @@ "type": "string" }, "taxon_id": { - "description": "the NCBI taxonomy number, can be a list of values", + "description": "the NCBI taxonomy number, can be a list of values if it's a genome file that has been created by combining gnomes from different species", "items": { "minimum": 0, "pattern": "^[0-9]$", @@ -316,7 +296,7 @@ "description": "Information about a specific amplification and sequencing of a specimen", "properties": { "alternate_identifiers": { - "description": "a list of optional alternative names", + "description": "a list of alternative names", "items": { "pattern": "^[A-z-._0-9 ]+$", "type": "string" @@ -354,7 +334,7 @@ "description": "plate location of where library was prepared for sequencing " }, "library_sample_name": { - "description": "a unique identifier for this sequence/amplification run on a specimen_name", + "description": "a unique identifier for this sequencing/amplification run", "pattern": "^[A-z-._0-9 ]+$", "type": "string" }, @@ -477,12 +457,12 @@ "type": "integer" }, "reads": { - "description": "the read count associated with this microhaplotype", + "description": "the read count for this microhaplotype", "minimum": 0, "type": "integer" }, "umis": { - "description": "the unique molecular identifier (umi) count associated with this microhaplotype", + "description": "the unique molecular identifier (umi) count for this microhaplotype", "minimum": 0, "type": [ "integer", @@ -562,10 +542,10 @@ }, "PlateInfo": { "additionalProperties": true, - "description": "Information about a plate location in a standard 96 well plate", + "description": "Information about a plate location, e.g. a standard 96 well plate with row having a letter and column having a number", "properties": { "plate_col": { - "description": "the column the specimen was in", + "description": "the column position", "minimum": 0, "pattern": "^[0-9]+$", "type": [ @@ -574,7 +554,7 @@ ] }, "plate_name": { - "description": "a name of plate the specimen was in", + "description": "a name for the plate", "pattern": "^[A-z-._0-9 ]+$", "type": [ "string", @@ -582,7 +562,7 @@ ] }, "plate_row": { - "description": "the row the specimen was in", + "description": "the row position", "pattern": "^[A-z]$", "type": [ "string", @@ -603,7 +583,7 @@ "type": "string" }, "program_version": { - "description": "the version of generation method, should be in the format of v[MAJOR].[MINOR].[PATCH]", + "description": "the version of program, should be in the format of v[MAJOR].[MINOR].[PATCH]", "pattern": "^[A-z-._0-9 ]+$", "type": "string" } @@ -617,7 +597,7 @@ }, "PmoHeader": { "additionalProperties": true, - "description": "Information on the PMO file", + "description": "Information on the PMO file itself", "properties": { "creation_date": { "description": "the date of when the PMO file was created or modified, should be YYYY-MM-DD", @@ -652,17 +632,17 @@ }, "PortableMicrohaplotypeObject": { "additionalProperties": true, - "description": "Information on final results from a targeted amplicon analysis", + "description": "Information on final microhaplotype results from a targeted amplicon analysis with associated meta data", "properties": { "bioinformatics_methods_info": { - "description": "the bioinformatics pipeline/methods used to generated the amplicon analysis for this project", + "description": "the bioinformatics pipeline/methods used to generated the microhaplotype analysis for this project", "items": { "$ref": "#/$defs/BioinformaticsMethodInfo" }, "type": "array" }, "bioinformatics_run_info": { - "description": "the runtime info for the bioinformatics pipeline used to generated the amplicon analysis for this project", + "description": "the runtime info for the bioinformatics pipeline used to generated the microhaplotypes analysis for this project", "items": { "$ref": "#/$defs/BioinformaticsRunInfo" }, @@ -676,7 +656,7 @@ "type": "array" }, "library_sample_info": { - "description": "a list of libraries of all the seq/amp of the specimens within this project", + "description": "a list of libraries of all the seq/amp of the specimens within this PMO file", "items": { "$ref": "#/$defs/LibrarySampleInfo" }, @@ -701,7 +681,7 @@ "type": "array" }, "read_counts_by_stage": { - "description": "the read counts for different stages of the pipeline", + "description": "the read counts for library_samples for different stages of the pipeline", "items": { "$ref": "#/$defs/ReadCountsByStage" }, @@ -715,14 +695,14 @@ "description": "a list of the information on the representative microhaplotypes" }, "sequencing_info": { - "description": "a list of sequencing info for this project", + "description": "a list of sequencing infos for this PMO file", "items": { "$ref": "#/$defs/SequencingInfo" }, "type": "array" }, "specimen_info": { - "description": "a list of all the specimens within this project", + "description": "a list of all the specimens within this PMO file", "items": { "$ref": "#/$defs/SpecimenInfo" }, @@ -736,7 +716,7 @@ "type": "array" }, "targeted_genomes": { - "description": "a list of genomes that the targets in TargetInfo refer to", + "description": "a list of genomes that any genomic location information refers to", "items": { "$ref": "#/$defs/GenomeInfo" }, @@ -776,7 +756,7 @@ "description": "what the intended genomic location of the primer is" }, "seq": { - "description": "the DNA sequence", + "description": "the sequence", "pattern": "^[A-z]+$", "type": "string" } @@ -789,7 +769,7 @@ }, "ProjectInfo": { "additionalProperties": true, - "description": "Information on project info", + "description": "Information on a project underwhich a collection of specimens belong to", "properties": { "BioProject_accession": { "description": "an SRA bioproject accession e.g. PRJNA33823", @@ -868,7 +848,7 @@ }, "gene_name": { "description": "an identifier of the gene, if any, is being covered with this targeted", - "pattern": "^[A-z-._0-9]+$", + "pattern": "^[A-z-._0-9:]+$", "type": [ "string", "null" @@ -1025,7 +1005,7 @@ }, "RepresentativeMicrohaplotype": { "additionalProperties": true, - "description": "the representative sequence for a microhaplotype, similar to a fast(a/q) format", + "description": "the representative sequence for a microhaplotype", "properties": { "alt_annotations": { "description": "a list of additional annotations associated with this microhaplotype, e.g. wildtype", @@ -1038,7 +1018,7 @@ ] }, "associated_protein_variants": { - "description": "a list of associated protein variants with this haplotype, e.g. amino acid changes/INDELS", + "description": "a list of protein variants for this haplotype, e.g. amino acid changes/INDELS", "items": { "$ref": "#/$defs/ProteinVariant" }, @@ -1048,7 +1028,7 @@ ] }, "associated_seq_variants": { - "description": "a list of associated sequence variants with this haplotype, e.g. SNPS, indels", + "description": "a list of sequence variants for this haplotype, e.g. SNPS, indels", "items": { "$ref": "#/$defs/GenomicLocation" }, @@ -1088,7 +1068,7 @@ "pattern": "^[A-z-._0-9]+$" }, "quality": { - "description": "the ansi fastq per base quality score for this sequence, this is optional", + "description": "the ASCII fastq per base quality score for this sequence, this is optional, must be same length as the sequence", "pattern": "^[A-z-._0-9]+$", "type": [ "string", @@ -1096,7 +1076,7 @@ ] }, "seq": { - "description": "the DNA sequence", + "description": "the sequence", "pattern": "^[A-z]+$", "type": "string" } @@ -1112,7 +1092,7 @@ "description": "a collection of representative sequences for microhaplotypes for all targets", "properties": { "targets": { - "description": "a list of the microhaplotype for each targets ", + "description": "a list of the microhaplotypes for each targets ", "items": { "$ref": "#/$defs/RepresentativeMicrohaplotypesForTarget" }, @@ -1127,7 +1107,7 @@ }, "RepresentativeMicrohaplotypesForTarget": { "additionalProperties": true, - "description": "a list of the representative sequence for a microhaplotypes, similar to a fast(a/q) format", + "description": "a list of the representative sequence for the microhaplotypes for a target", "properties": { "mhap_location": { "anyOf": [ @@ -1138,10 +1118,10 @@ "type": "null" } ], - "description": "a genomic location that was analyzed for this target info, this allows listing location that may be different from the full target location (e.g 1 base in from the full) " + "description": "a genomic location that was analyzed for this target info, this allows listing location that may be different from the full target location (e.g 1 trimmed off the full length) " }, "microhaplotypes": { - "description": "a list of the microhaplotypes detected for a target", + "description": "a list of all the microhaplotypes for a target", "items": { "$ref": "#/$defs/RepresentativeMicrohaplotype" }, @@ -1192,7 +1172,7 @@ "type": "string" }, "library_source": { - "description": "Source of amplification material (common names GENOMIC, TRANSCRIPTOMIC)", + "description": "Source of amplification material e.g. was it DNA (GENOMIC) or RNA (TRANSCRIPTOMIC) (common names GENOMIC, TRANSCRIPTOMIC)", "pattern": "^[A-z-._0-9 ]+$", "type": "string" }, @@ -1268,7 +1248,7 @@ "type": "string" }, "sequencing_info_name": { - "description": "a name of for the sequencing done, e.g. batch1", + "description": "a name for a specific sequencing run, e.g. batch1", "pattern": "^[A-z-._0-9 ]+$", "type": "string" } @@ -1290,7 +1270,7 @@ "description": "Information on specimen info", "properties": { "alternate_identifiers": { - "description": "a list of optional alternative names", + "description": "a list of alternative names", "items": { "pattern": "^[A-z-._0-9 ]+$", "type": "string" @@ -1406,7 +1386,7 @@ ] }, "host_sex": { - "description": "if specimen is from a person, the sex listed for that person", + "description": "if specimen is collected from a host with a sex, the sex listed for that host", "pattern": "^[A-z-._0-9 ]+$", "type": [ "string", @@ -1481,7 +1461,7 @@ }, "specimen_name": { "description": "an identifier for the specimen, should be unique within this sample set", - "pattern": "^[A-z-._0-9 ]+$", + "pattern": "^[A-z-._0-9\\(\\),\\/\\ ]+$", "type": "string" }, "specimen_store_loc": { @@ -1493,7 +1473,7 @@ ] }, "specimen_taxon_id": { - "description": "the NCBI taxonomy number of the organism in specimen, can list multiple if a mixed sample", + "description": "the NCBI taxonomy number of the organism(s) in the specimen, can list multiple if a mixed sample", "items": { "minimum": 0, "pattern": "^[0-9]+$", @@ -1557,10 +1537,9 @@ "additionalProperties": true, "description": "Information on the reads counts at several stages", "properties": { - "read_count": { - "description": "the read counts", + "reads": { + "description": "the read counts for this stage", "minimum": 0, - "pattern": "^[0-9]+$", "type": "integer" }, "stage": { @@ -1570,7 +1549,7 @@ } }, "required": [ - "read_count", + "reads", "stage" ], "title": "StageReadCounts", @@ -1578,15 +1557,15 @@ }, "TargetInfo": { "additionalProperties": true, - "description": "Information about a specific target within a genome", + "description": "Information about a specific targeted microhaplotype", "properties": { "forward_primer": { "$ref": "#/$defs/PrimerInfo", - "description": "the forward primer associated with this target" + "description": "the forward primer for this target" }, "gene_name": { "description": "an identifier of the gene, if any, is being covered with this targeted", - "pattern": "^[A-z-._0-9]+$", + "pattern": "^[A-z-._0-9:]+$", "type": [ "string", "null" @@ -1604,7 +1583,7 @@ "description": "the intended genomic location of the insert of the amplicon (the location between the end of the forward primer and the beginning of the reverse primer)" }, "markers_of_interest": { - "description": "a list of covered markers of interest", + "description": "a list of markers of interest that are covered by this target", "items": { "$ref": "#/$defs/MarkerOfInterest" }, @@ -1615,10 +1594,10 @@ }, "reverse_primer": { "$ref": "#/$defs/PrimerInfo", - "description": "the reverse primer associated with this target" + "description": "the reverse primer for this target" }, "target_attributes": { - "description": "a list of classification type for the primer target", + "description": "a list of classification types for this target", "items": { "type": "string" }, @@ -1628,7 +1607,7 @@ ] }, "target_name": { - "description": "an identifier for this target", + "description": "a name for this target", "pattern": "^[A-z-._0-9]+$", "type": "string" } @@ -1710,18 +1689,18 @@ "$id": "https://plasmogenepi.github.io/portable-microhaplotype-object", "$schema": "https://json-schema.org/draft/2019-09/schema", "additionalProperties": true, - "description": "Information on final results from a targeted amplicon analysis", + "description": "Information on final microhaplotype results from a targeted amplicon analysis with associated meta data", "metamodel_version": "1.7.0", "properties": { "bioinformatics_methods_info": { - "description": "the bioinformatics pipeline/methods used to generated the amplicon analysis for this project", + "description": "the bioinformatics pipeline/methods used to generated the microhaplotype analysis for this project", "items": { "$ref": "#/$defs/BioinformaticsMethodInfo" }, "type": "array" }, "bioinformatics_run_info": { - "description": "the runtime info for the bioinformatics pipeline used to generated the amplicon analysis for this project", + "description": "the runtime info for the bioinformatics pipeline used to generated the microhaplotypes analysis for this project", "items": { "$ref": "#/$defs/BioinformaticsRunInfo" }, @@ -1735,7 +1714,7 @@ "type": "array" }, "library_sample_info": { - "description": "a list of libraries of all the seq/amp of the specimens within this project", + "description": "a list of libraries of all the seq/amp of the specimens within this PMO file", "items": { "$ref": "#/$defs/LibrarySampleInfo" }, @@ -1760,7 +1739,7 @@ "type": "array" }, "read_counts_by_stage": { - "description": "the read counts for different stages of the pipeline", + "description": "the read counts for library_samples for different stages of the pipeline", "items": { "$ref": "#/$defs/ReadCountsByStage" }, @@ -1774,14 +1753,14 @@ "description": "a list of the information on the representative microhaplotypes" }, "sequencing_info": { - "description": "a list of sequencing info for this project", + "description": "a list of sequencing infos for this PMO file", "items": { "$ref": "#/$defs/SequencingInfo" }, "type": "array" }, "specimen_info": { - "description": "a list of all the specimens within this project", + "description": "a list of all the specimens within this PMO file", "items": { "$ref": "#/$defs/SpecimenInfo" }, @@ -1795,7 +1774,7 @@ "type": "array" }, "targeted_genomes": { - "description": "a list of genomes that the targets in TargetInfo refer to", + "description": "a list of genomes that any genomic location information refers to", "items": { "$ref": "#/$defs/GenomeInfo" }, diff --git a/src/pmotools/scripts/extract_info_from_pmo/list_library_sample_names_per_specimen_name.py b/src/pmotools/scripts/extract_info_from_pmo/list_library_sample_names_per_specimen_name.py index f34e5dd..de5a1cd 100755 --- a/src/pmotools/scripts/extract_info_from_pmo/list_library_sample_names_per_specimen_name.py +++ b/src/pmotools/scripts/extract_info_from_pmo/list_library_sample_names_per_specimen_name.py @@ -3,7 +3,7 @@ import sys -from pmotools.pmo_engine.pmo_processor import PMOProcessor +from pmotools.pmo_engine.pmo_exporter import PMOExporter from pmotools.pmo_engine.pmo_reader import PMOReader from pmotools.utils.small_utils import Utils @@ -46,7 +46,7 @@ def list_library_sample_names_per_specimen_name(): pmo = PMOReader.read_in_pmo(args.file) # count fields - info_df = PMOProcessor.list_library_sample_names_per_specimen_name(pmo) + info_df = PMOExporter.list_library_sample_names_per_specimen_name(pmo) # output info_df.to_csv( diff --git a/src/pmotools/scripts/pmo_to_tables/__init__.py b/src/pmotools/scripts/pmo_to_tables/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/pmotools/scripts/pmo_to_tables/export_library_sample_meta_table.py b/src/pmotools/scripts/pmo_to_tables/export_library_sample_meta_table.py new file mode 100644 index 0000000..b624799 --- /dev/null +++ b/src/pmotools/scripts/pmo_to_tables/export_library_sample_meta_table.py @@ -0,0 +1,60 @@ +#!/usr/bin/env python3 +import argparse +import sys + + +from pmotools.pmo_engine.pmo_exporter import PMOExporter +from pmotools.pmo_engine.pmo_reader import PMOReader +from pmotools.utils.small_utils import Utils + + +def parse_args_export_library_sample_meta_table(): + parser = argparse.ArgumentParser() + parser.add_argument("--file", type=str, required=True, help="PMO file") + parser.add_argument( + "--output", type=str, default="STDOUT", required=False, help="output file" + ) + parser.add_argument( + "--delim", + default="tab", + type=str, + required=False, + help="the delimiter of the output text file, examples input tab,comma but can also be the actual delimiter", + ) + parser.add_argument( + "--overwrite", action="store_true", help="If output file exists, overwrite it" + ) + + return parser.parse_args() + + +def export_library_sample_meta_table(): + args = parse_args_export_library_sample_meta_table() + + # check files + output_delim, output_extension = Utils.process_delimiter_and_output_extension( + args.delim, gzip=args.output.endswith(".gz") + ) + args.output = ( + args.output + if "STDOUT" == args.output + else Utils.appendStrAsNeeded(args.output, output_extension) + ) + Utils.inputOutputFileCheck(args.file, args.output, args.overwrite) + + # read in PMO + pmo = PMOReader.read_in_pmo(args.file) + + # count fields + info_df = PMOExporter.export_library_sample_meta_table(pmo) + + # output + info_df.to_csv( + sys.stdout if "STDOUT" == args.output else args.output, + sep=output_delim, + index=False, + ) + + +if __name__ == "__main__": + export_library_sample_meta_table() diff --git a/src/pmotools/scripts/pmo_to_tables/export_panel_info_meta_table.py b/src/pmotools/scripts/pmo_to_tables/export_panel_info_meta_table.py new file mode 100644 index 0000000..a54fc18 --- /dev/null +++ b/src/pmotools/scripts/pmo_to_tables/export_panel_info_meta_table.py @@ -0,0 +1,60 @@ +#!/usr/bin/env python3 +import argparse +import sys + + +from pmotools.pmo_engine.pmo_exporter import PMOExporter +from pmotools.pmo_engine.pmo_reader import PMOReader +from pmotools.utils.small_utils import Utils + + +def parse_args_export_panel_info_meta_table(): + parser = argparse.ArgumentParser() + parser.add_argument("--file", type=str, required=True, help="PMO file") + parser.add_argument( + "--output", type=str, default="STDOUT", required=False, help="output file" + ) + parser.add_argument( + "--delim", + default="tab", + type=str, + required=False, + help="the delimiter of the output text file, examples input tab,comma but can also be the actual delimiter", + ) + parser.add_argument( + "--overwrite", action="store_true", help="If output file exists, overwrite it" + ) + + return parser.parse_args() + + +def export_panel_info_meta_table(): + args = parse_args_export_panel_info_meta_table() + + # check files + output_delim, output_extension = Utils.process_delimiter_and_output_extension( + args.delim, gzip=args.output.endswith(".gz") + ) + args.output = ( + args.output + if "STDOUT" == args.output + else Utils.appendStrAsNeeded(args.output, output_extension) + ) + Utils.inputOutputFileCheck(args.file, args.output, args.overwrite) + + # read in PMO + pmo = PMOReader.read_in_pmo(args.file) + + # count fields + info_df = PMOExporter.export_panel_info_meta_table(pmo) + + # output + info_df.to_csv( + sys.stdout if "STDOUT" == args.output else args.output, + sep=output_delim, + index=False, + ) + + +if __name__ == "__main__": + export_panel_info_meta_table() diff --git a/src/pmotools/scripts/pmo_to_tables/export_project_info_meta_table.py b/src/pmotools/scripts/pmo_to_tables/export_project_info_meta_table.py new file mode 100644 index 0000000..9fbc64d --- /dev/null +++ b/src/pmotools/scripts/pmo_to_tables/export_project_info_meta_table.py @@ -0,0 +1,60 @@ +#!/usr/bin/env python3 +import argparse +import sys + + +from pmotools.pmo_engine.pmo_exporter import PMOExporter +from pmotools.pmo_engine.pmo_reader import PMOReader +from pmotools.utils.small_utils import Utils + + +def parse_args_export_project_info_meta_table(): + parser = argparse.ArgumentParser() + parser.add_argument("--file", type=str, required=True, help="PMO file") + parser.add_argument( + "--output", type=str, default="STDOUT", required=False, help="output file" + ) + parser.add_argument( + "--delim", + default="tab", + type=str, + required=False, + help="the delimiter of the output text file, examples input tab,comma but can also be the actual delimiter", + ) + parser.add_argument( + "--overwrite", action="store_true", help="If output file exists, overwrite it" + ) + + return parser.parse_args() + + +def export_project_info_meta_table(): + args = parse_args_export_project_info_meta_table() + + # check files + output_delim, output_extension = Utils.process_delimiter_and_output_extension( + args.delim, gzip=args.output.endswith(".gz") + ) + args.output = ( + args.output + if "STDOUT" == args.output + else Utils.appendStrAsNeeded(args.output, output_extension) + ) + Utils.inputOutputFileCheck(args.file, args.output, args.overwrite) + + # read in PMO + pmo = PMOReader.read_in_pmo(args.file) + + # count fields + info_df = PMOExporter.export_project_info_meta_table(pmo) + + # output + info_df.to_csv( + sys.stdout if "STDOUT" == args.output else args.output, + sep=output_delim, + index=False, + ) + + +if __name__ == "__main__": + export_project_info_meta_table() diff --git a/src/pmotools/scripts/pmo_to_tables/export_sequencing_info_meta_table.py b/src/pmotools/scripts/pmo_to_tables/export_sequencing_info_meta_table.py new file mode 100644 index 0000000..2c7334f --- /dev/null +++ b/src/pmotools/scripts/pmo_to_tables/export_sequencing_info_meta_table.py @@ -0,0 +1,60 @@ +#!/usr/bin/env python3 +import argparse +import sys + + +from pmotools.pmo_engine.pmo_exporter import PMOExporter +from pmotools.pmo_engine.pmo_reader import PMOReader +from pmotools.utils.small_utils import Utils + + +def parse_args_export_sequencing_info_meta_table(): + parser = argparse.ArgumentParser() + parser.add_argument("--file", type=str, required=True, help="PMO file") + parser.add_argument( + "--output", type=str, default="STDOUT", required=False, help="output file" + ) + parser.add_argument( + "--delim", + default="tab", + type=str, + required=False, + help="the delimiter of the output text file, examples input tab,comma but can also be the actual delimiter", + ) + parser.add_argument( + "--overwrite", action="store_true", help="If output file exists, overwrite it" + ) + + return parser.parse_args() + + +def export_sequencing_info_meta_table(): + args = parse_args_export_sequencing_info_meta_table() + + # check files + output_delim, output_extension = Utils.process_delimiter_and_output_extension( + args.delim, gzip=args.output.endswith(".gz") + ) + args.output = ( + args.output + if "STDOUT" == args.output + else Utils.appendStrAsNeeded(args.output, output_extension) + ) + Utils.inputOutputFileCheck(args.file, args.output, args.overwrite) + + # read in PMO + pmo = PMOReader.read_in_pmo(args.file) + + # count fields + info_df = PMOExporter.export_sequencing_info_meta_table(pmo) + + # output + info_df.to_csv( + sys.stdout if "STDOUT" == args.output else args.output, + sep=output_delim, + index=False, + ) + + +if __name__ == "__main__": + export_sequencing_info_meta_table() diff --git a/src/pmotools/scripts/pmo_to_tables/export_specimen_meta_table.py b/src/pmotools/scripts/pmo_to_tables/export_specimen_meta_table.py new file mode 100644 index 0000000..5a45012 --- /dev/null +++ b/src/pmotools/scripts/pmo_to_tables/export_specimen_meta_table.py @@ -0,0 +1,60 @@ +#!/usr/bin/env python3 +import argparse +import sys + + +from pmotools.pmo_engine.pmo_exporter import PMOExporter +from pmotools.pmo_engine.pmo_reader import PMOReader +from pmotools.utils.small_utils import Utils + + +def parse_args_export_specimen_meta_table(): + parser = argparse.ArgumentParser() + parser.add_argument("--file", type=str, required=True, help="PMO file") + parser.add_argument( + "--output", type=str, default="STDOUT", required=False, help="output file" + ) + parser.add_argument( + "--delim", + default="tab", + type=str, + required=False, + help="the delimiter of the output text file, examples input tab,comma but can also be the actual delimiter", + ) + parser.add_argument( + "--overwrite", action="store_true", help="If output file exists, overwrite it" + ) + + return parser.parse_args() + + +def export_specimen_meta_table(): + args = parse_args_export_specimen_meta_table() + + # check files + output_delim, output_extension = Utils.process_delimiter_and_output_extension( + args.delim, gzip=args.output.endswith(".gz") + ) + args.output = ( + args.output + if "STDOUT" == args.output + else Utils.appendStrAsNeeded(args.output, output_extension) + ) + Utils.inputOutputFileCheck(args.file, args.output, args.overwrite) + + # read in PMO + pmo = PMOReader.read_in_pmo(args.file) + + # count fields + info_df = PMOExporter.export_specimen_meta_table(pmo) + + # output + info_df.to_csv( + sys.stdout if "STDOUT" == args.output else args.output, + sep=output_delim, + index=False, + ) + + +if __name__ == "__main__": + export_specimen_meta_table() diff --git a/src/pmotools/scripts/pmo_to_tables/export_specimen_travel_meta_table.py b/src/pmotools/scripts/pmo_to_tables/export_specimen_travel_meta_table.py new file mode 100644 index 0000000..3594cc8 --- /dev/null +++ b/src/pmotools/scripts/pmo_to_tables/export_specimen_travel_meta_table.py @@ -0,0 +1,60 @@ +#!/usr/bin/env python3 +import argparse +import sys + + +from pmotools.pmo_engine.pmo_exporter import PMOExporter +from pmotools.pmo_engine.pmo_reader import PMOReader +from pmotools.utils.small_utils import Utils + + +def parse_args_export_specimen_travel_meta_table(): + parser = argparse.ArgumentParser() + parser.add_argument("--file", type=str, required=True, help="PMO file") + parser.add_argument( + "--output", type=str, default="STDOUT", required=False, help="output file" + ) + parser.add_argument( + "--delim", + default="tab", + type=str, + required=False, + help="the delimiter of the output text file, examples input tab,comma but can also be the actual delimiter", + ) + parser.add_argument( + "--overwrite", action="store_true", help="If output file exists, overwrite it" + ) + + return parser.parse_args() + + +def export_specimen_travel_meta_table(): + args = parse_args_export_specimen_travel_meta_table() + + # check files + output_delim, output_extension = Utils.process_delimiter_and_output_extension( + args.delim, gzip=args.output.endswith(".gz") + ) + args.output = ( + args.output + if "STDOUT" == args.output + else Utils.appendStrAsNeeded(args.output, output_extension) + ) + Utils.inputOutputFileCheck(args.file, args.output, args.overwrite) + + # read in PMO + pmo = PMOReader.read_in_pmo(args.file) + + # count fields + info_df = PMOExporter.export_specimen_travel_meta_table(pmo) + + # output + info_df.to_csv( + sys.stdout if "STDOUT" == args.output else args.output, + sep=output_delim, + index=False, + ) + + +if __name__ == "__main__": + export_specimen_travel_meta_table() diff --git a/src/pmotools/scripts/pmo_to_tables/export_target_info_meta_table.py b/src/pmotools/scripts/pmo_to_tables/export_target_info_meta_table.py new file mode 100644 index 0000000..05d6d4f --- /dev/null +++ b/src/pmotools/scripts/pmo_to_tables/export_target_info_meta_table.py @@ -0,0 +1,60 @@ +#!/usr/bin/env python3 +import argparse +import sys + + +from pmotools.pmo_engine.pmo_exporter import PMOExporter +from pmotools.pmo_engine.pmo_reader import PMOReader +from pmotools.utils.small_utils import Utils + + +def parse_args_export_target_info_meta_table(): + parser = argparse.ArgumentParser() + parser.add_argument("--file", type=str, required=True, help="PMO file") + parser.add_argument( + "--output", type=str, default="STDOUT", required=False, help="output file" + ) + parser.add_argument( + "--delim", + default="tab", + type=str, + required=False, + help="the delimiter of the output text file, examples input tab,comma but can also be the actual delimiter", + ) + parser.add_argument( + "--overwrite", action="store_true", help="If output file exists, overwrite it" + ) + + return parser.parse_args() + + +def export_target_info_meta_table(): + args = parse_args_export_target_info_meta_table() + + # check files + output_delim, output_extension = Utils.process_delimiter_and_output_extension( + args.delim, gzip=args.output.endswith(".gz") + ) + args.output = ( + args.output + if "STDOUT" == args.output + else Utils.appendStrAsNeeded(args.output, output_extension) + ) + Utils.inputOutputFileCheck(args.file, args.output, args.overwrite) + + # read in PMO + pmo = PMOReader.read_in_pmo(args.file) + + # count fields + info_df = PMOExporter.export_target_info_meta_table(pmo) + + # output + info_df.to_csv( + sys.stdout if "STDOUT" == args.output else args.output, + sep=output_delim, + index=False, + ) + + +if __name__ == "__main__": + export_target_info_meta_table() diff --git a/src/pmotools/scripts/extractors_from_pmo/extract_allele_table.py b/src/pmotools/scripts/pmo_to_tables/extract_allele_table.py similarity index 97% rename from src/pmotools/scripts/extractors_from_pmo/extract_allele_table.py rename to src/pmotools/scripts/pmo_to_tables/extract_allele_table.py index 3a61d83..549028c 100755 --- a/src/pmotools/scripts/extractors_from_pmo/extract_allele_table.py +++ b/src/pmotools/scripts/pmo_to_tables/extract_allele_table.py @@ -8,6 +8,8 @@ from pmotools.utils.small_utils import Utils from pmotools.pmo_engine.pmo_checker import PMOChecker from pmotools.pmo_engine.pmo_processor import PMOProcessor +from pmotools.pmo_engine.pmo_exporter import PMOExporter + from pmotools import __version__ as __pmotools_version__ @@ -132,7 +134,7 @@ def extract_for_allele_table(): args.representative_haps_fields, "," ) - allele_table = PMOProcessor.extract_alleles_per_sample_table( + allele_table = PMOExporter.extract_alleles_per_sample_table( pmodata, additional_specimen_info_fields=args.specimen_info_meta_fields, additional_library_sample_info_fields=args.library_sample_info_meta_fields, diff --git a/src/pmotools/scripts/extract_info_from_pmo/extract_insert_of_panels.py b/src/pmotools/scripts/pmo_to_tables/extract_insert_of_panels.py similarity index 94% rename from src/pmotools/scripts/extract_info_from_pmo/extract_insert_of_panels.py rename to src/pmotools/scripts/pmo_to_tables/extract_insert_of_panels.py index 1687c41..b0da163 100755 --- a/src/pmotools/scripts/extract_info_from_pmo/extract_insert_of_panels.py +++ b/src/pmotools/scripts/pmo_to_tables/extract_insert_of_panels.py @@ -1,8 +1,7 @@ #!/usr/bin/env python3 import argparse - -from pmotools.pmo_engine.pmo_processor import PMOProcessor +from pmotools.pmo_engine.pmo_exporter import PMOExporter from pmotools.pmo_engine.pmo_reader import PMOReader from pmotools.utils.small_utils import Utils @@ -35,7 +34,7 @@ def extract_insert_of_panels(): pmo = PMOReader.read_in_pmo(args.file) # get panel insert locations - panel_bed_locs = PMOProcessor.extract_panels_insert_bed_loc(pmo) + panel_bed_locs = PMOExporter.extract_panels_insert_bed_loc(pmo) # write with Utils.smart_open_write(args.output) as f: diff --git a/src/pmotools/scripts/extract_info_from_pmo/extract_refseq_of_inserts_of_panels.py b/src/pmotools/scripts/pmo_to_tables/extract_refseq_of_inserts_of_panels.py similarity index 90% rename from src/pmotools/scripts/extract_info_from_pmo/extract_refseq_of_inserts_of_panels.py rename to src/pmotools/scripts/pmo_to_tables/extract_refseq_of_inserts_of_panels.py index 49c0112..f335334 100755 --- a/src/pmotools/scripts/extract_info_from_pmo/extract_refseq_of_inserts_of_panels.py +++ b/src/pmotools/scripts/pmo_to_tables/extract_refseq_of_inserts_of_panels.py @@ -1,8 +1,7 @@ #!/usr/bin/env python3 import argparse - -from pmotools.pmo_engine.pmo_processor import PMOProcessor +from pmotools.pmo_engine.pmo_exporter import PMOExporter from pmotools.pmo_engine.pmo_reader import PMOReader from pmotools.utils.small_utils import Utils @@ -30,7 +29,7 @@ def extract_refseq_of_inserts_of_panels(): pmo = PMOReader.read_in_pmo(args.file) # get panel insert locations - panel_bed_locs = PMOProcessor.extract_panels_insert_bed_loc(pmo) + panel_bed_locs = PMOExporter.extract_panels_insert_bed_loc(pmo) # write with Utils.smart_open_write(args.output) as f: diff --git a/src/pmotools/utils/small_utils.py b/src/pmotools/utils/small_utils.py index bfaaf3e..5701017 100644 --- a/src/pmotools/utils/small_utils.py +++ b/src/pmotools/utils/small_utils.py @@ -284,7 +284,7 @@ def outputfile_check(output_file: str, overwrite: bool = False): raise Exception( "Output file " + output_file - + " already exists, use --overwrite to overwrite it" + + " already exists, use overwrite=T (or --overwrite if running from command line interface) to overwrite it" ) @staticmethod diff --git a/tests/data/combined_pmo_example.json b/tests/data/combined_pmo_example.json index 36b543b..7b980b7 100644 --- a/tests/data/combined_pmo_example.json +++ b/tests/data/combined_pmo_example.json @@ -1 +1,11972 @@ -{"pmo_header": {"pmo_version": "v1.0.0", "creation_date": "2025-07-22", "generation_method": {"program_name": "pmotools-python.PMOReader.combine_multiple_pmos", "program_version": "v1.0.0"}}, "targeted_genomes": [{"chromosomes": ["Pf3D7_01_v3", "Pf3D7_02_v3", "Pf3D7_03_v3", "Pf3D7_04_v3", "Pf3D7_05_v3", "Pf3D7_06_v3", "Pf3D7_07_v3", "Pf3D7_08_v3", "Pf3D7_09_v3", "Pf3D7_10_v3", "Pf3D7_11_v3", "Pf3D7_12_v3", "Pf3D7_13_v3", "Pf3D7_14_v3", "Pf3D7_API_v3", "Pf3D7_MIT_v3"], "genome_version": "2020-09-01", "gff_url": "https://plasmodb.org/common/downloads/release-65/Pfalciparum3D7/gff/data/PlasmoDB-65_Pfalciparum3D7.gff", "name": "3D7", "taxon_id": [5833], "url": "https://plasmodb.org/common/downloads/release-65/Pfalciparum3D7/fasta/data/PlasmoDB-65_Pfalciparum3D7_Genome.fasta"}], "target_info": [{"forward_primer": {"location": {"chrom": "Pf3D7_14_v3", "end": 1956129, "genome_id": 0, "start": 1956096, "strand": "+"}, "seq": "TTTTTCTCCACTTTGTAATTTTTATTGTTGAAT"}, "gene_name": "PF3D7_1447900", "insert_location": {"chrom": "Pf3D7_14_v3", "end": 1956286, "genome_id": 0, "ref_seq": "ATATATATAAAGTTAAACCTATAAATAATACACTACCTAATAAACTATTCTTATATTTAAAAATAAATATAATACATGTTATTAATCCTTCTATTGTTGCCGGAATAATATACATTAAAACAGAACTCATCAAATTATTAGCACTCTCGGTACCTCT", "start": 1956129, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_14_v3", "end": 1956129, "genome_id": 0, "start": 1956096, "strand": "+"}, "seq": "CGGGTGGTATCATGAGAATAGTTGAT"}, "target_attributes": ["Included", "DrugResistance"], "target_name": "t96"}, {"forward_primer": {"location": {"chrom": "Pf3D7_14_v3", "end": 1038369, "genome_id": 0, "start": 1038340, "strand": "+"}, "seq": "ACACTTCAACTACACTTTTTAATTTAGCC"}, "gene_name": "PF3D7_1426700", "insert_location": {"chrom": "Pf3D7_14_v3", "end": 1038486, "genome_id": 0, "ref_seq": "CATACAATTAATAAAGCTCTACGATAAATTTCTTTTTTATTTGATTTAGAAAAAGGAGAAAACCATTGAAACTTTTTGGCTAGATATTTATGGTCTTTATCAAAAATATATTCTGAA", "start": 1038369, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_14_v3", "end": 1038369, "genome_id": 0, "start": 1038340, "strand": "+"}, "seq": "AGATCTTATGTTAAACTTCTAGAAGATGAAGT"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t95"}, {"forward_primer": {"location": {"chrom": "Pf3D7_14_v3", "end": 564208, "genome_id": 0, "start": 564177, "strand": "+"}, "seq": "AAAATCTTTTGGTATTGTATTTTGACTGCAC"}, "gene_name": "PF3D7_1414200", "insert_location": {"chrom": "Pf3D7_14_v3", "end": 564377, "genome_id": 0, "ref_seq": "TTATTAAAACTTTTTTTTCTTTCTGTAAAGTTTGTACATTATGTTTTGATGAGTTTTGATTATCTTCATAAAACTTTATATATTTATAAAAATTATTTTGTATAAAATCATTTAATAAAGGTAACATAATCTTTTTAGCTTGATTCAATTCACTACATGAATGTATATT", "start": 564208, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_14_v3", "end": 564208, "genome_id": 0, "start": 564177, "strand": "+"}, "seq": "AAACGGAATCACTTATGGATACCATTTTATTT"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t94"}, {"forward_primer": {"location": {"chrom": "Pf3D7_08_v3", "end": 933023, "genome_id": 0, "start": 932995, "strand": "+"}, "seq": "TGTAAAAGGAAAATGTCTTACGTGGATT"}, "gene_name": "PF3D7_0820700", "insert_location": {"chrom": "Pf3D7_08_v3", "end": 933143, "genome_id": 0, "ref_seq": "TTGGTTTTAATGAGGATGATTTAGATAAAGAGTTTTTTTTTGATTTGCCGTCGATTAGTGGTTTTTCAAGTAATGGTATGAAAAAATGTAATTTAAGAAATTTATTAAAAAGATTAGAAG", "start": 933023, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_08_v3", "end": 933023, "genome_id": 0, "start": 932995, "strand": "+"}, "seq": "ATTCAAAACCAATAGTACCACAATATGTTT"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t50"}, {"forward_primer": {"location": {"chrom": "Pf3D7_05_v3", "end": 1042162, "genome_id": 0, "start": 1042129, "strand": "+"}, "seq": "GGAATATTTGTGATTTAGGATGTAATGCATACA"}, "gene_name": "PF3D7_0525100", "insert_location": {"chrom": "Pf3D7_05_v3", "end": 1042281, "genome_id": 0, "ref_seq": "ATATTATTACGGTACCATTATATGATTCTTTAGGTCCTCAATCAAGTAGATTTATATTAGATCAAACACAGATGGAAACTATTGTATGTGACAAGACATGTGCTCGTAATTTATTTAAG", "start": 1042162, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_05_v3", "end": 1042162, "genome_id": 0, "start": 1042129, "strand": "+"}, "seq": "CAAATATATCTCTTCGCATGTTTCTAAGGA"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t36"}, {"forward_primer": {"location": {"chrom": "Pf3D7_13_v3", "end": 2669135, "genome_id": 0, "start": 2669104, "strand": "+"}, "seq": "ATTTACATGATGTAACTGAATCTCAGCTTTT"}, "gene_name": "PF3D7_1366800", "insert_location": {"chrom": "Pf3D7_13_v3", "end": 2669307, "genome_id": 0, "ref_seq": "AAAAAAAATACATTTAAATCTATAATATTTGTAATAAATGATAAGAATATTAGTATTAATAGGGTACTACTATTTGTAAATACTTTTCTACATAATTTATCAATAGTAGGAAATATGATATTCTTTTTGTTTGGCTTTATTTTATCTGGGATTTTCCAATCATAAAGTTCGA", "start": 2669135, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_13_v3", "end": 2669135, "genome_id": 0, "start": 2669104, "strand": "+"}, "seq": "AGCCAGTATTCTTTTTATGAAGTATTTTAACA"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t88"}, {"forward_primer": {"location": {"chrom": "Pf3D7_13_v3", "end": 2479086, "genome_id": 0, "start": 2479055, "strand": "+"}, "seq": "CTTATAAAGAGAAATTTTCATGTTAGCGCTT"}, "gene_name": "PF3D7_1361800", "insert_location": {"chrom": "Pf3D7_13_v3", "end": 2479246, "genome_id": 0, "ref_seq": "TCTATGCTTTATCAAAACAAAGTAATCAAAATGTAATACATTATTCTTGTCGATCTATATGTGCTTTTACAAAAAACCCTAAGGGTTTAGAAGCGGTAAAGGATATCAAGGACTTTGCGAATATTATAAGTAAATCTGTTGGTGATTTGAGTAAAGAGAA", "start": 2479086, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_13_v3", "end": 2479086, "genome_id": 0, "start": 2479055, "strand": "+"}, "seq": "AGTCTTCCTTGATTTCTTTATCCAAGGTA"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t86"}, {"forward_primer": {"location": {"chrom": "Pf3D7_13_v3", "end": 2124634, "genome_id": 0, "start": 2124602, "strand": "+"}, "seq": "AATTTGGTTTCAATAAAATTATCAGCTTTCTT"}, "gene_name": "PF3D7_1353100", "insert_location": {"chrom": "Pf3D7_13_v3", "end": 2124847, "genome_id": 0, "ref_seq": "TAACATTTTTTTAACATCTTTACCTTTTTGACTTGGTTCTTTATCATAATTCTGTTGTTCTGCAGAATCAGCATTTACTTCAGTTTCTTCTTTATTTTGAAAAGTGTTTGATTCTACATGAGAATTGGAAGATGAACGTCTATGTTTTACTTCTGTATAACTAGTACGTTCTCCAGTATGATGAGCCTTATGGTTTACATCTTCAGTTTCTTC", "start": 2124634, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_13_v3", "end": 2124634, "genome_id": 0, "start": 2124602, "strand": "+"}, "seq": "GAAGAATTTTAACACAAGGAGATCATCAC"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t85"}, {"forward_primer": {"location": {"chrom": "Pf3D7_13_v3", "end": 1419543, "genome_id": 0, "start": 1419519, "strand": "+"}, "seq": "GAAATGTCGATTCTCCTCCTTGTG"}, "gene_name": "PF3D7_1335100", "insert_location": {"chrom": "Pf3D7_13_v3", "end": 1419670, "genome_id": 0, "ref_seq": "CTGGTTTTTGTACTTCTTGTCCTTGTGTTGATATCTCTTGTTCATTTTTAGATTGAGTATCTGTTTCACTTTGTGCCTTTACCTTTGATAATACGTTTTTACCGAATAATCCTAAATTTTGGAATAA", "start": 1419543, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_13_v3", "end": 1419543, "genome_id": 0, "start": 1419519, "strand": "+"}, "seq": "GAAAACAAGGAAAAATCAGAATCATTTCCA"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t81"}, {"forward_primer": {"location": {"chrom": "Pf3D7_13_v3", "end": 1150303, "genome_id": 0, "start": 1150279, "strand": "+"}, "seq": "TAACAACCCCTCCATCAACATCTT"}, "gene_name": "PF3D7_1327300", "insert_location": {"chrom": "Pf3D7_13_v3", "end": 1150493, "genome_id": 0, "ref_seq": "CTAAAAAAAGCAAACAAAAAGAAAAGAGAATGGAAGATTTAAGTATTGAGGAAAATTTGAAAGAGAAATTAATAAACCTAAATATTCAGAAACAGTATAGTGGTTTCCATATGAAAGAAATGGAGGAACAAAATATTCCTGAATTAAATATTCCACAACTTTCAGCTATTCATAATAGAGAAGATATGAA", "start": 1150303, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_13_v3", "end": 1150303, "genome_id": 0, "start": 1150279, "strand": "+"}, "seq": "ACACTTCTATATCTTCTTTCTTCATCATTCTTA"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t80"}, {"forward_primer": {"location": {"chrom": "Pf3D7_13_v3", "end": 1725365, "genome_id": 0, "start": 1725337, "strand": "+"}, "seq": "TCGGTATAATAGAAGAGCCATCATATCC"}, "gene_name": "PF3D7_1343700", "insert_location": {"chrom": "Pf3D7_13_v3", "end": 1725570, "genome_id": 0, "ref_seq": "CCCAATACAATAAATTCTACCATTTGACGTAACACCACAATTATTTCTTCTAGGTATATTTAAATTACTTGAAACATACCATACATCTCTTAAACGATCATACACCTCAGTTTCAAATAAAGCCTTATAATCATAGTTATTACCACCAAAAACGTATAAGAAATTATTCAATACAGCACTTCCAAAATAAGCTTTTTTGGTAGAC", "start": 1725365, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_13_v3", "end": 1725365, "genome_id": 0, "start": 1725337, "strand": "+"}, "seq": "GCTGGCGTATGTGTACACCTAT"}, "target_attributes": ["Included", "DrugResistance"], "target_name": "t82"}, {"forward_primer": {"location": {"chrom": "Pf3D7_13_v3", "end": 1876352, "genome_id": 0, "start": 1876325, "strand": "+"}, "seq": "CCAGGACAATTTAAACCTACCAAATGA"}, "gene_name": "PF3D7_1346700", "insert_location": {"chrom": "Pf3D7_13_v3", "end": 1876534, "genome_id": 0, "ref_seq": "TTATATTTTGGTTCAGACAAATGTACGTTACATGAAATATGTGCACTATCATCAACTAAAGAAATATCTAAACTATCTGTAAAAGTATGTTTAGAACTAACATTTGAAGAGAAGTTACATCCGTGTATGACTTTTTTTTCATATTTTGGTTTTAAAACTATTTTATAATTATTATTTTTAAA", "start": 1876352, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_13_v3", "end": 1876352, "genome_id": 0, "start": 1876325, "strand": "+"}, "seq": "CAAAAGATGTTAATACAGAATGTACATGCAAA"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t83"}, {"forward_primer": {"location": {"chrom": "Pf3D7_14_v3", "end": 2524962, "genome_id": 0, "start": 2524931, "strand": "+"}, "seq": "ATGATCTTCTCTGAAATTTACTTGAATTGTT"}, "gene_name": "PF3D7_1462300", "insert_location": {"chrom": "Pf3D7_14_v3", "end": 2525089, "genome_id": 0, "ref_seq": "AAATGAGGTATAATCATCCATTTCGTTGGGTCGATTTGATCTATTTTTAAGGTCCATATATTGAGATGAATCATTATGCATTTTATAATCATGAGGGATATTAGGTGCATGGTATTTAGGGTCTTTA", "start": 2524962, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_14_v3", "end": 2524962, "genome_id": 0, "start": 2524931, "strand": "+"}, "seq": "ACCAAACTTTTGGAGATTTCAAGATTATGA"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t98"}, {"forward_primer": {"location": {"chrom": "Pf3D7_13_v3", "end": 103659, "genome_id": 0, "start": 103631, "strand": "+"}, "seq": "GAAAAGAAGATCCAACTGACAGAGAAAA"}, "insert_location": {"chrom": "Pf3D7_13_v3", "end": 103879, "genome_id": 0, "ref_seq": "AACTGATGTTAATGAAGGCCAAAATGGAAAACGTTTAACACAAGAAAAAACCCTAAAACAAATTCCTTCGACATCACCAAATAATTTAGAACAAAAATTACAACAAACACATATTTCTTCTTCCCAACAAAAACATTTAATAAAAACTACTCCTACTTCAGATTCAACTACAACTTCATCAAGCTCTTCTGTTCCTCTTACAAAACAATCCCCTCATTCT", "start": 103659, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_13_v3", "end": 103659, "genome_id": 0, "start": 103631, "strand": "+"}, "seq": "TGTGTACTAGATAATGCAGGAACTGA"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t78"}, {"forward_primer": {"location": {"chrom": "Pf3D7_12_v3", "end": 684088, "genome_id": 0, "start": 684059, "strand": "+"}, "seq": "GTCTACCATTTTTAATCGACTAACTCGAA"}, "gene_name": "PF3D7_1217300", "insert_location": {"chrom": "Pf3D7_12_v3", "end": 684261, "genome_id": 0, "ref_seq": "AATATCAAGATGGTAGTATTGTTTTAGATGTTAGTAGTACGAGAGATAAACTTTATGGAGAAGTTGAGTGGGAAGGATATAAATTTGAACTTGTGGATACAGGAGGTTTAGTTTTTGAACAAGAAAAGTTTTCAAAAGAAATAAAGGATCAAATTCTTATGGCTCTAAAAGAA", "start": 684088, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_12_v3", "end": 684088, "genome_id": 0, "start": 684059, "strand": "+"}, "seq": "CATCAACGACAAAAATAACAACTGATGA"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t74"}, {"forward_primer": {"location": {"chrom": "Pf3D7_04_v3", "end": 415653, "genome_id": 0, "start": 415623, "strand": "+"}, "seq": "ATGAATTAATAAAAGAACATGGTGGACCTT"}, "gene_name": "PF3D7_0408600", "insert_location": {"chrom": "Pf3D7_04_v3", "end": 415826, "genome_id": 0, "ref_seq": "ATGCTAGTTTTGCTGCTCATGAAAATAAAAGCTACTCATATGAAAGTCGTACATATAAAATGTATCCACCTGAATTTAATACATTAATGTTAAAAGCAGATTATTTTATAAGAGATATAAATACACGAGGATTTAGAGAAGTAAATATGGATTCATGTAAATCATATACAAAT", "start": 415653, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_04_v3", "end": 415653, "genome_id": 0, "start": 415623, "strand": "+"}, "seq": "GACTTGAAAACATTTTAAATTTCTTGTATCCAT"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t23"}, {"forward_primer": {"location": {"chrom": "Pf3D7_12_v3", "end": 659891, "genome_id": 0, "start": 659858, "strand": "+"}, "seq": "GTTAATACTGGTACTATTATACCATATGTTGCT"}, "gene_name": "PF3D7_1216600", "insert_location": {"chrom": "Pf3D7_12_v3", "end": 660010, "genome_id": 0, "ref_seq": "GGGTCGACTTTTGGTGGTTTAACATTTTCAGCTACGAGATTTTCGAATGATGGCAATCCTACTTTGATTAATTCCTTTAACATAGATTTTGCGTGTTTTTTTACTTCTGATTTGATATC", "start": 659891, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_12_v3", "end": 659891, "genome_id": 0, "start": 659858, "strand": "+"}, "seq": "TCACCAACCTTTTTAGAATCAAGCTTT"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t73"}, {"forward_primer": {"location": {"chrom": "Pf3D7_13_v3", "end": 156566, "genome_id": 0, "start": 156535, "strand": "+"}, "seq": "AACTGAAAGTATATACAATAGTACACCTCCA"}, "gene_name": "PF3D7_1302900", "insert_location": {"chrom": "Pf3D7_13_v3", "end": 156722, "genome_id": 0, "ref_seq": "TATAGAGTTATTATGTTCGAATTAATGACCAGATTATTTCGATTTTATACAAAACCAATAGACCTTATTATTACTATGAATACACACAGATATGACACACCTATATTGTTAAAACATTCAAACAGCTTACAACTTATCTTATCAAATCAACAAAAT", "start": 156566, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_13_v3", "end": 156566, "genome_id": 0, "start": 156535, "strand": "+"}, "seq": "AAAAGGATAAGTTAGAATTGCTCATTAATCT"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t79"}, {"forward_primer": {"location": {"chrom": "Pf3D7_11_v3", "end": 1816211, "genome_id": 0, "start": 1816181, "strand": "+"}, "seq": "GGGTAGATATCGTTATAAGGGCTATAATGT"}, "gene_name": "PF3D7_1145800", "insert_location": {"chrom": "Pf3D7_11_v3", "end": 1816425, "genome_id": 0, "ref_seq": "ATTGACTTCTCCGGGTTGGTTACATTATCATTACAACCAATATTATTAAGGTTAATACTATTTTTATCATTATTATTGTTGTTTTCATTTGTGTGGTTATATAATAACAATGATGTGTCGTCTATTGGATCATTTTGCACAAGGTCAATATCATTAGAATTATGTTTCATATTATTTGTATACATTTTTTTGTAATTATCATTTTTTCTTACTT", "start": 1816211, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_11_v3", "end": 1816211, "genome_id": 0, "start": 1816181, "strand": "+"}, "seq": "GCCAAAAATACGATGTGATGAAGAATG"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t71"}, {"forward_primer": {"location": {"chrom": "Pf3D7_11_v3", "end": 1552430, "genome_id": 0, "start": 1552397, "strand": "+"}, "seq": "AAGGGAAAAATAATGGATAATATAGTTGTGAAT"}, "gene_name": "PF3D7_1139100", "insert_location": {"chrom": "Pf3D7_11_v3", "end": 1552640, "genome_id": 0, "ref_seq": "AATATCGACAATTATAAAGAAAAAATAGAAAATTTTAATGAAAGATATTATGAAGATGATTTAAGTTTCTTAAACTTTCCAGGAACCATAACAAGTTATGATAAAAACCATCAAAGAGATAAAAGAAAAAACTGTTTTGAAGAATATCTAGACAATAATAATTATTTTATTGATAGTAATCTAAAGGAAGTTATAGAAAATAATATATAT", "start": 1552430, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_11_v3", "end": 1552430, "genome_id": 0, "start": 1552397, "strand": "+"}, "seq": "GTCAATTTGCTCCTTATCCATATTCGA"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t69"}, {"forward_primer": {"location": {"chrom": "Pf3D7_11_v3", "end": 1009856, "genome_id": 0, "start": 1009831, "strand": "+"}, "seq": "AAACTGTGAGCATATCTTGGTTCAG"}, "gene_name": "PF3D7_1125800", "insert_location": {"chrom": "Pf3D7_11_v3", "end": 1010038, "genome_id": 0, "ref_seq": "GAATTCTATCTATTTGTTTAATTGGTGTCCATGAATTTTTAGAGAAACACCACATATCAGCTAATAAGGAATTATTAACATCTAATCCTCCATGAATATATAAAAAATCATTAAAACTGAAAGAAGCATGCTTATATCTTGCACGTGGACAAATTTTATTTCCAATAAGTTCCCATTTCTTT", "start": 1009856, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_11_v3", "end": 1009856, "genome_id": 0, "start": 1009831, "strand": "+"}, "seq": "TGTTGATGAAACATATAAATTTGATTTCCAAGC"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t66"}, {"forward_primer": {"location": {"chrom": "Pf3D7_11_v3", "end": 1750865, "genome_id": 0, "start": 1750833, "strand": "+"}, "seq": "CATCAACATATAGTCGTTATAAAAGAGCACTT"}, "gene_name": "PF3D7_1143800", "insert_location": {"chrom": "Pf3D7_11_v3", "end": 1751055, "genome_id": 0, "ref_seq": "TTATTAAAAACAACAAATAAATTACCAAGGTCATGGAAAAAACTCTTGTTAAATCTATCCATTAGATTTCAAACAATACCTATAGGTGGTTCTATCGAAATCATATCAAAGGATGAGAAAAATATTTCTATGACACGATCCAGTGAATATAATGCAACAACATATGAGCATTACACATTTCCCAAATGGT", "start": 1750865, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_11_v3", "end": 1750865, "genome_id": 0, "start": 1750833, "strand": "+"}, "seq": "GGCGTTTCCTCATTTTCTTTACTATTGT"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t70"}, {"forward_primer": {"location": {"chrom": "Pf3D7_11_v3", "end": 119486, "genome_id": 0, "start": 119456, "strand": "+"}, "seq": "GCTTCCATCTCCTTTATATTCATCAAGAAA"}, "gene_name": "PF3D7_1102500", "insert_location": {"chrom": "Pf3D7_11_v3", "end": 119693, "genome_id": 0, "ref_seq": "TTTCATCCAAGAGTAATTATGTTTTTCTTGTTGATATTTTGCTTTATACAAACGAGCAAGATACTTTTTATACGATTCATGCTCTTTAATTTTCTTTTCAAAAGTTTTGGTTATAATGTGTTCAAGTGATTGTAAAGTATTTTTCTTTAATTTTCTCCATATTAATCTACATGCGATTATAAGAATTCTATATTCTTTGATATTCCC", "start": 119486, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_11_v3", "end": 119486, "genome_id": 0, "start": 119456, "strand": "+"}, "seq": "GGAATTTTTAATGAATGGATTAAAACTAGTGAA"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t65"}, {"forward_primer": {"location": {"chrom": "Pf3D7_10_v3", "end": 1436479, "genome_id": 0, "start": 1436451, "strand": "+"}, "seq": "CTAGGAATCGAATAAATGAGGAAAAGCA"}, "gene_name": "PF3D7_1036400", "insert_location": {"chrom": "Pf3D7_10_v3", "end": 1436682, "genome_id": 0, "ref_seq": "CGAGAAGAAACACGTTTTATCTCATAATTCATATGAGAAAACTAAAAATAATGAAAATAATAAATTTTTCGATAAGGATAAAGAGTTAACGATGTCTAATGTAAAAAATGTGTCACAAACAAATTTCAAAAGTCTTTTAAGAAATCTTGGTGTTTCAGAGAATATATTCCTTAAAGAAAATAAATTAAATAAGGAAGGGAAAT", "start": 1436479, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_10_v3", "end": 1436479, "genome_id": 0, "start": 1436451, "strand": "+"}, "seq": "ATCGTCATCATCATTTATTATGTGTTCAATTA"}, "target_attributes": ["Excluded", "Microhaplotype"], "target_name": "t64"}, {"forward_primer": {"location": {"chrom": "Pf3D7_01_v3", "end": 531682, "genome_id": 0, "start": 531656, "strand": "+"}, "seq": "CTTTTTGGGCTTATTGTTTGGAAGAA"}, "gene_name": "PF3D7_0113800", "insert_location": {"chrom": "Pf3D7_01_v3", "end": 531900, "genome_id": 0, "ref_seq": "AAAAGAAAGATGTTAAGAAAAAAAAGATCGATATGATAAATATATTACACATTCCTACAAATAATTATAGCATGCCAAATGAAAAAGATATAAACAGTTATGAATTTTTTGGATCTGAACCTATTGAATTATATGATGTAAAATCTAATAAGAATTGTGTTATAACTAGCCAATCTTATATTTGTATTGAAAACCCGCATGCTGCCATAGTATCCGAA", "start": 531682, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_01_v3", "end": 531682, "genome_id": 0, "start": 531656, "strand": "+"}, "seq": "ACTGGATTCTTCTAATATTCTTTGCTCTCT"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t6"}, {"forward_primer": {"location": {"chrom": "Pf3D7_09_v3", "end": 596133, "genome_id": 0, "start": 596101, "strand": "+"}, "seq": "ATTTGTTTTTGTTCTACATCAATAATTGGTTT"}, "gene_name": "PF3D7_0913900", "insert_location": {"chrom": "Pf3D7_09_v3", "end": 596334, "genome_id": 0, "ref_seq": "ATTATTTTCGTTTTTTTTTATATTATCATTATAATTATATGTATTTACAAAGAATTTATTATTATTTGTTTCTTTATAATTATATTCATTTTCTTTATTACTTAAGGAATTTATATTTGATAAAACTTGTTGTCCTCTTTCTTCTTTGTTGATGTGAATATTTGAGAAAATAATAATAAATGTAATGACTAGGGCTATGTT", "start": 596133, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_09_v3", "end": 596133, "genome_id": 0, "start": 596101, "strand": "+"}, "seq": "AAATAGAAGTCATATAGGTGACTGGAATCTT"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t55"}, {"forward_primer": {"location": {"chrom": "Pf3D7_09_v3", "end": 516928, "genome_id": 0, "start": 516904, "strand": "+"}, "seq": "TGTGGGCGCAAAAACTATAAATGA"}, "gene_name": "PF3D7_0911300", "insert_location": {"chrom": "Pf3D7_09_v3", "end": 517092, "genome_id": 0, "ref_seq": "ATGTTTGTGTAATAAAGGATATTTCTATAATGTCAAGAAACAACAATGTGAAGAATGTCCCATAGGTTTTTATTGTCCAAAAATAAGCTCAAAAAATAATATAAAAAAACCTATCAAATGTCCTAAAAATTCCTCAAGTATAAAAAAAGGTATGTATATATCAA", "start": 516928, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_09_v3", "end": 516928, "genome_id": 0, "start": 516904, "strand": "+"}, "seq": "ATTTTGTATATCCAAAATTACATTGACAATTGT"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t54"}, {"forward_primer": {"location": {"chrom": "Pf3D7_05_v3", "end": 1309609, "genome_id": 0, "start": 1309581, "strand": "+"}, "seq": "ACGACGAAGAAAACGAAAGTATTGATAA"}, "gene_name": "PF3D7_0532300", "insert_location": {"chrom": "Pf3D7_05_v3", "end": 1309744, "genome_id": 0, "ref_seq": "TAATGAAGAAAATATGTCTGACAGACCAAACAGTTTATCTCATGATAAGGATCAACACCTCGATGAAACACATAATGAACAATATGGATTATACGTAAAAGAAATGGAATCTAAAGTTGAAAAATTAGCTGAAAA", "start": 1309609, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_05_v3", "end": 1309609, "genome_id": 0, "start": 1309581, "strand": "+"}, "seq": "ACCTCTTGAAATTCCTTTTCAACTTGA"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t37"}, {"forward_primer": {"location": {"chrom": "Pf3D7_08_v3", "end": 1362891, "genome_id": 0, "start": 1362863, "strand": "+"}, "seq": "CGACTTCTTTAAGAGAACAAACAGAACA"}, "gene_name": "PF3D7_0831600", "insert_location": {"chrom": "Pf3D7_08_v3", "end": 1363087, "genome_id": 0, "ref_seq": "CGTAAAAAAAAAGGGTTTTCCTAAAAAACCATCGGTTCATGGTTTTACACAGATGGTGTTTTTGCAGCTTACTAATATAGTCATGTATGCCCTTTGTTTTATGAGCCTTTCACAAATATATGCTTATTTCGAAAACGTGAATTTTTATATTATAAGCAATTTTCGTTTCCTTGAGAGATATTTTAATATATTCAAT", "start": 1362891, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_08_v3", "end": 1362891, "genome_id": 0, "start": 1362863, "strand": "+"}, "seq": "AAGTTTTCTTCTGAATAGTTCTACAAAGTATTT"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t53"}, {"forward_primer": {"location": {"chrom": "Pf3D7_07_v3", "end": 165235, "genome_id": 0, "start": 165202, "strand": "+"}, "seq": "GGATCCTCTTACAATCTCGAAATAATTATAATT"}, "gene_name": "PF3D7_0703900", "insert_location": {"chrom": "Pf3D7_07_v3", "end": 165422, "genome_id": 0, "ref_seq": "ATCATTATTATTATTATTATAATTATCATTGTTATTATTATTGTTGTTGTTGTTATTATTATTTCCTTTATTATTTAATATGCATTTTTTAATATCCATTTTATTATTTATCATATCAGTACTTTTATTTTTCTCCTTTTCGTTTATAGCTTTTTCCCTATGCACCCTGAATTTCCCATTTTTTTTT", "start": 165235, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_07_v3", "end": 165235, "genome_id": 0, "start": 165202, "strand": "+"}, "seq": "ATGGTTTGGTAAGCGAGTTTATGTTATT"}, "target_attributes": ["Excluded", "Microhaplotype"], "target_name": "t40"}, {"forward_primer": {"location": {"chrom": "Pf3D7_08_v3", "end": 1344686, "genome_id": 0, "start": 1344653, "strand": "+"}, "seq": "TCTTTTCCATATATAATAACGCATGAATTCTTT"}, "gene_name": "PF3D7_0831400", "insert_location": {"chrom": "Pf3D7_08_v3", "end": 1344819, "genome_id": 0, "ref_seq": "AAATATATCTTTTACTTTATCTGTAAGTTTCATGGAATCTATTATTTCATGTGCATATTTTATTTTTGCCTCGTTTATATATTTACCTGCTTTTAATTTACATAAACATTTTTCTATTAAGTTTTGATCATTT", "start": 1344686, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_08_v3", "end": 1344686, "genome_id": 0, "start": 1344653, "strand": "+"}, "seq": "TGAGAACAGATGAAGTAACTACTCGATT"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t52"}, {"forward_primer": {"location": {"chrom": "Pf3D7_14_v3", "end": 3124642, "genome_id": 0, "start": 3124614, "strand": "+"}, "seq": "CAGATTATTTGGTAATGAACAACCAGGA"}, "gene_name": "PF3D7_1475900", "insert_location": {"chrom": "Pf3D7_14_v3", "end": 3124842, "genome_id": 0, "ref_seq": "TATGGAAAAATGGAATATGAAGTATTAAGTGATGATAACATAGTGTATGAAAATATACAACATGATTTATTAAAAACAATAGAAGATGATGAAGAAATGTTAAAAGGAACTGAAAGGAAGGATAATATAGATATACTGAGGACTCCTGGAAGGGGAGAATATAATATGTGGTCTACTTCTGGACTAGGGTTCTATGAATT", "start": 3124642, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_14_v3", "end": 3124642, "genome_id": 0, "start": 3124614, "strand": "+"}, "seq": "AGGTCTTCCTAATCTTGAACCATCATAT"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t99"}, {"forward_primer": {"location": {"chrom": "Pf3D7_08_v3", "end": 1269320, "genome_id": 0, "start": 1269294, "strand": "+"}, "seq": "CTCTTATATCAGGAGCAGCTATAGGA"}, "gene_name": "PF3D7_0829600", "insert_location": {"chrom": "Pf3D7_08_v3", "end": 1269456, "genome_id": 0, "ref_seq": "GCCTTAGCATTAATAACACTTATAGGAGGTATTTATATGACTAAAGGAAGAAAAAGTTCCATATGGCATAATTCAGAAATAAATGATACACTTTATGATGTTGTTCTTGAAACAGTGAATCAAGGAAATACAGATG", "start": 1269320, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_08_v3", "end": 1269320, "genome_id": 0, "start": 1269294, "strand": "+"}, "seq": "TTTTACTCCTCTTTGAAAAGCCAACTTTA"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t51"}, {"forward_primer": {"location": {"chrom": "Pf3D7_05_v3", "end": 329378, "genome_id": 0, "start": 329351, "strand": "+"}, "seq": "GTGTTAAAACAACAGGAGGAACACTAA"}, "gene_name": "PF3D7_0508000", "insert_location": {"chrom": "Pf3D7_05_v3", "end": 329550, "genome_id": 0, "ref_seq": "ATTGTGATGTATATAAATTCCCTTCTTCTTTATGTACCACATTATAAGAACCACGAACATATTCTTTTAAAAATGTTAACTTACTTCCAACAAATATATAATCAAAACAAAATTTTTTATTGTCGAAATGTTCTCGTTCAACCCCATTCATATTTCGGATATCATTATTTAA", "start": 329378, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_05_v3", "end": 329378, "genome_id": 0, "start": 329351, "strand": "+"}, "seq": "TGTTGTAGAATATTCGTGTCCGTATAGT"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t33"}, {"forward_primer": {"location": {"chrom": "Pf3D7_10_v3", "end": 1386700, "genome_id": 0, "start": 1386672, "strand": "+"}, "seq": "TGCTACAGTTATATAGGACGATTTTGGT"}, "gene_name": "PF3D7_1035000", "insert_location": {"chrom": "Pf3D7_10_v3", "end": 1386869, "genome_id": 0, "ref_seq": "AGGGAACAGGTTAAATATATTGAAGACGTGGTTTGATAATCAGGTATTTCTTTAATTAAATATTCATGATATTGTTCGTTAGATACATAAATTAATTCGTCCTCCACATTTTGCTGTTCTGTTATAATTTGTGAAGAAGCTTGGTTTGTCTTATTTGGTAATTGCTCTT", "start": 1386700, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_10_v3", "end": 1386700, "genome_id": 0, "start": 1386672, "strand": "+"}, "seq": "AAAATGAGGACAAGGAAAATAATACATTCATAA"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t62"}, {"forward_primer": {"location": {"chrom": "Pf3D7_07_v3", "end": 1358694, "genome_id": 0, "start": 1358666, "strand": "+"}, "seq": "AAGGATCATTTCATTGAAGCCTCTAAAA"}, "gene_name": "PF3D7_0731500", "insert_location": {"chrom": "Pf3D7_07_v3", "end": 1358911, "genome_id": 0, "ref_seq": "AAGAATCTCAACTTTTGCTTAAAAAAAATGATAACAAATATAATTCTAAATTTTGTAATGATTTGAAGAATAGTTTTTTAGATTATGGACATCTTGCTATGGGAAATGATATGGATTTTGGAGGTTATTCAACTAAGGCAGAAAACAAAATTCAAGAAGTTTTTAAAGGGGCTCATGGGGAAATAAGTGAACATAAAATTAAAAATTTTAGAAAAAA", "start": 1358694, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_07_v3", "end": 1358694, "genome_id": 0, "start": 1358666, "strand": "+"}, "seq": "CAAAGTTTCTCTCTAAATTCATTCCACCAT"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t45"}, {"forward_primer": {"location": {"chrom": "Pf3D7_12_v3", "end": 2050130, "genome_id": 0, "start": 2050103, "strand": "+"}, "seq": "TTGGTTTTGATTATCTCCCATTTTCGT"}, "gene_name": "PF3D7_1250100", "insert_location": {"chrom": "Pf3D7_12_v3", "end": 2050314, "genome_id": 0, "ref_seq": "TTTTAAACTTTGAATCTGTTCAATTAATAACACTTCATCATTGTCTTCGCCTTTTATAATATCTCCATGATTATGTGCTCCTCTAATTAAGGTATCACTAACCTGTTGTTCATCTGTCGCATGAGAACTAGTAGATATATCTGGTTTATTTTTTTTCTTTCTTTTTGTTATTTCTAATTTTTTT", "start": 2050130, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_12_v3", "end": 2050130, "genome_id": 0, "start": 2050103, "strand": "+"}, "seq": "AAAAACATACCTAGACATTTGAATGTCTTAGA"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t77"}, {"forward_primer": {"location": {"chrom": "Pf3D7_03_v3", "end": 141963, "genome_id": 0, "start": 141936, "strand": "+"}, "seq": "AAAGCGAATAATGCCAATATGTTGTTC"}, "gene_name": "PF3D7_0302600", "insert_location": {"chrom": "Pf3D7_03_v3", "end": 142181, "genome_id": 0, "ref_seq": "AGCATTTATAACAAAATATCAGAAGATGGAAAAACCAAAAATAGCCTACTTAGCGATATATCTAAATTATTTAAAATTGTAAAAGAAAGCAAATTAATATTTGTAACTGGATTTTTATTAACAACCTTGTCAGCAATTGTCGATTCATACATTCCAATTTTTCTATCCAAAACGGTATCTTTTGTAATGGAAAGAAAAAAATTTACATTTCTTAAAAT", "start": 141963, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_03_v3", "end": 141963, "genome_id": 0, "start": 141936, "strand": "+"}, "seq": "TTTTTACAACTGACAAATTTGTTTTGTGT"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t15"}, {"forward_primer": {"location": {"chrom": "Pf3D7_01_v3", "end": 512199, "genome_id": 0, "start": 512168, "strand": "+"}, "seq": "CGAATCAAAGGTAGAAAATGATCTTGAAGAA"}, "insert_location": {"chrom": "Pf3D7_01_v3", "end": 512388, "genome_id": 0, "ref_seq": "TTAAATAAATTAAGTGAAGATGATTATGAAAAAAATTGTAGACATTTAAATTATTTAATAGATAATATAAGAGAATTATTTTTTAGTTCTAAAAATATTAGAATTCCTGATGTAGCTCGTAAATATTTGTGGGATAATCAAATTGAAGGAAATCTCAAAAAATTAATATCTTCAGAAACAAAATATAAA", "start": 512199, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_01_v3", "end": 512199, "genome_id": 0, "start": 512168, "strand": "+"}, "seq": "CTGTGGATTATTTATACGATTCCTTTGACA"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t5"}, {"forward_primer": {"location": {"chrom": "Pf3D7_06_v3", "end": 532195, "genome_id": 0, "start": 532167, "strand": "+"}, "seq": "ATCAAGCTGAATCTATCCTATTGGATCA"}, "gene_name": "PF3D7_0612900", "insert_location": {"chrom": "Pf3D7_06_v3", "end": 532378, "genome_id": 0, "ref_seq": "AGAACAATTGCTAAACACCAAATTGGGTGAAACAAAAAACCACCTGAACAGAACCCCATTTATACCTGAATCGGTCATACGAGAAAGGAAATTACGCCAAGAAAAAGCTCAATCCACAAACAACATGTTCGATTCAACAAACGCAGATAGTATTACGTCCCCATGTGATCCAACGAATGCCAC", "start": 532195, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_06_v3", "end": 532195, "genome_id": 0, "start": 532167, "strand": "+"}, "seq": "GTATATTGTTTATTGGGATCCCCTTCC"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t39"}, {"forward_primer": {"location": {"chrom": "Pf3D7_01_v3", "end": 532690, "genome_id": 0, "start": 532660, "strand": "+"}, "seq": "GGGAAGAATGGTTTAATCGTAAAAATGAAG"}, "gene_name": "PF3D7_0113800", "insert_location": {"chrom": "Pf3D7_01_v3", "end": 532844, "genome_id": 0, "ref_seq": "ACTTTCTTAATTCTATGAATGAAGAATATACGCATATTAATTTAAATAACTTTATACATAATAATAACCATGATAATGACGAAAATTATACATTAGATCAGGTGGAAGGATATCCTATGACTAGTTATCAAAATAATATATACAAGGATTTTTT", "start": 532690, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_01_v3", "end": 532690, "genome_id": 0, "start": 532660, "strand": "+"}, "seq": "GTCTTCGAAATAATGAACTCCCTTTTCT"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t7"}, {"forward_primer": {"location": {"chrom": "Pf3D7_07_v3", "end": 298886, "genome_id": 0, "start": 298857, "strand": "+"}, "seq": "TAGATATATCATTCACAGTCGTCTCATGG"}, "gene_name": "PF3D7_0706100", "insert_location": {"chrom": "Pf3D7_07_v3", "end": 299005, "genome_id": 0, "ref_seq": "ACATTCAATATGGTTCTGAGCTTAAAGATGTTATCCTTATACATGTTTCTATTCTCATTCGTTATAACATCAATGACATATAAAACATATCGCTCAAATATTTTGTGAACAATATTATA", "start": 298886, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_07_v3", "end": 298886, "genome_id": 0, "start": 298857, "strand": "+"}, "seq": "TGTTAAGTTTTCTCTTGTGGAATCGAAT"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t42"}, {"forward_primer": {"location": {"chrom": "Pf3D7_02_v3", "end": 278165, "genome_id": 0, "start": 278144, "strand": "+"}, "seq": "CTTACCATTCGCGCTTTCTTG"}, "gene_name": "PF3D7_0207000", "insert_location": {"chrom": "Pf3D7_02_v3", "end": 278336, "genome_id": 0, "ref_seq": "GGAATTTTCTTTTTTATGACTTTCTTCTCCTTGTTCAGAAGCTTCTTTTTCATCCTTTTTTTCTGCTGCGTCAGATAAATTGGGGGAAGCACTTGAAGATTCATTTCCTCCAGGAGTATTACTAGTACTTACTCCGTCCACATTTGGTTTTTCTTCCCCTAGAATTCTCAT", "start": 278165, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_02_v3", "end": 278165, "genome_id": 0, "start": 278144, "strand": "+"}, "seq": "AATATAGTACCAGAAAATGGAAGAATGTTAAAT"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t11"}, {"forward_primer": {"location": {"chrom": "Pf3D7_04_v3", "end": 133491, "genome_id": 0, "start": 133463, "strand": "+"}, "seq": "TTTTGGTTCAGTACTATCTCTTGCATTT"}, "insert_location": {"chrom": "Pf3D7_04_v3", "end": 133701, "genome_id": 0, "ref_seq": "TTAGATTTTTTCCCTCCAGCAGGTGCACTAACTTTAGGTGTTTTAAATCTAGATGTATGTGGAACCCCATCTTTATTTGGTTTACCTCTATTTAATCTTTTACCAGCAGTAGAAACTACATTCTCTCGATTATCATTACCTACTTCAGTCTTTACAATTGTAGGAGGTGTTTTAACATGATTATCCCCTCCATGAGGAGTAACCCTTAAA", "start": 133491, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_04_v3", "end": 133491, "genome_id": 0, "start": 133463, "strand": "+"}, "seq": "CGACACCAAATATTCAAGAAGAACC"}, "target_attributes": ["Excluded", "Microhaplotype"], "target_name": "t21"}, {"forward_primer": {"location": {"chrom": "Pf3D7_06_v3", "end": 145343, "genome_id": 0, "start": 145315, "strand": "+"}, "seq": "CAATCAACAAAAGCTGATGAATCATCAT"}, "gene_name": "PF3D7_0603600", "insert_location": {"chrom": "Pf3D7_06_v3", "end": 145501, "genome_id": 0, "ref_seq": "AATTTGAATAAAATTTATCATTCACAATATTATATTTTTGTTTCTTCTTTTTTCCCATAATATTATTATTTTGTTCACAATATATGTTCATGTGTCCCCTCTTTTTCTGTAAAATATTAAAATGTTTCTTACTATGCTTCTCTTCATTTTTAATAACA", "start": 145343, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_06_v3", "end": 145343, "genome_id": 0, "start": 145315, "strand": "+"}, "seq": "AAGGAAGGTAGAATATCAAATACAAGGGA"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t38"}, {"forward_primer": {"location": {"chrom": "Pf3D7_07_v3", "end": 1149415, "genome_id": 0, "start": 1149387, "strand": "+"}, "seq": "TGGACATGTAGATATTTGACTAGTCGAA"}, "gene_name": "PF3D7_0727000", "insert_location": {"chrom": "Pf3D7_07_v3", "end": 1149585, "genome_id": 0, "ref_seq": "TAATATTTAATATTTTTGTTTAGGAAGTTTTCAAAATTGATGACATTGATAACCGTTTTTATTAAATCGCTTGGGTTGTTTGTGTGTTCCATTGTAGAAGACATAATTTTAAGAATGTGTTTTTGTGTTATTAAACAAAACTTTGTTACTATATGGAATCGTATGTTATA", "start": 1149415, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_07_v3", "end": 1149415, "genome_id": 0, "start": 1149387, "strand": "+"}, "seq": "TGTATACTCTCACATATTCCCTTCAGTG"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t44"}, {"forward_primer": {"location": {"chrom": "Pf3D7_05_v3", "end": 958389, "genome_id": 0, "start": 958362, "strand": "+"}, "seq": "TTTAGAACAAGTGAGTTCAGGAATTGG"}, "gene_name": "PF3D7_0523000", "insert_location": {"chrom": "Pf3D7_05_v3", "end": 958506, "genome_id": 0, "ref_seq": "TACGAAATTTATAACAATTTTTACATATGCCAGTTCCTTTTTAGGTTTATATATTTGGTCATTAATAAAAAATGCACGTTTGACTTTATGTATTACTTGCGTTTTTCCGTTAATTTA", "start": 958389, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_05_v3", "end": 958389, "genome_id": 0, "start": 958362, "strand": "+"}, "seq": "TTTACTTTCTTATTACATATGACACCACAAACA"}, "target_attributes": ["Included", "DrugResistance"], "target_name": "t35"}, {"forward_primer": {"location": {"chrom": "Pf3D7_13_v3", "end": 2481106, "genome_id": 0, "start": 2481079, "strand": "+"}, "seq": "AGAAGATAAGCAATTATGGCAAAAGGT"}, "gene_name": "PF3D7_1361800", "insert_location": {"chrom": "Pf3D7_13_v3", "end": 2481288, "genome_id": 0, "ref_seq": "GCAACTTACTTTAGAAGCCATGAATTCGGCCGATGATCCATTGGAAGCATTTAAAAATACTTTATTAATATTTGATTTTAATTTATCTGAATTTGATAAGGATCCATATATAAATGGTGTGCATGATTTAGCATCTAATATAAAGGATTGTTTAAGAAAAGGAGGTCACAGTAAAATATATT", "start": 2481106, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_13_v3", "end": 2481106, "genome_id": 0, "start": 2481079, "strand": "+"}, "seq": "TCCATTTAAATAATAACCTTTGATCACTTTGAT"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t87"}, {"forward_primer": {"location": {"chrom": "Pf3D7_03_v3", "end": 850816, "genome_id": 0, "start": 850788, "strand": "+"}, "seq": "CCATTTTTATCTACACGTACTACATGCA"}, "gene_name": "PF3D7_0320400", "insert_location": {"chrom": "Pf3D7_03_v3", "end": 850989, "genome_id": 0, "ref_seq": "TCATATTCGTTTCAGCGTTTATAGAGCGAATATTATCGATTATGTCTATATTCCCTAAAATATGTACATAATAATCTCCATTTAATAATGTTACTTTCTTAAGAATATTTTTGTATATGACATCAAAGATATTACGAGTTAACAATACATCTACATTTCCGTCTATTATATAT", "start": 850816, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_03_v3", "end": 850816, "genome_id": 0, "start": 850788, "strand": "+"}, "seq": "AAATGTCTCTAAGAGTTACAGGAACAGA"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t19"}, {"forward_primer": {"location": {"chrom": "Pf3D7_05_v3", "end": 958059, "genome_id": 0, "start": 958027, "strand": "+"}, "seq": "AAATGTTTACCTGCACAACATAGAAAATTATT"}, "gene_name": "PF3D7_0523000", "insert_location": {"chrom": "Pf3D7_05_v3", "end": 958221, "genome_id": 0, "ref_seq": "ATTTATATCATTTGTATGTGCTGTATTATCAGGAGGAACATTACCTTTTTTTATATCTGTGTTTGGTGTAATATTAAAGAACATGAATTTAGGTGATGATATTAATCCTATAATATTATCATTAGTATCTATAGGTTTAGTACAATTTATATTATCAATGAT", "start": 958059, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_05_v3", "end": 958059, "genome_id": 0, "start": 958027, "strand": "+"}, "seq": "TTTGATGTAATTACATCCATACAATAACTTGAT"}, "target_attributes": ["Included", "DrugResistance"], "target_name": "t34"}, {"forward_primer": {"location": {"chrom": "Pf3D7_14_v3", "end": 1992289, "genome_id": 0, "start": 1992261, "strand": "+"}, "seq": "TTTTACTTTTGCTACCATCAGGCATAAT"}, "gene_name": "PF3D7_1448500", "insert_location": {"chrom": "Pf3D7_14_v3", "end": 1992426, "genome_id": 0, "ref_seq": "ATAAACACCAGTACCATTTTTTTCTGATAAATTAATATTTTTTTGTATAACATCATATTTATCCCTTTTCGTGGTAAGTGCAGTATCCTGTTTTATTATTATATTATCGAATTCATCATGGTGTATATTTCTTTCAT", "start": 1992289, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_14_v3", "end": 1992289, "genome_id": 0, "start": 1992261, "strand": "+"}, "seq": "ATCTTATTATGAAAGCTGTACATCCGATTTTA"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t97"}, {"forward_primer": {"location": {"chrom": "Pf3D7_09_v3", "end": 1406405, "genome_id": 0, "start": 1406375, "strand": "+"}, "seq": "CAGATTATCATAGTGTTGTGGATGAAGATT"}, "gene_name": "PF3D7_0935600", "insert_location": {"chrom": "Pf3D7_09_v3", "end": 1406541, "genome_id": 0, "ref_seq": "TAATTAATTTTAATGATGATGTTACTTTAGAAACACAATCCATGATAGCACACGGAGGGTCTTTGTCAGAAATAGAAGAAACTGGAGATTTATCTTCAGATGTTGATAGATTACATTCATCAATCGAAACTACTCC", "start": 1406405, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_09_v3", "end": 1406405, "genome_id": 0, "start": 1406375, "strand": "+"}, "seq": "ATCACCTCGTATATATACAACATCATCTCTT"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t58"}, {"forward_primer": {"location": {"chrom": "Pf3D7_04_v3", "end": 1037634, "genome_id": 0, "start": 1037602, "strand": "+"}, "seq": "ATTGAAGTACAATATGAAATCGATCTTGATAA"}, "gene_name": "PF3D7_0422500", "insert_location": {"chrom": "Pf3D7_04_v3", "end": 1037844, "genome_id": 0, "ref_seq": "ATCTTATAAAGTTAATGAAATAGCTCAACTTAATTTAACCATAGAAAGAGATTTAACAGATGATGCTGTGATTTTTGCACACTCACTTTATTTACCATTTGAAAAAGAAGAAATGTGGTGGATCGTTATCGGAATTAAAAAAATGAACTTACTTTTATCTATCAAAAAATTATCTTTATTGAAAAGTGTCAATAATATAAAAATTAATTT", "start": 1037634, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_04_v3", "end": 1037634, "genome_id": 0, "start": 1037602, "strand": "+"}, "seq": "GTATTTGGTTTGTCAGGCAATTCG"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t28"}, {"forward_primer": {"location": {"chrom": "Pf3D7_12_v3", "end": 1237431, "genome_id": 0, "start": 1237407, "strand": "+"}, "seq": "CGAATGCTTGTGTGATCAATGAAA"}, "gene_name": "PF3D7_1230000", "insert_location": {"chrom": "Pf3D7_12_v3", "end": 1237603, "genome_id": 0, "ref_seq": "AGTATGAACACAAAACCGAAAGAGAGTTTAAAAAAAGATTCGATTTTAATGAAGGAAGAAATAACATAATAAATGTGTCAAATGTAAAGAAAACATGTAATATAGTTAAAAATGATTTAAAGGAATCTAACGAGATAAAAACTAATATAAACACAAGTTCTTATAATTTATA", "start": 1237431, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_12_v3", "end": 1237431, "genome_id": 0, "start": 1237407, "strand": "+"}, "seq": "ACCTCTTTCAAAACATTCTCTTTTATTAATACA"}, "target_attributes": ["Excluded", "Microhaplotype"], "target_name": "t76"}, {"forward_primer": {"location": {"chrom": "Pf3D7_04_v3", "end": 1128489, "genome_id": 0, "start": 1128461, "strand": "+"}, "seq": "CTGTCGCAAAAGAAGGTTTTGATAATAT"}, "gene_name": "PF3D7_0424900", "insert_location": {"chrom": "Pf3D7_04_v3", "end": 1128673, "genome_id": 0, "ref_seq": "ATTGAAAGAGTTAAAGGGAAAAATACAAAATTATTTAGATAATGATATTCAATTGAAAAATGGAAAACTCCTATATAAGGATACATGGGATAGAATTGTTTTGAAATTTTGTAGAACTGTAGCAATAGAAGAGGCAGAATACACTAGAAAATTTTATAGCTTAATTAATGATAAACATACAATT", "start": 1128489, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_04_v3", "end": 1128489, "genome_id": 0, "start": 1128461, "strand": "+"}, "seq": "ATGAATGAATAAATCAATTTTACCACGTCATT"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t32"}, {"forward_primer": {"location": {"chrom": "Pf3D7_14_v3", "end": 39953, "genome_id": 0, "start": 39920, "strand": "+"}, "seq": "CCAACTATATCTGTTCCATAAATGGTTATATTT"}, "gene_name": "PF3D7_1401100", "insert_location": {"chrom": "Pf3D7_14_v3", "end": 40137, "genome_id": 0, "ref_seq": "ACATAGAAATATGTGCGAAAATTGGGAAAAAAATAAATAACAGGAATTGTTATATAAATTGAATCAAGAATGGCACAAAGAAAATAATACTGGTGACTTTCACACTAGTGATATCACACACAATAGTGGTATTACATACAGTAGTGGTAACATACCTAGTGAAAGTAATAGTAGTTATATCCAA", "start": 39953, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_14_v3", "end": 39953, "genome_id": 0, "start": 39920, "strand": "+"}, "seq": "ATTTATTTGGATTGAGATCTTAATGTTCAAAGT"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t89"}, {"forward_primer": {"location": {"chrom": "Pf3D7_11_v3", "end": 1018953, "genome_id": 0, "start": 1018920, "strand": "+"}, "seq": "GCTATACTACTACTTATGTTACTTATACCACAT"}, "gene_name": "PF3D7_1126100", "insert_location": {"chrom": "Pf3D7_11_v3", "end": 1019085, "genome_id": 0, "ref_seq": "CTAGTGACTGTACATTTTTCATCTAATGTTCTATAGGATAAAGAATCTGAAGGACAATGCATATCATTACAAAAATAGCATGCACCTTTAAAATATAAATAAGAATGTCTTAACACAACAAAGGAATCAAAA", "start": 1018953, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_11_v3", "end": 1018953, "genome_id": 0, "start": 1018920, "strand": "+"}, "seq": "CTCCTTTAGGTATTACGGTAGCAATAAG"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t67"}, {"forward_primer": {"location": {"chrom": "Pf3D7_03_v3", "end": 221363, "genome_id": 0, "start": 221330, "strand": "+"}, "seq": "GGAACAAGAAGGATAATACCATTATTAATCCTA"}, "gene_name": "PF3D7_0304600", "insert_location": {"chrom": "Pf3D7_03_v3", "end": 221495, "genome_id": 0, "ref_seq": "TTGAACTATTTACGACATTAAACACACTGGAACATTTTTCCATTTTACAAATTTTTTTTTCAATATCATTTGCATAATCTAATTCGTCTTTAGGTTTATTAGCAGAGCCAGGCTTTATTCTAACTTGAATAC", "start": 221363, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_03_v3", "end": 221363, "genome_id": 0, "start": 221330, "strand": "+"}, "seq": "CCCATGTAGTGTAACTTGTGGAAATG"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t16"}, {"forward_primer": {"location": {"chrom": "Pf3D7_04_v3", "end": 748533, "genome_id": 0, "start": 748500, "strand": "+"}, "seq": "AGATGTTTATATCATTAACAAAGTTGAAGATCT"}, "gene_name": "PF3D7_0417200", "insert_location": {"chrom": "Pf3D7_04_v3", "end": 748696, "genome_id": 0, "ref_seq": "AATAGTTTTACTTGGGAAATTAAATTACTATAAATGTTTTATTATAGGAGGTTCCGTTGTTTATCAAGAATTTTTAGAAAAGAAATTAATAAAAAAAATATATTTTACTAGAATAAATAGTACATATGAATGTGATGTATTTTTTCCAGAAATAAATGAAAAT", "start": 748533, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_04_v3", "end": 748533, "genome_id": 0, "start": 748500, "strand": "+"}, "seq": "ACATCGCTAACAGAAATAATTTGATACTC"}, "target_attributes": ["Included", "DrugResistance"], "target_name": "t26"}, {"forward_primer": {"location": {"chrom": "Pf3D7_07_v3", "end": 166035, "genome_id": 0, "start": 166002, "strand": "+"}, "seq": "AGGATATGTTCTTTTTAAAGTTCTCTTCATTTT"}, "gene_name": "PF3D7_0703900", "insert_location": {"chrom": "Pf3D7_07_v3", "end": 166167, "genome_id": 0, "ref_seq": "CTTTTATTTGAACTTTTTTATTTTCTTCATTATCAATATAAAAACAACAATCTTTAAATTTATGAAATAACACCCAACTTAATGTATAAAATATAATTTCTATAAAATCAAAATTAATGTAATAACCTAATT", "start": 166035, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_07_v3", "end": 166035, "genome_id": 0, "start": 166002, "strand": "+"}, "seq": "CGTTAAATGTAGAAAAGACGAAATCATCCA"}, "target_attributes": ["Excluded", "Microhaplotype"], "target_name": "t41"}, {"forward_primer": {"location": {"chrom": "Pf3D7_11_v3", "end": 1376185, "genome_id": 0, "start": 1376159, "strand": "+"}, "seq": "CTGCAAATTGAGCCATAGAAAAATGA"}, "gene_name": "PF3D7_1135100", "insert_location": {"chrom": "Pf3D7_11_v3", "end": 1376372, "genome_id": 0, "ref_seq": "TTCTCATTCCTTTGAAAATATGAACTATTCAACTCATCAAGTTTTTCATATGTTATTTCATAACTGCCATCATCTGAATCCTCTTCATCACTACTACTTAAAGAATGCTCTTCTACAGTTATATCTTCATAATGATTATTTTTAGGAAAATATTCTTCAGATCTTTCTATAAATTCTGTTCCACTAC", "start": 1376185, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_11_v3", "end": 1376185, "genome_id": 0, "start": 1376159, "strand": "+"}, "seq": "CGATAACACTAGATGTAAGATATGCATCAT"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t68"}, {"forward_primer": {"location": {"chrom": "Pf3D7_04_v3", "end": 1113450, "genome_id": 0, "start": 1113422, "strand": "+"}, "seq": "GATTCTGCATGCAGTAATGAATCTATTG"}, "gene_name": "PF3D7_0424600", "insert_location": {"chrom": "Pf3D7_04_v3", "end": 1113604, "genome_id": 0, "ref_seq": "AAATCATCTAAGAATAAACTTTTTTGTTTAAACCATTTATTGAACATTTCACTTAAATGTGATTCAATTTTTTTTTCTGAGCTTTCCATAATTTGATTACAACTATTCAATTTGTTTGTATAAGTTTTAGGTCTTATTATTCTTTTACGTTTTA", "start": 1113450, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_04_v3", "end": 1113450, "genome_id": 0, "start": 1113422, "strand": "+"}, "seq": "CGTAGCATGCTCAGATATTATGATGATT"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t31"}, {"forward_primer": {"location": {"chrom": "Pf3D7_01_v3", "end": 495971, "genome_id": 0, "start": 495941, "strand": "+"}, "seq": "GCCACCAAAATATTATATACCACAAGACAA"}, "gene_name": "PF3D7_0113100", "insert_location": {"chrom": "Pf3D7_01_v3", "end": 496143, "genome_id": 0, "ref_seq": "TGAAAGTAGCGAATACCCTGTAGAAATTGTTAGTAAACCTCTGGAATGGTTATTGTTTCATGATTTGACTAAGCCTGATGTTACTGCACTACCTGAAGAATTACCATTAACGAGCTATAAAGTAACACCTACTTCTATTAATGTATTGCATAAAGAGGGCCCCACTTTAAAA", "start": 495971, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_01_v3", "end": 495971, "genome_id": 0, "start": 495941, "strand": "+"}, "seq": "AAGGAAAATCTTTGGTGGGAAAAATAGA"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t4"}, {"forward_primer": {"location": {"chrom": "Pf3D7_10_v3", "end": 377095, "genome_id": 0, "start": 377062, "strand": "+"}, "seq": "AAACAAATAGCATTCGATAAATTTGAAAATTTC"}, "gene_name": "PF3D7_1009200", "insert_location": {"chrom": "Pf3D7_10_v3", "end": 377209, "genome_id": 0, "ref_seq": "AACCAAAAAATGATACCTGTACGTTTTTCTCCAGGAGAAACAAAAAAATTAGAAAGGATTCTCAAAAAAGTAGACGACTTTTTCTGTGCCAATATTAAAGCTCAATATACTTGC", "start": 377095, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_10_v3", "end": 377095, "genome_id": 0, "start": 377062, "strand": "+"}, "seq": "CTTCATCTATATAGTCCCCGATGAATGA"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t60"}, {"forward_primer": {"location": {"chrom": "Pf3D7_01_v3", "end": 181557, "genome_id": 0, "start": 181524, "strand": "+"}, "seq": "TCTATTAGCTTTTTCAAACCTTTCATTATTGTT"}, "gene_name": "PF3D7_0104100", "insert_location": {"chrom": "Pf3D7_01_v3", "end": 181673, "genome_id": 0, "ref_seq": "TTCATTCTTTTTTTAACGAAAACTATTCATCTCAAAAATATAAGATATTTTATATGACGAATGCCATTGTATTTTTTGTTACGTAAAACCTGACTTCTTCAAGGAAAACACATGCG", "start": 181557, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_01_v3", "end": 181557, "genome_id": 0, "start": 181524, "strand": "+"}, "seq": "AGCTTAGGCAAAAATTGGTGAAAATG"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t3"}, {"forward_primer": {"location": {"chrom": "Pf3D7_10_v3", "end": 992371, "genome_id": 0, "start": 992338, "strand": "+"}, "seq": "TGCCTATCATTAATGGAAAATATCCTCATTATA"}, "gene_name": "PF3D7_1023700", "insert_location": {"chrom": "Pf3D7_10_v3", "end": 992544, "genome_id": 0, "ref_seq": "TTTTTAAAAAAAAAAATTATGATATAAAATCTTCAATTAATAAAAGATCTATCCAGTTCTTTAAAGACACTAATATAGATCATTATATAGCATATGAATATTATAAGGAGGACCGTACGGAATTTATATTAACTATTATGAATGAAAAAAATATTACTCATCAAGAAACTCAA", "start": 992371, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_10_v3", "end": 992371, "genome_id": 0, "start": 992338, "strand": "+"}, "seq": "TCCCTTTCAACTTTTTCATTTCAAGACT"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t61"}, {"forward_primer": {"location": {"chrom": "Pf3D7_14_v3", "end": 407379, "genome_id": 0, "start": 407346, "strand": "+"}, "seq": "TCGTCTTTCTGTTCATTATCCATATAATCTTTT"}, "gene_name": "PF3D7_1410300", "insert_location": {"chrom": "Pf3D7_14_v3", "end": 407571, "genome_id": 0, "ref_seq": "TCTCCTTCCTTTTCATTCTTTACTTTATTTCTATTAATACACAACTCTCCTTGAGTTAAGAGATTTACGATATTATCAATATTGTTTTCTTTCATATACTTCAACTTTTTACTATTCATTTTTAAAAGATAATTAACCAAGTTACTCATGTTTGTATTAGATGGTATGTTCCCAATTTTTTCGTCTTTTCTT", "start": 407379, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_14_v3", "end": 407379, "genome_id": 0, "start": 407346, "strand": "+"}, "seq": "TGAACTCTTTAAATTATCCTTTTTGAATATCCA"}, "target_attributes": ["Excluded", "Microhaplotype"], "target_name": "t93"}, {"forward_primer": {"location": {"chrom": "Pf3D7_04_v3", "end": 1102389, "genome_id": 0, "start": 1102362, "strand": "+"}, "seq": "CGTAGAGGTGTTGATGTTAATATGGAG"}, "gene_name": "PF3D7_0424400", "insert_location": {"chrom": "Pf3D7_04_v3", "end": 1102578, "genome_id": 0, "ref_seq": "GAAGAAATAAATAAAATAATTTATACAAACGAATTTAATAATTATGAAGATAAAATATATGAAGATGTCAAATATATTAAAGAACAGGAAAATGAAATGTACTTGAGAGATGGAATTGAAGAGTTACATATGGATGAACCAAGTGGGGATGTATATTTTGATGATCAAGATGATTATATATTTTTAGAT", "start": 1102389, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_04_v3", "end": 1102389, "genome_id": 0, "start": 1102362, "strand": "+"}, "seq": "CATCCAAACATACATCCTCTTTTTGTTC"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t30"}, {"forward_primer": {"location": {"chrom": "Pf3D7_13_v3", "end": 2114975, "genome_id": 0, "start": 2114942, "strand": "+"}, "seq": "TGTATCTATAGTCGATTTTGTTATTCTAAGCAT"}, "gene_name": "PF3D7_1352900", "insert_location": {"chrom": "Pf3D7_13_v3", "end": 2115142, "genome_id": 0, "ref_seq": "ATCATTAAGTAAAAAATTTACGGTATCGACATTAACAGTGTAATAATTTCTTCCTAAATTTAAATGTTCTATATAATTCAAATTTAATACGGTATTTAACCTTTCTTCAAGTATTATCATTGCATTAATTTGAAACATAAGTAAAAAATTATTAGCACTTCTAAAAT", "start": 2114975, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_13_v3", "end": 2114975, "genome_id": 0, "start": 2114942, "strand": "+"}, "seq": "ACATTTTATTGTTGTTAGAATACCTCTAGTTT"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t84"}, {"forward_primer": {"location": {"chrom": "Pf3D7_12_v3", "end": 63166, "genome_id": 0, "start": 63135, "strand": "+"}, "seq": "ACATTCTATTAAAAACTTTGGGTACTCCTAA"}, "gene_name": "PF3D7_1200700", "insert_location": {"chrom": "Pf3D7_12_v3", "end": 63280, "genome_id": 0, "ref_seq": "TATAATTTCACCTTTTGAATTACATATGTCTGTATTCAAAAATTTTATATCTCTACTCCATATATTTATCTTTACACCCAAAAACAAAGCAATGAAAAAAACAACCCTTTCATA", "start": 63166, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_12_v3", "end": 63166, "genome_id": 0, "start": 63135, "strand": "+"}, "seq": "ACACATTTATCTTATTTACCCGTATCTCATATA"}, "target_attributes": ["Excluded", "Microhaplotype"], "target_name": "t72"}, {"forward_primer": {"location": {"chrom": "Pf3D7_04_v3", "end": 141778, "genome_id": 0, "start": 141751, "strand": "+"}, "seq": "GATACACGTGATGAATACCATATAGCC"}, "gene_name": "PF3D7_0402300", "insert_location": {"chrom": "Pf3D7_04_v3", "end": 141945, "genome_id": 0, "ref_seq": "CTTTCAAATTATATAAAGACAGAACTAAGAAATATAAACCTGCAAGAAATAAAAAACAATATAATAAAAATATTTAAAGAATTCAAATCTGCACACAAAGAAATTAAAAAAGAATCAGAACAAATTAATAAAGAATTTACCAAAATGGATGTCGTCATAAATCAATT", "start": 141778, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_04_v3", "end": 141778, "genome_id": 0, "start": 141751, "strand": "+"}, "seq": "AGATCAAGCATTTGTCTGTCTATATCTCTT"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t22"}, {"forward_primer": {"location": {"chrom": "Pf3D7_10_v3", "end": 1399544, "genome_id": 0, "start": 1399515, "strand": "+"}, "seq": "GGTCAAACTCATTCTGAATTAAATCCTGA"}, "gene_name": "PF3D7_1035300", "insert_location": {"chrom": "Pf3D7_10_v3", "end": 1399711, "genome_id": 0, "ref_seq": "AACATCAGAACATAGTAAAGATTTAAATAATAATGATTCAAAAAATGAATCTAGTGATATTATTTCAGTAAATAATAAATCAAATAAAGTACAAAATCATTTTGAATCATTATCAGATTTAGAATTACTTGAAAATTCCTCACAAGATAATTTAGACAAAGATACAA", "start": 1399544, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_10_v3", "end": 1399544, "genome_id": 0, "start": 1399515, "strand": "+"}, "seq": "GTTTTTGATTAGGAAAAGGTTCTGTTGAAA"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t63"}, {"forward_primer": {"location": {"chrom": "Pf3D7_04_v3", "end": 748230, "genome_id": 0, "start": 748200, "strand": "+"}, "seq": "AGGTCTAGGAAATAAAGGAGTATTACCATG"}, "gene_name": "PF3D7_0417200", "insert_location": {"chrom": "Pf3D7_04_v3", "end": 748436, "genome_id": 0, "ref_seq": "GAAATGTAATTCCCTAGATATGAAATATTTTTGTGCAGTTACAACATATGTGAATGAATCAAAATATGAAAAATTGAAATATAAGAGATGTAAATATTTAAACAAAGAAACTGTGGATAATGTAAATGATATGCCTAATTCTAAAAAATTACAAAATGTTGTAGTTATGGGAAGAACAAGCTGGGAAAGCATTCCAAAAAAATTTA", "start": 748230, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_04_v3", "end": 748230, "genome_id": 0, "start": 748200, "strand": "+"}, "seq": "ACAATATAACATTTATCCTATTGCTTAAAGGTT"}, "target_attributes": ["Included", "DrugResistance"], "target_name": "t25"}, {"forward_primer": {"location": {"chrom": "Pf3D7_03_v3", "end": 85440, "genome_id": 0, "start": 85407, "strand": "+"}, "seq": "ACCCATAGAAATGTTAAATGATATTTTTCTTCT"}, "gene_name": "PF3D7_0301400", "insert_location": {"chrom": "Pf3D7_03_v3", "end": 85646, "genome_id": 0, "ref_seq": "AACTTTTTAACACTATCATTATAATTATGTCTTTTATTTTCATATTTTTCTTTATAATAATTTATATCCTTTAATTTTTCTTTCATCAAATTTAACCATTTATCATTTAAATTCTCTTTTTCCACAGCTCCAGCATTTTTATTTATATCATCTACAACTACATCTTCCTTCACATAATTATTTATATAAAAATTATTATCATCTAA", "start": 85440, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_03_v3", "end": 85440, "genome_id": 0, "start": 85407, "strand": "+"}, "seq": "GAAGAAGTATTAAATGAAGAATTTTCAGATGCT"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t14"}, {"forward_primer": {"location": {"chrom": "Pf3D7_04_v3", "end": 109912, "genome_id": 0, "start": 109879, "strand": "+"}, "seq": "TTTTAAAACTGGCAAATTATTTATTTCTGTCAT"}, "gene_name": "PF3D7_0401900", "insert_location": {"chrom": "Pf3D7_04_v3", "end": 110087, "genome_id": 0, "ref_seq": "AATATTTGTATATATTCTAGTAAACACTTTAGGTACACCTGCAAGTACCTCAACATCTGAATTATATAAATCTTTAGAAAAACAACTAATATCCTTACTCGATATATTTATTTTTATACCAAGAATAACAGCCATATAAACCAAAACTCTCTCAAATACATGTGATACAGGTAAA", "start": 109912, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_04_v3", "end": 109912, "genome_id": 0, "start": 109879, "strand": "+"}, "seq": "CATGAAACCGAAAACCCATTTTTCTTA"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t20"}, {"forward_primer": {"location": {"chrom": "Pf3D7_07_v3", "end": 729975, "genome_id": 0, "start": 729943, "strand": "+"}, "seq": "AATAAGAAATATGTCTTACAAGGAGATGTTTT"}, "gene_name": "PF3D7_0716700", "insert_location": {"chrom": "Pf3D7_07_v3", "end": 730088, "genome_id": 0, "ref_seq": "TTTTATGTGAAATTTTAAATAAAGAGAAATTGTTTGTGCACACATCTATTTTGGGATATATATCTAATCGTTTATGTTACGATATAAAAAAATATAGATGTTCATTATTGAAG", "start": 729975, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_07_v3", "end": 729975, "genome_id": 0, "start": 729943, "strand": "+"}, "seq": "AAACATTATGTAGTCAACATATGAAGGAAA"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t43"}, {"forward_primer": {"location": {"chrom": "Pf3D7_01_v3", "end": 534941, "genome_id": 0, "start": 534908, "strand": "+"}, "seq": "TGTATGTGTGTTGATTGTAATTATAAGAATTGT"}, "gene_name": "PF3D7_0113800", "insert_location": {"chrom": "Pf3D7_01_v3", "end": 535110, "genome_id": 0, "ref_seq": "AATACTCCGTCAGATATTCAAAATGAATGTATTTGTTCAAAAATAAATGAAGATAGAAATAATGATATGATAAACATATCTGAAATATATTATCGTTTCATTAAATTTATAACAATGATTGAAATATATTTGTGTGTAATAGAGGAAATTAAAAGGGAAGAATGGGAAA", "start": 534941, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_01_v3", "end": 534941, "genome_id": 0, "start": 534908, "strand": "+"}, "seq": "CTACAAAAATTATGAAAAAGTTTGGTTCCTTTT"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t9"}, {"forward_primer": {"location": {"chrom": "Pf3D7_09_v3", "end": 685601, "genome_id": 0, "start": 685583, "strand": "+"}, "seq": "CACGCGAACCAAACAACG"}, "gene_name": "PF3D7_0916400", "insert_location": {"chrom": "Pf3D7_09_v3", "end": 685792, "genome_id": 0, "ref_seq": "ACAAAGGAACAAGATAATTTTTTCCATTTTTATAAAAGTAATATATATGATATGGAAAATAGAACCTGTAATAATAATATATTACAATATTGTGTTATGAATAATAAATCATATTTATTTCATAATATATCATCCAAAAAAAATATATATATAAAAAAAAAGAATCATCAGTTTTCTTTATTCATATATTC", "start": 685601, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_09_v3", "end": 685601, "genome_id": 0, "start": 685583, "strand": "+"}, "seq": "GGGCGAAATTCTATGAATGTATTATTAATAGAA"}, "target_attributes": ["Excluded", "Microhaplotype"], "target_name": "t56"}, {"forward_primer": {"location": {"chrom": "Pf3D7_02_v3", "end": 470492, "genome_id": 0, "start": 470459, "strand": "+"}, "seq": "TGAACATGAAGAATATTGACATGAAACATTATA"}, "gene_name": "PF3D7_0211700", "insert_location": {"chrom": "Pf3D7_02_v3", "end": 470676, "genome_id": 0, "ref_seq": "ATACACATAAGAAAAAAAAAATTTATTTATTCTTACAAAAAGAATATAAAAACAAAATTTTGGGATTTATAAATTTTTATAAACATATAACACACAAAATAAAAAAGAAACAAGAAAATGTTCATGATAAAATCACTTTTTTAAAATGTCTAAAGGAACTCTTTTTTGTCACACATACAAATAA", "start": 470492, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_02_v3", "end": 470492, "genome_id": 0, "start": 470459, "strand": "+"}, "seq": "GTATGTATTATACCCTCCATTTGATTATTCTCT"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t12"}, {"forward_primer": {"location": {"chrom": "Pf3D7_01_v3", "end": 145449, "genome_id": 0, "start": 145416, "strand": "+"}, "seq": "TGTTCGATATGTTTAAATATATGATTCTCGAAA"}, "gene_name": "PF3D7_0103300", "insert_location": {"chrom": "Pf3D7_01_v3", "end": 145622, "genome_id": 0, "ref_seq": "AAACTTTTTTTATTTTTTTTGTCAATAGATAAATGATCAATATTTTCTATATTTAATCTATCAAGTATTTTTATATATCTATTATTTCTTTCTTCGATGGATAAATTATAAGAATCAATATCCTTTCTTTCATCAACAAACTTTTTTATTGTTAACTCCATTTTTTTATTTAA", "start": 145449, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_01_v3", "end": 145449, "genome_id": 0, "start": 145416, "strand": "+"}, "seq": "CCAATATGTCAAGGTATATTAAAGTATGGTATC"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t1"}, {"forward_primer": {"location": {"chrom": "Pf3D7_08_v3", "end": 339168, "genome_id": 0, "start": 339139, "strand": "+"}, "seq": "TGAGATAATCCTCCTGGAATATTTGTCAT"}, "gene_name": "PF3D7_0806300", "insert_location": {"chrom": "Pf3D7_08_v3", "end": 339357, "genome_id": 0, "ref_seq": "ATCATTACTATTCTTTATCCATATATATGTTGTTATATCAGTTGCACCTGAGGGTGGATTCAAACCTCTTGCTTGTATAATATATGCACGTACTACTAAATTACGTGTTAATCTATATTCTCTTACTAAATCATCACATTTCTTTATCATTTCTTTTTTTAAATACATTGTCTTTTCATCATACACATT", "start": 339168, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_08_v3", "end": 339168, "genome_id": 0, "start": 339139, "strand": "+"}, "seq": "CTGAAGCGGTTGGATATTTGAAATATATATGT"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t48"}, {"forward_primer": {"location": {"chrom": "Pf3D7_04_v3", "end": 1100656, "genome_id": 0, "start": 1100629, "strand": "+"}, "seq": "CCCAAAACGGTTAATACTGAAGTTAGA"}, "gene_name": "PF3D7_0424400", "insert_location": {"chrom": "Pf3D7_04_v3", "end": 1100831, "genome_id": 0, "ref_seq": "AATGTTCTAAGATCTGATGGAAAAATATCTGATCAAGGTTCTCAGAAAAGTCCTCCTAAGGAACTTTCTAATAAACAAATGACTCCTGCTCAACGTAAGAATGTGCCACATTTTGTTGAAAGAAGAGGCTATGGAAATAGTCATGTTAGGGGTAACGCACTTAAAAAAATTAGTA", "start": 1100656, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_04_v3", "end": 1100656, "genome_id": 0, "start": 1100629, "strand": "+"}, "seq": "AGAAGAAGGACTTTTATAATTATCATCACCAT"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t29"}, {"forward_primer": {"location": {"chrom": "Pf3D7_01_v3", "end": 179903, "genome_id": 0, "start": 179874, "strand": "+"}, "seq": "AACAACAAGCTTTGTCGCTAAAATTAATT"}, "gene_name": "PF3D7_0104100", "insert_location": {"chrom": "Pf3D7_01_v3", "end": 180115, "genome_id": 0, "ref_seq": "CTTTCGATACAGGACATATAGATCATAATATAAACGAATATGAAAAACATTTTACAATTTTAAAAGAATCTTTTTTTCATAAGTCATTAAAATTTATGGATTATATATGGATTGTTATAATGAAACGAGAAAATAATACATTTTTAAATAGAATAAGAACTGAACAAGTCAAAAAATCGTTATTAATAACAGGTATTATAAACGAAAATATT", "start": 179903, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_01_v3", "end": 179903, "genome_id": 0, "start": 179874, "strand": "+"}, "seq": "TCTGATACCTATAGCTTCCATATTTTCATATTT"}, "target_attributes": ["Excluded", "Microhaplotype"], "target_name": "t2"}, {"forward_primer": {"location": {"chrom": "Pf3D7_14_v3", "end": 120215, "genome_id": 0, "start": 120188, "strand": "+"}, "seq": "GTCCTTATCACATCCTCCATTGTTTAC"}, "gene_name": "PF3D7_1403200", "insert_location": {"chrom": "Pf3D7_14_v3", "end": 120351, "genome_id": 0, "ref_seq": "CTTACAATGTTCTTCGCATTCGAAATTTTTTTCAGGATTACTTGAAAAGCCTTCTGGACAATTACAATATTCATATCCATGAGTATTCTTACAAACACCTTTTCCACAATTTAAAAAACATTTTTCTTCATTTAAA", "start": 120215, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_14_v3", "end": 120215, "genome_id": 0, "start": 120188, "strand": "+"}, "seq": "ACAGAAAGAATGGTTTAGAAATGTACGAAT"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t90"}, {"forward_primer": {"location": {"chrom": "Pf3D7_01_v3", "end": 534215, "genome_id": 0, "start": 534182, "strand": "+"}, "seq": "TTCAGATGTGATAAATATATGTGACATTTGTAA"}, "gene_name": "PF3D7_0113800", "insert_location": {"chrom": "Pf3D7_01_v3", "end": 534368, "genome_id": 0, "ref_seq": "TGATAAAAAAAGAAAATGTAACAATCTACCTTGTGATTGTATCTTATGTAAAAAAAAGCACAATGTTTGTTATTGTAATATGTGTAAAAAGAAAGAAAAAAATATGAGAGAAGATTTATCGGTTGTAAAATATAATGAATATCCGATTAGTGT", "start": 534215, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_01_v3", "end": 534215, "genome_id": 0, "start": 534182, "strand": "+"}, "seq": "AAAAATATAAGAGATTCAAAGGGTCAGAC"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t8"}, {"forward_primer": {"location": {"chrom": "Pf3D7_08_v3", "end": 336468, "genome_id": 0, "start": 336438, "strand": "+"}, "seq": "AATACATGAATATGATTAACAACGAACCCA"}, "gene_name": "PF3D7_0806200", "insert_location": {"chrom": "Pf3D7_08_v3", "end": 336647, "genome_id": 0, "ref_seq": "TAAATTTACAGAAAAATTTAGATTTAATCATATGGCTAAAAAAGAATATAAAAGAAGGAGAAGCTTTAATTTCTGATATACCCACATCAAGTTTTTTAAGGTGTACTACAAATTATAAATTTGTATTGCATCCACAATATGAAGATAGTAACTTGAGAAAGAGGGTTCAAGATTATTAT", "start": 336468, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_08_v3", "end": 336468, "genome_id": 0, "start": 336438, "strand": "+"}, "seq": "ACTAAAAGGAAGACAAGCTGAAAACAT"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t47"}, {"forward_primer": {"location": {"chrom": "Pf3D7_08_v3", "end": 102326, "genome_id": 0, "start": 102298, "strand": "+"}, "seq": "ACTTGTCGCTATACCTTCATCTATTGAA"}, "gene_name": "PF3D7_0801300", "insert_location": {"chrom": "Pf3D7_08_v3", "end": 102500, "genome_id": 0, "ref_seq": "TTAATTTTCTCAAGTAACATATTTTTGTCTTGACTACTTTCATCTGTAAATGGAACGACTACTCTTTGCTTACCTGCAAAAAGGACAACTGACATATGAGCCTTATCCTTACTTACATTCGAATTAAAGACCATAGATTCTAAAAATGGTATAGTTCCTTTTAACCAATAATCC", "start": 102326, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_08_v3", "end": 102326, "genome_id": 0, "start": 102298, "strand": "+"}, "seq": "TGTTGAAGAGTCAAGTTTTGTTCAGAA"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t46"}, {"forward_primer": {"location": {"chrom": "Pf3D7_09_v3", "end": 1437114, "genome_id": 0, "start": 1437081, "strand": "+"}, "seq": "CATCATAATCATCTAATGATGTTAATCCTTGTA"}, "gene_name": "PF3D7_0936300", "insert_location": {"chrom": "Pf3D7_09_v3", "end": 1437303, "genome_id": 0, "ref_seq": "CTAAAACCTGACAGCTTTGTACAGTTATATTTACCCAATTAGAATGTTCAAACATATTTAAGTGTTGCCATTCTTCAAATAATTTTTTTTCATATTCAGTTTTTGGTTGGTTTTTAAATTCTTTTGATACTGTACCTTCTGCGGATGGTATAGGGAAGTTAAAAATTTTATTACGTACTTTGTTTGATT", "start": 1437114, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_09_v3", "end": 1437114, "genome_id": 0, "start": 1437081, "strand": "+"}, "seq": "GCACCATCATTAAATTTAGAAGAAACCC"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t59"}, {"forward_primer": {"location": {"chrom": "Pf3D7_14_v3", "end": 279663, "genome_id": 0, "start": 279635, "strand": "+"}, "seq": "CGGATAAATGTTTAGTTATTAGCCAGGT"}, "gene_name": "PF3D7_1407700", "insert_location": {"chrom": "Pf3D7_14_v3", "end": 279786, "genome_id": 0, "ref_seq": "GAGTAATAGTGATTCATATAAGGTAAATTGTATTAATTTCTCTGAAGGATTTTGTTGCTGTCATCCAATAAATAATTTAGCACTATTATATGGAGAGTATCAACAAAATCAAGAATCAAAAAT", "start": 279663, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_14_v3", "end": 279663, "genome_id": 0, "start": 279635, "strand": "+"}, "seq": "CATTACTTATGGGAAGTTTCGGTAATTTCATA"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t92"}, {"forward_primer": {"location": {"chrom": "Pf3D7_09_v3", "end": 1178894, "genome_id": 0, "start": 1178862, "strand": "+"}, "seq": "GAACGTTGAGAAATTACCTTTAGAAGATTACT"}, "gene_name": "PF3D7_0929400", "insert_location": {"chrom": "Pf3D7_09_v3", "end": 1179078, "genome_id": 0, "ref_seq": "ACAAATTATCCTTAGCCCCAGATATGGTAAAGACATATCACTGTTATAAATTAGGAAAGCAAGCAGCTGAATTATTAGAATCTATCATTTTAAAGAAAAAGTTCGTAAGATTTAGAGTTACTGATGCTATTGATGTATATGATTTCTTTTATATAAAGAAAGTTTTATCCAGTCGTATTAAGAA", "start": 1178894, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_09_v3", "end": 1178894, "genome_id": 0, "start": 1178862, "strand": "+"}, "seq": "GCTCTTTTGTCTTGTAAAAATTCATTATATTCT"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t57"}, {"forward_primer": {"location": {"chrom": "Pf3D7_03_v3", "end": 654002, "genome_id": 0, "start": 653972, "strand": "+"}, "seq": "TCACCTAACGGTATATTTTTATCTCGTACA"}, "gene_name": "PF3D7_0316200", "insert_location": {"chrom": "Pf3D7_03_v3", "end": 654175, "genome_id": 0, "ref_seq": "ATATTTTTATAATTTCCTTTCATCTTATTTTTTTCTTTATATTTTTTTTTTTCATATGTAAGATTTATATAATCACTTTCGCTTTTTCTAACCCTTTTGAACTTTTTAAATGTACTTCGTTCATTATTTCTAATTCTCGTAAACACAAGAATAAATATTTTGATATATCTTAT", "start": 654002, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_03_v3", "end": 654002, "genome_id": 0, "start": 653972, "strand": "+"}, "seq": "TTATGTATTTTTCAAAAATCGGCACGTTT"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t18"}, {"forward_primer": {"location": {"chrom": "Pf3D7_12_v3", "end": 943258, "genome_id": 0, "start": 943227, "strand": "+"}, "seq": "ACCCTACTTATACAAAGAGATAAAGAAGTAG"}, "gene_name": "PF3D7_1223400", "insert_location": {"chrom": "Pf3D7_12_v3", "end": 943428, "genome_id": 0, "ref_seq": "AATCAACTATAATTAAAAATAGTGGAATTATTGAAAACTTTGGAGATATTGATTATATCTTTACGGATAAAACAGGAACACTAACAGAAAATGTCATGGTGCTTAAAGTTATACATATAGGTTTTGATGTTATACATGCAGAAAATGAAAAAAATTCCATACAAGGTAAT", "start": 943258, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_12_v3", "end": 943258, "genome_id": 0, "start": 943227, "strand": "+"}, "seq": "AATTCCCTTTTTGTTTGGTTTCCATATT"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t75"}, {"forward_primer": {"location": {"chrom": "Pf3D7_04_v3", "end": 802525, "genome_id": 0, "start": 802494, "strand": "+"}, "seq": "AAGCATCTGAACATTAAAGTTCAAACAAATA"}, "gene_name": "PF3D7_0418000", "insert_location": {"chrom": "Pf3D7_04_v3", "end": 802713, "genome_id": 0, "ref_seq": "TAAATTATTATAGAAAGATAGAAGTTATTTTATATGAATGGTTATATTTTCATTATAATAATGTATATAACACCAAAGTAAAAAAACAAAAATTTATATTTACCCAACAAAAAAAAGACATATCAAAACATAACAAGTTATATCTTCAGTATGATCAAAATAAAAGAAACTCTGAAATAGAACATACA", "start": 802525, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_04_v3", "end": 802525, "genome_id": 0, "start": 802494, "strand": "+"}, "seq": "GCACATCGAATAATCTTCTTTGTGATT"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t27"}, {"forward_primer": {"location": {"chrom": "Pf3D7_08_v3", "end": 549993, "genome_id": 0, "start": 549962, "strand": "+"}, "seq": "CATAAAAGAGGAAATCCACATACAATGGATA"}, "gene_name": "PF3D7_0810800", "insert_location": {"chrom": "Pf3D7_08_v3", "end": 550218, "genome_id": 0, "ref_seq": "AACTAACAAATTATGATAATCTAGTTTATGATATAAAAAATTATTTAGAACAAAGATTAAATTTTCTTGTATTAAATGGAATACCTCGTTATAGGATACTATTTGATATTGGATTAGGATTTGCGAAGAAACATGATCAATCTATTAAACTCTTACAAAATATACATGTATATGATGAGTATCCACTTTTTATTGGATATTCAAGAAAAAGATTTATTGCCCATT", "start": 549993, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_08_v3", "end": 549993, "genome_id": 0, "start": 549962, "strand": "+"}, "seq": "GTGTATTTATTACAACATTTTGATCATTCATGC"}, "target_attributes": ["Included", "DrugResistance"], "target_name": "t49"}, {"forward_primer": {"location": {"chrom": "Pf3D7_03_v3", "end": 618396, "genome_id": 0, "start": 618367, "strand": "+"}, "seq": "GGGACACTACAGACAAAAATAAATGATCT"}, "gene_name": "PF3D7_0315200", "insert_location": {"chrom": "Pf3D7_03_v3", "end": 618581, "genome_id": 0, "ref_seq": "AAAAAGAGATTATAGAAGTGGAAAGAAGACATATATAATACAAGCTCTACAATATGCATTAACATATTATAGCAAACTTTCAAATAGAAAGGAAGCACCTAAAGTAACCATGTTATTTACAGATGGAAATGATTCCTATGAATCAGAAAAGGGATTACAGGATATTGCATTATTATATAGAAAAG", "start": 618396, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_03_v3", "end": 618396, "genome_id": 0, "start": 618367, "strand": "+"}, "seq": "AGAAACTCCTACTACCAATAATTTGACATTTT"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t17"}, {"forward_primer": {"location": {"chrom": "Pf3D7_02_v3", "end": 805822, "genome_id": 0, "start": 805795, "strand": "+"}, "seq": "TTGGAAAATTTGAGAATCCTATGTGCT"}, "gene_name": "PF3D7_0220100", "insert_location": {"chrom": "Pf3D7_02_v3", "end": 805942, "genome_id": 0, "ref_seq": "TTAATTATGAAGACAGTCTCACGACTTCATGTTATATTGATGAAAACAAATCCGATTCATCCTATGAAACTGAAGAAAATGTAAACTATAATAATAAAATGGGTAAACGCAAAAATTTAG", "start": 805822, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_02_v3", "end": 805822, "genome_id": 0, "start": 805795, "strand": "+"}, "seq": "TTCGATTTGCCTACAATTTGTGATTCTA"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t13"}, {"forward_primer": {"location": {"chrom": "Pf3D7_04_v3", "end": 544718, "genome_id": 0, "start": 544686, "strand": "+"}, "seq": "AACCCAGATAATCATTTATTAAATACAGACAC"}, "gene_name": "PF3D7_0412300", "insert_location": {"chrom": "Pf3D7_04_v3", "end": 544861, "genome_id": 0, "ref_seq": "ATATATTTTACATAATAACAATCCTTCATGTAATGATTATAATTTAAATAATCTTTCATTTAATATAAATAAATATATTAATGAAGAAAAAGGCAAAAATAAAAAAACAAATCAACATATATCAGAACAATTTTTATTTCCTA", "start": 544718, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_04_v3", "end": 544718, "genome_id": 0, "start": 544686, "strand": "+"}, "seq": "CTGCAGCACACATTATAACTAAATGTG"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t24"}, {"forward_primer": {"location": {"chrom": "Pf3D7_14_v3", "end": 150105, "genome_id": 0, "start": 150075, "strand": "+"}, "seq": "CCGAAAATAGAACTCCATATGTTCATTACC"}, "gene_name": "PF3D7_1404300", "insert_location": {"chrom": "Pf3D7_14_v3", "end": 150294, "genome_id": 0, "ref_seq": "ATAATAATAGTAATATAAAGAATTATTCAGCTGTAGATATATTCTCACCCAAAAAAACTGGAAAGGAATGTATTAAATGTCTCCCAGATAATTTTTGTGAATGCGAATGTAGTTGTAAAAATAAAACAGGTTTTTCAATGAAATATAGACATGCCAGTAAGGGATCTAAAGGATATAGTAAAAAAATGA", "start": 150105, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_14_v3", "end": 150105, "genome_id": 0, "start": 150075, "strand": "+"}, "seq": "GTCTGGAACGAGAAGATGTCTTTG"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t91"}, {"forward_primer": {"location": {"chrom": "Pf3D7_02_v3", "end": 109807, "genome_id": 0, "start": 109776, "strand": "+"}, "seq": "CCACCATTTCTTCATTTTAATTTTGAATGGT"}, "gene_name": "PF3D7_0202100", "insert_location": {"chrom": "Pf3D7_02_v3", "end": 109982, "genome_id": 0, "ref_seq": "AACTTATGTTCATGAGCTAATTTCCCACAAATACTCCATAACGAACTTTTCATTTTATTAAATTTATCTCTCAAAAGAGAATGACTATAATGCCATATTAAATACATATCTTTCCTTTCTAATTTTCCTGGTAATTCTATTATCATTCTTTCTAAATCTTCTTCTGTAACTTTTC", "start": 109807, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_02_v3", "end": 109807, "genome_id": 0, "start": 109776, "strand": "+"}, "seq": "ACCATTTGGATTAAAACCTTCAGATTTAAATA"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t10"}, {"forward_primer": {"location": {"chrom": "Pf3D7_14_v3", "end": 3214351, "genome_id": 0, "start": 3214318, "strand": "+"}, "seq": "TGTTAAAATATTTTCCAAAGAATTCAATTAGCG"}, "gene_name": "PF3D7_1478000", "insert_location": {"chrom": "Pf3D7_14_v3", "end": 3214478, "genome_id": 0, "ref_seq": "ATCGTTTTGAATTGTTAGAATTTAAAATGACGGAGGATTGTTATACAAAAATGTGGTTTGATTTTATGAGTGATTTTGGAATAGCTACAATGAATGAAACCGAACATACTAGATCTTTTTATGGATT", "start": 3214351, "strand": "+"}, "reverse_primer": {"location": {"chrom": "Pf3D7_14_v3", "end": 3214351, "genome_id": 0, "start": 3214318, "strand": "+"}, "seq": "TCAATTGATGGTTGCCTTTCGATT"}, "target_attributes": ["Included", "Microhaplotype"], "target_name": "t100"}], "panel_info": [{"panel_name": "heomev1", "reactions": [{"panel_targets": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99], "reaction_name": "full"}]}], "sequencing_info": [{"library_kit": "TruSeq i5/i7 barcode primers", "library_layout": "paired-end", "library_screen": "40 uL reaction containing 10 uL of bead purified digested product, 18uL of nuclease-free water, 8uL of 5X secondary PCR master mix, and 5 uL of 10 uM TruSeq i5/i7 barcode primers", "library_selection": "RANDOM", "library_source": "GENOMIC", "library_strategy": "WGS", "nucl_acid_amp": "https://www.paragongenomics.com/targeted-sequencing/amplicon-sequencing/cleanplex-ngs-amplicon-sequencing/", "nucl_acid_amp_date": "2019-07-15", "nucl_acid_ext": "https://www.paragongenomics.com/targeted-sequencing/amplicon-sequencing/cleanplex-ngs-amplicon-sequencing/", "nucl_acid_ext_date": "2019-07-15", "pcr_cond": "10 min at 95C, 13 cycles for high density samples (or 15 cycles for low density samples) of 15 sec at 98C and 75 sec at 60C", "seq_center": "UCSF", "seq_date": "2019-07-15", "seq_instrument_model": "NextSeq 550 instrument", "seq_platform": "ILLUMINA", "sequencing_info_name": "Mozambique2018"}, {"library_layout": "paired-end", "library_selection": "RANDOM", "library_source": "GENOMIC", "library_strategy": "WGS", "seq_date": "2020-01-01", "seq_instrument_model": "Multiple", "seq_platform": "ILLUMINA", "sequencing_info_name": "Pf7Plus"}], "project_info": [{"project_collector_chief_scientist": "Greenhouse, Bryan", "project_description": "Heome1 targeted amplicon sequencing in 2018 from patients from several health clinics in provinces Inhassoro, Mandlakazi, and Namaacha", "project_name": "MOZ2018"}, {"project_description": "PathWeaver assemblies of Heome1 from large collection of global samples", "project_name": "PathWeaverHeome1"}], "specimen_info": [{"collection_country": "Mozambique", "collection_date": "2018-06-07", "geo_admin3": "Inhassoro", "host_taxon_id": 9606, "lat_lon": "-21.5535,35.1819", "parasite_density_info": [{"parasite_density": 477719.34375, "parasite_density_method": "qpcr"}], "project_id": 0, "specimen_collect_device": "dried blood spot", "specimen_name": "8025874217", "specimen_store_loc": "UCSF Greenhouse Lab", "specimen_taxon_id": [5833], "storage_plate_info": {"plate_col": 12, "plate_name": "8", "plate_row": "C"}}, {"collection_country": "Mozambique", "collection_date": "2018-04-30", "geo_admin3": "Namaacha", "host_taxon_id": 9606, "lat_lon": "-25.9871,32.0326", "parasite_density_info": [{"parasite_density": 875.130981445312, "parasite_density_method": "qpcr"}], "project_id": 0, "specimen_collect_device": "dried blood spot", "specimen_name": "8025874266", "specimen_store_loc": "UCSF Greenhouse Lab", "specimen_taxon_id": [5833], "storage_plate_info": {"plate_col": 7, "plate_name": "8", "plate_row": "B"}}, {"collection_country": "India", "collection_date": "2012-08-01", "geo_admin3": "NA", "host_taxon_id": 9606, "project_id": 1, "specimen_collect_device": "Dried Blood spot", "specimen_name": "5tbx", "specimen_store_loc": "Multiple", "specimen_taxon_id": [5833]}, {"collection_country": "Papua New Guinea", "collection_date": "NA", "geo_admin3": "NA", "host_taxon_id": 9606, "project_id": 1, "specimen_collect_device": "Dried Blood spot", "specimen_name": "XUC009", "specimen_store_loc": "Multiple", "specimen_taxon_id": [5833]}], "library_sample_info": [{"library_prep_plate_info": {"plate_col": 12, "plate_name": "8", "plate_row": "C"}, "library_sample_name": "8025874217", "panel_id": 0, "sequencing_info_id": 0, "specimen_id": 0}, {"library_prep_plate_info": {"plate_col": 7, "plate_name": "8", "plate_row": "B"}, "library_sample_name": "8025874266", "panel_id": 0, "sequencing_info_id": 0, "specimen_id": 1}, {"library_sample_name": "5tbx", "panel_id": 0, "sequencing_info_id": 1, "specimen_id": 2}, {"library_sample_name": "XUC009", "panel_id": 0, "sequencing_info_id": 1, "specimen_id": 3}], "bioinformatics_methods_info": [{"additional_methods": [{"additional_argument": ["--strictErrors", "--illumina", "--removeOneSampOnlyOneOffHaps", "--excludeCommonlyLowFreqHaplotypes", "--excludeLowFreqOneOffs", "--rescueExcludedOneOffLowFreqHaplotypes"], "program": "SeekDeep processClusters", "program_description": "Compare across samples for each target to create population level identifiers and do post artifact cleanup", "program_version": "v2.6.5"}], "bioinformatics_method_name": "SeekDeep", "demultiplexing_method": {"program": "SeekDeep extractorPairedEnd", "program_description": "Takes raw paired-end reads and demultiplexes on primers and does QC filtering", "program_version": "v2.6.5"}, "denoising_method": {"additional_argument": ["--illumina", "--qualThres 25,20", "--trimFront 1", "--trimBack 1"], "program": "SeekDeep qluster", "program_description": "Takes sequences per sample per target and clusters them", "program_version": "v2.6.5"}}, {"additional_methods": [{"additional_argument": ["--overWriteDir", "--fracCutOff 0.005", "--dout popClusteringTrimmedParagon", "--replicateMinTotalReadCutOff 10", "--clusterCutOff 5", "--pat _heome1", "--numThreads 10", "--groupingsFile /tank/data/plasmodium/falciparum/pfdata/metadata/meta.tab.txt", "--genome2bit /tank/data/genomes/plasmodium/genomes/pf/genomes/Pf3D7.2bit", "--trimBedFnp /tank/data/plasmodium/falciparum/beds/targeted_panels/heome1/heome1_Pf3D7_inserts_trimmed1.bed"], "program": "PathWeaver runProcessClustersOnRecon", "program_description": "Compare across samples for each target to create population level identifiers and do post artifact cleanup", "program_version": "1.0.0-dev"}], "demultiplexing_method": {"additional_argument": ["--bamExtractTrimToRegion", "--bed /tank/data/plasmodium/falciparum/beds/targeted_panels/heome1/heome1_Pf3D7_withPrimers.bed", "--genomeDir /tank/data/genomes/plasmodium/genomes/pf/genomes/", "--primaryGenome Pf3D7", "--bam bams/{SAMPLE}.sorted.bam"], "program": "PathWeaver BamExtractPathwaysFromRegion", "program_description": "Extract reads from a bam file for a specific genomic locatioon and then assembles local haplotypes for that region", "program_version": "1.0.0-dev"}, "denoising_method": {"additional_argument": ["--bamExtractTrimToRegion", "--bed /tank/data/plasmodium/falciparum/beds/targeted_panels/heome1/heome1_Pf3D7_withPrimers.bed", "--genomeDir /tank/data/genomes/plasmodium/genomes/pf/genomes/", "--primaryGenome Pf3D7", "--bam bams/{SAMPLE}.sorted.bam"], "program": "PathWeaver BamExtractPathwaysFromRegion", "program_description": "Extract reads from a bam file for a specific genomic locatioon and then assembles local haplotypes for that region", "program_version": "1.0.0-dev"}}], "bioinformatics_run_info": [{"bioinformatics_methods_id": 0, "bioinformatics_run_name": "Mozambique2018-SeekDeep", "run_date": "2022-04-01"}, {"bioinformatics_methods_id": 1, "bioinformatics_run_name": "PathWeaver-Heome1", "run_date": "2024-09-03"}], "representative_microhaplotypes": {"targets": [{"mhap_location": {"chrom": "Pf3D7_01_v3", "end": 145621, "genome_id": 0, "start": 145448, "strand": "+"}, "microhaplotypes": [{"seq": "AACTTTTTTTATTTTTTTTGTCAATAGATAAATGATCAATATTTTCTATATTTAATCTATCAAGTATTTTTATATATCTATTATTTCTTTCTTCGATGGATAAATTATATGAATCAATATCCTTTCTTTCATCAACAAACTTTTTTATTGTTAACTCCATTTTTTTATTTA"}, {"seq": "AACTTTTTTTATTTTTTTTGTCAATAGATAAATGATCAATATTTTCTATATTTAATCTATCAAGTATTTTTATATATCTATTATTTCTTTCTTCGATGGATAAATTATAAGAATCAATATCCTTTCTTTCATCAACAAACTTTTTTATTGTTAACTCCATTTTTTTATTTA"}, {"seq": "AACTTTTTTTATTTTTTTTGTCAATAGATAAATGATCAATATTTTCTATATTTAATCTATCAAGAATTTTTATATATCTATTATTTCTTTCTTCGATGGATAAATTATATGAATCAATATCCTTTCTTTCATCAACAAACTTTTTTATTGTTAACTCCATTTTTTTATTTA"}, {"seq": "AACTTTTTTTATTTTTTTTGTCAATAGATAAATGATCAATATTTTCTATATTTAATCTATCAAGAATTTTTATATATCTATTATTTCTTTCTTCGATGGATAAATTATAAGAATCAATATCCTTTCTTTCATCAACAAACTTTTTTATTGTTAACTCCATTTTTTTATTTA"}], "target_id": 79}, {"mhap_location": {"chrom": "Pf3D7_02_v3", "end": 109981, "genome_id": 0, "start": 109806, "strand": "+"}, "microhaplotypes": [{"seq": "ACTTATGTTCATGAGCTAATTTCCCACAAATACTCCATAACGAACTTTTCATTTTATTAAATTTATCTCTCAAAAGAGAATGACTATAATGCCATATTAAATACATATCTTTCCTTTCTAATTTTCCTGGTAATTCTATTATCATTCTTTCTAAATCTTCTTCTGTAACTTTT"}, {"seq": "ACTCATGTTCATGAGCTAATTTCCCACAAATACTCCATAACGAACTTTTCATTTTATTAAATTTATCTCTCAAAAGAGAATGACTATAATGCCATATTAAATACATATCTTTCCTTTCTAATGTTCCTGGTAATTCTATTATCATTCTTTCTAAATCTTCTTCTGTAAGTTTT"}, {"seq": "ACTTATGTTCATGAGCTAATTTCCCACAAATACTCCATAACGAACTTTTCATTTTATTAAATTTATCTCTCAAAAGAGAATGACTATAATGCCATATTAAATACATATCTTTCCTTTCTAATTTTCCTGGTAATTCTATTATCATTCTTTCTAAATCTTCTTCTGTAAGTTTT"}], "target_id": 98}, {"mhap_location": {"chrom": "Pf3D7_14_v3", "end": 3214477, "genome_id": 0, "start": 3214350, "strand": "+"}, "microhaplotypes": [{"seq": "TCGTTTTGAATTGTTAGAATTTAAAATGACGGAGGATTGTTATACAAAAATGTGGTTTGATTTTATGATTGATTTTGGAATAGCTACAATGAATGAAAACGAACATACTAGATCTTTTTATGGCT"}, {"seq": "TCGTTTTGAATTGTTAGAATTTAAAATGACGGAGGATTGTTATACAAAAATGTGGTTTGATTTTATGAGTGATTTTGGAATAGCTACAATGAATGAAACCGAACATACTAGATCTTTTTATGGCT"}, {"seq": "TCGTTTTGAATTGTCAGAATTTAAAATGACGGAGGATTGTTATACAAAAATGTGGTTTGATTTTATGAGTGATTTTGGAATAGCTACAATGAATGAAACCGAACATACTAGATCTTTTTATGGCT"}, {"seq": "TCGTTTTGCATTGTCAGAATTTAAAATGACGGAGGATTGTTATACAAAAATGTGGTTTGATTTTATGAGTGATTTTGGAATAGCTACAATGAATGAAAGCGAACATACTAGATCTTTTTATGGCT"}], "target_id": 99}, {"mhap_location": {"chrom": "Pf3D7_02_v3", "end": 278335, "genome_id": 0, "start": 278164, "strand": "+"}, "microhaplotypes": [{"seq": "GAATTTTCTTTTTTATGACTTTCTTCTCCTTGTTCAGAAGCTTCTTTTTCATCCTTTTTTTCTGCTGCGTCAGATAAATTGGGGGAAGCACTTGAAGATTCATTTCCTCCAGGAGTATTACTAGTACTTACTCCTTCCACATTTGGTTTTTCTTCCCCTAGAATTCTCA"}, {"seq": "GAATTTTCTTTTTTATGACTTTCTTCTCCTTGTTCAGAAGCTTCTTTTTCATCCTTTTTTTCTGCTGCGTCAGATAAATTGGGGGAAGCACTTGAAGATTCATTTCCTCCAGGAGTATTACTAGTACTTACTCCGTCCACATTTGGTTTTTCTTCCCCTAGAATTCTCA"}, {"seq": "GAATTTTCTTTTTTATGACTTTCTTCTCCTTGTTCAGAAGCTTCTTTTTCATCCTTTTTTTCTGCTGCGTCAGATAAATTGGGGGAAGCACTTGAAGATTCATTTCCTCCAGGAGTATCACTAGTACTTACTCCGTCCATATTTGGTTTTTCTTCCCTTAGAATTCTCA"}], "target_id": 42}, {"mhap_location": {"chrom": "Pf3D7_02_v3", "end": 470675, "genome_id": 0, "start": 470491, "strand": "+"}, "microhaplotypes": [{"seq": "TACACATAAGAAAAAAAAAATTTATTTATTCTTACAAAAAGAATATAAAAACAAAATTTTGGGATTTATAAATTTTTATAAACATATAACACACAAAATAAAAAAGAAACAAGAAAATGTTCATGATAAAATCACTTTTTTAAAATGTCTAAAGGAACTCTTTTTTGTCACACATACAAATG"}, {"seq": "TACACATAAGAAAAAAAAAATTTATTTATTCTTACAAAAAGAATATAAAAACAAAATTTTGGGATTTATAAATTTTTATAAACATATAACACACAAAATAAAAAAGAAACAAGAAAATGTTCATGATAAAATCACTTTTTTAAAATGTCTAAAGGAACTCTTTTTTGTCACACATACAAATA"}, {"seq": "TACACATAAGAAAAAAAAAATTTATTTATTCTTACAAAAAGAATATAAAAACAAAATTTTGGGATTTATAAATTTTTATAAACGTATAACACACAAAATAAAAAAGAAACAAGAAAATGTTCATGATAAAATCACTTTTTTAAAATGTCTAAAGGAACTCTTTTTTGTCACACATACAAATA"}], "target_id": 78}, {"mhap_location": {"chrom": "Pf3D7_02_v3", "end": 805941, "genome_id": 0, "start": 805821, "strand": "+"}, "microhaplotypes": [{"seq": "TAATTATGAAGACAGTCTCACGACTGCATGTTATATTGATGAAAACAAATCCGATTCATCCTATAAAACTGAAGAAGAAAATGTAAACTATAATAATAAAATGGGTAAACGCAAAAATTTA"}, {"seq": "TAATTATGAAGACAGTCTCACGACTTCATGTTATATTGATGAAAACAAATCCGATTCATCCTATGAAACTGAAGAAAATGTAAACTATAATAATAAAATGGGTAAACGCAAAAATTTA"}], "target_id": 95}, {"mhap_location": {"chrom": "Pf3D7_03_v3", "end": 85645, "genome_id": 0, "start": 85439, "strand": "+"}, "microhaplotypes": [{"seq": "ACTTTTTAACACTATCATTATAATTATGTCTTTTATTTTCATATTTTTCTTTATAATAATTTATATCCTTTAATTTTTCTTTCATCAAATTTAACCATTTATCATTTAAATTCTCTTTTTCCACAGCTCCAGCATTTTTATTTATATCATCTACAACTACATCTTCCTTCACATAATTATTTATATAAAAATTATTATCATCTA"}, {"seq": "ACTTTTTAACACTATCATTATAATTATGTCTTTTATTTTCATATTTTTCTTTATAATAATTTATATCCTTTAATTTTTCTTTCATCAAATTTAACCATTTATCATTTAAATTCTCTTTTTCCACAGCTCCAGCATTTTTATTTATATCATCTACAACTACATCTTCCTTCACATAATTATTTATATAAAAACTATTATCATCTA"}], "target_id": 73}, {"mhap_location": {"chrom": "Pf3D7_03_v3", "end": 142180, "genome_id": 0, "start": 141962, "strand": "+"}, "microhaplotypes": [{"seq": "GCATTTATAACAAAATATCAGAAGATGGAAAAACCAAAAATAGCCTACTTAGCGATATATCAAAATTATTTAAAATTGTAAAAGAAAGCAAATTAATATTTGTAACTGGATTTTTATTAACAACCTTGTCAGCAATTGTAGATTCATACATTCCAATTTTTCTATCCAAAACGGTATCTTTTGTAATGGAAAGAAAAAAATTTACATTTCTTAAAA"}, {"seq": "GCATTTATAACAAAATATCAGAAGATGGAAAAACCAAAAATAGCCTACTTAGCGATATATCAAAATTATTTAAAATTGTAAAAGAAAGCAAATTAATATTTGTAACTGGATTTTTATTAACAACCTTGTCAGCAATTGTCGATTCATACATTCCAATTTTTTTATCCAAAACGGTATCTTTTGTAATGGAAAGAAAAAGTTTTACATTTCTTAAAA"}], "target_id": 37}, {"mhap_location": {"chrom": "Pf3D7_03_v3", "end": 221494, "genome_id": 0, "start": 221362, "strand": "+"}, "microhaplotypes": [{"seq": "TGAACTATTTACGACATTAAACACACTGGAACATTTTTCCATTTTACAAATTTTTTTTTCAATATCATTTGCATAATCTAATTGGTCTTTAGGTTTATTAGCAGAGCCAGGCTTTATTCTAACTTGAATA"}, {"seq": "TGAACTATTTACGACATTAAACACACTGGAACATTTTTCCATTTTACAAATTTTTTTTTCAATATCATTTTCATAATTTAATTCGTCTTTAGGTTTATTAGCAGAGCCAGGCTTTATTCTAACTTGAATA"}, {"seq": "TGAACTATTTACGACATTAAACACACTGGAACATTTTTCCATTTTACAAATTTTTTTTTCAATATCATTTTCATAATCTAATTCGTCTTTAGGTTTATTAGCAGAGCCAGGCTTTATTCTAACTTGAATA"}, {"seq": "TGAACTATTTACGACATTAAACACACTGGAACATTTTTCCATTTTACAAATTTTTTTTTCAATATCATTTTCATAATCTAATTGGTCTTTAGGTTTATCAGCAGAGCCAGGCTTTATTCTAACTTGAATA"}], "target_id": 57}, {"mhap_location": {"chrom": "Pf3D7_03_v3", "end": 618580, "genome_id": 0, "start": 618395, "strand": "+"}, "microhaplotypes": [{"seq": "AAAAGAGATTATAGAAGTGGAAAGAAGACATATATAATACAAGCTCTACAATATGCATTAACATATTATAGCAAACTTTCAAATAGAAAGGAAGCACCTAAAGTAACCATGTTATTTACAGATGGAAATGATTCCTATGAATCAGAAAAGGGATTACAGGATATTGCATTATTATATAGAAAA"}, {"seq": "AAAAGAGATTATAGAAGTGGAAAGAAGACATATATAATACAAGCTCTACGATATGCATTAACATATTATAGCAAACTTTCAAATAGAAAGGAAGCACCTAAAGTAACCATGTTATTTACAGATGGAAATGATTCCTATGAATCAGAAAAGGGATTACAGGATATTGCATTATTATATAGAAAA"}, {"seq": "AAAAGAGATTATAGAAGTGGAAAGAAGACATATATAATACAAGCTCTACGATATGCATTAACATATTATAGCAAACTTTCAAATAGAAAGGAAGCACCTAAAGTAACCATGTTATTTACAGATGGAAATGATCCCTATGAATCAGAAAAGGGATTACAGGATATTGCATTATTATATAGAAAA"}], "target_id": 94}, {"mhap_location": {"chrom": "Pf3D7_03_v3", "end": 654174, "genome_id": 0, "start": 654001, "strand": "+"}, "microhaplotypes": [{"seq": "TATTTTTATAATTTCCTTTCATCTTATTTTTTTCTTTATATTTTTTTTTTTCATATGTAAGATTTATATAATCACTTTCGCTTTTTCTAACGCTTTTGAACTTTTTAAATGTACTTCGTTCATTATTTCTAATTCTCGTAAACACAAGAATAAATATTTTGATATATCTTA"}, {"seq": "TATTTTTATAATTTCCTTTCATCTTATTTTTTTCTTTATATTTTTTTTTTTCATATGTAAGATTTATATAATCACTTTCGCTTTTTCTAACCCTTTTGAACTTTTTAAATGTACTTCGTTCATTATTTCTAATTCTCGTAAACACAAGAATAAATATTTTGATATATCTTA"}, {"seq": "TATTTTTATAATTTCCTTTCATCTTATTTTTTTCTTTATATTTTTTTTTTTCATATGTAAGATTTATATAATCACTTTCGCTTTTTCTAACGCTTTTGAACTTTTTAAATGTACTTCCTTCATTATTTCTAATTCTCGTAAACACAAGAATAAATATTTTGATATATCTTA"}], "target_id": 90}, {"mhap_location": {"chrom": "Pf3D7_03_v3", "end": 850988, "genome_id": 0, "start": 850815, "strand": "+"}, "microhaplotypes": [{"seq": "CATATTCGTTTCAGCGTTTATAGAGCGAATATTATCGATTATGTCTATATTCCCTAAAATATGTACATAATAATCTCCATTTAATAATGTTACTTTCTTAAGAATATTTTTGTATATGACATCAAAGATATTACGAGTTAACAATACATCTACATTTCCGTCTATTATATA"}, {"seq": "CATATTCGTTTCAGCGTTTATAGAGCGAATATTATCGATTATGTCTATATTCCCTAAAATATGTACATAATAATCTCCATTTAATAATGTTACTTTCTTAAGAATATTTTTGTATATGACATCAAAGATATTACGAGTTAACAATACATCTACATTTCGGTCTATTATATA"}, {"seq": "CATATTCGTTTCAGCGTTTATAGAGCGAAAATTATCGATTATGTCTATATTCCCTAAAATATGTACATAATAATCTCCATTTAATAATGTTACTTTCTTAAGAATATTTTTGTATATGACATCAAAGATATTACGAGTTAACAATACATCTACATTTCGGTCTATTATATA"}], "target_id": 48}, {"mhap_location": {"chrom": "Pf3D7_01_v3", "end": 180114, "genome_id": 0, "start": 179902, "strand": "+"}, "microhaplotypes": [{"seq": "TTTCGATACAGGACATATAGATCATAATATAAACGAATATGAAAAACATTTTACAATTTTAAAAAAATCTTTTTTTCATAAGTCATTAAAATTTATGGATTATATATGGATTGTTATAATGAAACGAGATAATAATACATTTTTAAATAAAATAAGAAATGAACAAGTGAGGGCATCGTTATTAATAACAGGTATTATAAACGAAAATAT"}, {"seq": "TTTCGATACAGGACATATAGATCATAATATAAACGAATATGAAAAACATTTTACAATTTTAAAAAAATCTTTTTTTCATAAGTCATTAAAATTTATGGATTATATATGGATTGTTATAATGAAACGAGATAATAATACATTTTTAAATAGAATAAGCCATGAAGGAATCAAAAAATCGTTATTAATAACAGGTATTATAAACGAAAATAT"}, {"seq": "TTTCGATATAGGACATATAGATCATAATATAAACGAATATGAAAAACGTTTTACAATTTTAAAAGAATCTTTTTTTCATAAGTCATTAAAATTTATGGATTATATATGGATTGTTATAATGAAACGAGAAAATAATACATTTTTAAATAGATTAAGAAATGAACAAGTGAGGGCATCGTTATTAATAACAGGTATTATAAACGAAAATAT"}, {"seq": "TTTCGATACAGGACATATAGATCATAATATAAACGAATATGAAAAACATTTTACAATTTTAAAAAAATCTTTTTTTCATAAGTCATTAAAATTTATGGATTATATATGGATTGTTATAATGAAACGAGATAATAATACATTTTTAAATAGATTAAGAAATGAACAAGTGAGGGCATCGTTATTAATAACAGGTATTATAAACGAAAATAT"}], "target_id": 82}, {"mhap_location": {"chrom": "Pf3D7_04_v3", "end": 110086, "genome_id": 0, "start": 109911, "strand": "+"}, "microhaplotypes": [{"seq": "ATATTTGTATATATTCTAGTAAACACTTTAGGTACACCTGCAAGTACCTCAACATCTGAATTATATAAATCTTTAGAAAAACAACTAATATCCTTACTCCATATATTTATTTTTATACCAAGAATAACAGCCATATAAACCAAAACTCTCTCAAATACATGTGATACAGGTAA"}, {"seq": "ATATTTGTATATATTCTAGTAAACACTTTAGGTACACCTGCAAGTACCTCAACATCTGAATTATATAAATCTTTAGAAAAACAACTAATATCCTTACTACATATATTTATTTTTATACCAAGAATAACAGCCATATAAACCAAAACTCTCTCAAATGCATGTGATACAGGTAA"}, {"seq": "ATATTTGTATATATTCTAGTAAACACTTTAGGTACACCTGCAAGTACCTCAACATCTGAATTATATAAATCTTTAGAAAAACAACTAATATCCTTACTCCATATATTTATTTTTATACCAAGAATAACAGCCATATAAACCAAAACTCTCTCAAATGCATGTGATACAGGTAA"}], "target_id": 74}, {"mhap_location": {"chrom": "Pf3D7_04_v3", "end": 133700, "genome_id": 0, "start": 133490, "strand": "+"}, "microhaplotypes": [{"seq": "TAGATTTTTTCCCTTCAGCAGGTGCCCTCACTTTAGGTGTTTTAAACTTAGTTGTATGTGGAACCCCATCTTTATTTGGTTTACCTCTATTTAATCTTTTACCAGCAGTAGAAACTACATTCTCTCGATTATCATTACCTACTTCAGTCTTTACAATTGTAGGAGGTGTTTTAACATGATTATCCCCTCCATGAGGAGTAACCCTTAA"}, {"seq": "TAGATTTTTTCCCTTCAGCAGGTGCCCTCACTTTAGGTGTTTTAAACTTAGTTGTATGTGGAACCCCATCTTTATTTGCTTTACCTCTATTTAATCTTTTACCAGCAGTAGAAACTACATTCTCTCGATTATCATTACCTACTTCAGTCTTTACAATTGTAGGAGGTGTTTTAACATGATTATCCCCTCCATGAGGAGTAACCCTTAA"}, {"seq": "TAGATTTTTTCCCTCCAACAGATGCACTCACTTTAGGTGTTTTAAACTTAGTTGTATGTTGACCCCCCTCATTATTTAGTTTACCTTTATTTAATCTTTTACCAGCAGTAGAAACTACATTCTCTCGATTATCATTACCTACTTCAGTCTTTACAATTGTAGGAGGTGTTTTAACATGATCATCCCCTCCATGAGGAGTAACCCTTAA"}], "target_id": 43}, {"mhap_location": {"chrom": "Pf3D7_04_v3", "end": 141944, "genome_id": 0, "start": 141777, "strand": "+"}, "microhaplotypes": [{"seq": "TTTCAAATTATATAAAGACAGAACTAAGAAATATAAACCTGCAAGAAATAAAAAACAATATAATAAAAATATTTAAAGAATTCGAATCTGCACACAAAGAAATTAAAAAAGAATCAAAACAAATTAATAAAGAATTTACCAAAATGGATGTCGTCATAAATCAAT"}, {"seq": "TTTCAAATTATATAAAGACAGAACTAAGAAATATAAACCTGCAAGAAATAAAAAACAATATAATAAAAATATTTAAAGAATTCAAATCTGCACACAAAGAAATTAAAAAAGAATCAGAACAAATTAATAAAGAATTTACCAAAATGGATGTCGTCATAAATCAAT"}, {"seq": "TTTCAAATTATATAAAGACAGAACTAAGAAATATAAACCTGCAAGAAATAAAAAACAATATAATAAAAATATTTAAAGAATTCAAATCTGCACACAAAGAAATTAAAAAAGAATCAAAACAAATTAATAAAGAATTTACCAAAATGGATGTCGTCATAAATCAAT"}, {"seq": "TTTCAAATTATATAAAGACAGAACTAAGAAATATAAACCTGCAAGAAATAAAAAACAATATAATAAAAATATTTAAAGAATTCGAATCTGCACACAAAGAAATTAAAAAAGAATCAGAACAAATTAATAAAGAATTTACCAAAATGGATGTCGTCATAAATCAAT"}], "target_id": 70}, {"mhap_location": {"chrom": "Pf3D7_04_v3", "end": 415825, "genome_id": 0, "start": 415652, "strand": "+"}, "microhaplotypes": [{"seq": "TGCTAGTTTTGCTGCTCATGAAAATAAAAGCTACTCATATGAAGGTCGTACATATAAAATGTATCCACCTGAATTTAATACATTAATGTTAAAAGCAGATTATTTTATAAGAGATATAAATACACGAGGATTTAGAGAAGTAAATATGGATTCATGTAAATCATATACAAA"}, {"seq": "TGCTAGTTTTGCTGCTCATGAAAATAAAAGCTACTCATATGAAGGTCGTACATATAAAATGTATCCACCTGAATTTAATGCATTAATGTTAAAAGCAGATTATTTTATAAGAGATATAAATACACGAGGATTTAGAGAAGTAAATATGGATTCATGTAAATCATATACAAA"}, {"seq": "TGCTAGTTTTGCTGCTCATGAAAATAAAAGCTACTCATATGAAAGTCGTACATATAAAATGTATCCACCTGAATTTAATACATTAATGTTAAAAGCAGATTATTTTATAAGAGATATAAATACACGAGGATTTAGAGAAGTAAATATGGATTCATGTAAATCATATACAAA"}], "target_id": 15}, {"mhap_location": {"chrom": "Pf3D7_04_v3", "end": 544860, "genome_id": 0, "start": 544717, "strand": "+"}, "microhaplotypes": [{"seq": "TATATTTTACATAATAACAATCTTTCATGTAATGATTATAATTTAAATAATCTTTCATTTAATATAAATAAATATATTAATGAAGAAAAAGGCAAAAATAAAAAAACAAATCAACATATATCAGAACAATTTTTATTTCCT"}, {"seq": "TATATTTTACATAATAACAATCTTTCATGTAATGATTATAATTTAAATAATCTTTCATTTAATATAAATAAATATATAAATGAAGAAAAAGGCAAAAATAAAAAAACAAATCAACATATATCAGAACAATTTTTATTTCCT"}, {"seq": "TATATTTTACATAATAACAATCCTTCATGTAATGATTATAATTTAAATAATCTTTCATTTAATATAAATAAATATATAAATGAAGAAAAAGGCAAAAATAAAAAAACAAATCAACATATATCAGAACAATTTTTATTTCCT"}], "target_id": 96}, {"mhap_location": {"chrom": "Pf3D7_04_v3", "end": 748435, "genome_id": 0, "start": 748229, "strand": "+"}, "microhaplotypes": [{"seq": "AAATGTAATTCCCTAGATATGAAATATTTTCGTGCAGTTACAACATATGTGAATGAATCAAAATATGAAAAATTGAAATATAAGAGATGTAAATATTTAAACAAAGAAACTGTGGATAATGTAAATGATATGCCTAATTCTAAAAAATTACAAAATGTTGTAGTTATGGGAAGAACAAACTGGGAAAGCATTCCAAAAAAATTT"}], "target_id": 72}, {"mhap_location": {"chrom": "Pf3D7_04_v3", "end": 748695, "genome_id": 0, "start": 748532, "strand": "+"}, "microhaplotypes": [{"seq": "ATAGTTTTACTTGGGAAATTAAATTACTATAAATGTTTTATTATAGGAGGTTCCGTTGTTTATCAAGAATTTTTAGAAAAGAAATTAATAAAAAAAATATATTTTACTAGAATAAATAGTACATATGAATGTGATGTATTTTTTCCAGAAATAAATGAAAA"}], "target_id": 58}, {"mhap_location": {"chrom": "Pf3D7_04_v3", "end": 802712, "genome_id": 0, "start": 802524, "strand": "+"}, "microhaplotypes": [{"seq": "AAATTATTATAGAAAGATAGAAGTTATTTTATATGAATGGTTATATTTTCATTATAATAATGTATATAACACCAAAGTAAAAAAACAAAAATTTATATTTACCCAACAAAAAAAAGACATATCAAAACATAACAAGTTATATCTTCAGTATGATCAAAATAAAAGAAATTCTGAAATAAAACATAC"}, {"seq": "AAATTATTATAGAAAGATAGAAGTTATTTTATATGAATGGTTATATTTTCATTATAATAATGTATATAACACCAAAGTAAAAAAACAAAAATTTATATTTACCCAACAAAAAAAAGACATATCAAAACATAACAAGTTATATCTTCAGTATGATCAAAATAAAAGAAATTCTGAAATAGAACATAC"}, {"seq": "AAATTATTATAGAAAGATAGAAGTTATTTTATATGAATGGTTATATTTTCATTATAATAATGTATATAACACCAAAGTAAAAAAACAAAAATTTATATTTACCCAACAAAAAAAAGACATATCAAAACATAACAAGTTATATCTTCAGTATGATCAAAATAAAAGAAATTCTGAAATAGAACGTAC"}], "target_id": 92}, {"mhap_location": {"chrom": "Pf3D7_04_v3", "end": 1037843, "genome_id": 0, "start": 1037633, "strand": "+"}, "microhaplotypes": [{"seq": "TCTTATAAAGTTAATGAAATAGCTCAACTTAATTTAACCATAGAAAGAGATTTAACAGATGATGCTGTGATTTTTGCACACTCACTTTATTTACCATTTGAAAAAGAAGAAATGTGGTGGATCGTTATCGGAATTAAAAAAATGAACTTACTTTTATCTATCAAAAAATTATCTTTATTGAAAAGTATCAATAATATAAAAATTAATT"}, {"seq": "TCTTATAAAGTTAATGAAATAGCTCAACTTAATTTAACCATAGAAAGAGATTTAACAGATGATGCTGTGATTTTTGCACACTCACTTTATTTACCATTTGAAAAAGAAGAAATGTGGTGGATCGTTATCGGAATTAAAAAAATGAACTTACTTTTATCTATCAAAAAATTATCTTTATTGAAAAGTGTCAATAATATAAAAATTAATT"}, {"seq": "TCTTATAAAGTTAATGAAATTGCTCAACTTAATTTAACCATAGAAAGAGATTTAACAGATGATGCTGTGATTTTTGCACACTCACTTTATTTACCATTTGAAAAAGAAGAAATGTGGTGGATCGTTATCGGAATTAAAAAAATGAACTTACTTTTATCTATCAAAAAATTATCTTTATTGAAAAGTATCAATAATATAAAAATTAATT"}], "target_id": 52}, {"mhap_location": {"chrom": "Pf3D7_04_v3", "end": 1100830, "genome_id": 0, "start": 1100655, "strand": "+"}, "microhaplotypes": [{"seq": "ATGTTCTAAGATCTGGTGGAAAAATATCTGATCAAGGTTCTGAGATAAGTCCTCCTAAGGCACTTTCTAATAAACAAATGACTCCTGCTCAACGTAAGAATGTGCCACATTTTGTTGAAAGAAGAGGCTATGGAAATAGTCATGTTAGGGGTAACGCACTTAAAAAAATTAGT"}, {"seq": "ATGTTCTAAGATCTGATGGAAAAATATCTGATCAAGGTTCTCAGAAAAGTCCTCCTAAGGAACTTTCTAATAAACAAATGACTCCTGCTCAACGTAAGAATGTGCCACATTTTGTTGAAAGAAGAGGCTATGGAAATAGTCATGTTAGGGGTAACGCACTTAAAAAAATTAGT"}, {"seq": "ATGTTCTAAGATCTGGTGGAAAAATATCTGATCAAGGTTCTCAGAAAAGTCCTCCTAAGGAACTTTCTAATAAACAAATGACTCCTGCTCAACGTAAGAATGTGCCACATTTTGTTGAAAGAAGAGGCTATGGAAATAGTCATGTTAGGGGTAACTCACTTAAAAAAATTAGT"}], "target_id": 81}, {"mhap_location": {"chrom": "Pf3D7_01_v3", "end": 181672, "genome_id": 0, "start": 181556, "strand": "+"}, "microhaplotypes": [{"seq": "TCATTCTTTTTTTAACGAAAACTATTCATCTCAAAAATATAAGATATTTTATATGACGAATGCCATTGTATTTTTTGTTACGTAAAACCTGACTTCTTCAAGGAAAACACATGC"}, {"seq": "TCATTCTTTTTTTAACTAAAACTATTCATCTCAAAAATATAAGATATTTTATATGACGAATGCCATTGTATTTTTTGTTACGTAAAACCTGACTTCTTCAAGGAAAACACATGC"}], "target_id": 64}, {"mhap_location": {"chrom": "Pf3D7_04_v3", "end": 1102577, "genome_id": 0, "start": 1102388, "strand": "+"}, "microhaplotypes": [{"seq": "AAGAAATAAATAAAATAATTTATACAAACGAATTTAATAATTATGAAGATAAAATATATGAAGATGTCAAATATATTAAAGAACAGGAAAATGAAATGTACTTGAGAGATGGAATTGAAGAGTTACATATGGATGAACCAAGTGGGGATGTATATTTTGATGATCAAGATGATTATATATTTTTAGA"}, {"seq": "AAGAAATAAATAAAATAATTTATACAAACGAATTTAATAATTATGAAGATAAAATATATGAAGATGTCAAATATATTAAAGAACAGGAAAATGAAATATACTTGAGAGATGGAATTGAAGAGTTACATATGGATGAACCAAGTCGGGATGTATATTTTGATGATGAAAATGATTATATATTTTTAGA"}, {"seq": "AAGAAATAAATAAAATAATTTATACAAACGAATTTAATAATTATGAAGATAAAATATATGAAGATGTCAAATATATTAAAGAACAGGAAAATGAAATATACTTGAGAGATGGAATTGAAGAGTTACATATGGATGAACCAAGTCGGGATGTATATGTTGATGATGAAAATGATTATATATTTTTAGA"}], "target_id": 67}, {"mhap_location": {"chrom": "Pf3D7_04_v3", "end": 1113603, "genome_id": 0, "start": 1113449, "strand": "+"}, "microhaplotypes": [{"seq": "AATCATCTAAGAATAAACTTTTTTGTTTAAACCATTTATTGAACATTTCACTTAAATGTGATTCAATTTTTTTTTCTGAGCTTTCCATAATTTGATTACATCTATTCAATTTGTTTGTATAAGTTTTAGGTGTTATTATTCTTTTACGTTTT"}, {"seq": "AATCATCTAAGAATAAACTTTTTTGTTTAAACCATTTATTGAACATTTCACTTAAATGTGATTCAATTTTTTTTTCTGAGCTTTCCATAATTTGATTACAACTATTCAATTTGTTTGTATAAGTTTTAGGTCTTATTATTCTTTTACGTTTT"}, {"seq": "AATCATCTAAGAATAAACTTTTTTGTTTAAACCATTTATTGAACATTTCACTTAAATGTGATTCAATTTTTTTTTCTGAGCTTTCCATAATTTGATTACATCTATTCAATTTGTTTGTATAAGTATTAGGTCTTATTATTCTTTTACGTTTT"}, {"seq": "AATCATCTAAGAATAAACTTTTTTGTTTAAACCATTTATTGAACATTTCACTTAAATGTGATTCAATTTTTTTTTCTGAGATTTCCATAATTTGATTACATCTATTCAATTTGTTTGTATAATTATTAGGTCTTATTATTCTTTTACGTTTT"}, {"seq": "AATCATCTAAGAATAAACTTTTTTGTTTAAACCATTTATTGAACATTTCACTTAAATGTGATTCAATTTTTTTTTCTGAGCTTTCCATAATTTGATTACATCTATTCAATTTGTTTGTATAATTATTAGGTCTTATTATTCTTTTACGTTTT"}], "target_id": 61}, {"mhap_location": {"chrom": "Pf3D7_04_v3", "end": 1128672, "genome_id": 0, "start": 1128488, "strand": "+"}, "microhaplotypes": [{"seq": "TTGAAAGAGTTAAAGGGAAAAATACAAAATTATTTAGATAATGATATTCAATTGAGTAATGGAAAACTCCTATATAAGGATACATGGGATAGAATTGATTTGAAGTTTTGTAGAACGGTAGCAATAGAAGAGGCAGTATACACTAGAAAATTTTATAGCTTAATTAATGATAAACATACAAT"}, {"seq": "TTGAAAGAGTTAAAGGGAAAAATACAAAATTATTTAGATAATGATATTCAATTGAGTAATGGAAAACTCCTATATAAGGATACATGGGATAGAATTGATTTGAAGTTTTGTAGAACGGTAGCAATAGAAGAGGCAGAATACACTAGAAAATTTTATAGCTTAATTAATGATAAACATACAAT"}, {"seq": "TTGAAAGAATTAAAGGGAAAAATACAAAATTATTTAGATAATGATATTCAATTGAGTAATGGAAAACTCCTATATAAGGATACATGGGATAGAATTGATTTGAAGTTTTGTAGAACGATAGCAATAGAAGAGGCAGAATACACTAGAAAATTTTATAGCTTAATTAATGATAAACATACAAT"}], "target_id": 54}, {"mhap_location": {"chrom": "Pf3D7_05_v3", "end": 329549, "genome_id": 0, "start": 329377, "strand": "+"}, "microhaplotypes": [{"seq": "TTGTGATGTATATAAATTCCCTTCTTCTTTATGTACCACATTATAAGAACCACGAACATATTCTTTTAAAAATGTTAACTTACTTCCAACAAATATATAATCAAAACAAAATTTTTTATTGTCGAAATGTTCTCGTTCAACCCCATTCATATTTCGGATATCATTATTTA"}, {"seq": "TTGTGATGTATATAAATTCCCTTCTTCTTTATGTACCACATTATAAGAACCACGAACATATTCTTTTAAAAATGTTAACTTACTTCCAACAAATATATAATCAAAACAAAATTGTTTATTGTCGAAATGTTTTCGTTCAACCCCATTCATATTTCGGATATCATTATTTA"}], "target_id": 33}, {"mhap_location": {"chrom": "Pf3D7_05_v3", "end": 958220, "genome_id": 0, "start": 958058, "strand": "+"}, "microhaplotypes": [{"seq": "TTTATATCATTTGTATGTGCTGTATTATCAGGAGGAACATTACCTTTTTTTATATCTGTGTTTGGTGTAATATTAAAGAACATGAATTTAGGTGATGATATTAATCCTATAATATTATCATTAGTATCTATAGGTTTAGTACAATTTATATTATCAATGA"}, {"seq": "TTTATATCATTTGTATGTGCTGTATTATCAGGAGGAACATTACCTTTTTTTATATCTGTGTTTGGTGTAATATTAAAGAACATGTATTTAGGTGATGATATTAATCCTATAATATTATCATTAGTATCTATAGGTTTAGTACAATTTATATTATCAATGA"}], "target_id": 49}, {"mhap_location": {"chrom": "Pf3D7_05_v3", "end": 958505, "genome_id": 0, "start": 958388, "strand": "+"}, "microhaplotypes": [{"seq": "ACGAAATTTATAACAATTTTTACATATGCCAGTTCCTTTTTAGGTTTATTTATTTGGTCATTAATAAAAAATGCACGTTTGACTTTATGTATTACTTGCGTTTTTCCGTTAATTT"}, {"seq": "ACGAAATTTATAACAATTTTTACATATGCCAGTTCCTTTTTAGGTTTATATATTTGGTCATTAATAAAAAATGCACGTTTGACTTTATGTATTACTTGCGTTTTTCCGTTAATTT"}, {"seq": "ACGAAATTTATAACAATTTTTACATATGCCAGTTCCTTTTTAGGGTTATTTATTTGGTCATTAATAAAAAATGCACGTTTGACTTTATGTATTACTTGCGTTTTTCCGTTAATTT"}], "target_id": 46}, {"mhap_location": {"chrom": "Pf3D7_05_v3", "end": 1042280, "genome_id": 0, "start": 1042161, "strand": "+"}, "microhaplotypes": [{"seq": "TATTATTACGGTACCATTATATGATTCTTTAGGTCCTCAATCAAGTAGATTTATATTAGATCAAACACAGATGGAAACTATTGTATGTGACAAGACATGTGCTCGTAATTTATTTAA"}, {"seq": "TATTATTACGGTACCATTATATGATTCTTTAGGTCCTCAATCAAGTAGATTTATATTAGATCAAACACAGATGGAAACTATTGTATGTAACAAGACATGTGCTCGTAATTTATTTAA"}], "target_id": 4}, {"mhap_location": {"chrom": "Pf3D7_05_v3", "end": 1309743, "genome_id": 0, "start": 1309608, "strand": "+"}, "microhaplotypes": [{"seq": "AATGAAGAAAATATGTCTGACAGACCAAACAGTTTATCTCATGATAAGGATCAACACCTCGATGAAACATGTAATGAACAATATGGATTATACGTAAAAGAAATGGAATCTAAAGTTGAAAAATTAGCTGAAA"}, {"seq": "AATGAAGAAAATATGTCTGACAGACCAAACAGTTTATCTCATGATAAGGATCAACACCACGATGAAACACATAATGAACAATATGGATTATACGTAAAAGAAATGGAATCTAAAGTTGAAAAATTAGCTGAAA"}], "target_id": 27}, {"mhap_location": {"chrom": "Pf3D7_06_v3", "end": 145500, "genome_id": 0, "start": 145342, "strand": "+"}, "microhaplotypes": [{"seq": "ATTTGAATAAAATTTATCATTCACAATATTATATTTTTGTTTCTTCTTTTTTCCCATAATATTATTATTTTGTTCACAATATATGTTCATGTGTCCCCTCTTTTTCTGTAAAATATTAAAATGTTTCTTACTATGCTTTTCTTCATTTTTAATAAC"}, {"seq": "ATTTGAATAAAATTTATCATTCACAATATTATATTTTTGTTTCTTCTTTTTTCCCATAATATTATTATTTTGTTCACAATATATGTTCATGTGTCCCCTCTTTTTCTGTAAAATATTAAAATGTTTCTTAGTATGCTTCTCTTCATTTTTAATAAC"}], "target_id": 44}, {"mhap_location": {"chrom": "Pf3D7_06_v3", "end": 532377, "genome_id": 0, "start": 532194, "strand": "+"}, "microhaplotypes": [{"seq": "GAACAATTGTTAAACACCAAATTGGGTGAAACAAAAAACCACCTGAACAGAACTCCATTTATACCTGAATCGGTCATACGAGAAAGGAAATTACGCCAAGAAAAAGCGCAATCCACAAACAACATGTTCGATTCAACAAACGCAGATAGTATTACTTCCCCATGTGATCCAACGAATGCCA"}, {"seq": "GAACAATTGCTAAACACCAAATTGGGTGAAACAAAAAACCACCTGAACAGAACTCCATTTATACCTGAATCGGTCATACGAGAAAGGAAATTACGCCAAGAAAAAGCTCAATCCACAAACAACATGTTCGATTCAACAAACGCAGATAGTATTACTTCCCCATGTGATCCAACGAATGCCA"}, {"seq": "GAACAATTGTTAAACACCAAATTGGGTGAAACAAAAAACCACCTGAACAGAACCCCATTTATACCTGAATCGGTCATACGAGAAAGGAAATTACGCCAAGAAAAAGCGCAATCCACAAACAACATGTTCGATTCAACAAACGCAGATAGTATTACTTCCCCATGTGATCCAACGAATGCCA"}, {"seq": "GAACAATTGCTAAACACCAAATTGGGTGAAACAAAAAACCACCTGAACAGAACCCCATTTATACCTGAATCGGTCATACGAGAAAGGAAATTACGCCAAGAAAAAGCGCAATCCACAAACAACATGTTCGATTCAACAAACGCAGATAGTATTACTTCCCCATGTGATCCAACGAATGCCA"}], "target_id": 39}, {"mhap_location": {"chrom": "Pf3D7_01_v3", "end": 496142, "genome_id": 0, "start": 495970, "strand": "+"}, "microhaplotypes": [{"seq": "GAAAGTAGCGAATACCCTGTACAAATCGTTAGTAAACCTCTGGAATGGTTATTGTTTCATGATTTTACTACGCCTGATGTTACTGCACTACCTGAAGAATTACCATTAACGAGCTATAAAGTAACACCTACTTCTATTAATGTATTGCATAAAGAGGGCCCCACTTTAAA"}, {"seq": "GAAAGTAGCGAATACCCTGTAGAAATTGTTAGTAAACCTCTGGAATGGTTATTGTTTCATGATTTTACTACGCCTGATGTTACTGCACTACCTGAAGAATTACCATTAACGAGCTATAAAGTAACACCTACTTCTATTAATGTATTGCATAAAGAGGGCCCCACTTTAAA"}, {"seq": "GAAAGTAGCGAATACCCTGTACAAATCGTTAGTAAACCTCTGGAATGGTTATTGTTTCATGATTTGACTAAGCCTGATGTTACTGCACTACCTGAACAATTGCCATTAACAAATTATAAAGTAACACCTACTTCTATTAATGTATTGAATAAAGAGGGCCCCACTTTAAA"}, {"seq": "GAAAGTAGCGAATACCCTGTAGAAATTGTTAGTAAACCTCTGGAATGGTTATTGTTTCATGATTTTACTACGCCTGGTGTTACTGCACTACCTGAAGAATTACCATTAACGAGCTATAAAGTAACACCTACTTCTATTAATGTATTGCATAAAGAGGGCCCCACTTTAAA"}], "target_id": 62}, {"mhap_location": {"chrom": "Pf3D7_07_v3", "end": 165421, "genome_id": 0, "start": 165234, "strand": "+"}, "microhaplotypes": [{"seq": "TCATTATTATTATTATTATAATTATCATTGTTATTATTATTGTTGTTGTTGTTATTATTATTTCCTTTATTATTTAATATGCATTTTTTAATATCCATTTTATTATTTATCATATCAGTACTTTTATTTTTCTCCTTTTCGTTTATAGCTTTTTCCCTATGCACCCTGAATTTCCCATTTTTTTT"}, {"seq": "TAATTATCATTATTATTATAATTATCATTGTTATTATTATTGTTGTTGTTGTTATTATTATTTCCTTTATTATTTAATATGCATTTTTTAATATCCATTTTATTATTTATCATATCAGTACTTTTATTTTTCTCCTTTTCGTTTATAGCTTTTTCCCTATGCACCCTGAATTTCCCATTTTTTTT"}, {"seq": "TCATTATTATTATTATTATAATTATCATTTTTATTATTATTGTTGTTATTATTATTTCCTTTATTATTTAATATGCATTTTTTAATATCCATTTTATTATTTATCATATCAGTACTTTTATTTTTCTCCTTTTCGTTTATAGCTTTTTCCCTATGCACCCTGAATTTCCCATTTTTTTT"}], "target_id": 29}, {"mhap_location": {"chrom": "Pf3D7_07_v3", "end": 166166, "genome_id": 0, "start": 166034, "strand": "+"}, "microhaplotypes": [{"seq": "TTTTATTTGAACTTTTTTATTTTCTTCATTATCAATATAAAAACAACAATCTTTAAATTTATGAAATAACACCCAACTTAATGTATAAAATATAATTTCTATAAAATCAAAATTAATGTAATAACCTAAT"}], "target_id": 59}, {"mhap_location": {"chrom": "Pf3D7_07_v3", "end": 299004, "genome_id": 0, "start": 298885, "strand": "+"}, "microhaplotypes": [{"seq": "CATTCAATATGGTTCTGAGCTTAAAGATGTTATCCTTATACATGTTTCTATTCTCATTCGTTATAACATCAATGACATATAAAACATATCTCTCAAATATTTTGTGAACAATATTAT"}], "target_id": 41}, {"mhap_location": {"chrom": "Pf3D7_07_v3", "end": 730087, "genome_id": 0, "start": 729974, "strand": "+"}, "microhaplotypes": [{"seq": "TTTATGTGAAATTTTAAATAAAGAGAAATTGTTTGTGCACACATCTATTTTGGGATATATATCTAATCGTTTATATTACGATATAGAAAAATATAGATGTTCATTATTGAA"}, {"seq": "TTTATGTGAAATTTTAAATAAAGAGAAATTGTTTGTGCACACATCTATTTTGGGATATATATCTAATCGTTTATATTACGATATAGAAAAATATAGATGTTCATTATTGAG"}, {"seq": "TTTATGTGAAATTTTAAATAAAGAGAAATTGTTTGTGCACACATCTATTTTGGGATATATATCTAATCGTTTATGTTACGATATAAAAAAATATAGATGTTCATTATTGAA"}, {"seq": "TTTATGTGAAATTTTAAATAAAGAGAAATTGTTTGTGCACACATCTATTTTGGGATATATATCTAATCGTTTATGTTACGATATAGAAAAATATAGATGTTCATTATTGAA"}], "target_id": 75}, {"mhap_location": {"chrom": "Pf3D7_07_v3", "end": 1149584, "genome_id": 0, "start": 1149414, "strand": "+"}, "microhaplotypes": [{"seq": "AATATTTAATATTTTTGTTTAGGAAGTTTTCAAAATTGATGACATTGATAACCGTTTTTATTAAATCGCTTGGGTTGTTTGTGTGTTCTATAGTAGAAGACATAATTTTAAGAATGTGTTTTTGTGTTATTAAACAAAACTTTGTTACTATATGGAATCGTATGTTAT"}, {"seq": "AATATTTAATATTTTTGTTTAGGAAGTTTTCAAAATTGATGACATTGATAACCGTTTTTATTAAATCGCTTGGGTTGTTTGTGTGTTCCATTGTAGAAGACATAATTTTAAGAATGTGTTTTTGTGTTATTAAACAAAACTTTGTTACTATATGGAATCGTATGTTAT"}, {"seq": "AATATTTAATATTTTTGTTTAGGAAGTTTTCAAAATTGATGACATTGATAACCGTTTTTATTAAATCGCTTGGGTTGTTTGTGTGTTCTATTGTAGAAGACATAATTTTAAGAATGTGTTTTTGTGTTATTAAACAAAACTTTGTTACTATATGGAATCGTATGTTAT"}], "target_id": 45}, {"mhap_location": {"chrom": "Pf3D7_07_v3", "end": 1358910, "genome_id": 0, "start": 1358693, "strand": "+"}, "microhaplotypes": [{"seq": "AGAATCTCAACTTTTGCTTAAAAAAAATGATAACAAATATAATTCTAAATTTTGTAATGATTTGAAGAATAGTTTTTTAGATTATGGACATCTTGCTATGGGAAATGATATGGATTTTGGAGGTTATTCAACTAAGGCAGAAAACAAAATTCAAGAAGTTTTTAAAGGGGCTCATGGGGAAATAAGTGAACATAAAATTAAAAATTTTAGAAAAG"}, {"seq": "AGAATCTCAACTTTTGCTTAAAAAAAATGATAACAAATATAATTCTAAATTTTGTAATGATTTGAAGAATAGTTTTTTAGATTATGGACATCTTGCTATGGGAAATGATATGGATTTTGGAGGTTATTCAACTAAGGCAGAAAACAAAATTCAAGAAGTTTTTAAAGGGGCTCATGGGAAAATAAGTGAACATGAAATTAAAAATTTTAGAAAAA"}, {"seq": "AGAATCTCAACTTTTGCTTAAAAAAAATGATAACAAATATAATTCTAAATTTTGTAATGATTTGAAGAATAGTTTTTTAGATTATGGACATCTTGCTATGGGAAATGATATGGATTTTGGAGGTTATTCAACTAAGGCAGAAAACAAAATTCAAGAAGTTTTTAAAGGGGCTCATGGGAAAATAAGTGAACATGAAATTAAAAATTTTAGAAAAG"}], "target_id": 35}, {"mhap_location": {"chrom": "Pf3D7_08_v3", "end": 102499, "genome_id": 0, "start": 102325, "strand": "+"}, "microhaplotypes": [{"seq": "TAATTTTCTCAAGTAACATATTTTTGTCTTGACTACTTTCATCTGTAAATGGAACGAATACTCTTTGCTTACCTGCAAAAAGGACAACTGACATATGAGCCTTATCCTTACTTACATTCGAATTAAAGACCATAGATTCTAAAAATGGTATAGTTCCTTTTAACCAATAATC"}, {"seq": "TAATTTTCTCAAGTAACATATTTTTGTCTTGACTACTTTCATCTGTAAATGGAACCAATACTCTTTGCTTACCTGCAAAAAGGACAACTGACATATGAGCCTTATCCTTACTTACATTCGAATTAAAGACCATAGATTCTAAAAATGGTATAGTTCCTTTTAACCAATAATC"}, {"seq": "TAATTTTCTCAAGTAACATATTTTTGTCTTGACTACTTTCATCTGTAAATGGAACGACTACTCTTTGCTTACCTGCAAAAAGGACAACTGACATATGAGCCTTATCCTTACTTACATTCGAATTAAAGACCATAGATTCTAAAAATGGTATAGTTCCTTTTAACCAATAATC"}, {"seq": "TAATTTTCTCAAGTAACATATTTTTGTCTTGACTACTTTCATCTGTAAATGGAACGAATACTCTTTGCTTACCTGCAAAAAGGACAACTGACATATGAGCCTTATCCTTACTTACATTCGAATTAAGGACCATAGATTCTAAAAATGGTATAGTTCCTTTTAACCAATAATC"}], "target_id": 86}, {"mhap_location": {"chrom": "Pf3D7_08_v3", "end": 336646, "genome_id": 0, "start": 336467, "strand": "+"}, "microhaplotypes": [{"seq": "AAATTTACAGAAAAATTTAGATTTAATCATATGGCTAAAAAAGAATATAAAAGAAGGAGAAGCTTTAATTTCTGATATACCCACATCAAGTTTTTTAAGGTGTACTACAAATTATAAATTTGTATTGCATCCACAATATGAAGATAGTAACTTGAGAAAGAGGGTTCAAGATTATTA"}, {"seq": "AAATTTACAAAAAAATTTAGATTTAATCATATGGCTAAAAAAGAATATAAAAGAAGGAGAAGCTTTAATTTCTGATATACCTACATCAAGTTTTTTAAGGTGTACTACAAATTATAAATTTGTATTGCATCCACAATATGAAGATAGTAACTTGAGAAAGAGGGTTCAAGATTATTA"}, {"seq": "AAATTTACAGAAAAATTTAGATTTAATCATATGGCTAAAAAAGAATATAAAAGAAGGAGAAGCTTTAATTTCTGATATACCCACATCAAGTTTTTTAAGGTGTACTACAAATTATAAATTTGTATTGCATCCCCAATATGAAGATAGTAACTTGAGAAAGAGGGTTCAAGATTATTA"}, {"seq": "AAATTTACAAAAAAATTTAGATTTAATCATATGGCTAAAAAAGAATATAAAAGAAGGAGAAGCTTTAATTTCTGATATACCTACATCAAGTTTTTTAAGGTGTACTACAAATTATAAATTTGTATTGCATCCCCAATATGAAGATAGTAACTTGAGAAAGAGGGTTCAAGATTATTA"}, {"seq": "AAATTTACAGAAAAATTTAGATTTAATCATATGGCTAAAAAAGAATATAAAAGAAGGAGAAGCTTTAATTTCTGATATACCTACATCAAGTTTTTTAAGGTGTACTACAAATTATAAATTTGTATTGCATCCCCAATATGAAGATAGTAACTTGAGAAAGAGGGTTCAAGATTATTA"}], "target_id": 85}, {"mhap_location": {"chrom": "Pf3D7_08_v3", "end": 339356, "genome_id": 0, "start": 339167, "strand": "+"}, "microhaplotypes": [{"seq": "TCATTACTATTCTTTATCCATATATATGTTGTTATATCAGTTGCACCTGAGGGTGGATTCAAACCTCTTGCTTGTATAATATATGCACGTACTACTAAATTACGTGTTAATCTATATTCTCTTACTAAATCATCACATTTCTTTATCATTTCTTTTTTTAAATACATTGTCTTTTCATCATACACAT"}, {"seq": "TCATTACTATTCTTTATCCATATATATGTTGTTATATCAGTTGCACCGGATGGTGGATTCAAACCTCTTGCTTGTATAATATATGCACGTACTACTAAATTACGTGTTAATCTATATTCTCTTACTAAATCATCACATTTCTTTATCATTTCTTTTTTTAAATACATTGTCTTTTCATCATACACAT"}, {"seq": "TCATTACTATTCTTTATCCATATATATGTTGTTATATCAGTTGCACCGGATGGTGGATTCAAACCTCTTGCTTGTATAATATATGCACGTACTACTAAATTACGTGTTAATCTATATTCTCTTACTAAATCACCACATTTCTTTATCATTTCTTTTTTTAAATACATTGTCTTTTCATCATACACAT"}], "target_id": 80}, {"mhap_location": {"chrom": "Pf3D7_08_v3", "end": 550217, "genome_id": 0, "start": 549992, "strand": "+"}, "microhaplotypes": [{"seq": "ACTAACAAATTATGATAATCTAGTTTATGATATAAAAAATTATTTAGAACAAAGATTAAATTTTCTTGTATTAAATGGAATACCTCGTTATAGGATACTATTTGATATTGGATTAGGATTTGCGAAGAAACATGATCAATCTATTAAACTCTTACAAAATATACATGTATATGATGAGTATCCACTTTTTATTGGATATTCAAGAAAAAGATTTATTGCCCAT"}], "target_id": 93}, {"mhap_location": {"chrom": "Pf3D7_01_v3", "end": 512387, "genome_id": 0, "start": 512198, "strand": "+"}, "microhaplotypes": [{"seq": "TAAAGAAATTAAGTGAAGATGATTATGAAAAAAATTGTAGACATTTAAATTATTTAATAGATAATATAAGAGAATTATTTTTTAGTTCTAAAAATATTAGAATTCCTGATGTAGCTCGTAAATATTTGTGGGATAATCAAATTGAAGGAAATCTCAAAAAATTAATATCTTCAGAAACAAAATATAA"}, {"seq": "TAAAGAAATTAAGTGAAGATGATTATGAAAAAAATTGTAGACATTTAAATTATTTAATAGATAATATAAGAGAATTATTTTTTAGTTCTAAAAATATTAGAATTCCTGATTTAGCTCGTAAATATTTGTGGGATAATCAAATTGAAGGAAATCTCAAAAAATTAATATCTTCAGCAACAAAATATAA"}, {"seq": "TAAAGAAATTAAGTGAAGATGATTATGAAAAAAATTGTAGACATTTAAATTATTTAATAGATAATATAAGAGAATTATTTTTTAGTTCTAAAAATATTAGAATTCTTGATGTAGCTCGTAAATATTTGTGGGATAATCAAATTGAAGGAAATCTCAAAAAATTAATATCTTCAGAAACAAAAAATAA"}], "target_id": 38}, {"mhap_location": {"chrom": "Pf3D7_08_v3", "end": 933142, "genome_id": 0, "start": 933022, "strand": "+"}, "microhaplotypes": [{"seq": "TGGTTTTAATGAGGATGATTTAGATAAAGAGTTTTCTTTTGATTTGCCGTCGATTAGTGGTTTTTCAAGTAATGGTATGAAAAAATGTAATTTAAGAAATTTATTAAAAAGATTAGAA"}, {"seq": "TGGTTTTAATGAGGATGATTTAGATAAAGAGTTTTTTTTTGATTTGCCGTCGATTAGTGGTTTTTCAAGTAATGGTATGAAAAAATGTAATTTAAGAAATTTATTAAAAAGATTAGAA"}], "target_id": 3}, {"mhap_location": {"chrom": "Pf3D7_08_v3", "end": 1269455, "genome_id": 0, "start": 1269319, "strand": "+"}, "microhaplotypes": [{"seq": "CCTTAGCATTAATAACACTTATAGGAGGTATTTATATGACTAAAGGAAGAAAAAGTTCCATATGGCATAATTCAGAAATAAATGATACACTTTATGATGTTGTTCTTGAAGCAGTGAATCAAGGAAATACAGAT"}, {"seq": "CCTTAGCATTAATAACACTTATAGGAGGTATTTATATGACTAAAGGAAGAAAAAGTTCCATATGGCATAATTCAGAAATAAATGATACACTTTATGATGTTGTTCTTGAAACAGTGAATCAAGGAAATACAGAT"}, {"seq": "CCTTAGCATTAATAACACTTATAGGAGGTATTTATATGACTAAAGGAAGAAAAAGTTCCATATGGCATAATTCAGAAATAAATGATACACTTTATGATATTGTTCTTGAAACAGTGAATCAAGGAAATACAGAT"}], "target_id": 32}, {"mhap_location": {"chrom": "Pf3D7_08_v3", "end": 1344818, "genome_id": 0, "start": 1344685, "strand": "+"}, "microhaplotypes": [{"seq": "AATATATCTTTTACTTTATCTGTAAGTTTCATGGAATCTATTATTTCTTCTGCATATTTTATTTTTGCCTCGTTTATATATTTACCTGCTTCTAATTTACATAAACATTTTTCTATTAAGTTTTGATCATT"}, {"seq": "AATATATCTTTTACTTTATCTGTAAGTTTCATGGAATCTATTATTTCATGTGCATATTTTATTTTTGCCTCGTTTATATATTTACCTGCTTTTAATTTACATAAACATTTTTCTATTAAGTTTTGATCATT"}, {"seq": "AATATATCTTTTACTTTATCTGTAAGTTTCATGGAATCTATTATTTCATCTGCATATTTTATTTTTGCCTCGTTTATATATTTACCTGCTTTTAATTTACATAAACATTTTTCTATTAAGTTTTGATCATT"}], "target_id": 30}, {"mhap_location": {"chrom": "Pf3D7_08_v3", "end": 1363086, "genome_id": 0, "start": 1362890, "strand": "+"}, "microhaplotypes": [{"seq": "GTAAAAAAAAAGGGTTTTCCTAAAAAACCATCGGTTCATGGTTTTACACAGATGGTGTTTTTGCAGCTTACTAATATAGTCATGTATGCCCTTTGTTTTATGAGCCTTTCACAAATATATGCTTATTTCGAAAACGTGAATTTTTATATTATAAGCAATTTTCGTTTCCTTGAGAGATATTTTAATATATTCAA"}, {"seq": "GTAAAAAAAAAGGGTTTTCCTAAAAAACCATCGGTTCATGGTTTTACACAGATGATGTTTTTGCAGCTTACTAATATAGTCATGTATGCCCTTTGTTTTATGAACCTTTCACAATTATATGCTTATTTCGAAAACGTGAATTTTTATATTATAAGCAATTTTCGTTTCCTTGAGAGATATTTTAATATATTCAA"}, {"seq": "GTAAAAAAAAAGGGTTTTCCTAAAAAACCATCGGTTCATGGTTTTACACAGATGGTGTTTTTGAAGATTACTAATATAGTCATGTATGCCCTTTGTTTTATGAGCCTTTCACAAATATATGCTTATTTCGAAAACGTGAATTTTTATATTATAAGCAATTTTCGTTTCCTTGAGAGATATTTTAATATATTCAA"}, {"seq": "GTAAACAAAAAGGGTTTTCCTAAAAAACCATTGGTTCATGGTTTTACACAGATGGTGTTTTTGCAGCTTACTAATATAGTCATGTATGCCCTTTGTTTTATGGACCTTTCACAAATATATGCTTATTTCGAAAACGTGAATTTTTATATTATAAGCAATTTTCGTTTCCTTGAGAGATATTTTAATATATTCAA"}], "target_id": 28}, {"mhap_location": {"chrom": "Pf3D7_09_v3", "end": 517091, "genome_id": 0, "start": 516927, "strand": "+"}, "microhaplotypes": [{"seq": "TGTTTGTGTAATAAAGGATATTTCTATAATGTCAAGAAACAACAATGTAAAGAATGTCCCATAGGTTTTTATTGTCCAGAAATAAGCTCAAAAAATAATATAAAAAAACCTATCAAATGTCCTAAAAATTCCTCAAGTATAAAAAAAGGTATGTATATATCA"}, {"seq": "TGTTTGTGTAATAAAGGATATTTCTATAATGTCAAGAAACAACAATGTGAAGAATGTCCCATAGGTTTTTATTGTCCAGAAATAAGCTCAAAAAATAATATAAAAAAACCTATCAAATGTCCTAAAAATTCCTCAAGTATAAAAAAAGGTATGTATATATCA"}, {"seq": "TGTTTGTGTAATAAAGGATATTTCTATAATGTCAAGAAACAACAATGTAAAGAATGTCCCATAGGTTTTTATTGTCCAAAAATAAGCTCAAAAAATAATATAAAAAAACCTATCAAATGTCCTAAAAATTCCTCAAGTATAAAAAAAGGTATGTATATATCA"}], "target_id": 26}, {"mhap_location": {"chrom": "Pf3D7_09_v3", "end": 596333, "genome_id": 0, "start": 596132, "strand": "+"}, "microhaplotypes": [{"seq": "TTATTTTCGTTTTTTTTTATATTATCATTATAATTATATGTATTTACAAAGAATTTATTATTATTTGTTTCTTTATAATTATATTCATTTTCTTTATTACTTAAGGAATTTATATTTGATAAAACTTGTTGTCCTCTTTCTTCTTTGTTGATGTGAATATTTGAGAAAATAATAATAAATGTAATGACTAGGGCTATAT"}, {"seq": "TTATTTTCGTTTTTTTTTATATTATCATTATAATTATATGTATTTACAAAGAATTTATTATTATTTGTTTCTTTATAATTATATTCATTTTCTTTATTACTTAAGGAATTTATATTTGATAAAACTTGTTGTCCTCTTTCTTCTTTGTTGATGTGAATATTTGAGAAAATAATAATAAATGTAATGACTAGGGCTATGT"}, {"seq": "TTATTTTCGTTTTTTTTTATATTATCATTATAATTATATGTATTTACAAAGAATTTATTATTATTTGTTTCTTTATAATTATATTCATTTTCTTTATTACTTAAGGAATTTATATTTGATAAAACTTGTTGTACTCTTTCTTCTTTGTTGATGTGAATATTTGAGAAAATAATAATAAATGTAATGACTAGGGCTATGT"}], "target_id": 25}, {"mhap_location": {"chrom": "Pf3D7_09_v3", "end": 685791, "genome_id": 0, "start": 685600, "strand": "+"}, "microhaplotypes": [{"seq": "CAAAGGAACAAGATAATTTTTTCCATTTTTATAAAAGTAATATATATGATATGGAAAATAGAACATGTAATAATAATATATTACAATATTGTGTTATGAATAATAAATCATATTTATTTCATAATATATCATCCAAAAAAAATATATATATAAAAAAAAAGAATCATCAGTTTTCTTTATTCATATATT"}, {"seq": "CAAAGGAACAAGATAATTTTTTCAATTTTTATAAAAGTAATATATATGATATGGAAAATAGAACATGTAATAATAATATATTACAATATTGTGTTATGAATAATAAATCATATTTATTTCATAATATATCATCCAAAAAAAATATATATATAAAAAAAAAGAATCATCAGTTTTCTTTATTCATATATT"}], "target_id": 77}, {"mhap_location": {"chrom": "Pf3D7_09_v3", "end": 1179077, "genome_id": 0, "start": 1178893, "strand": "+"}, "microhaplotypes": [{"seq": "CAAATTATCCTTAGCCCCAGATATGGTAAAGACATATCACTGTTATAAATTAGGAAAGCAAGCAGCTGAATTATTAGAATCTATCATTTTAAAGAAAAAGTTCGTAAGATTTAGAGTTACTGATGCTATTGATGTATATGATTTCTTTTATATAAAGAAAGTTTTATCCAGTCGTATTAAGA"}, {"seq": "CAAATTACCCTTAGCCCCAGATATGGTAAAGACATATCACTGTTATAAATTAGGAAAGCAAGCAGCTAAATTATTAGAATCTATCATTTTAAAGAAAAAGTTCGTAAGATTTAGAGTTACTGATGCTATTGATGTATATGATTTCTTTTATATAAAGAAAGTTTTATCCAGTCGTATTAAGA"}], "target_id": 89}, {"mhap_location": {"chrom": "Pf3D7_09_v3", "end": 1406540, "genome_id": 0, "start": 1406404, "strand": "+"}, "microhaplotypes": [{"seq": "AATTAATTTTAATGATGATGTTACTTTAGAAACACAATCCATGATAGCACACGGAGGGTCTTTGTCAGAAATAGAAGAAACTGGAGATTTATCTTCAGATGTTGATAGATTACTTTCATCAATCGAAACTACTC"}, {"seq": "AATTAATTTTAATGATGATGTTACTTTAGAAACACAATCCATGATAGCACACGGAGGGTCTTTGTCAGAAATAGAAGAAACTGAAGATTTATCTTCAGATGTTGATAGATTACTTTCATCAATCGAAACTACTC"}], "target_id": 51}, {"mhap_location": {"chrom": "Pf3D7_09_v3", "end": 1437302, "genome_id": 0, "start": 1437113, "strand": "+"}, "microhaplotypes": [{"seq": "TAAAACCTGACAGCTTTGTACAGTTATATTTACCCAATTAGAATGTTCAAACATATTTAAGTGTTGCCATTCTTCAAATAATTTTTTTTCATATTCAGTTTTTGGTTGGTTTTTAAATTCTTTTGATAATGTACCTTCTGCGGATGGTATAGGGAAGTTAAAAATTTTATTACTTACTTTGTTTGAT"}, {"seq": "TAAAACCTGACAGCTTTGTACAGTTATATTTACCCAATTAGAATGTTCAAACATATTTAAGTGTTGCCATTCTTCAAATAATTTTTTTTCATATTCAGTTTTTGGTTGGTTTTTAAATTCTTTTGATACTGTACCTTCTGCGGATGGTATAGGGAAGTTAAAAATTTTATTACGTACTTTGTTTGAT"}], "target_id": 87}, {"mhap_location": {"chrom": "Pf3D7_01_v3", "end": 531899, "genome_id": 0, "start": 531681, "strand": "+"}, "microhaplotypes": [{"seq": "AAAGAAAGATGTTAAGAAAAAAAAGATCGATATGATAAATATATTACACATACCTACAAATAATTATAGCATGCCAAATGAAAAAGATATAAACAGTTATGAATTTTTTGGATCTGAACCTATTGAATTATATGATGGAAAATCTAATAAGAATTGTGTTATAACTAGCCAATCTTATATTTGTATTGAAAACCCGCATGCTGCCATATTATCCGA"}, {"seq": "AAAGAAAGATGTTAAGAAAAAAAAGATCGATATGATAAATATATTACACATTCCTACAAATAATTATAGCATGCCAAATGAAAAAGATATAAACAGTTATGAATTTTTTGGATCTGAACCTATTGAATTATATGATGTAAAATCTAATAAGAATTGTGTTATAACTAGCCAATCTTATATTTGTATTGAAAACCCGCATGCTGCCATAGTATCCGA"}, {"seq": "AAAGAAAGATGTTAAGAAAAAAAAGATCGATATGATAAATATATTACACATTCCTACAAATAATTATAGCATGCCAAATGAAAAAGATATAAACAGTTATGAATTTTTTGGATCTGAACCTATTGAATTATATGATGGAAAATCTAATAAGAATTGTGTTATAACTAGCCAATCTTATATTTGTATTGAAAACCCGCATGCTGCCATATTATCCGA"}, {"seq": "AAAGAAAGATGTTAAGAAAAAAAAGATCGATATGATAAATATATTACACATACCTACAAATAATTATAACATGCCAAATGAAAAAGATATAAACAGTTATGAATTTTTTGGATCTGAACCTATTGAATTATATGATGTAAAATCTAATAAGAATTGTGTTATAACTAGCCAATCTTATATTTGTATTGAAAACCCGCATGCTGCCATATTATCCGA"}, {"seq": "AAAGAAAGATGTTAAGAAAAAAAAGATCGATATGATAAATATATTACACATACCTACAAATAATTATAACATGCCAAATAAAAAAGATATAAACAGTTATGAATTTTTTGGATCTGAACCTATTGAATTATATGATGTAAAATCTAATAAGAATTGTGTTATAACTAGCCAATCTTATATTTGTATTGAAAACCCGCATGCTGCCATATTATCCGA"}], "target_id": 24}, {"mhap_location": {"chrom": "Pf3D7_10_v3", "end": 377208, "genome_id": 0, "start": 377094, "strand": "+"}, "microhaplotypes": [{"seq": "ACCAAAAAATGATACCTGTACGTTTTTCTCCAGGAGAAACAAAAAAATTAGAAAGGATTCTCAAAAAAGTAGACGACTTTTTCTGTGCCAATATTAAAGCGCATTATACCTG"}, {"seq": "ACCAAAAAATGATACCTGTACGTTTTTCTCCAGGAGAAACAAAAAAATTAGAAAGGATTCTCAAAAAAGTAGACGACTTTTTCTGTGCCAATATTAAAGCGCAATATACCTG"}], "target_id": 63}, {"mhap_location": {"chrom": "Pf3D7_10_v3", "end": 992543, "genome_id": 0, "start": 992370, "strand": "+"}, "microhaplotypes": [{"seq": "TTTTAAAAAAAAAAATTATGATATAAAATCTTCAATTAATAAAAGATCTATCCAGTTCTTTAGAGACACTAATATAGATCATTATATAGCATATGAATATTATAAGGAGGACCGTACAGAATTTATATTAACTATTATGAATGAAAAAAATATTACTCATCAAGAAACTCA"}, {"seq": "TTTTAAAAAAAAAAATTATGATATAAAATCTTCAATTAATAAAAGATCTATCCAGTTCTTTAAAGACACTAATATAGATCATTATATAGCATATGAATATTATAAGGAGGACCGTACAGAATTTATATTAACTATTATGAATGAAAAAAATATTACTCATCAAGAAACTCA"}, {"seq": "TTTTAAAAAAAAAAATTATGATATAAAATCTTCAATTAATAAAAGATCTATCCAGTTCTTTACAGACACTAATATAGATCATTATATAGCATATGAATATTATAAGGAGGACCGTACAGAATTTATATTAACTATTATGAATGAAAAAAATATTACTCATCAAGAAACTCA"}], "target_id": 65}, {"mhap_location": {"chrom": "Pf3D7_10_v3", "end": 1386868, "genome_id": 0, "start": 1386699, "strand": "+"}, "microhaplotypes": [{"seq": "GAGAACAGGTTAAATATATTGAAGACGTGGTTTGATAATCAGGTATTTCTTTAATTAAATATTCATGATATTGTTCGTTAGATACATAAATTAATTCATCCTCCACATTTTGCTGTTCTGTTATAATTTGTGAAGAAGCTTGGTTTGTTTTATTTGGTAATTGCTCT"}, {"seq": "GGGAACAGGTTAAATATATTGAAGACGTGGTTTGATAATCAGGTATTTCTTTAATTAAATATTCATGATATTGTTCGTTAGATACATAAATTAATTCGTCCTCCACATTTTGCTGTTCTGTTATAATTTGTGAAGAAGCTTGGTTTGTCTTATTTGGTAATTGCTCT"}, {"seq": "GAGAACAGGTTAAATATATTGAAGACGTGGTTTGATAATCAGGTATTTCTTTAATTAAATATTCATGATATTGTTCGTTAGATACATAAATTAATTCGTCCTCCACATTTTGCTGTTCTGTTATAATTTGTGAAGAAGCTTGGTTTGTCTTATTTGGTAATTGCTCT"}], "target_id": 34}, {"mhap_location": {"chrom": "Pf3D7_10_v3", "end": 1399710, "genome_id": 0, "start": 1399543, "strand": "+"}, "microhaplotypes": [{"seq": "ACATCAGAACATAGTAAAGATTTAAATAATAATGATTCAAAAAATGAATCTAGTGATATTATTTCAGTAAATAATAAATCAAATAAAGTACAAAATCATTTTGAATCATTATCAGATTTAGAATTACTTGAAAATTCCTCACAAGATAATTTAGACAAAGATACA"}, {"seq": "ACATCAGAACATAGTAAAGATTTAAATAATAATGATTCAAAAAATGAATCTAGTGATATTATTTCAGAAAATAATAAATCAAATAAAGTACAAAATCATTTTGAATCATTATCAGATTTAGAATTACTTGAAAATTCCTCACAAGATAATTTAGACAAAGATACA"}, {"seq": "ACATCAGAACATAGTAAAGATTTAAATAATAATGGTTCAAAAAATGAATCTAGTGATATTATTTCAGAAAATAATAAATCAAATAAAGTACAAAATCATTTTGAATCATTATCAGATTTAGAATTACTTGAAAATTCCTCACAAGATAATTTAGACAAAGATACA"}, {"seq": "ACATCAGAACATAGTAAAGATTTAAATAATAATGATTCAAAAAATGAATCTAGTGATATTATTTCAGAAAATAATAAATCAAATAAAGTAGAAAATCATTTTGAATCATTATCAGATTTAGAATTACTTGAAAATTCCTCACAAGATAATTTAGACAAAGATACA"}], "target_id": 71}, {"mhap_location": {"chrom": "Pf3D7_10_v3", "end": 1436681, "genome_id": 0, "start": 1436478, "strand": "+"}, "microhaplotypes": [{"seq": "GAGAAGAAACACGTTTTATCTCATAATTCATATGAGAAAACTAAAAATAATGAAAATAATAAATTTTTCGATAAGGATAAAGAGTTAACGATGTCTAATGTAAAAAATGTGTCACAAACAAATTTCAAAAGTCTTTTAAGAAATCTTGGTGTTTCAGAGAATATATTCCTTAAAGAAAATAAATTAAATAAGGAAGGGAAA"}, {"seq": "GAGGAGAAACACGTTTTATCTCATAATTCATATGAGAAAACTAAAAATAATGAAAATAATAAATTTTTCGATAAGGATAAAGAGTTATCGATGTCTAATGTAAAAAATGTGTCACAAACAAATTTCAAAAGTCTTTTAAGAAATCTTGGTGTTTCAGAGAATATATTCCTTAAAGAAAATAAATTAAATAAGGAAGGGAAA"}], "target_id": 23}, {"mhap_location": {"chrom": "Pf3D7_11_v3", "end": 119692, "genome_id": 0, "start": 119485, "strand": "+"}, "microhaplotypes": [{"seq": "TTCATCCAAAAGTAATTATGTTTTTCTTGTTGATATTTTGCTTTATACAAACGAGCAAGATACTTATTATACGATTCATGCTCTTTAATTTTCTTTTCAAAAGTTTTGGTTATAATGTGTTGAAGTGATTGTAAAGTATTTTTCTTTAATTTTCTCCATATTAATCTACATGCGATTATAAGAATTCTATATTCTTTGATATTCC"}, {"seq": "TTCATCCAAAAGTAATTATGTTTTTCTTGTTGATATTTTGCTTTATACAAACGAGCAAGATACTTATTATACGATTCATGCTCTTTAATTTTCTTTTCAAAAGTTTTGGTTATAATGTGTTCAAGTGATTGTAAAGTATTTTTCTTTAATTTTCTCCATATTAATCTACATGCGATTATAAGAATTCTATATTCTTTGATATTCC"}, {"seq": "TTCATCCAAGAGTAATTATGTTTTTCTTGTTGATATTTTGCTTTATACAAACGAGCAAGATACTTATTATACGATTCATGCTCTTTAATTTTCTTTTCAAAAGTTTTGGTTATAATGTGTTGAAGTGATTGTAAAGTATTTTTCTTTAATTTTCTCCATATTAATCTACATGCGATTATAAGAATTCTATATTCTTTGATATTCC"}], "target_id": 22}, {"mhap_location": {"chrom": "Pf3D7_11_v3", "end": 1010037, "genome_id": 0, "start": 1009855, "strand": "+"}, "microhaplotypes": [{"seq": "AGTTCTATCTATTTGTTTAATTGGTGTCCATGAATTTTTAGAGAAACACCACATATCAGCTAATAAGGAATTATTAACATCTAATCCTCCATGAATATATAAAAAATCATTAAAACTGAAAGAAGCATGCTTATATCTTGCACGTGGACAAATTTTATTTCCAATAAGTTCCCATTTCTT"}, {"seq": "AATTCTATCTATTTGTTTAATTGGTGTCCATGAATTTTTAGAGAAACACCACATATCAGCTAATAAGGAATTATTAACATCTAATCCTCCATGAATATATAAAAAATCATTAAAACTGAAAGAAGCATGCTTATATCTTGCACGTGGACAAATTTTATTTCCAATAAGTTCCCATTTCTT"}], "target_id": 20}, {"mhap_location": {"chrom": "Pf3D7_11_v3", "end": 1019084, "genome_id": 0, "start": 1018952, "strand": "+"}, "microhaplotypes": [{"seq": "TAGTGACTGTACATTTTTCATCTAATGTTCTATAGGATAAAGAATCTGAAGGACAATGCATATCATTACAAAAATAGCATGCACCTTTAAAATATAAATAAGAATGTCTTAACACAACAAAGGAATCAAA"}], "target_id": 56}, {"mhap_location": {"chrom": "Pf3D7_11_v3", "end": 1376371, "genome_id": 0, "start": 1376184, "strand": "+"}, "microhaplotypes": [{"seq": "TCTCATTCCTTTGAAAATATGAACTATTCAACTCATCAAGGTTTTCATATGTTATTTCATAACTGCCATCATCTGAATCCTCTTCATCACTACTACTTAAAGAATGCTCTTCTACAGTTATATCTTCATAATGATTATTTTTAGGAAAATATTCTTCAGATCTTTCTATAAATTCTGTTCCATTA"}, {"seq": "TCTCATTCCTTTGAAAATATGAACTATTCAACTCATCAAGGTTTTCATATGTTATTTCATAAGTGCCATCATCTGAATCCTCTTCATCACTACTACTTAAAGAATGCTCTTCTACAGTTATATCTTCATAATGATTATTTTTAGGAAAATATTCTTCAGATCTTTCTATAAATTCTGTTCCATTA"}], "target_id": 60}, {"mhap_location": {"chrom": "Pf3D7_11_v3", "end": 1552639, "genome_id": 0, "start": 1552429, "strand": "+"}, "microhaplotypes": [{"seq": "ATATCGACAATTATAAAGAAAAAATAGAAAATTTTAATGAAAGATATTATGAAGATGATTTAAGTTTCTTAAACTTTCCAGGAACCATAACAAGTTATGATAAAAACCATCAAAGAGATAAAAGAAAAAACTGTTTTGAAGAATATCTAGACAATAATAATTATTTTATTGATAGTAATCTAAAGGAAGTTATAGAAAATAATATATA"}], "target_id": 19}, {"mhap_location": {"chrom": "Pf3D7_01_v3", "end": 532843, "genome_id": 0, "start": 532689, "strand": "+"}, "microhaplotypes": [{"seq": "CTTTCTTAATTCTATGAATGAAGAATATACGCATATTAATTTAAATAACTTTATACATAATGATAACAATGATAAAGACGAAAATTATACATTAGATCAGGTGGAAGAATATCCTATGACTAGTTATCAAAATAATATATACAAGGATTTTT"}, {"seq": "CTTTCTTAATTCTATGAATGAAGAATATACGCATATTAATTTAAATAACTTTATACATAATAATAACCATGATAATGACGAAAATTATACATTAGATCAGGTGGAAGGATATCCTATGACTAGTTATCAAAATAATATATACAAGGATTTTT"}], "target_id": 40}, {"mhap_location": {"chrom": "Pf3D7_11_v3", "end": 1751054, "genome_id": 0, "start": 1750864, "strand": "+"}, "microhaplotypes": [{"seq": "TATTAAAAACAACAAATAAATTACCAAGGTCATGGAAAAAACTCTTGTTAAATCTATCCATTAGATTTCAAACAATACCTATAGGTGGTTCTATCGAAATCATATCAAAGGATGAGAAAAATATTTCTGTGACACGATCCAGTGAATATAATGCAACAACATATGAGCATTACACATTTCCCAAATGG"}, {"seq": "TATTAAAAACAACAAATAAATTACCAAGGTCATGGAAAAAACTCTTGTTAAATCTATCCATTAGATTTCAAACAATACCTATAGGTGGTTCTATCGAAATCATATCAAAGGATGAGAAAAATATTTCTATGACACGATCCAGTGAATATAATGCAACAACATATGAGCATTACACATTTCCCAAATGG"}, {"seq": "TATTAAAAACAACAGATAAATTACCAAGGTCATGGAAAAAACTCTTGTTAAATCTATCCATTAGATTTCAAACAATACCTATAGGTGGTTCTATCGAAATCATATCAAAGGATGAGAAAAATATTTCTATGACACGATCCAGTGAATATAATGCAACAACATATGAGCATTACACATTTCCCAAATGG"}], "target_id": 21}, {"mhap_location": {"chrom": "Pf3D7_11_v3", "end": 1816424, "genome_id": 0, "start": 1816210, "strand": "+"}, "microhaplotypes": [{"seq": "TTGACTTCTCCGGGTTGGTTACATTATCATTACAACCAATATTATTAAGGTTAATATTATTTTTATCATTATTATTGTTGTTTTCATTTGTGTGGTTATATAATAACAATGATGTGTCGTCTATTGGATCATTTTGCACAAGGTCAATATCATTAGAATTATGTTTCATATTATTTGTATACATTTTTTTGTAATTATCATTTTTTCTTACT"}, {"seq": "TTGACTTCTCCGGGTTTGTTACATTATCATTACAACCAATATTATTAAGGTTAATACTATTTTTATCATTATTATTGTTGTTTTCATTTGTGTGGTTATATAATAACAATGATGTGTCGTCTATTGGATCATTTTGCACAAGGTCAATATCATTAGAATTATGTTTCATATTATTTGTATACATTTTTTTGTAATTATCATTTTTTCTTACT"}, {"seq": "TTGACTTCTCCGGGTTTGTTACATTATCATTACAACCAATATTATTAAGGTTAATATTATTTTTATCATTATTATTGTTGTTTTCATTTGTGTGGTTATATAATAACAATGATGTGTCGTCTATTGGATCATTTTGCACAAGGTCAATATCATTAGAATTATGTTTCATATTATTTGTATACATTTTTTTGTAATTATCATTTTTTCTTACT"}, {"seq": "TTGACTTCTCCGGGTTTGTTACATTATCATTACAACCAATATTATTAAGGTTAATATTATTTTTATCATTATTATTGTTGTTTTCATTTGTGTGGTTATATAATAACAATGATGTGTCGTCTATTGGATCATTTTGCACAAGGTCAATATCATTAGAATTATGTTTCCTATTATTTGTATACATTTTTTTGTAATTATCATTTTTTCTTACT"}], "target_id": 18}, {"mhap_location": {"chrom": "Pf3D7_12_v3", "end": 63279, "genome_id": 0, "start": 63165, "strand": "+"}, "microhaplotypes": [{"seq": "ATAATTTCAGCTTTTGAATTACATATGTCTGTATTCAAAAATTTTATATCTCTACTCCATATATTTATCTTTACACCCAAAAACAAAGTAATGAAAAAAATAACCCTTTCAT"}, {"seq": "ATAATTTCACCTTTTGAATTACATATGTCTGTATTCAAAAATTTTATATCTCTACTCCATATATTTATCTTTACACCCAAAAACAAAGCAATGAAAAAAATAACCCTTTCAT"}, {"seq": "ATAATTTCACCTTTTGAATTACATATGTCTGTATTCAAAAATTTTATATCTCTACTCCATATATTTATCTTTACACCCAAAAACAAAGCAATGAAAAAAACAACCCTTTCAT"}, {"seq": "ATAATTTCACCTTTTGAATTACATATGTCTGTATTCAAAAATTTTATATCTCTACTCCATATATTTATCTTTACACCCAAAAACAAAGTAATGAAAAAAATAACCCTTTCAT"}], "target_id": 69}, {"mhap_location": {"chrom": "Pf3D7_12_v3", "end": 660009, "genome_id": 0, "start": 659890, "strand": "+"}, "microhaplotypes": [{"seq": "GGTCGACTTTTGGTGGTTTAACATTTTGAGCTACGAGATTTTCGACTGATGGCAATCCTACTTTGATTAATTCCTTTAACATAGATTTTGCGTGTCTTTTTACTTCTGATTTGATAT"}, {"seq": "GGTCGACTTTTGGTGGTTTAACATTTTGAGCTACGAGTTTTTCGAATGATGGCAATCCTACTTTGATTAATTCCTTTAACATAAGTTTTGCGTGGTTTTTTACTTCTGATTTGATAT"}, {"seq": "GGTCGACTTTTGGTGGTTTAACATTTTCAGCTATGAGTTTTTCGACTGATGGCAATCCTACTTTGATTAATTCCTTTAACATAAGTTTTGCGTGTTTTTTTACTTCTGATTTGATAT"}, {"seq": "GGTCGACTTTTGGTGGTTTAACATTTTCAGCTACGAGTTTTTCGACTGATGGCAATCCTACTTTGATTAATTCCTTTAACATAAGTTTTGCGTGTCTTTTTACTTCTGATTTGATAT"}], "target_id": 16}, {"mhap_location": {"chrom": "Pf3D7_12_v3", "end": 684260, "genome_id": 0, "start": 684087, "strand": "+"}, "microhaplotypes": [{"seq": "ATATCAAGATGGTAGTATTGTTTTAGAGGTTAGTAGTACGAGAGATAAACTTTATGGAGAAGTTGAGTGGGAAGGATATAAATTTGAACTTGTGGATACAGGAGGTTTAGTTTTTGAACAAGAAAAGTTTTCAAAAGAAATAAAGGATCAAATTCTTATGGCTCTAAAAGA"}, {"seq": "ATATCAAGATGGTAGTATTGTTTTAGATGTTAGTAGTACGAGAGATAAACTTTATGGAGAAGTTGAGTGGGAAGGATATAAATTTGAACTTGTGGATACAGGAGGTTTAGTTTTTGAACAAGAAAAGTTTTCAAAAGAAATAAAGGATCAAATTCTTATGGCTCTAAAAGA"}, {"seq": "ATATCAAGATGGTAGTATTGTTTTAGATGTTAGTAGTACGAGAGATAAACTTTATGGAGAAGTTGAGTGGGAAGGATATAAATTTGAACTTGTGGATACAGGAGGTTTAGTTTTTGAACAAGAAAAGTTTTCAAAAGAAATAAAGGATCAAATTTTTATGGCTCTAAAAGA"}], "target_id": 14}, {"mhap_location": {"chrom": "Pf3D7_12_v3", "end": 943427, "genome_id": 0, "start": 943257, "strand": "+"}, "microhaplotypes": [{"seq": "ATCAACTATAATTAAAAATAGTGGAATTATTGAAAACTTTGGAGATATTGATTATATCTTTACGGATAAAACAGGAACACTAACAGAAAATGTTATGGTGCTTAAAGTTATACATATAGGTTTTGATGTTATACATGCAGAAAATGAAAAAAATTCCATACAAGGTAA"}, {"seq": "ATCAACTATAATTAAAAATAGTGGAATTATTGAAAACTTTGGAGATATTGATTATATCTTTACGGATAAAACAGGAACATTAACAGAAAATGTTATGGTGCTTAAAGTTATACATATAGGTTTTGATGTTATACATGCAGAAAATGAAAAAAATTCCATACAAGGTAA"}], "target_id": 91}, {"mhap_location": {"chrom": "Pf3D7_12_v3", "end": 2050313, "genome_id": 0, "start": 2050129, "strand": "+"}, "microhaplotypes": [{"seq": "TTTAAACTTTGAATCTGTTCAATTAATAACACTTCATCATTGTCTTCGCCTTTTATAATATCTCCATGATTATGTGCTCCTCTAATTAAGGTATCACTAACCTGTTGTTCATCTGTCGCATGAGAACTAGTAGATATATCTGGTTTATTTTTTTTCTTTCTTTTTGTTATTTCTAATTTTTT"}, {"seq": "TTTAAACTTTGAATCTGTTCAATTAATAACACTTCATCATTGTCTTCTCCTTTTATAATATCTCCATGATTATGTGCTCCTCTAATTAAGGTATCACTAACCTGTTGTTCATCTGTCGCATGAGAACTAGTAGATATATCTGGTTTATTTTTTTTCTTTCTTTTTGTTATTTCTAATTTTTT"}, {"seq": "TTTAAACTTTGAATCTGTTCAATTAATAACACTTCATCATTGTCTTCTCCTTTTATAATATCCCCATGATTATGTGCTCCTCTAATTAAGGTATCACTAACCTGTTGTTCATCTGTCGCATGAGAACTAGTAGATATATCTGGTTTATTTTTTTTCTTTCTTTTTGTTATTTCTAATTTTTT"}], "target_id": 36}, {"mhap_location": {"chrom": "Pf3D7_13_v3", "end": 103878, "genome_id": 0, "start": 103658, "strand": "+"}, "microhaplotypes": [{"seq": "ACTGATGTTAATGAAGGCCAAAATGGAAAACGTTTAACACAAGAAAAAACCCTAAAACAAATTCCTTCGACATCACCAAATAATTTAGAACAAAAATTACAACAAACACATATTTCTTCTTCCCAACAAAAACATTTAATAAAAACTACTCCTACTTCAGATTCAACTACAACTTCATCAAGCTCTTCTGTTCCTCTTACAAAACAATCCCTTCATTC"}, {"seq": "ACTGATGTTAATGAAGGCCAAAATGGAAAAAGTTTAACACAAGAAAAAACCCTAAAACAAATTCCTTCGACATCACCAAATAATTTAGAACAAAAATTACAACAAACACATATTTCTTCTTCCCAACAAAAACATTTAATAAAAACTACTCCTACTTCAGATTCAACTACAACTTCATCAAGCTCTTCTGTTCCTCTTACAAAACAATCCCTTCATTC"}], "target_id": 13}, {"mhap_location": {"chrom": "Pf3D7_13_v3", "end": 156721, "genome_id": 0, "start": 156565, "strand": "+"}, "microhaplotypes": [{"seq": "ATAGAGTTATTATGTTCGAATTAATGACCAGATTGTTTCGATTTTATACAAAACCAATAGACCTTATTATTACTATGAATACACACAGATATGACACACCTATATTGTTAAAACATTCAAACAGCTTACAACTTATCTTATCAAATCAACAAAA"}, {"seq": "ATAGAGTTATTATGTTCGAATTAATGACCAGATTATTTCGATTTTATACAAAACCAATAGACCTTATTATTACTATGAATACACACAGATATGACACACCTATATTGTTAAAACATTCAAACAGCTTACAACTTATCTTATCAAATCAACAAAA"}], "target_id": 17}, {"mhap_location": {"chrom": "Pf3D7_01_v3", "end": 534367, "genome_id": 0, "start": 534214, "strand": "+"}, "microhaplotypes": [{"seq": "GATAAAAAAAGAAAATGTACTAATCTACCTTGTGATTGTATCTTATGTAAAAAAAAGCACAATGTTTGTTATTGTAATATGTGTAAAAAGAAAGAGAAAAATATGAGAGAAGATTTATCGGTTGTAAAATATAATGAATATCCGATTAGTG"}, {"seq": "GATAAAAAAAGAAAATGTAACAATCTACCTTGTGATTGTATCTTATGTAAAAAAAAGCACAATGTTTGTTATTGTAATATGTGTAAAAAGAAAGAAAAAAATATGAGAGAAGATTTATCGGTTGTAAAATATAATGAATATCCTATTAGTG"}, {"seq": "GATAAAAAAAGAAAATGTAATAATCTACTTTGTGATTGTATCTTATGTAAAAAAAAGCACAATGTTTGTTATTGTAATATGTGTAAAAAGAAAGAGAAAAATATGAGAGAAGATTTATCGGTTGTAAAATATAATGAATATCCGATTAGTG"}, {"seq": "GATAAAAAAAGAAAATGTAACAATCTACCTTGTGATTGTATCTTATGTAAAAAAAAGCACAATGTTTGTTATTGTAATATGTGTAAAAAGAAAGAAAAAAATATGAGAGAAGATTTATCGGTTGTAAAATATAATGAATATCCGATTAGTG"}, {"seq": "GATAAAAAAAGAAAATGTAATAATCTACCTTGTGATTGTATCTTATGTAAAAAAAAGCACAATGTTTGTTATTGTAATATGTGTAAAAAGAAAGAAAAAAATATGAGAGAAGATTTATCGGTTGTAAAATATAATGAATATCCGATTAGTG"}], "target_id": 84}, {"mhap_location": {"chrom": "Pf3D7_13_v3", "end": 1150492, "genome_id": 0, "start": 1150302, "strand": "+"}, "microhaplotypes": [{"seq": "TAAAAAAAGCAAACAAAAAGAAAAGAGAATGGAAGATTTAAGTATTGAGGAAAATTTGAAAGAGAAATTAATAAACCTAAATATTCAGAAACAGTATAGTGGTTTCCATATGAAAGAAATGGAGGAACAAAATATTCCTGAATTAAATATTCCACAACTTTCAGCTATTCATAATAGAGAAGATATGA"}, {"seq": "TAAAAAAAGCAAACAAAAAGAAAAGAGAATGGAAGATTTAAGTATTGAGGAAAATTTGAAAGAGAAATTAATAAACCTAAATATTCAGAAACAGTATAGTGGTTTCCATATGAAAGAAATGGAGGAACAAAATATTCCTGAATTAAATATTCCACAACTTTCAGCTACTCATAATAGAGAAGATATGA"}], "target_id": 9}, {"mhap_location": {"chrom": "Pf3D7_13_v3", "end": 1419669, "genome_id": 0, "start": 1419542, "strand": "+"}, "microhaplotypes": [{"seq": "TGGTTTTTGTACTTCTTTTCCTTGTGTTGATATCTCTTGTTCATTTTTAGATTGAGTATCTGTTTCACTTTGTGCCTTTACCTTTGATAATACGTTTTTACCGAATAATCCTAAATTTTGGAATA"}, {"seq": "TGGTTTTTGTACTTTTTGTCCTTGTGTTGATATCTCTTGTTCATTTTTAGATTGAGTATCTGTTTCACTTTGTGCCTTTACCTTTGATAATACGTTTTTACCGAATAATCCTAAATTTTGGAATA"}], "target_id": 8}, {"mhap_location": {"chrom": "Pf3D7_13_v3", "end": 1725569, "genome_id": 0, "start": 1725364, "strand": "+"}, "microhaplotypes": [{"seq": "CCAATACAATAAATTCTACCATTTGACGTAACACCACAATTATTTCTTCTAGGTATATTTAAATTACTTGAAACATACCATACATCTCTTAAACGATCATACACCTCAGTTTCAAATAAAGCCTTATAATCATAGTTATTACCACCAAAAACGTATAAGAAATTATTCAATACAGCACTTCCAAAATAAGCTTTTTTGGTAGA"}], "target_id": 10}, {"mhap_location": {"chrom": "Pf3D7_13_v3", "end": 1876533, "genome_id": 0, "start": 1876351, "strand": "+"}, "microhaplotypes": [{"seq": "TATATTTTGGTTCAGACAAATGTACGTTACATGAAATATGTGCACTATCATCAACTAAAGAAATATCTAAACTATCTGTAAAAGTATGTTTAGAACTAACATTTGAAGAGAAGTTACATCCGTGTATGACTTTTTTTTCATATTTTGGTTTTAAAACTATTTTATAATTATTATTTTTAA"}, {"seq": "TATATTTTGGTTCAGACAAATGTACGTTACATGAAATATGTGCATTATCATCAACTAAAGAAATATCTAAACTATCTGTAAAAGTATGTTTAGAACTATCATTTGAAGAGAAGTTACATCCGTGTATGACTTTTTTTTCATATTTTGGTTTTAAAACTATTTTATAATTATTATTTTTAA"}], "target_id": 11}, {"mhap_location": {"chrom": "Pf3D7_13_v3", "end": 2115141, "genome_id": 0, "start": 2114974, "strand": "+"}, "microhaplotypes": [{"seq": "TCATTAAGTAAAAAATTTACGGTATCGACATTAACAGTGTAATAATTTCTTCCTAAATTTAAATGTTCTATATAATTCAAATTTAATACGGTATTTAACCTTTCTTCAAGTATTATCATTGCATTAATTTGAAACATAAGTGAAAAATTATTAGCACTTCTAAAA"}, {"seq": "TCATTAAGTAAAAAATTTACGGTATCGACATTAACAGTGTAATAATTTCTTCCTAAATTTAAATGTTCTAAATAATTCAAATTTAATACGGTATTTAACCTTTCTTCAAGTATTATCATTGCATTAATTTGAAACATAAGTAAAAAATTATTAGCACTTCTAAAA"}, {"seq": "TCATTAAGTAAAAAATTTACGGTATCGACATTAACAGTGTAATAATGTCTTCCTAAATTTAAATGTTCTAAATAATTCAAATTTAATACGGTATTTAACCTTTCTTCAAGTATTATCATTGCATTAATTTGAAACATAAGTAAAAAATTATTAGCACTTCTAAAA"}], "target_id": 68}, {"mhap_location": {"chrom": "Pf3D7_13_v3", "end": 2124846, "genome_id": 0, "start": 2124633, "strand": "+"}, "microhaplotypes": [{"seq": "AACATTTTTTTAACATCTTTACCTTTTTGACTTGGTTCTTCATCATAATTCTGTTGTTCTGCAGAATCAGCATTTACTTCAGTTTCTTCTTTATTTTGAAAAGTGTTTGATTCTACATGAGAATTGGAAGATGAACGTCTATGTTTTACTTCTGTATAACTAGTACGTTCTCCAGTATGATGAGCCTTAAGGTTTACATCTTCAGTTTCTT"}], "target_id": 7}, {"mhap_location": {"chrom": "Pf3D7_13_v3", "end": 2479245, "genome_id": 0, "start": 2479085, "strand": "+"}, "microhaplotypes": [{"seq": "CTATGCTTTATCAAAACAAAGTAATGAAAATGTAATACATTATTCTTGTCGATCTATATGTGCTTTTACAAAAAACCCTAAGGGTTTAGAAGCGGTAAAGGATATCAAGGACTTTGCGAATATTATAAGTAAATCTGTTGGTGATTTGAGTAAAGAGA"}, {"seq": "CCATGCTTTATCAAAACAAAGTAATGAAAATGTAATACATTATTCTTGTCGATCTATATGTGCTTTTACAAAAAACCCTAAGGGTTTAGAAGCGGTAAAGGATATCAAGGACTTTGCGAATATTATAAGTAAATCTGTTGGTGATTTGAGTAAAGAGA"}], "target_id": 6}, {"mhap_location": {"chrom": "Pf3D7_13_v3", "end": 2481287, "genome_id": 0, "start": 2481105, "strand": "+"}, "microhaplotypes": [{"seq": "GAACTTACTTTAGAAGCCATGAATTCGGCCGATGATCCATTGGAAGCATTTAAAAATACTTTATTAATATTTGATTTTAATTTATCTGAATTTGATAAGGATCCATATATAAATGGTGTGCATGATTTAGCATCTAATATAAAGGATTGTTTAAGAAAAGGAGGTCAGAGTAAAATATAT"}, {"seq": "GAACTTACTTTAGAAGCCATGAATTCGGCCGATGATCCATTGGAAGCATTTAAAAATACTTTATTAATATTTGATTTTAATTTATCTGAATTTGATAAGGATCCATATGTAAATGGTGTGCATGATTTAGCATCTAATATAAAGGATTGTTTAAGAAAAGGAGGTCACAGTAAAATATAT"}], "target_id": 47}, {"mhap_location": {"chrom": "Pf3D7_13_v3", "end": 2669306, "genome_id": 0, "start": 2669134, "strand": "+"}, "microhaplotypes": [{"seq": "AAAAAAATACATTTAAATCTATAATATTTGTAATAAATGATAAGAATATTAGTAATAATAGGGTACTACTATTTGTAAATACTTTTCTACATAATTTATCAATAGTAGGAAATATGATATTCTTTTTGTTTGGCTTTATTTTATCTGGGATTTTCCAATCATAAAGTTCG"}], "target_id": 5}, {"mhap_location": {"chrom": "Pf3D7_14_v3", "end": 40136, "genome_id": 0, "start": 39952, "strand": "+"}, "microhaplotypes": [{"seq": "CATAGAAATATGTGCGAAAATTGGGAAAAAAATAAATAACAGGAATTGTTATATAAATTGAATCAAGAATGGCACAAAGAAAATAATACTGGTGACTTTCACACTAGTGATATCACACACAATAGTGGTATTACATACACTAGTGGTAACATACCTAGTGAAAGTAATAGTAGTTATATCCA"}, {"seq": "CATAGAAATGTGTGCGAAAATTGGGAAAAAAATAAATAACAGGAATTGTTAGATAAATTGAATGAAGAATGGCACAAAGAAAATAATACTGGTGACTTTCACACTAGTGATATCACACACAATAGTGGTATTACATACACTAGTGGTAACATACCTAGTGAAAGTAATAGTAGTTATATCTA"}, {"seq": "CATAGAAATATGTGCGAAAATTGGGAAAAAAATAAATAACAGGAATTGTTATATAAATTGAATCAAGAATGGCACAAAGAAAATAATACTGGTGACTTTCACACTAGTGATATCACACACAATAGTGGTATTACATACAGTAGTGGTAACATACCTAGTGAAAGTAATAGTAGTTATATCCA"}], "target_id": 55}, {"mhap_location": {"chrom": "Pf3D7_01_v3", "end": 535109, "genome_id": 0, "start": 534940, "strand": "+"}, "microhaplotypes": [{"seq": "ATATTCCGTCAGATATTCAAAATGAATGTATTTGTTCAAAAATAAATGAAGATAGAAATAATGATATGATAAACATATCTGAAATATTTTATCGTTTCATTAAATTTATAACAATGATTGAAATATATTTGTGTGTAATAGAGGAAATTAAAAGGGAAGAATGGGAA"}, {"seq": "ATATTCCGTCAGATATTCAAAATGAATGTATTTGTTCAAAAATAAATGAAGATAGAAATAATGATATGATAAACATATCTGAAATATATTATCGTTTCATTAAATTTATAACAATGATTGAAATATATTTGTGTGTAATAGAGGAAATTAAAAGGGAAGAATGGGAA"}, {"seq": "ATACTCCGTCAGATATTCAAAATGAATGTATTTGTTCAAAAATAAATGAAGATAGAAATAATGATATGATAAACATATCTGAAATATATTATCGTTTCATTAAATTTATAACAATGATTGAAATATATTTGTGTGTAATAGAGGAAATTAAAAGGGAAGAATGGGAA"}], "target_id": 76}, {"mhap_location": {"chrom": "Pf3D7_14_v3", "end": 120350, "genome_id": 0, "start": 120214, "strand": "+"}, "microhaplotypes": [{"seq": "TTACAATGTTCTTCGCATTCGAAATTTTTTTCAGGATTACTTGAAAAGCCTTCTGGACAATTACAATATTCATATCCATGAGCATTCTTACAAACACCTTTTCCACAATTTAAAAAACATTTTTCTTCATTTAA"}, {"seq": "TTACAATGTTCTTCGCATTCGAAATTTTTTTCAGGATTACTTGAAAAGCCTTCTGGACAATTACAATATTCATATCCATGAACATTCTTACAAACACCTTTTCCACAATTTAAAAAACATTTTTCTTCATTTAA"}, {"seq": "TTACAATGTTCTTCGCATTCGAAATTTTTTTCAGGATTACTTGAAAAGCCTTCTGGACAATTACAATATTCATATCCATGAGCATTGTTACAAACACCTTTTCCACAATTTAAAAAACATTTTTCTTCATTTAA"}, {"seq": "TTACAATGTTCTTCGCATTCGAAATTTTTTTCAGGATTACTTGAAAAGCCTTGTGGACAATTACAATATTCATATCCATGAGCATTCTTACAAACACCTTTTCCACAATTTAAAAAACATTTTTCTTCATTTAA"}], "target_id": 83}, {"mhap_location": {"chrom": "Pf3D7_14_v3", "end": 150293, "genome_id": 0, "start": 150104, "strand": "+"}, "microhaplotypes": [{"seq": "TAATAATAGTAATATAAAGAATTATTCAGCTGTAGATATATTCTCACCCAAAAAAACTGGAAAGGAATGTATTAAATGTCTCCCAGATAATTTTTGTGAATGCGAATGTAGTTGTAAAAATAAAACAGGTTTTTCAATGAAATATAGACATGCCAGTAAGGGATCTAAAAGATATAGTAAAAAAATG"}, {"seq": "TAATAATAGTAATATAAAGAATTATTCAGCTGTAGATATATTCTCACCCAAAAAAACTGGAAAGGAATGTATTAAATGTCTCCCAGATAATTTTTGTGAATGCGAATGTAGTTGTAAAAATAAAACAGGTTTTTCAATGAAATATAGACATGCCAGTAAGGGATCTAAAAGATATCGTAAAAAAATG"}], "target_id": 97}, {"mhap_location": {"chrom": "Pf3D7_14_v3", "end": 279785, "genome_id": 0, "start": 279662, "strand": "+"}, "microhaplotypes": [{"seq": "AGTTATAGTGATTCATATAAGGTAAATTGTATTAATTTCTCTGAAGGATTTTGTTGCTGTCATCCAATAAATAATTTAGCACTATTATATGGAGAGTATCAACAAAATCAAGAATCAAAAA"}, {"seq": "AGTAATAGTGATTCATATAAGGTAAATTGTATTAATTTCTCTGAAGGATTTTGTTGCTGTCATCCAATAAATAATTTAGCACTATTATATGGAGAGTATCAACAAAATCAAGAATCAAAAA"}], "target_id": 88}, {"mhap_location": {"chrom": "Pf3D7_14_v3", "end": 407570, "genome_id": 0, "start": 407378, "strand": "+"}, "microhaplotypes": [{"seq": "CTCCTTCCTTTTCATTCTTTACTTTATTTCTATTAATACACAACTCTCCTTGAGTTAAGAGATTTACGATATTATCAATATTGTTTTCTTTCATATACTTCAACTTTTTACTATTCATTTTTAAAAGATAATTAACCAAGTTACTCATGTTTGTATTAGATGGTATGTTCCCAATTTTTTCGTCTTTTCT"}, {"seq": "CTACTACCTTTTCATTCTTTACTTTATTTCTATTAATACACAACTCTCCTTGAGTTAAGAGATTTACGATATTATCAATATTGTTTTCTTTCATATACTTCAACTTTTTACTATTCATTTTTAAAAGATAATTAACCAAGTTACTCATGTTTGTATTAGATGGTATGTTCCCAATTTTTTCGTCTTTTCT"}], "target_id": 66}, {"mhap_location": {"chrom": "Pf3D7_14_v3", "end": 564376, "genome_id": 0, "start": 564207, "strand": "+"}, "microhaplotypes": [{"seq": "TATTAAAACTTTTTTTTCTTTCTGTAAAGTTTGTACATTATGTTTTGATGAGTTTTTATTATCTTCATAAAACTTTATATATTTATAAAAATTATTTTGTATAAAATCATTTAATAAAGGTAACATAATTTTTTTAGCTTGATTCAATTCACTACATGAATGTATAT"}, {"seq": "TATTAAAACTTTTTTTTCTTTCTGTAAAGTTTGTACATTATGTTTTGATGAGTTTTGATTATCTTCATAAAACTTTATATATTTATAAAAATTATTTTGTATAAAATCATTTAATAAAGGTAACATAATTTTTTTAGCTTGATTCAATTCACTACATGAATGTATAT"}], "target_id": 2}, {"mhap_location": {"chrom": "Pf3D7_14_v3", "end": 1038485, "genome_id": 0, "start": 1038368, "strand": "+"}, "microhaplotypes": [{"seq": "ATACAACTAATAAAGCTCTACGATAAATTTCTTTTTTATTTGATTTAGAAAAAGGAGAAAACCATTGAAACTTTTTGGCTAGATATTTATGGTCTTTATCAAAAATATATTCTGA"}, {"seq": "ATACAACTAATAAAGCTCTACGATAAATTTCTTTTTTATTTGATTTAGAAAAAGGAGAAAACCATTGAAACTTTTTGGCTAGATATTTATGGTCTTTATCAAAAATATAATCTGA"}], "target_id": 1}, {"mhap_location": {"chrom": "Pf3D7_14_v3", "end": 1956285, "genome_id": 0, "start": 1956128, "strand": "+"}, "microhaplotypes": [{"seq": "TATATATAAAGTTAAACCTATAAATAATACACTACCTAATAAACTATTCTTATATTTAAAAATAAATATAATACATGTTATTAATCCTTCTATTGTTGCCGGAATAATATACATTAAAACAGAACTCATCAAATTATTAGCACTCTCGGTACCTC"}, {"seq": "TATATAAAGTTAAACCTATAAATAATACACTACCTAATAAACTATTCTTATATTTAAAAATAAATATAATACATGTTATTAATCCTTCTATTGTTGCCGGAATAATATACATTAAAACAGAACTCATCAAATTATTAGCACTCTCGGTACCTC"}, {"seq": "TATATATAAAGTTAAACCTATAAATAATACACTACCTAATAAACTATTCTTATATTTAAAAATAAATATAACACATGTTATTAATCCTTCTATTGTTGCCGGAATAATATACATTAAAACAGAACTCATCAAATTATTAGCACTCTCGGTACCTC"}], "target_id": 0}, {"mhap_location": {"chrom": "Pf3D7_14_v3", "end": 1992425, "genome_id": 0, "start": 1992288, "strand": "+"}, "microhaplotypes": [{"seq": "TAATCACCAGTACCATTTTTTTCTGATAAATTAATATTTTTTTGTATAACATCATATTTATCCCTTTTCGTGGTAAGTGCAGTATCCTGTTTTATTATTATATTATCGAATTCATCATGGTGTATATTTCTTTCT"}, {"seq": "TAAACACCAGTACCATTTTTTTCTGATAAATTAATATTTTTTTGTATAACATCATATTTATCCCTTTTCGTGGTAAGTGCAGTATCCTGTTTTATTATTATATTATCGAATTCATCATGGTGTATATTTCTTTCA"}, {"seq": "TAAACACCAGTACCATTTTTTTCTGATAAATTAATATTTTTTTGTATAACATCATATTTATCCCTTTTCGTGGTAAGTGCAGTATCCTGTTTTATTATTATATTATCGAATTCATCATGGTGTATATTTCTTTCT"}], "target_id": 50}, {"mhap_location": {"chrom": "Pf3D7_14_v3", "end": 2525088, "genome_id": 0, "start": 2524961, "strand": "+"}, "microhaplotypes": [{"seq": "AATGAGGTATAATCATTCATTTCGTTGGGTCGATTTGATCTATTTTTAAGGTCCATATATTGAGATGAATCATTATGCATTTTATAATCATGAGGGATATTAGGTGCATGGTATTTAGGGTCTTT"}, {"seq": "AATGAGGTATAATCATCCATTTCGTTGGGTCGATTTGATCTATTTTTAAGGTCCATATATTGAGATGAATCATTATGCATTTTATAATCATGAGGGATATTAGGTGCATGGTATTTAGGGTCTTT"}, {"seq": "AAAGAGGTATAATCATCCATTTTGTTGGGTCGATTTGATCTATTTTTAAGGTCCATATATTGAGATGAATCATTATGCATTTTATAATCATGAGGGATATTAGGTGCATGGTATTTAGGGTCTTT"}], "target_id": 12}, {"mhap_location": {"chrom": "Pf3D7_14_v3", "end": 3124841, "genome_id": 0, "start": 3124641, "strand": "+"}, "microhaplotypes": [{"seq": "ATGGAAAAATGGAATATGAAGTATTAAGTGATGATAATATAGTGTATGAAAATATACAACATGATTTATTAAAAACAATAGAAGATGGTGAAGAAATGTTAAAAGGAACTGAAAGGAAGGATAATATAGATATACTGAGGACTCCTGGAAGGGGAGAATATAATATGTGGTCTACTTCTGGACTAGGGTTCTATGAAT"}, {"seq": "ATGGAAAAATGGAATATGAAGTATTAAGTGATGATAAAATAGTGTATGAAAATATACAACATGATTTATTAAAAACAATAGAAGATGATGACGAAATGTTAAAAGGAACTGAAAGGAAGGATAATATAGATATACTGAGGACTCCTGGAAGGGGAGAATATAATATGTGGTCTACTTCTGGACTAGGGTTCTATGAAT"}, {"seq": "ATGGAAAAATGGAATATGAAGTATTAAGTGATGATAAAATAGTGTATGAAAATATACAACATGATTTATTAAAAACAATAGAAGATGATGAAGAAATGTTAAAAGGAACTGAAAGGAAGGATAATATAGATATACTGAGGACTCCTGGAAGGGGAGAATATAATATGTGGTCTACTTCTGGACTAGGGTTCTATGAAT"}, {"seq": "ATGGAAAAATGGAATATGAAGTATTAAGTGATGATAAAATAGTGTATGAAAATATACAACATGATTTATTAAAAACAATAGAAGATGGTGAAGAAATGTTAAAAGGAACTGAAAGGAAGGATAATATAGATATACTGAGGACTCCTGGAAGGGGAGAATATGATATGTGGTCTACTTCTGGACTAGGGTTCTATGAAT"}, {"seq": "ATGGAAAAATGGAATATGAAGTATTAAGTGATGATAAAATAGTGTATGAAAATATACAACATGATTTATTAAAAACAATAGAAGATGATGAAGAAATGTTAAAAGGAACTGAAAGGAAGGATAATATAGATATACTGAGGACTCCTGGAAGGGGAGAATATGATATGTGGTCTACTTCTGGACTAGGGTTCTATGAAT"}], "target_id": 31}, {"mhap_location": {"chrom": "Pf3D7_12_v3", "end": 1237602, "genome_id": 0, "start": 1237430, "strand": "+"}, "microhaplotypes": [{"seq": "GTATGAACACAAAACCGAAAGAGAGTTTAAAAAAAGATCCGATTTTAATGAAGGAAGAAATAACATAATAAATGTGTCAAATGTAAAGAAAACATGTAATATAGTTAAAAATGATTTAAAGGAATCTAACGAGATAAAAACTAATATAAACACAAGTTCTTATAATTTAT"}], "target_id": 53}]}, "detected_microhaplotypes": [{"bioinformatics_run_id": 0, "library_samples": [{"library_sample_id": 1, "target_results": [{"mhaps": [{"mhap_id": 1, "reads": 2227}, {"mhap_id": 2, "reads": 51}], "mhaps_target_id": 98}, {"mhaps": [{"mhap_id": 0, "reads": 19391}], "mhaps_target_id": 97}, {"mhaps": [{"mhap_id": 2, "reads": 16586}], "mhaps_target_id": 96}, {"mhaps": [{"mhap_id": 2, "reads": 836}, {"mhap_id": 0, "reads": 33}], "mhaps_target_id": 95}, {"mhaps": [{"mhap_id": 0, "reads": 6967}], "mhaps_target_id": 94}, {"mhaps": [{"mhap_id": 1, "reads": 1010}], "mhaps_target_id": 93}, {"mhaps": [{"mhap_id": 0, "reads": 300}], "mhaps_target_id": 86}, {"mhaps": [{"mhap_id": 0, "reads": 4256}], "mhaps_target_id": 84}, {"mhaps": [{"mhap_id": 0, "reads": 958}], "mhaps_target_id": 83}, {"mhaps": [{"mhap_id": 0, "reads": 31313}], "mhaps_target_id": 79}, {"mhaps": [{"mhap_id": 0, "reads": 2554}], "mhaps_target_id": 78}, {"mhaps": [{"mhap_id": 0, "reads": 1379}], "mhaps_target_id": 81}, {"mhaps": [{"mhap_id": 0, "reads": 1089}], "mhaps_target_id": 75}, {"mhaps": [{"mhap_id": 0, "reads": 2310}], "mhaps_target_id": 72}, {"mhaps": [{"mhap_id": 1, "reads": 44681}], "mhaps_target_id": 71}, {"mhaps": [{"mhap_id": 0, "reads": 365}, {"mhap_id": 2, "reads": 19}], "mhaps_target_id": 69}, {"mhaps": [{"mhap_id": 0, "reads": 282}], "mhaps_target_id": 67}, {"mhaps": [{"mhap_id": 1, "reads": 3831}, {"mhap_id": 0, "reads": 64}], "mhaps_target_id": 63}, {"mhaps": [{"mhap_id": 1, "reads": 507}], "mhaps_target_id": 56}, {"mhaps": [{"mhap_id": 1, "reads": 2790}, {"mhap_id": 0, "reads": 67}], "mhaps_target_id": 10}, {"mhaps": [{"mhap_id": 0, "reads": 1186}, {"mhap_id": 1, "reads": 20}], "mhaps_target_id": 55}, {"mhaps": [{"mhap_id": 2, "reads": 5344}], "mhaps_target_id": 41}, {"mhaps": [{"mhap_id": 0, "reads": 10595}], "mhaps_target_id": 54}, {"mhaps": [{"mhap_id": 1, "reads": 1420}, {"mhap_id": 0, "reads": 30}], "mhaps_target_id": 50}, {"mhaps": [{"mhap_id": 0, "reads": 11091}], "mhaps_target_id": 48}, {"mhaps": [{"mhap_id": 1, "reads": 3576}], "mhaps_target_id": 59}, {"mhaps": [{"mhap_id": 0, "reads": 377}, {"mhap_id": 1, "reads": 15}], "mhaps_target_id": 7}, {"mhaps": [{"mhap_id": 0, "reads": 710}], "mhaps_target_id": 45}, {"mhaps": [{"mhap_id": 0, "reads": 259}, {"mhap_id": 1, "reads": 15}], "mhaps_target_id": 40}, {"mhaps": [{"mhap_id": 1, "reads": 1009}], "mhaps_target_id": 43}, {"mhaps": [{"mhap_id": 0, "reads": 3485}, {"mhap_id": 2, "reads": 31}], "mhaps_target_id": 74}, {"mhaps": [{"mhap_id": 1, "reads": 16766}, {"mhap_id": 0, "reads": 93}], "mhaps_target_id": 38}, {"mhaps": [{"mhap_id": 0, "reads": 13601}], "mhaps_target_id": 33}, {"mhaps": [{"mhap_id": 0, "reads": 33117}], "mhaps_target_id": 37}, {"mhaps": [{"mhap_id": 1, "reads": 1980}, {"mhap_id": 0, "reads": 15}], "mhaps_target_id": 14}, {"mhaps": [{"mhap_id": 1, "reads": 957}, {"mhap_id": 0, "reads": 25}], "mhaps_target_id": 32}, {"mhaps": [{"mhap_id": 0, "reads": 6197}], "mhaps_target_id": 39}, {"mhaps": [{"mhap_id": 0, "reads": 19559}], "mhaps_target_id": 29}, {"mhaps": [{"mhap_id": 0, "reads": 1167}], "mhaps_target_id": 85}, {"mhaps": [{"mhap_id": 0, "reads": 5895}], "mhaps_target_id": 11}, {"mhaps": [{"mhap_id": 0, "reads": 733}], "mhaps_target_id": 28}, {"mhaps": [{"mhap_id": 0, "reads": 860}], "mhaps_target_id": 26}, {"mhaps": [{"mhap_id": 0, "reads": 4213}], "mhaps_target_id": 27}, {"mhaps": [{"mhap_id": 1, "reads": 560}, {"mhap_id": 0, "reads": 19}], "mhaps_target_id": 58}, {"mhaps": [{"mhap_id": 0, "reads": 361}, {"mhap_id": 2, "reads": 17}], "mhaps_target_id": 21}, {"mhaps": [{"mhap_id": 0, "reads": 23438}], "mhaps_target_id": 31}, {"mhaps": [{"mhap_id": 1, "reads": 511}, {"mhap_id": 0, "reads": 16}], "mhaps_target_id": 92}, {"mhaps": [{"mhap_id": 0, "reads": 2230}, {"mhap_id": 1, "reads": 17}], "mhaps_target_id": 24}, {"mhaps": [{"mhap_id": 1, "reads": 419}], "mhaps_target_id": 82}, {"mhaps": [{"mhap_id": 1, "reads": 14122}], "mhaps_target_id": 70}, {"mhaps": [{"mhap_id": 0, "reads": 25203}], "mhaps_target_id": 57}, {"mhaps": [{"mhap_id": 0, "reads": 516}], "mhaps_target_id": 19}, {"mhaps": [{"mhap_id": 1, "reads": 2249}, {"mhap_id": 0, "reads": 48}, {"mhap_id": 2, "reads": 20}], "mhaps_target_id": 88}, {"mhaps": [{"mhap_id": 0, "reads": 371}], "mhaps_target_id": 4}, {"mhaps": [{"mhap_id": 1, "reads": 515}, {"mhap_id": 0, "reads": 22}], "mhaps_target_id": 0}, {"mhaps": [{"mhap_id": 1, "reads": 7336}], "mhaps_target_id": 3}, {"mhaps": [{"mhap_id": 1, "reads": 486}, {"mhap_id": 0, "reads": 20}], "mhaps_target_id": 87}, {"mhaps": [{"mhap_id": 0, "reads": 1564}, {"mhap_id": 1, "reads": 15}], "mhaps_target_id": 68}, {"mhaps": [{"mhap_id": 0, "reads": 17721}], "mhaps_target_id": 64}, {"mhaps": [{"mhap_id": 0, "reads": 784}], "mhaps_target_id": 25}, {"mhaps": [{"mhap_id": 0, "reads": 283}], "mhaps_target_id": 36}, {"mhaps": [{"mhap_id": 1, "reads": 7629}], "mhaps_target_id": 8}, {"mhaps": [{"mhap_id": 2, "reads": 1964}, {"mhap_id": 0, "reads": 50}], "mhaps_target_id": 16}, {"mhaps": [{"mhap_id": 0, "reads": 1213}], "mhaps_target_id": 80}, {"mhaps": [{"mhap_id": 1, "reads": 11070}, {"mhap_id": 0, "reads": 106}], "mhaps_target_id": 15}, {"mhaps": [{"mhap_id": 1, "reads": 2500}, {"mhap_id": 2, "reads": 39}], "mhaps_target_id": 60}, {"mhaps": [{"mhap_id": 0, "reads": 24537}], "mhaps_target_id": 30}, {"mhaps": [{"mhap_id": 0, "reads": 1868}, {"mhap_id": 2, "reads": 18}, {"mhap_id": 1, "reads": 15}], "mhaps_target_id": 13}, {"mhaps": [{"mhap_id": 1, "reads": 22789}], "mhaps_target_id": 89}, {"mhaps": [{"mhap_id": 2, "reads": 3602}, {"mhap_id": 0, "reads": 20}], "mhaps_target_id": 77}, {"mhaps": [{"mhap_id": 2, "reads": 2155}, {"mhap_id": 0, "reads": 16}, {"mhap_id": 3, "reads": 11}], "mhaps_target_id": 42}, {"mhaps": [{"mhap_id": 1, "reads": 16298}], "mhaps_target_id": 91}, {"mhaps": [{"mhap_id": 1, "reads": 2079}, {"mhap_id": 0, "reads": 38}], "mhaps_target_id": 65}, {"mhaps": [{"mhap_id": 0, "reads": 4739}], "mhaps_target_id": 22}, {"mhaps": [{"mhap_id": 0, "reads": 775}], "mhaps_target_id": 73}, {"mhaps": [{"mhap_id": 0, "reads": 618}], "mhaps_target_id": 20}, {"mhaps": [{"mhap_id": 1, "reads": 20051}], "mhaps_target_id": 46}, {"mhaps": [{"mhap_id": 1, "reads": 1533}, {"mhap_id": 0, "reads": 12}], "mhaps_target_id": 9}, {"mhaps": [{"mhap_id": 1, "reads": 34752}], "mhaps_target_id": 5}, {"mhaps": [{"mhap_id": 2, "reads": 6522}], "mhaps_target_id": 34}, {"mhaps": [{"mhap_id": 0, "reads": 26863}], "mhaps_target_id": 23}, {"mhaps": [{"mhap_id": 2, "reads": 15285}], "mhaps_target_id": 47}, {"mhaps": [{"mhap_id": 0, "reads": 1324}], "mhaps_target_id": 90}, {"mhaps": [{"mhap_id": 0, "reads": 1590}], "mhaps_target_id": 1}, {"mhaps": [{"mhap_id": 1, "reads": 46824}], "mhaps_target_id": 2}]}, {"library_sample_id": 0, "target_results": [{"mhaps": [{"mhap_id": 1, "reads": 23292}, {"mhap_id": 0, "reads": 8192}], "mhaps_target_id": 54}, {"mhaps": [{"mhap_id": 0, "reads": 17655}, {"mhap_id": 1, "reads": 6421}], "mhaps_target_id": 21}, {"mhaps": [{"mhap_id": 0, "reads": 29456}, {"mhap_id": 1, "reads": 6163}], "mhaps_target_id": 96}, {"mhaps": [{"mhap_id": 0, "reads": 33182}, {"mhap_id": 1, "reads": 283}], "mhaps_target_id": 95}, {"mhaps": [{"mhap_id": 0, "reads": 32066}], "mhaps_target_id": 94}, {"mhaps": [{"mhap_id": 0, "reads": 38609}], "mhaps_target_id": 93}, {"mhaps": [{"mhap_id": 0, "reads": 48414}], "mhaps_target_id": 46}, {"mhaps": [{"mhap_id": 1, "reads": 30508}, {"mhap_id": 0, "reads": 6187}], "mhaps_target_id": 30}, {"mhaps": [{"mhap_id": 0, "reads": 25447}], "mhaps_target_id": 86}, {"mhaps": [{"mhap_id": 0, "reads": 21610}], "mhaps_target_id": 84}, {"mhaps": [{"mhap_id": 0, "reads": 42576}], "mhaps_target_id": 83}, {"mhaps": [{"mhap_id": 0, "reads": 49627}], "mhaps_target_id": 79}, {"mhaps": [{"mhap_id": 0, "reads": 45595}], "mhaps_target_id": 78}, {"mhaps": [{"mhap_id": 0, "reads": 17913}], "mhaps_target_id": 80}, {"mhaps": [{"mhap_id": 0, "reads": 42252}], "mhaps_target_id": 81}, {"mhaps": [{"mhap_id": 0, "reads": 37051}, {"mhap_id": 1, "reads": 12590}], "mhaps_target_id": 97}, {"mhaps": [{"mhap_id": 0, "reads": 49953}], "mhaps_target_id": 75}, {"mhaps": [{"mhap_id": 0, "reads": 33844}], "mhaps_target_id": 72}, {"mhaps": [{"mhap_id": 1, "reads": 19299}, {"mhap_id": 0, "reads": 6398}], "mhaps_target_id": 16}, {"mhaps": [{"mhap_id": 0, "reads": 46915}], "mhaps_target_id": 71}, {"mhaps": [{"mhap_id": 0, "reads": 41720}, {"mhap_id": 1, "reads": 8246}], "mhaps_target_id": 76}, {"mhaps": [{"mhap_id": 0, "reads": 28472}, {"mhap_id": 1, "reads": 10008}], "mhaps_target_id": 69}, {"mhaps": [{"mhap_id": 0, "reads": 18960}], "mhaps_target_id": 66}, {"mhaps": [{"mhap_id": 0, "reads": 33183}], "mhaps_target_id": 63}, {"mhaps": [{"mhap_id": 0, "reads": 31147}], "mhaps_target_id": 68}, {"mhaps": [{"mhap_id": 0, "reads": 35366}], "mhaps_target_id": 62}, {"mhaps": [{"mhap_id": 0, "reads": 29611}], "mhaps_target_id": 61}, {"mhaps": [{"mhap_id": 0, "reads": 27075}], "mhaps_target_id": 56}, {"mhaps": [{"mhap_id": 0, "reads": 26668}, {"mhap_id": 1, "reads": 9510}], "mhaps_target_id": 51}, {"mhaps": [{"mhap_id": 0, "reads": 28161}], "mhaps_target_id": 50}, {"mhaps": [{"mhap_id": 0, "reads": 48791}], "mhaps_target_id": 31}, {"mhaps": [{"mhap_id": 0, "reads": 11363}, {"mhap_id": 1, "reads": 4463}], "mhaps_target_id": 49}, {"mhaps": [{"mhap_id": 0, "reads": 43173}], "mhaps_target_id": 35}, {"mhaps": [{"mhap_id": 1, "reads": 35561}, {"mhap_id": 0, "reads": 14385}], "mhaps_target_id": 48}, {"mhaps": [{"mhap_id": 0, "reads": 45402}], "mhaps_target_id": 98}, {"mhaps": [{"mhap_id": 0, "reads": 21661}, {"mhap_id": 1, "reads": 7975}], "mhaps_target_id": 47}, {"mhaps": [{"mhap_id": 1, "reads": 34294}, {"mhap_id": 0, "reads": 12740}], "mhaps_target_id": 27}, {"mhaps": [{"mhap_id": 0, "reads": 49955}], "mhaps_target_id": 59}, {"mhaps": [{"mhap_id": 0, "reads": 16463}], "mhaps_target_id": 40}, {"mhaps": [{"mhap_id": 1, "reads": 37292}, {"mhap_id": 0, "reads": 12510}], "mhaps_target_id": 74}, {"mhaps": [{"mhap_id": 0, "reads": 24539}], "mhaps_target_id": 7}, {"mhaps": [{"mhap_id": 0, "reads": 41530}], "mhaps_target_id": 45}, {"mhaps": [{"mhap_id": 0, "reads": 29642}, {"mhap_id": 1, "reads": 12542}], "mhaps_target_id": 33}, {"mhaps": [{"mhap_id": 1, "reads": 20519}, {"mhap_id": 0, "reads": 7538}], "mhaps_target_id": 67}, {"mhaps": [{"mhap_id": 0, "reads": 27730}], "mhaps_target_id": 37}, {"mhaps": [{"mhap_id": 0, "reads": 49338}], "mhaps_target_id": 3}, {"mhaps": [{"mhap_id": 0, "reads": 32341}, {"mhap_id": 1, "reads": 12140}], "mhaps_target_id": 14}, {"mhaps": [{"mhap_id": 0, "reads": 49365}], "mhaps_target_id": 32}, {"mhaps": [{"mhap_id": 0, "reads": 39009}], "mhaps_target_id": 39}, {"mhaps": [{"mhap_id": 1, "reads": 27621}, {"mhap_id": 0, "reads": 9786}], "mhaps_target_id": 29}, {"mhaps": [{"mhap_id": 0, "reads": 29934}], "mhaps_target_id": 85}, {"mhaps": [{"mhap_id": 0, "reads": 49971}], "mhaps_target_id": 11}, {"mhaps": [{"mhap_id": 0, "reads": 23924}], "mhaps_target_id": 28}, {"mhaps": [{"mhap_id": 0, "reads": 29713}], "mhaps_target_id": 26}, {"mhaps": [{"mhap_id": 0, "reads": 38625}], "mhaps_target_id": 87}, {"mhaps": [{"mhap_id": 0, "reads": 49969}], "mhaps_target_id": 64}, {"mhaps": [{"mhap_id": 0, "reads": 45069}], "mhaps_target_id": 8}, {"mhaps": [{"mhap_id": 0, "reads": 24050}], "mhaps_target_id": 19}, {"mhaps": [{"mhap_id": 0, "reads": 41999}], "mhaps_target_id": 36}, {"mhaps": [{"mhap_id": 0, "reads": 48335}], "mhaps_target_id": 65}, {"mhaps": [{"mhap_id": 1, "reads": 22586}, {"mhap_id": 0, "reads": 18757}], "mhaps_target_id": 25}, {"mhaps": [{"mhap_id": 0, "reads": 37449}, {"mhap_id": 1, "reads": 12495}], "mhaps_target_id": 34}, {"mhaps": [{"mhap_id": 0, "reads": 31005}, {"mhap_id": 1, "reads": 6377}], "mhaps_target_id": 57}, {"mhaps": [{"mhap_id": 0, "reads": 44271}], "mhaps_target_id": 23}, {"mhaps": [{"mhap_id": 0, "reads": 24451}], "mhaps_target_id": 58}, {"mhaps": [{"mhap_id": 0, "reads": 49746}], "mhaps_target_id": 92}, {"mhaps": [{"mhap_id": 0, "reads": 28724}, {"mhap_id": 1, "reads": 21186}], "mhaps_target_id": 24}, {"mhaps": [{"mhap_id": 0, "reads": 25672}], "mhaps_target_id": 82}, {"mhaps": [{"mhap_id": 0, "reads": 35612}], "mhaps_target_id": 70}, {"mhaps": [{"mhap_id": 0, "reads": 49786}], "mhaps_target_id": 15}, {"mhaps": [{"mhap_id": 0, "reads": 29564}], "mhaps_target_id": 60}, {"mhaps": [{"mhap_id": 0, "reads": 21816}], "mhaps_target_id": 18}, {"mhaps": [{"mhap_id": 0, "reads": 36326}], "mhaps_target_id": 6}, {"mhaps": [{"mhap_id": 0, "reads": 21602}, {"mhap_id": 1, "reads": 7824}], "mhaps_target_id": 13}, {"mhaps": [{"mhap_id": 0, "reads": 31697}], "mhaps_target_id": 38}, {"mhaps": [{"mhap_id": 0, "reads": 33113}, {"mhap_id": 1, "reads": 11252}], "mhaps_target_id": 88}, {"mhaps": [{"mhap_id": 0, "reads": 3203}, {"mhap_id": 1, "reads": 2781}], "mhaps_target_id": 52}, {"mhaps": [{"mhap_id": 0, "reads": 28266}, {"mhap_id": 1, "reads": 9483}], "mhaps_target_id": 4}, {"mhaps": [{"mhap_id": 0, "reads": 34463}, {"mhap_id": 1, "reads": 11600}], "mhaps_target_id": 0}, {"mhaps": [{"mhap_id": 0, "reads": 37213}], "mhaps_target_id": 43}, {"mhaps": [{"mhap_id": 0, "reads": 24157}, {"mhap_id": 1, "reads": 18874}], "mhaps_target_id": 22}, {"mhaps": [{"mhap_id": 0, "reads": 10520}, {"mhap_id": 1, "reads": 3622}], "mhaps_target_id": 12}, {"mhaps": [{"mhap_id": 0, "reads": 49745}], "mhaps_target_id": 89}, {"mhaps": [{"mhap_id": 0, "reads": 24530}, {"mhap_id": 1, "reads": 9730}], "mhaps_target_id": 77}, {"mhaps": [{"mhap_id": 1, "reads": 22427}, {"mhap_id": 0, "reads": 8239}], "mhaps_target_id": 42}, {"mhaps": [{"mhap_id": 0, "reads": 35294}, {"mhap_id": 1, "reads": 12195}], "mhaps_target_id": 41}, {"mhaps": [{"mhap_id": 0, "reads": 49972}], "mhaps_target_id": 55}, {"mhaps": [{"mhap_id": 0, "reads": 37605}], "mhaps_target_id": 91}, {"mhaps": [{"mhap_id": 0, "reads": 19230}], "mhaps_target_id": 53}, {"mhaps": [{"mhap_id": 0, "reads": 49701}], "mhaps_target_id": 10}, {"mhaps": [{"mhap_id": 1, "reads": 30585}, {"mhap_id": 0, "reads": 10686}], "mhaps_target_id": 73}, {"mhaps": [{"mhap_id": 0, "reads": 32967}], "mhaps_target_id": 20}, {"mhaps": [{"mhap_id": 0, "reads": 3634}], "mhaps_target_id": 44}, {"mhaps": [{"mhap_id": 0, "reads": 28109}], "mhaps_target_id": 9}, {"mhaps": [{"mhap_id": 0, "reads": 37013}], "mhaps_target_id": 5}, {"mhaps": [{"mhap_id": 0, "reads": 21764}, {"mhap_id": 1, "reads": 7383}], "mhaps_target_id": 17}, {"mhaps": [{"mhap_id": 0, "reads": 34162}], "mhaps_target_id": 90}, {"mhaps": [{"mhap_id": 0, "reads": 49728}], "mhaps_target_id": 1}, {"mhaps": [{"mhap_id": 0, "reads": 49740}], "mhaps_target_id": 2}]}]}, {"bioinformatics_run_id": 1, "library_samples": [{"library_sample_id": 3, "target_results": [{"mhaps": [{"mhap_id": 3, "reads": 289}], "mhaps_target_id": 2}, {"mhaps": [{"mhap_id": 1, "reads": 333}], "mhaps_target_id": 47}, {"mhaps": [{"mhap_id": 4, "reads": 480}], "mhaps_target_id": 98}, {"mhaps": [{"mhap_id": 0, "reads": 427}], "mhaps_target_id": 75}, {"mhaps": [{"mhap_id": 2, "reads": 181}], "mhaps_target_id": 97}, {"mhaps": [{"mhap_id": 2, "reads": 352}], "mhaps_target_id": 21}, {"mhaps": [{"mhap_id": 0, "reads": 333}], "mhaps_target_id": 99}, {"mhaps": [{"mhap_id": 2, "reads": 302}], "mhaps_target_id": 96}, {"mhaps": [{"mhap_id": 0, "reads": 299}], "mhaps_target_id": 95}, {"mhaps": [{"mhap_id": 1, "reads": 230}], "mhaps_target_id": 94}, {"mhaps": [{"mhap_id": 1, "reads": 268}], "mhaps_target_id": 93}, {"mhaps": [{"mhap_id": 1, "reads": 301}], "mhaps_target_id": 30}, {"mhaps": [{"mhap_id": 1, "reads": 271}], "mhaps_target_id": 46}, {"mhaps": [{"mhap_id": 0, "reads": 260}], "mhaps_target_id": 86}, {"mhaps": [{"mhap_id": 1, "reads": 358}], "mhaps_target_id": 84}, {"mhaps": [{"mhap_id": 0, "reads": 329}], "mhaps_target_id": 83}, {"mhaps": [{"mhap_id": 0, "reads": 305}], "mhaps_target_id": 79}, {"mhaps": [{"mhap_id": 1, "reads": 208}], "mhaps_target_id": 78}, {"mhaps": [{"mhap_id": 0, "reads": 360}], "mhaps_target_id": 80}, {"mhaps": [{"mhap_id": 1, "reads": 311}], "mhaps_target_id": 81}, {"mhaps": [{"mhap_id": 2, "reads": 377}], "mhaps_target_id": 72}, {"mhaps": [{"mhap_id": 0, "reads": 446}], "mhaps_target_id": 16}, {"mhaps": [{"mhap_id": 3, "reads": 361}], "mhaps_target_id": 71}, {"mhaps": [{"mhap_id": 0, "reads": 324}], "mhaps_target_id": 76}, {"mhaps": [{"mhap_id": 2, "reads": 282}], "mhaps_target_id": 69}, {"mhaps": [{"mhap_id": 0, "reads": 208}], "mhaps_target_id": 66}, {"mhaps": [{"mhap_id": 1, "reads": 408}], "mhaps_target_id": 63}, {"mhaps": [{"mhap_id": 2, "reads": 286}], "mhaps_target_id": 68}, {"mhaps": [{"mhap_id": 0, "reads": 363}], "mhaps_target_id": 62}, {"mhaps": [{"mhap_id": 0, "reads": 387}], "mhaps_target_id": 61}, {"mhaps": [{"mhap_id": 2, "reads": 362}], "mhaps_target_id": 51}, {"mhaps": [{"mhap_id": 2, "reads": 316}], "mhaps_target_id": 50}, {"mhaps": [{"mhap_id": 1, "reads": 356}], "mhaps_target_id": 31}, {"mhaps": [{"mhap_id": 3, "reads": 374}], "mhaps_target_id": 49}, {"mhaps": [{"mhap_id": 2, "reads": 317}], "mhaps_target_id": 35}, {"mhaps": [{"mhap_id": 2, "reads": 288}], "mhaps_target_id": 48}, {"mhaps": [{"mhap_id": 2, "reads": 354}], "mhaps_target_id": 43}, {"mhaps": [{"mhap_id": 3, "reads": 441}], "mhaps_target_id": 33}, {"mhaps": [{"mhap_id": 0, "reads": 385}], "mhaps_target_id": 67}, {"mhaps": [{"mhap_id": 0, "reads": 156}], "mhaps_target_id": 37}, {"mhaps": [{"mhap_id": 1, "reads": 391}], "mhaps_target_id": 3}, {"mhaps": [{"mhap_id": 1, "reads": 469}], "mhaps_target_id": 14}, {"mhaps": [{"mhap_id": 0, "reads": 276}], "mhaps_target_id": 32}, {"mhaps": [{"mhap_id": 1, "reads": 441}], "mhaps_target_id": 85}, {"mhaps": [{"mhap_id": 1, "reads": 395}], "mhaps_target_id": 11}, {"mhaps": [{"mhap_id": 1, "reads": 305}], "mhaps_target_id": 28}, {"mhaps": [{"mhap_id": 1, "reads": 346}], "mhaps_target_id": 26}, {"mhaps": [{"mhap_id": 1, "reads": 326}], "mhaps_target_id": 59}, {"mhaps": [{"mhap_id": 0, "reads": 382}], "mhaps_target_id": 27}, {"mhaps": [{"mhap_id": 0, "reads": 433}], "mhaps_target_id": 87}, {"mhaps": [{"mhap_id": 0, "reads": 310}], "mhaps_target_id": 64}, {"mhaps": [{"mhap_id": 3, "reads": 333}], "mhaps_target_id": 8}, {"mhaps": [{"mhap_id": 0, "reads": 350}], "mhaps_target_id": 19}, {"mhaps": [{"mhap_id": 0, "reads": 257}], "mhaps_target_id": 36}, {"mhaps": [{"mhap_id": 0, "reads": 235}], "mhaps_target_id": 65}, {"mhaps": [{"mhap_id": 4, "reads": 348}], "mhaps_target_id": 25}, {"mhaps": [{"mhap_id": 2, "reads": 335}], "mhaps_target_id": 58}, {"mhaps": [{"mhap_id": 0, "reads": 262}], "mhaps_target_id": 73}, {"mhaps": [{"mhap_id": 1, "reads": 385}], "mhaps_target_id": 20}, {"mhaps": [{"mhap_id": 0, "reads": 289}], "mhaps_target_id": 92}, {"mhaps": [{"mhap_id": 0, "reads": 366}], "mhaps_target_id": 24}, {"mhaps": [{"mhap_id": 2, "reads": 270}], "mhaps_target_id": 82}, {"mhaps": [{"mhap_id": 3, "reads": 346}], "mhaps_target_id": 70}, {"mhaps": [{"mhap_id": 0, "reads": 293}], "mhaps_target_id": 23}, {"mhaps": [{"mhap_id": 1, "reads": 356}], "mhaps_target_id": 57}, {"mhaps": [{"mhap_id": 1, "reads": 316}], "mhaps_target_id": 17}, {"mhaps": [{"mhap_id": 3, "reads": 358}], "mhaps_target_id": 15}, {"mhaps": [{"mhap_id": 1, "reads": 366}], "mhaps_target_id": 60}, {"mhaps": [{"mhap_id": 0, "reads": 420}], "mhaps_target_id": 18}, {"mhaps": [{"mhap_id": 0, "reads": 341}], "mhaps_target_id": 6}, {"mhaps": [{"mhap_id": 2, "reads": 392}], "mhaps_target_id": 13}, {"mhaps": [{"mhap_id": 1, "reads": 327}], "mhaps_target_id": 9}, {"mhaps": [{"mhap_id": 1, "reads": 351}], "mhaps_target_id": 53}, {"mhaps": [{"mhap_id": 0, "reads": 287}], "mhaps_target_id": 91}, {"mhaps": [{"mhap_id": 3, "reads": 420}], "mhaps_target_id": 12}, {"mhaps": [{"mhap_id": 2, "reads": 405}], "mhaps_target_id": 22}, {"mhaps": [{"mhap_id": 2, "reads": 399}], "mhaps_target_id": 45}, {"mhaps": [{"mhap_id": 2, "reads": 395}], "mhaps_target_id": 74}, {"mhaps": [{"mhap_id": 0, "reads": 370}], "mhaps_target_id": 7}, {"mhaps": [{"mhap_id": 2, "reads": 418}], "mhaps_target_id": 40}, {"mhaps": [{"mhap_id": 1, "reads": 261}], "mhaps_target_id": 5}, {"mhaps": [{"mhap_id": 3, "reads": 439}], "mhaps_target_id": 41}, {"mhaps": [{"mhap_id": 1, "reads": 251}], "mhaps_target_id": 52}, {"mhaps": [{"mhap_id": 2, "reads": 308}], "mhaps_target_id": 38}, {"mhaps": [{"mhap_id": 2, "reads": 398}], "mhaps_target_id": 88}, {"mhaps": [{"mhap_id": 0, "reads": 300}], "mhaps_target_id": 4}, {"mhaps": [{"mhap_id": 1, "reads": 329}], "mhaps_target_id": 0}, {"mhaps": [{"mhap_id": 0, "reads": 250}], "mhaps_target_id": 89}, {"mhaps": [{"mhap_id": 4, "reads": 340}], "mhaps_target_id": 77}, {"mhaps": [{"mhap_id": 4, "reads": 303}], "mhaps_target_id": 42}, {"mhaps": [{"mhap_id": 1, "reads": 389}], "mhaps_target_id": 34}, {"mhaps": [{"mhap_id": 0, "reads": 302}], "mhaps_target_id": 90}, {"mhaps": [{"mhap_id": 2, "reads": 338}], "mhaps_target_id": 1}, {"mhaps": [{"mhap_id": 2, "reads": 357}], "mhaps_target_id": 39}, {"mhaps": [{"mhap_id": 1, "reads": 300}], "mhaps_target_id": 29}, {"mhaps": [{"mhap_id": 0, "reads": 293}], "mhaps_target_id": 44}, {"mhaps": [{"mhap_id": 4, "reads": 358}], "mhaps_target_id": 56}, {"mhaps": [{"mhap_id": 0, "reads": 290}], "mhaps_target_id": 10}]}, {"library_sample_id": 2, "target_results": [{"mhaps": [{"mhap_id": 2, "reads": 1191}], "mhaps_target_id": 2}, {"mhaps": [{"mhap_id": 0, "reads": 1129}], "mhaps_target_id": 54}, {"mhaps": [{"mhap_id": 1, "reads": 920}, {"mhap_id": 2, "reads": 291}], "mhaps_target_id": 21}, {"mhaps": [{"mhap_id": 0, "reads": 1039}], "mhaps_target_id": 99}, {"mhaps": [{"mhap_id": 2, "reads": 1151}], "mhaps_target_id": 96}, {"mhaps": [{"mhap_id": 0, "reads": 1177}], "mhaps_target_id": 95}, {"mhaps": [{"mhap_id": 0, "reads": 1221}], "mhaps_target_id": 94}, {"mhaps": [{"mhap_id": 1, "reads": 1076}], "mhaps_target_id": 93}, {"mhaps": [{"mhap_id": 1, "reads": 1090}], "mhaps_target_id": 30}, {"mhaps": [{"mhap_id": 1, "reads": 1137}], "mhaps_target_id": 46}, {"mhaps": [{"mhap_id": 0, "reads": 884}], "mhaps_target_id": 86}, {"mhaps": [{"mhap_id": 1, "reads": 1417}], "mhaps_target_id": 84}, {"mhaps": [{"mhap_id": 0, "reads": 1282}], "mhaps_target_id": 83}, {"mhaps": [{"mhap_id": 1, "reads": 1295}], "mhaps_target_id": 79}, {"mhaps": [{"mhap_id": 0, "reads": 1488}], "mhaps_target_id": 78}, {"mhaps": [{"mhap_id": 0, "reads": 1455}], "mhaps_target_id": 80}, {"mhaps": [{"mhap_id": 1, "reads": 1375}], "mhaps_target_id": 81}, {"mhaps": [{"mhap_id": 0, "reads": 928}], "mhaps_target_id": 97}, {"mhaps": [{"mhap_id": 1, "reads": 1439}], "mhaps_target_id": 75}, {"mhaps": [{"mhap_id": 1, "reads": 1315}], "mhaps_target_id": 72}, {"mhaps": [{"mhap_id": 0, "reads": 1434}], "mhaps_target_id": 16}, {"mhaps": [{"mhap_id": 2, "reads": 997}], "mhaps_target_id": 71}, {"mhaps": [{"mhap_id": 0, "reads": 1208}], "mhaps_target_id": 76}, {"mhaps": [{"mhap_id": 3, "reads": 788}, {"mhap_id": 2, "reads": 321}], "mhaps_target_id": 69}, {"mhaps": [{"mhap_id": 0, "reads": 1354}], "mhaps_target_id": 66}, {"mhaps": [{"mhap_id": 0, "reads": 1234}], "mhaps_target_id": 63}, {"mhaps": [{"mhap_id": 0, "reads": 1117}], "mhaps_target_id": 68}, {"mhaps": [{"mhap_id": 1, "reads": 833}, {"mhap_id": 2, "reads": 336}], "mhaps_target_id": 62}, {"mhaps": [{"mhap_id": 1, "reads": 1451}], "mhaps_target_id": 61}, {"mhaps": [{"mhap_id": 2, "reads": 1283}], "mhaps_target_id": 51}, {"mhaps": [{"mhap_id": 1, "reads": 915}, {"mhap_id": 0, "reads": 267}], "mhaps_target_id": 50}, {"mhaps": [{"mhap_id": 1, "reads": 1209}], "mhaps_target_id": 31}, {"mhaps": [{"mhap_id": 0, "reads": 2063}, {"mhap_id": 2, "reads": 450}], "mhaps_target_id": 49}, {"mhaps": [{"mhap_id": 1, "reads": 1319}], "mhaps_target_id": 35}, {"mhaps": [{"mhap_id": 2, "reads": 1196}], "mhaps_target_id": 48}, {"mhaps": [{"mhap_id": 3, "reads": 1507}], "mhaps_target_id": 98}, {"mhaps": [{"mhap_id": 1, "reads": 843}, {"mhap_id": 2, "reads": 269}], "mhaps_target_id": 47}, {"mhaps": [{"mhap_id": 0, "reads": 1411}], "mhaps_target_id": 43}, {"mhaps": [{"mhap_id": 2, "reads": 1334}], "mhaps_target_id": 33}, {"mhaps": [{"mhap_id": 0, "reads": 937}, {"mhap_id": 1, "reads": 318}], "mhaps_target_id": 67}, {"mhaps": [{"mhap_id": 0, "reads": 1066}], "mhaps_target_id": 37}, {"mhaps": [{"mhap_id": 2, "reads": 1128}], "mhaps_target_id": 3}, {"mhaps": [{"mhap_id": 2, "reads": 1500}], "mhaps_target_id": 14}, {"mhaps": [{"mhap_id": 0, "reads": 1276}], "mhaps_target_id": 32}, {"mhaps": [{"mhap_id": 1, "reads": 1370}], "mhaps_target_id": 85}, {"mhaps": [{"mhap_id": 2, "reads": 1011}, {"mhap_id": 1, "reads": 347}], "mhaps_target_id": 11}, {"mhaps": [{"mhap_id": 0, "reads": 1288}], "mhaps_target_id": 28}, {"mhaps": [{"mhap_id": 2, "reads": 955}, {"mhap_id": 1, "reads": 313}], "mhaps_target_id": 26}, {"mhaps": [{"mhap_id": 2, "reads": 1171}], "mhaps_target_id": 59}, {"mhaps": [{"mhap_id": 0, "reads": 1197}], "mhaps_target_id": 27}, {"mhaps": [{"mhap_id": 2, "reads": 952}, {"mhap_id": 0, "reads": 403}], "mhaps_target_id": 87}, {"mhaps": [{"mhap_id": 0, "reads": 1100}], "mhaps_target_id": 64}, {"mhaps": [{"mhap_id": 2, "reads": 1133}], "mhaps_target_id": 8}, {"mhaps": [{"mhap_id": 0, "reads": 1293}], "mhaps_target_id": 19}, {"mhaps": [{"mhap_id": 0, "reads": 1257}], "mhaps_target_id": 36}, {"mhaps": [{"mhap_id": 0, "reads": 1338}], "mhaps_target_id": 65}, {"mhaps": [{"mhap_id": 2, "reads": 934}, {"mhap_id": 3, "reads": 318}], "mhaps_target_id": 25}, {"mhaps": [{"mhap_id": 2, "reads": 1371}], "mhaps_target_id": 58}, {"mhaps": [{"mhap_id": 0, "reads": 933}, {"mhap_id": 1, "reads": 338}], "mhaps_target_id": 73}, {"mhaps": [{"mhap_id": 2, "reads": 712}, {"mhap_id": 1, "reads": 289}], "mhaps_target_id": 20}, {"mhaps": [{"mhap_id": 0, "reads": 1413}], "mhaps_target_id": 92}, {"mhaps": [{"mhap_id": 2, "reads": 1196}], "mhaps_target_id": 24}, {"mhaps": [{"mhap_id": 1, "reads": 1348}], "mhaps_target_id": 82}, {"mhaps": [{"mhap_id": 2, "reads": 1207}], "mhaps_target_id": 70}, {"mhaps": [{"mhap_id": 1, "reads": 909}], "mhaps_target_id": 23}, {"mhaps": [{"mhap_id": 1, "reads": 1135}], "mhaps_target_id": 57}, {"mhaps": [{"mhap_id": 2, "reads": 951}, {"mhap_id": 1, "reads": 318}], "mhaps_target_id": 17}, {"mhaps": [{"mhap_id": 2, "reads": 964}, {"mhap_id": 0, "reads": 294}], "mhaps_target_id": 15}, {"mhaps": [{"mhap_id": 3, "reads": 1397}], "mhaps_target_id": 60}, {"mhaps": [{"mhap_id": 0, "reads": 1251}], "mhaps_target_id": 18}, {"mhaps": [{"mhap_id": 1, "reads": 910}, {"mhap_id": 0, "reads": 337}], "mhaps_target_id": 6}, {"mhaps": [{"mhap_id": 2, "reads": 1039}, {"mhap_id": 0, "reads": 325}], "mhaps_target_id": 13}, {"mhaps": [{"mhap_id": 2, "reads": 1489}], "mhaps_target_id": 9}, {"mhaps": [{"mhap_id": 0, "reads": 814}, {"mhap_id": 1, "reads": 267}], "mhaps_target_id": 53}, {"mhaps": [{"mhap_id": 0, "reads": 1186}], "mhaps_target_id": 91}, {"mhaps": [{"mhap_id": 2, "reads": 1496}], "mhaps_target_id": 12}, {"mhaps": [{"mhap_id": 1, "reads": 1454}], "mhaps_target_id": 22}, {"mhaps": [{"mhap_id": 1, "reads": 1224}], "mhaps_target_id": 45}, {"mhaps": [{"mhap_id": 0, "reads": 1429}], "mhaps_target_id": 74}, {"mhaps": [{"mhap_id": 0, "reads": 1097}, {"mhap_id": 1, "reads": 350}], "mhaps_target_id": 7}, {"mhaps": [{"mhap_id": 2, "reads": 1493}], "mhaps_target_id": 40}, {"mhaps": [{"mhap_id": 1, "reads": 1024}], "mhaps_target_id": 5}, {"mhaps": [{"mhap_id": 3, "reads": 1365}], "mhaps_target_id": 41}, {"mhaps": [{"mhap_id": 1, "reads": 1097}], "mhaps_target_id": 52}, {"mhaps": [{"mhap_id": 3, "reads": 819}, {"mhap_id": 2, "reads": 273}], "mhaps_target_id": 38}, {"mhaps": [{"mhap_id": 2, "reads": 1121}], "mhaps_target_id": 88}, {"mhaps": [{"mhap_id": 2, "reads": 1227}], "mhaps_target_id": 4}, {"mhaps": [{"mhap_id": 2, "reads": 1058}, {"mhap_id": 3, "reads": 245}], "mhaps_target_id": 0}, {"mhaps": [{"mhap_id": 2, "reads": 732}, {"mhap_id": 3, "reads": 253}], "mhaps_target_id": 89}, {"mhaps": [{"mhap_id": 3, "reads": 883}, {"mhap_id": 2, "reads": 299}], "mhaps_target_id": 77}, {"mhaps": [{"mhap_id": 0, "reads": 1076}], "mhaps_target_id": 42}, {"mhaps": [{"mhap_id": 3, "reads": 991}], "mhaps_target_id": 34}, {"mhaps": [{"mhap_id": 1, "reads": 1158}], "mhaps_target_id": 90}, {"mhaps": [{"mhap_id": 1, "reads": 1341}], "mhaps_target_id": 1}, {"mhaps": [{"mhap_id": 1, "reads": 992}, {"mhap_id": 0, "reads": 302}], "mhaps_target_id": 39}, {"mhaps": [{"mhap_id": 2, "reads": 1184}], "mhaps_target_id": 29}, {"mhaps": [{"mhap_id": 0, "reads": 1304}], "mhaps_target_id": 44}, {"mhaps": [{"mhap_id": 2, "reads": 810}, {"mhap_id": 3, "reads": 364}], "mhaps_target_id": 56}, {"mhaps": [{"mhap_id": 0, "reads": 1356}], "mhaps_target_id": 55}, {"mhaps": [{"mhap_id": 2, "reads": 1109}], "mhaps_target_id": 10}]}]}], "read_counts_by_stage": [{"bioinformatics_run_id": 0, "read_counts_by_library_sample_by_stage": [{"library_sample_id": 1, "read_counts_for_targets": [{"stages": [{"read_count": 15285, "stage": "final"}, {"read_count": 16686, "stage": "demultiplexed"}], "target_id": 32}, {"stages": [{"read_count": 2278, "stage": "final"}, {"read_count": 2448, "stage": "demultiplexed"}], "target_id": 31}, {"stages": [{"read_count": 1089, "stage": "final"}, {"read_count": 1172, "stage": "demultiplexed"}], "target_id": 13}, {"stages": [{"read_count": 19391, "stage": "final"}, {"read_count": 20615, "stage": "demultiplexed"}], "target_id": 12}, {"stages": [{"read_count": 10595, "stage": "final"}, {"read_count": 11645, "stage": "demultiplexed"}], "target_id": 51}, {"stages": [{"read_count": 378, "stage": "final"}, {"read_count": 408, "stage": "demultiplexed"}], "target_id": 52}, {"stages": [{"read_count": 16586, "stage": "final"}, {"read_count": 17719, "stage": "demultiplexed"}], "target_id": 50}, {"stages": [{"read_count": 869, "stage": "final"}, {"read_count": 936, "stage": "demultiplexed"}], "target_id": 0}, {"stages": [{"read_count": 6967, "stage": "final"}, {"read_count": 7810, "stage": "demultiplexed"}], "target_id": 1}, {"stages": [{"read_count": 1010, "stage": "final"}, {"read_count": 1080, "stage": "demultiplexed"}], "target_id": 2}, {"stages": [{"read_count": 20051, "stage": "final"}, {"read_count": 21658, "stage": "demultiplexed"}], "target_id": 3}, {"stages": [{"read_count": 24537, "stage": "final"}, {"read_count": 26316, "stage": "demultiplexed"}], "target_id": 4}, {"stages": [{"read_count": 300, "stage": "final"}, {"read_count": 327, "stage": "demultiplexed"}], "target_id": 5}, {"stages": [{"read_count": 4256, "stage": "final"}, {"read_count": 4550, "stage": "demultiplexed"}], "target_id": 6}, {"stages": [{"read_count": 958, "stage": "final"}, {"read_count": 1028, "stage": "demultiplexed"}], "target_id": 7}, {"stages": [{"read_count": 31313, "stage": "final"}, {"read_count": 34255, "stage": "demultiplexed"}], "target_id": 8}, {"stages": [{"read_count": 2554, "stage": "final"}, {"read_count": 2798, "stage": "demultiplexed"}], "target_id": 9}, {"stages": [{"read_count": 1213, "stage": "final"}, {"read_count": 1271, "stage": "demultiplexed"}], "target_id": 10}, {"stages": [{"read_count": 1379, "stage": "final"}, {"read_count": 1462, "stage": "demultiplexed"}], "target_id": 11}, {"stages": [{"read_count": 2310, "stage": "final"}, {"read_count": 2421, "stage": "demultiplexed"}], "target_id": 14}, {"stages": [{"read_count": 2014, "stage": "final"}, {"read_count": 2126, "stage": "demultiplexed"}], "target_id": 15}, {"stages": [{"read_count": 44681, "stage": "final"}, {"read_count": 47559, "stage": "demultiplexed"}], "target_id": 16}, {"stages": [{"read_count": 273, "stage": "demultiplexed"}], "target_id": 17}, {"stages": [{"read_count": 384, "stage": "final"}, {"read_count": 410, "stage": "demultiplexed"}], "target_id": 18}, {"stages": [{"read_count": 507, "stage": "final"}, {"read_count": 594, "stage": "demultiplexed"}], "target_id": 24}, {"stages": [{"read_count": 226, "stage": "demultiplexed"}], "target_id": 19}, {"stages": [{"read_count": 3895, "stage": "final"}, {"read_count": 4189, "stage": "demultiplexed"}], "target_id": 20}, {"stages": [{"read_count": 1579, "stage": "final"}, {"read_count": 1650, "stage": "demultiplexed"}], "target_id": 21}, {"stages": [{"read_count": 222, "stage": "demultiplexed"}], "target_id": 22}, {"stages": [{"read_count": 170, "stage": "demultiplexed"}], "target_id": 23}, {"stages": [{"read_count": 150, "stage": "demultiplexed"}], "target_id": 25}, {"stages": [{"read_count": 1450, "stage": "final"}, {"read_count": 1537, "stage": "demultiplexed"}], "target_id": 26}, {"stages": [{"read_count": 23438, "stage": "final"}, {"read_count": 25268, "stage": "demultiplexed"}], "target_id": 27}, {"stages": [{"read_count": 128, "stage": "demultiplexed"}], "target_id": 28}, {"stages": [{"read_count": 269, "stage": "demultiplexed"}], "target_id": 29}, {"stages": [{"read_count": 11091, "stage": "final"}, {"read_count": 11848, "stage": "demultiplexed"}], "target_id": 30}, {"stages": [{"read_count": 6522, "stage": "final"}, {"read_count": 7079, "stage": "demultiplexed"}], "target_id": 62}, {"stages": [{"read_count": 25203, "stage": "final"}, {"read_count": 27285, "stage": "demultiplexed"}], "target_id": 63}, {"stages": [{"read_count": 26863, "stage": "final"}, {"read_count": 29317, "stage": "demultiplexed"}], "target_id": 64}, {"stages": [{"read_count": 13601, "stage": "final"}, {"read_count": 14870, "stage": "demultiplexed"}], "target_id": 39}, {"stages": [{"read_count": 282, "stage": "final"}, {"read_count": 298, "stage": "demultiplexed"}], "target_id": 40}, {"stages": [{"read_count": 33117, "stage": "final"}, {"read_count": 35774, "stage": "demultiplexed"}], "target_id": 41}, {"stages": [{"read_count": 7336, "stage": "final"}, {"read_count": 8382, "stage": "demultiplexed"}], "target_id": 42}, {"stages": [{"read_count": 1995, "stage": "final"}, {"read_count": 2099, "stage": "demultiplexed"}], "target_id": 43}, {"stages": [{"read_count": 982, "stage": "final"}, {"read_count": 1036, "stage": "demultiplexed"}], "target_id": 44}, {"stages": [{"read_count": 6197, "stage": "final"}, {"read_count": 6765, "stage": "demultiplexed"}], "target_id": 45}, {"stages": [{"read_count": 19559, "stage": "final"}, {"read_count": 20984, "stage": "demultiplexed"}], "target_id": 46}, {"stages": [{"read_count": 1167, "stage": "final"}, {"read_count": 1229, "stage": "demultiplexed"}], "target_id": 47}, {"stages": [{"read_count": 5895, "stage": "final"}, {"read_count": 6380, "stage": "demultiplexed"}], "target_id": 48}, {"stages": [{"read_count": 733, "stage": "final"}, {"read_count": 786, "stage": "demultiplexed"}], "target_id": 49}, {"stages": [{"read_count": 3576, "stage": "final"}, {"read_count": 3856, "stage": "demultiplexed"}], "target_id": 34}, {"stages": [{"read_count": 4213, "stage": "final"}, {"read_count": 4575, "stage": "demultiplexed"}], "target_id": 33}, {"stages": [{"read_count": 860, "stage": "final"}, {"read_count": 942, "stage": "demultiplexed"}], "target_id": 54}, {"stages": [{"read_count": 506, "stage": "final"}, {"read_count": 546, "stage": "demultiplexed"}], "target_id": 55}, {"stages": [{"read_count": 17721, "stage": "final"}, {"read_count": 19024, "stage": "demultiplexed"}], "target_id": 56}, {"stages": [{"read_count": 516, "stage": "final"}, {"read_count": 546, "stage": "demultiplexed"}], "target_id": 58}, {"stages": [{"read_count": 283, "stage": "final"}, {"read_count": 298, "stage": "demultiplexed"}], "target_id": 59}, {"stages": [{"read_count": 7629, "stage": "final"}, {"read_count": 8260, "stage": "demultiplexed"}], "target_id": 57}, {"stages": [{"read_count": 2117, "stage": "final"}, {"read_count": 2224, "stage": "demultiplexed"}], "target_id": 60}, {"stages": [{"read_count": 784, "stage": "final"}, {"read_count": 826, "stage": "demultiplexed"}], "target_id": 61}, {"stages": [{"read_count": 579, "stage": "final"}, {"read_count": 622, "stage": "demultiplexed"}], "target_id": 65}, {"stages": [{"read_count": 527, "stage": "final"}, {"read_count": 563, "stage": "demultiplexed"}], "target_id": 66}, {"stages": [{"read_count": 2247, "stage": "final"}, {"read_count": 2384, "stage": "demultiplexed"}], "target_id": 67}, {"stages": [{"read_count": 419, "stage": "final"}, {"read_count": 444, "stage": "demultiplexed"}], "target_id": 68}, {"stages": [{"read_count": 14122, "stage": "final"}, {"read_count": 16039, "stage": "demultiplexed"}], "target_id": 69}, {"stages": [{"read_count": 1009, "stage": "final"}, {"read_count": 1071, "stage": "demultiplexed"}], "target_id": 80}, {"stages": [{"read_count": 274, "stage": "final"}, {"read_count": 300, "stage": "demultiplexed"}], "target_id": 35}, {"stages": [{"read_count": 392, "stage": "final"}, {"read_count": 426, "stage": "demultiplexed"}], "target_id": 37}, {"stages": [{"read_count": 3516, "stage": "final"}, {"read_count": 3818, "stage": "demultiplexed"}], "target_id": 36}, {"stages": [{"read_count": 2317, "stage": "final"}, {"read_count": 2458, "stage": "demultiplexed"}], "target_id": 76}, {"stages": [{"read_count": 16859, "stage": "final"}, {"read_count": 17934, "stage": "demultiplexed"}], "target_id": 75}, {"stages": [{"read_count": 4739, "stage": "final"}, {"read_count": 5188, "stage": "demultiplexed"}], "target_id": 81}, {"stages": [{"read_count": 19, "stage": "demultiplexed"}], "target_id": 82}, {"stages": [{"read_count": 371, "stage": "final"}, {"read_count": 413, "stage": "demultiplexed"}], "target_id": 78}, {"stages": [{"read_count": 537, "stage": "final"}, {"read_count": 595, "stage": "demultiplexed"}], "target_id": 79}, {"stages": [{"read_count": 11176, "stage": "final"}, {"read_count": 12286, "stage": "demultiplexed"}], "target_id": 70}, {"stages": [{"read_count": 2539, "stage": "final"}, {"read_count": 2663, "stage": "demultiplexed"}], "target_id": 71}, {"stages": [{"read_count": 232, "stage": "demultiplexed"}], "target_id": 72}, {"stages": [{"read_count": 172, "stage": "demultiplexed"}], "target_id": 73}, {"stages": [{"read_count": 1901, "stage": "final"}, {"read_count": 2051, "stage": "demultiplexed"}], "target_id": 74}, {"stages": [{"read_count": 22789, "stage": "final"}, {"read_count": 25098, "stage": "demultiplexed"}], "target_id": 83}, {"stages": [{"read_count": 3622, "stage": "final"}, {"read_count": 3947, "stage": "demultiplexed"}], "target_id": 84}, {"stages": [{"read_count": 2182, "stage": "final"}, {"read_count": 2296, "stage": "demultiplexed"}], "target_id": 85}, {"stages": [{"read_count": 5344, "stage": "final"}, {"read_count": 5849, "stage": "demultiplexed"}], "target_id": 86}, {"stages": [{"read_count": 1206, "stage": "final"}, {"read_count": 1279, "stage": "demultiplexed"}], "target_id": 87}, {"stages": [{"read_count": 16298, "stage": "final"}, {"read_count": 17431, "stage": "demultiplexed"}], "target_id": 88}, {"stages": [{"read_count": 106, "stage": "demultiplexed"}], "target_id": 89}, {"stages": [{"read_count": 2857, "stage": "final"}, {"read_count": 3115, "stage": "demultiplexed"}], "target_id": 90}, {"stages": [{"read_count": 710, "stage": "final"}, {"read_count": 774, "stage": "demultiplexed"}], "target_id": 38}, {"stages": [{"read_count": 775, "stage": "final"}, {"read_count": 813, "stage": "demultiplexed"}], "target_id": 91}, {"stages": [{"read_count": 618, "stage": "final"}, {"read_count": 655, "stage": "demultiplexed"}], "target_id": 92}, {"stages": [{"read_count": 4, "stage": "demultiplexed"}], "target_id": 93}, {"stages": [{"read_count": 1545, "stage": "final"}, {"read_count": 1630, "stage": "demultiplexed"}], "target_id": 94}, {"stages": [{"read_count": 170, "stage": "demultiplexed"}], "target_id": 96}, {"stages": [{"read_count": 34752, "stage": "final"}, {"read_count": 37672, "stage": "demultiplexed"}], "target_id": 95}, {"stages": [{"read_count": 1324, "stage": "final"}, {"read_count": 1416, "stage": "demultiplexed"}], "target_id": 97}, {"stages": [{"read_count": 1590, "stage": "final"}, {"read_count": 1663, "stage": "demultiplexed"}], "target_id": 98}, {"stages": [{"read_count": 46824, "stage": "final"}, {"read_count": 50413, "stage": "demultiplexed"}], "target_id": 99}], "total_raw_count": 806549}, {"library_sample_id": 0, "read_counts_for_targets": [{"stages": [{"read_count": 31484, "stage": "final"}], "target_id": 51}, {"stages": [{"read_count": 24076, "stage": "final"}], "target_id": 52}, {"stages": [{"read_count": 35619, "stage": "final"}], "target_id": 50}, {"stages": [{"read_count": 33465, "stage": "final"}], "target_id": 0}, {"stages": [{"read_count": 32066, "stage": "final"}], "target_id": 1}, {"stages": [{"read_count": 38609, "stage": "final"}], "target_id": 2}, {"stages": [{"read_count": 48414, "stage": "final"}], "target_id": 3}, {"stages": [{"read_count": 36695, "stage": "final"}], "target_id": 4}, {"stages": [{"read_count": 25447, "stage": "final"}], "target_id": 5}, {"stages": [{"read_count": 21610, "stage": "final"}], "target_id": 6}, {"stages": [{"read_count": 42576, "stage": "final"}], "target_id": 7}, {"stages": [{"read_count": 49627, "stage": "final"}], "target_id": 8}, {"stages": [{"read_count": 45595, "stage": "final"}], "target_id": 9}, {"stages": [{"read_count": 17913, "stage": "final"}], "target_id": 10}, {"stages": [{"read_count": 42252, "stage": "final"}], "target_id": 11}, {"stages": [{"read_count": 49641, "stage": "final"}], "target_id": 12}, {"stages": [{"read_count": 49953, "stage": "final"}], "target_id": 13}, {"stages": [{"read_count": 33844, "stage": "final"}], "target_id": 14}, {"stages": [{"read_count": 25697, "stage": "final"}], "target_id": 15}, {"stages": [{"read_count": 46915, "stage": "final"}], "target_id": 16}, {"stages": [{"read_count": 49966, "stage": "final"}], "target_id": 17}, {"stages": [{"read_count": 38480, "stage": "final"}], "target_id": 18}, {"stages": [{"read_count": 18960, "stage": "final"}], "target_id": 19}, {"stages": [{"read_count": 33183, "stage": "final"}], "target_id": 20}, {"stages": [{"read_count": 31147, "stage": "final"}], "target_id": 21}, {"stages": [{"read_count": 35366, "stage": "final"}], "target_id": 22}, {"stages": [{"read_count": 29611, "stage": "final"}], "target_id": 23}, {"stages": [{"read_count": 27075, "stage": "final"}], "target_id": 24}, {"stages": [{"read_count": 36178, "stage": "final"}], "target_id": 25}, {"stages": [{"read_count": 28161, "stage": "final"}], "target_id": 26}, {"stages": [{"read_count": 48791, "stage": "final"}], "target_id": 27}, {"stages": [{"read_count": 15826, "stage": "final"}], "target_id": 28}, {"stages": [{"read_count": 43173, "stage": "final"}], "target_id": 29}, {"stages": [{"read_count": 49946, "stage": "final"}], "target_id": 30}, {"stages": [{"read_count": 45402, "stage": "final"}], "target_id": 31}, {"stages": [{"read_count": 29636, "stage": "final"}], "target_id": 32}, {"stages": [{"read_count": 47034, "stage": "final"}], "target_id": 33}, {"stages": [{"read_count": 49955, "stage": "final"}], "target_id": 34}, {"stages": [{"read_count": 16463, "stage": "final"}], "target_id": 35}, {"stages": [{"read_count": 49802, "stage": "final"}], "target_id": 36}, {"stages": [{"read_count": 24539, "stage": "final"}], "target_id": 37}, {"stages": [{"read_count": 41530, "stage": "final"}], "target_id": 38}, {"stages": [{"read_count": 42184, "stage": "final"}], "target_id": 39}, {"stages": [{"read_count": 28057, "stage": "final"}], "target_id": 40}, {"stages": [{"read_count": 27730, "stage": "final"}], "target_id": 41}, {"stages": [{"read_count": 49338, "stage": "final"}], "target_id": 42}, {"stages": [{"read_count": 44481, "stage": "final"}], "target_id": 43}, {"stages": [{"read_count": 49365, "stage": "final"}], "target_id": 44}, {"stages": [{"read_count": 39009, "stage": "final"}], "target_id": 45}, {"stages": [{"read_count": 37407, "stage": "final"}], "target_id": 46}, {"stages": [{"read_count": 29934, "stage": "final"}], "target_id": 47}, {"stages": [{"read_count": 49971, "stage": "final"}], "target_id": 48}, {"stages": [{"read_count": 23924, "stage": "final"}], "target_id": 49}, {"stages": [{"read_count": 29713, "stage": "final"}], "target_id": 54}, {"stages": [{"read_count": 38625, "stage": "final"}], "target_id": 55}, {"stages": [{"read_count": 49969, "stage": "final"}], "target_id": 56}, {"stages": [{"read_count": 45069, "stage": "final"}], "target_id": 57}, {"stages": [{"read_count": 24050, "stage": "final"}], "target_id": 58}, {"stages": [{"read_count": 41999, "stage": "final"}], "target_id": 59}, {"stages": [{"read_count": 48335, "stage": "final"}], "target_id": 60}, {"stages": [{"read_count": 41343, "stage": "final"}], "target_id": 61}, {"stages": [{"read_count": 49944, "stage": "final"}], "target_id": 62}, {"stages": [{"read_count": 37382, "stage": "final"}], "target_id": 63}, {"stages": [{"read_count": 44271, "stage": "final"}], "target_id": 64}, {"stages": [{"read_count": 24451, "stage": "final"}], "target_id": 65}, {"stages": [{"read_count": 49746, "stage": "final"}], "target_id": 66}, {"stages": [{"read_count": 49910, "stage": "final"}], "target_id": 67}, {"stages": [{"read_count": 25672, "stage": "final"}], "target_id": 68}, {"stages": [{"read_count": 35612, "stage": "final"}], "target_id": 69}, {"stages": [{"read_count": 49786, "stage": "final"}], "target_id": 70}, {"stages": [{"read_count": 29564, "stage": "final"}], "target_id": 71}, {"stages": [{"read_count": 21816, "stage": "final"}], "target_id": 72}, {"stages": [{"read_count": 36326, "stage": "final"}], "target_id": 73}, {"stages": [{"read_count": 29426, "stage": "final"}], "target_id": 74}, {"stages": [{"read_count": 31697, "stage": "final"}], "target_id": 75}, {"stages": [{"read_count": 44365, "stage": "final"}], "target_id": 76}, {"stages": [{"read_count": 5984, "stage": "final"}], "target_id": 77}, {"stages": [{"read_count": 37749, "stage": "final"}], "target_id": 78}, {"stages": [{"read_count": 46063, "stage": "final"}], "target_id": 79}, {"stages": [{"read_count": 37213, "stage": "final"}], "target_id": 80}, {"stages": [{"read_count": 43031, "stage": "final"}], "target_id": 81}, {"stages": [{"read_count": 14142, "stage": "final"}], "target_id": 82}, {"stages": [{"read_count": 49745, "stage": "final"}], "target_id": 83}, {"stages": [{"read_count": 34260, "stage": "final"}], "target_id": 84}, {"stages": [{"read_count": 30666, "stage": "final"}], "target_id": 85}, {"stages": [{"read_count": 47489, "stage": "final"}], "target_id": 86}, {"stages": [{"read_count": 49972, "stage": "final"}], "target_id": 87}, {"stages": [{"read_count": 37605, "stage": "final"}], "target_id": 88}, {"stages": [{"read_count": 19230, "stage": "final"}], "target_id": 89}, {"stages": [{"read_count": 49701, "stage": "final"}], "target_id": 90}, {"stages": [{"read_count": 41271, "stage": "final"}], "target_id": 91}, {"stages": [{"read_count": 32967, "stage": "final"}], "target_id": 92}, {"stages": [{"read_count": 3634, "stage": "final"}], "target_id": 93}, {"stages": [{"read_count": 28109, "stage": "final"}], "target_id": 94}, {"stages": [{"read_count": 37013, "stage": "final"}], "target_id": 95}, {"stages": [{"read_count": 29147, "stage": "final"}], "target_id": 96}, {"stages": [{"read_count": 34162, "stage": "final"}], "target_id": 97}, {"stages": [{"read_count": 49728, "stage": "final"}], "target_id": 98}, {"stages": [{"read_count": 49740, "stage": "final"}], "target_id": 99}], "total_raw_count": 6858739}]}]} +{ + "pmo_header": { + "pmo_version": "v1.0.0", + "creation_date": "2025-11-03", + "generation_method": { + "program_name": "pmotools-python.PMOReader.combine_multiple_pmos", + "program_version": "v1.0.0" + } + }, + "targeted_genomes": [ + { + "chromosomes": [ + "Pf3D7_01_v3", + "Pf3D7_02_v3", + "Pf3D7_03_v3", + "Pf3D7_04_v3", + "Pf3D7_05_v3", + "Pf3D7_06_v3", + "Pf3D7_07_v3", + "Pf3D7_08_v3", + "Pf3D7_09_v3", + "Pf3D7_10_v3", + "Pf3D7_11_v3", + "Pf3D7_12_v3", + "Pf3D7_13_v3", + "Pf3D7_14_v3", + "Pf3D7_API_v3", + "Pf3D7_MIT_v3" + ], + "genome_version": "2020-09-01", + "gff_url": "https://plasmodb.org/common/downloads/release-65/Pfalciparum3D7/gff/data/PlasmoDB-65_Pfalciparum3D7.gff", + "name": "3D7", + "taxon_id": [ + 5833 + ], + "url": "https://plasmodb.org/common/downloads/release-65/Pfalciparum3D7/fasta/data/PlasmoDB-65_Pfalciparum3D7_Genome.fasta" + } + ], + "target_info": [ + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_14_v3", + "end": 1956129, + "genome_id": 0, + "start": 1956096, + "strand": "+" + }, + "seq": "TTTTTCTCCACTTTGTAATTTTTATTGTTGAAT" + }, + "gene_name": "PF3D7_1447900", + "insert_location": { + "chrom": "Pf3D7_14_v3", + "end": 1956286, + "genome_id": 0, + "ref_seq": "ATATATATAAAGTTAAACCTATAAATAATACACTACCTAATAAACTATTCTTATATTTAAAAATAAATATAATACATGTTATTAATCCTTCTATTGTTGCCGGAATAATATACATTAAAACAGAACTCATCAAATTATTAGCACTCTCGGTACCTCT", + "start": 1956129, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_14_v3", + "end": 1956129, + "genome_id": 0, + "start": 1956096, + "strand": "+" + }, + "seq": "CGGGTGGTATCATGAGAATAGTTGAT" + }, + "target_attributes": [ + "Included", + "DrugResistance" + ], + "target_name": "t96" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_14_v3", + "end": 1038369, + "genome_id": 0, + "start": 1038340, + "strand": "+" + }, + "seq": "ACACTTCAACTACACTTTTTAATTTAGCC" + }, + "gene_name": "PF3D7_1426700", + "insert_location": { + "chrom": "Pf3D7_14_v3", + "end": 1038486, + "genome_id": 0, + "ref_seq": "CATACAATTAATAAAGCTCTACGATAAATTTCTTTTTTATTTGATTTAGAAAAAGGAGAAAACCATTGAAACTTTTTGGCTAGATATTTATGGTCTTTATCAAAAATATATTCTGAA", + "start": 1038369, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_14_v3", + "end": 1038369, + "genome_id": 0, + "start": 1038340, + "strand": "+" + }, + "seq": "AGATCTTATGTTAAACTTCTAGAAGATGAAGT" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t95" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_14_v3", + "end": 564208, + "genome_id": 0, + "start": 564177, + "strand": "+" + }, + "seq": "AAAATCTTTTGGTATTGTATTTTGACTGCAC" + }, + "gene_name": "PF3D7_1414200", + "insert_location": { + "chrom": "Pf3D7_14_v3", + "end": 564377, + "genome_id": 0, + "ref_seq": "TTATTAAAACTTTTTTTTCTTTCTGTAAAGTTTGTACATTATGTTTTGATGAGTTTTGATTATCTTCATAAAACTTTATATATTTATAAAAATTATTTTGTATAAAATCATTTAATAAAGGTAACATAATCTTTTTAGCTTGATTCAATTCACTACATGAATGTATATT", + "start": 564208, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_14_v3", + "end": 564208, + "genome_id": 0, + "start": 564177, + "strand": "+" + }, + "seq": "AAACGGAATCACTTATGGATACCATTTTATTT" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t94" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_08_v3", + "end": 933023, + "genome_id": 0, + "start": 932995, + "strand": "+" + }, + "seq": "TGTAAAAGGAAAATGTCTTACGTGGATT" + }, + "gene_name": "PF3D7_0820700", + "insert_location": { + "chrom": "Pf3D7_08_v3", + "end": 933143, + "genome_id": 0, + "ref_seq": "TTGGTTTTAATGAGGATGATTTAGATAAAGAGTTTTTTTTTGATTTGCCGTCGATTAGTGGTTTTTCAAGTAATGGTATGAAAAAATGTAATTTAAGAAATTTATTAAAAAGATTAGAAG", + "start": 933023, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_08_v3", + "end": 933023, + "genome_id": 0, + "start": 932995, + "strand": "+" + }, + "seq": "ATTCAAAACCAATAGTACCACAATATGTTT" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t50" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_05_v3", + "end": 1042162, + "genome_id": 0, + "start": 1042129, + "strand": "+" + }, + "seq": "GGAATATTTGTGATTTAGGATGTAATGCATACA" + }, + "gene_name": "PF3D7_0525100", + "insert_location": { + "chrom": "Pf3D7_05_v3", + "end": 1042281, + "genome_id": 0, + "ref_seq": "ATATTATTACGGTACCATTATATGATTCTTTAGGTCCTCAATCAAGTAGATTTATATTAGATCAAACACAGATGGAAACTATTGTATGTGACAAGACATGTGCTCGTAATTTATTTAAG", + "start": 1042162, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_05_v3", + "end": 1042162, + "genome_id": 0, + "start": 1042129, + "strand": "+" + }, + "seq": "CAAATATATCTCTTCGCATGTTTCTAAGGA" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t36" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_13_v3", + "end": 2669135, + "genome_id": 0, + "start": 2669104, + "strand": "+" + }, + "seq": "ATTTACATGATGTAACTGAATCTCAGCTTTT" + }, + "gene_name": "PF3D7_1366800", + "insert_location": { + "chrom": "Pf3D7_13_v3", + "end": 2669307, + "genome_id": 0, + "ref_seq": "AAAAAAAATACATTTAAATCTATAATATTTGTAATAAATGATAAGAATATTAGTATTAATAGGGTACTACTATTTGTAAATACTTTTCTACATAATTTATCAATAGTAGGAAATATGATATTCTTTTTGTTTGGCTTTATTTTATCTGGGATTTTCCAATCATAAAGTTCGA", + "start": 2669135, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_13_v3", + "end": 2669135, + "genome_id": 0, + "start": 2669104, + "strand": "+" + }, + "seq": "AGCCAGTATTCTTTTTATGAAGTATTTTAACA" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t88" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_13_v3", + "end": 2479086, + "genome_id": 0, + "start": 2479055, + "strand": "+" + }, + "seq": "CTTATAAAGAGAAATTTTCATGTTAGCGCTT" + }, + "gene_name": "PF3D7_1361800", + "insert_location": { + "chrom": "Pf3D7_13_v3", + "end": 2479246, + "genome_id": 0, + "ref_seq": "TCTATGCTTTATCAAAACAAAGTAATCAAAATGTAATACATTATTCTTGTCGATCTATATGTGCTTTTACAAAAAACCCTAAGGGTTTAGAAGCGGTAAAGGATATCAAGGACTTTGCGAATATTATAAGTAAATCTGTTGGTGATTTGAGTAAAGAGAA", + "start": 2479086, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_13_v3", + "end": 2479086, + "genome_id": 0, + "start": 2479055, + "strand": "+" + }, + "seq": "AGTCTTCCTTGATTTCTTTATCCAAGGTA" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t86" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_13_v3", + "end": 2124634, + "genome_id": 0, + "start": 2124602, + "strand": "+" + }, + "seq": "AATTTGGTTTCAATAAAATTATCAGCTTTCTT" + }, + "gene_name": "PF3D7_1353100", + "insert_location": { + "chrom": "Pf3D7_13_v3", + "end": 2124847, + "genome_id": 0, + "ref_seq": "TAACATTTTTTTAACATCTTTACCTTTTTGACTTGGTTCTTTATCATAATTCTGTTGTTCTGCAGAATCAGCATTTACTTCAGTTTCTTCTTTATTTTGAAAAGTGTTTGATTCTACATGAGAATTGGAAGATGAACGTCTATGTTTTACTTCTGTATAACTAGTACGTTCTCCAGTATGATGAGCCTTATGGTTTACATCTTCAGTTTCTTC", + "start": 2124634, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_13_v3", + "end": 2124634, + "genome_id": 0, + "start": 2124602, + "strand": "+" + }, + "seq": "GAAGAATTTTAACACAAGGAGATCATCAC" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t85" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_13_v3", + "end": 1419543, + "genome_id": 0, + "start": 1419519, + "strand": "+" + }, + "seq": "GAAATGTCGATTCTCCTCCTTGTG" + }, + "gene_name": "PF3D7_1335100", + "insert_location": { + "chrom": "Pf3D7_13_v3", + "end": 1419670, + "genome_id": 0, + "ref_seq": "CTGGTTTTTGTACTTCTTGTCCTTGTGTTGATATCTCTTGTTCATTTTTAGATTGAGTATCTGTTTCACTTTGTGCCTTTACCTTTGATAATACGTTTTTACCGAATAATCCTAAATTTTGGAATAA", + "start": 1419543, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_13_v3", + "end": 1419543, + "genome_id": 0, + "start": 1419519, + "strand": "+" + }, + "seq": "GAAAACAAGGAAAAATCAGAATCATTTCCA" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t81" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_13_v3", + "end": 1150303, + "genome_id": 0, + "start": 1150279, + "strand": "+" + }, + "seq": "TAACAACCCCTCCATCAACATCTT" + }, + "gene_name": "PF3D7_1327300", + "insert_location": { + "chrom": "Pf3D7_13_v3", + "end": 1150493, + "genome_id": 0, + "ref_seq": "CTAAAAAAAGCAAACAAAAAGAAAAGAGAATGGAAGATTTAAGTATTGAGGAAAATTTGAAAGAGAAATTAATAAACCTAAATATTCAGAAACAGTATAGTGGTTTCCATATGAAAGAAATGGAGGAACAAAATATTCCTGAATTAAATATTCCACAACTTTCAGCTATTCATAATAGAGAAGATATGAA", + "start": 1150303, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_13_v3", + "end": 1150303, + "genome_id": 0, + "start": 1150279, + "strand": "+" + }, + "seq": "ACACTTCTATATCTTCTTTCTTCATCATTCTTA" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t80" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_13_v3", + "end": 1725365, + "genome_id": 0, + "start": 1725337, + "strand": "+" + }, + "seq": "TCGGTATAATAGAAGAGCCATCATATCC" + }, + "gene_name": "PF3D7_1343700", + "insert_location": { + "chrom": "Pf3D7_13_v3", + "end": 1725570, + "genome_id": 0, + "ref_seq": "CCCAATACAATAAATTCTACCATTTGACGTAACACCACAATTATTTCTTCTAGGTATATTTAAATTACTTGAAACATACCATACATCTCTTAAACGATCATACACCTCAGTTTCAAATAAAGCCTTATAATCATAGTTATTACCACCAAAAACGTATAAGAAATTATTCAATACAGCACTTCCAAAATAAGCTTTTTTGGTAGAC", + "start": 1725365, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_13_v3", + "end": 1725365, + "genome_id": 0, + "start": 1725337, + "strand": "+" + }, + "seq": "GCTGGCGTATGTGTACACCTAT" + }, + "target_attributes": [ + "Included", + "DrugResistance" + ], + "target_name": "t82" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_13_v3", + "end": 1876352, + "genome_id": 0, + "start": 1876325, + "strand": "+" + }, + "seq": "CCAGGACAATTTAAACCTACCAAATGA" + }, + "gene_name": "PF3D7_1346700", + "insert_location": { + "chrom": "Pf3D7_13_v3", + "end": 1876534, + "genome_id": 0, + "ref_seq": "TTATATTTTGGTTCAGACAAATGTACGTTACATGAAATATGTGCACTATCATCAACTAAAGAAATATCTAAACTATCTGTAAAAGTATGTTTAGAACTAACATTTGAAGAGAAGTTACATCCGTGTATGACTTTTTTTTCATATTTTGGTTTTAAAACTATTTTATAATTATTATTTTTAAA", + "start": 1876352, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_13_v3", + "end": 1876352, + "genome_id": 0, + "start": 1876325, + "strand": "+" + }, + "seq": "CAAAAGATGTTAATACAGAATGTACATGCAAA" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t83" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_14_v3", + "end": 2524962, + "genome_id": 0, + "start": 2524931, + "strand": "+" + }, + "seq": "ATGATCTTCTCTGAAATTTACTTGAATTGTT" + }, + "gene_name": "PF3D7_1462300", + "insert_location": { + "chrom": "Pf3D7_14_v3", + "end": 2525089, + "genome_id": 0, + "ref_seq": "AAATGAGGTATAATCATCCATTTCGTTGGGTCGATTTGATCTATTTTTAAGGTCCATATATTGAGATGAATCATTATGCATTTTATAATCATGAGGGATATTAGGTGCATGGTATTTAGGGTCTTTA", + "start": 2524962, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_14_v3", + "end": 2524962, + "genome_id": 0, + "start": 2524931, + "strand": "+" + }, + "seq": "ACCAAACTTTTGGAGATTTCAAGATTATGA" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t98" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_13_v3", + "end": 103659, + "genome_id": 0, + "start": 103631, + "strand": "+" + }, + "seq": "GAAAAGAAGATCCAACTGACAGAGAAAA" + }, + "insert_location": { + "chrom": "Pf3D7_13_v3", + "end": 103879, + "genome_id": 0, + "ref_seq": "AACTGATGTTAATGAAGGCCAAAATGGAAAACGTTTAACACAAGAAAAAACCCTAAAACAAATTCCTTCGACATCACCAAATAATTTAGAACAAAAATTACAACAAACACATATTTCTTCTTCCCAACAAAAACATTTAATAAAAACTACTCCTACTTCAGATTCAACTACAACTTCATCAAGCTCTTCTGTTCCTCTTACAAAACAATCCCCTCATTCT", + "start": 103659, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_13_v3", + "end": 103659, + "genome_id": 0, + "start": 103631, + "strand": "+" + }, + "seq": "TGTGTACTAGATAATGCAGGAACTGA" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t78" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_12_v3", + "end": 684088, + "genome_id": 0, + "start": 684059, + "strand": "+" + }, + "seq": "GTCTACCATTTTTAATCGACTAACTCGAA" + }, + "gene_name": "PF3D7_1217300", + "insert_location": { + "chrom": "Pf3D7_12_v3", + "end": 684261, + "genome_id": 0, + "ref_seq": "AATATCAAGATGGTAGTATTGTTTTAGATGTTAGTAGTACGAGAGATAAACTTTATGGAGAAGTTGAGTGGGAAGGATATAAATTTGAACTTGTGGATACAGGAGGTTTAGTTTTTGAACAAGAAAAGTTTTCAAAAGAAATAAAGGATCAAATTCTTATGGCTCTAAAAGAA", + "start": 684088, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_12_v3", + "end": 684088, + "genome_id": 0, + "start": 684059, + "strand": "+" + }, + "seq": "CATCAACGACAAAAATAACAACTGATGA" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t74" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_04_v3", + "end": 415653, + "genome_id": 0, + "start": 415623, + "strand": "+" + }, + "seq": "ATGAATTAATAAAAGAACATGGTGGACCTT" + }, + "gene_name": "PF3D7_0408600", + "insert_location": { + "chrom": "Pf3D7_04_v3", + "end": 415826, + "genome_id": 0, + "ref_seq": "ATGCTAGTTTTGCTGCTCATGAAAATAAAAGCTACTCATATGAAAGTCGTACATATAAAATGTATCCACCTGAATTTAATACATTAATGTTAAAAGCAGATTATTTTATAAGAGATATAAATACACGAGGATTTAGAGAAGTAAATATGGATTCATGTAAATCATATACAAAT", + "start": 415653, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_04_v3", + "end": 415653, + "genome_id": 0, + "start": 415623, + "strand": "+" + }, + "seq": "GACTTGAAAACATTTTAAATTTCTTGTATCCAT" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t23" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_12_v3", + "end": 659891, + "genome_id": 0, + "start": 659858, + "strand": "+" + }, + "seq": "GTTAATACTGGTACTATTATACCATATGTTGCT" + }, + "gene_name": "PF3D7_1216600", + "insert_location": { + "chrom": "Pf3D7_12_v3", + "end": 660010, + "genome_id": 0, + "ref_seq": "GGGTCGACTTTTGGTGGTTTAACATTTTCAGCTACGAGATTTTCGAATGATGGCAATCCTACTTTGATTAATTCCTTTAACATAGATTTTGCGTGTTTTTTTACTTCTGATTTGATATC", + "start": 659891, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_12_v3", + "end": 659891, + "genome_id": 0, + "start": 659858, + "strand": "+" + }, + "seq": "TCACCAACCTTTTTAGAATCAAGCTTT" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t73" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_13_v3", + "end": 156566, + "genome_id": 0, + "start": 156535, + "strand": "+" + }, + "seq": "AACTGAAAGTATATACAATAGTACACCTCCA" + }, + "gene_name": "PF3D7_1302900", + "insert_location": { + "chrom": "Pf3D7_13_v3", + "end": 156722, + "genome_id": 0, + "ref_seq": "TATAGAGTTATTATGTTCGAATTAATGACCAGATTATTTCGATTTTATACAAAACCAATAGACCTTATTATTACTATGAATACACACAGATATGACACACCTATATTGTTAAAACATTCAAACAGCTTACAACTTATCTTATCAAATCAACAAAAT", + "start": 156566, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_13_v3", + "end": 156566, + "genome_id": 0, + "start": 156535, + "strand": "+" + }, + "seq": "AAAAGGATAAGTTAGAATTGCTCATTAATCT" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t79" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_11_v3", + "end": 1816211, + "genome_id": 0, + "start": 1816181, + "strand": "+" + }, + "seq": "GGGTAGATATCGTTATAAGGGCTATAATGT" + }, + "gene_name": "PF3D7_1145800", + "insert_location": { + "chrom": "Pf3D7_11_v3", + "end": 1816425, + "genome_id": 0, + "ref_seq": "ATTGACTTCTCCGGGTTGGTTACATTATCATTACAACCAATATTATTAAGGTTAATACTATTTTTATCATTATTATTGTTGTTTTCATTTGTGTGGTTATATAATAACAATGATGTGTCGTCTATTGGATCATTTTGCACAAGGTCAATATCATTAGAATTATGTTTCATATTATTTGTATACATTTTTTTGTAATTATCATTTTTTCTTACTT", + "start": 1816211, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_11_v3", + "end": 1816211, + "genome_id": 0, + "start": 1816181, + "strand": "+" + }, + "seq": "GCCAAAAATACGATGTGATGAAGAATG" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t71" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_11_v3", + "end": 1552430, + "genome_id": 0, + "start": 1552397, + "strand": "+" + }, + "seq": "AAGGGAAAAATAATGGATAATATAGTTGTGAAT" + }, + "gene_name": "PF3D7_1139100", + "insert_location": { + "chrom": "Pf3D7_11_v3", + "end": 1552640, + "genome_id": 0, + "ref_seq": "AATATCGACAATTATAAAGAAAAAATAGAAAATTTTAATGAAAGATATTATGAAGATGATTTAAGTTTCTTAAACTTTCCAGGAACCATAACAAGTTATGATAAAAACCATCAAAGAGATAAAAGAAAAAACTGTTTTGAAGAATATCTAGACAATAATAATTATTTTATTGATAGTAATCTAAAGGAAGTTATAGAAAATAATATATAT", + "start": 1552430, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_11_v3", + "end": 1552430, + "genome_id": 0, + "start": 1552397, + "strand": "+" + }, + "seq": "GTCAATTTGCTCCTTATCCATATTCGA" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t69" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_11_v3", + "end": 1009856, + "genome_id": 0, + "start": 1009831, + "strand": "+" + }, + "seq": "AAACTGTGAGCATATCTTGGTTCAG" + }, + "gene_name": "PF3D7_1125800", + "insert_location": { + "chrom": "Pf3D7_11_v3", + "end": 1010038, + "genome_id": 0, + "ref_seq": "GAATTCTATCTATTTGTTTAATTGGTGTCCATGAATTTTTAGAGAAACACCACATATCAGCTAATAAGGAATTATTAACATCTAATCCTCCATGAATATATAAAAAATCATTAAAACTGAAAGAAGCATGCTTATATCTTGCACGTGGACAAATTTTATTTCCAATAAGTTCCCATTTCTTT", + "start": 1009856, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_11_v3", + "end": 1009856, + "genome_id": 0, + "start": 1009831, + "strand": "+" + }, + "seq": "TGTTGATGAAACATATAAATTTGATTTCCAAGC" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t66" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_11_v3", + "end": 1750865, + "genome_id": 0, + "start": 1750833, + "strand": "+" + }, + "seq": "CATCAACATATAGTCGTTATAAAAGAGCACTT" + }, + "gene_name": "PF3D7_1143800", + "insert_location": { + "chrom": "Pf3D7_11_v3", + "end": 1751055, + "genome_id": 0, + "ref_seq": "TTATTAAAAACAACAAATAAATTACCAAGGTCATGGAAAAAACTCTTGTTAAATCTATCCATTAGATTTCAAACAATACCTATAGGTGGTTCTATCGAAATCATATCAAAGGATGAGAAAAATATTTCTATGACACGATCCAGTGAATATAATGCAACAACATATGAGCATTACACATTTCCCAAATGGT", + "start": 1750865, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_11_v3", + "end": 1750865, + "genome_id": 0, + "start": 1750833, + "strand": "+" + }, + "seq": "GGCGTTTCCTCATTTTCTTTACTATTGT" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t70" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_11_v3", + "end": 119486, + "genome_id": 0, + "start": 119456, + "strand": "+" + }, + "seq": "GCTTCCATCTCCTTTATATTCATCAAGAAA" + }, + "gene_name": "PF3D7_1102500", + "insert_location": { + "chrom": "Pf3D7_11_v3", + "end": 119693, + "genome_id": 0, + "ref_seq": "TTTCATCCAAGAGTAATTATGTTTTTCTTGTTGATATTTTGCTTTATACAAACGAGCAAGATACTTTTTATACGATTCATGCTCTTTAATTTTCTTTTCAAAAGTTTTGGTTATAATGTGTTCAAGTGATTGTAAAGTATTTTTCTTTAATTTTCTCCATATTAATCTACATGCGATTATAAGAATTCTATATTCTTTGATATTCCC", + "start": 119486, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_11_v3", + "end": 119486, + "genome_id": 0, + "start": 119456, + "strand": "+" + }, + "seq": "GGAATTTTTAATGAATGGATTAAAACTAGTGAA" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t65" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_10_v3", + "end": 1436479, + "genome_id": 0, + "start": 1436451, + "strand": "+" + }, + "seq": "CTAGGAATCGAATAAATGAGGAAAAGCA" + }, + "gene_name": "PF3D7_1036400", + "insert_location": { + "chrom": "Pf3D7_10_v3", + "end": 1436682, + "genome_id": 0, + "ref_seq": "CGAGAAGAAACACGTTTTATCTCATAATTCATATGAGAAAACTAAAAATAATGAAAATAATAAATTTTTCGATAAGGATAAAGAGTTAACGATGTCTAATGTAAAAAATGTGTCACAAACAAATTTCAAAAGTCTTTTAAGAAATCTTGGTGTTTCAGAGAATATATTCCTTAAAGAAAATAAATTAAATAAGGAAGGGAAAT", + "start": 1436479, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_10_v3", + "end": 1436479, + "genome_id": 0, + "start": 1436451, + "strand": "+" + }, + "seq": "ATCGTCATCATCATTTATTATGTGTTCAATTA" + }, + "target_attributes": [ + "Excluded", + "Microhaplotype" + ], + "target_name": "t64" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_01_v3", + "end": 531682, + "genome_id": 0, + "start": 531656, + "strand": "+" + }, + "seq": "CTTTTTGGGCTTATTGTTTGGAAGAA" + }, + "gene_name": "PF3D7_0113800", + "insert_location": { + "chrom": "Pf3D7_01_v3", + "end": 531900, + "genome_id": 0, + "ref_seq": "AAAAGAAAGATGTTAAGAAAAAAAAGATCGATATGATAAATATATTACACATTCCTACAAATAATTATAGCATGCCAAATGAAAAAGATATAAACAGTTATGAATTTTTTGGATCTGAACCTATTGAATTATATGATGTAAAATCTAATAAGAATTGTGTTATAACTAGCCAATCTTATATTTGTATTGAAAACCCGCATGCTGCCATAGTATCCGAA", + "start": 531682, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_01_v3", + "end": 531682, + "genome_id": 0, + "start": 531656, + "strand": "+" + }, + "seq": "ACTGGATTCTTCTAATATTCTTTGCTCTCT" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t6" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_09_v3", + "end": 596133, + "genome_id": 0, + "start": 596101, + "strand": "+" + }, + "seq": "ATTTGTTTTTGTTCTACATCAATAATTGGTTT" + }, + "gene_name": "PF3D7_0913900", + "insert_location": { + "chrom": "Pf3D7_09_v3", + "end": 596334, + "genome_id": 0, + "ref_seq": "ATTATTTTCGTTTTTTTTTATATTATCATTATAATTATATGTATTTACAAAGAATTTATTATTATTTGTTTCTTTATAATTATATTCATTTTCTTTATTACTTAAGGAATTTATATTTGATAAAACTTGTTGTCCTCTTTCTTCTTTGTTGATGTGAATATTTGAGAAAATAATAATAAATGTAATGACTAGGGCTATGTT", + "start": 596133, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_09_v3", + "end": 596133, + "genome_id": 0, + "start": 596101, + "strand": "+" + }, + "seq": "AAATAGAAGTCATATAGGTGACTGGAATCTT" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t55" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_09_v3", + "end": 516928, + "genome_id": 0, + "start": 516904, + "strand": "+" + }, + "seq": "TGTGGGCGCAAAAACTATAAATGA" + }, + "gene_name": "PF3D7_0911300", + "insert_location": { + "chrom": "Pf3D7_09_v3", + "end": 517092, + "genome_id": 0, + "ref_seq": "ATGTTTGTGTAATAAAGGATATTTCTATAATGTCAAGAAACAACAATGTGAAGAATGTCCCATAGGTTTTTATTGTCCAAAAATAAGCTCAAAAAATAATATAAAAAAACCTATCAAATGTCCTAAAAATTCCTCAAGTATAAAAAAAGGTATGTATATATCAA", + "start": 516928, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_09_v3", + "end": 516928, + "genome_id": 0, + "start": 516904, + "strand": "+" + }, + "seq": "ATTTTGTATATCCAAAATTACATTGACAATTGT" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t54" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_05_v3", + "end": 1309609, + "genome_id": 0, + "start": 1309581, + "strand": "+" + }, + "seq": "ACGACGAAGAAAACGAAAGTATTGATAA" + }, + "gene_name": "PF3D7_0532300", + "insert_location": { + "chrom": "Pf3D7_05_v3", + "end": 1309744, + "genome_id": 0, + "ref_seq": "TAATGAAGAAAATATGTCTGACAGACCAAACAGTTTATCTCATGATAAGGATCAACACCTCGATGAAACACATAATGAACAATATGGATTATACGTAAAAGAAATGGAATCTAAAGTTGAAAAATTAGCTGAAAA", + "start": 1309609, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_05_v3", + "end": 1309609, + "genome_id": 0, + "start": 1309581, + "strand": "+" + }, + "seq": "ACCTCTTGAAATTCCTTTTCAACTTGA" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t37" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_08_v3", + "end": 1362891, + "genome_id": 0, + "start": 1362863, + "strand": "+" + }, + "seq": "CGACTTCTTTAAGAGAACAAACAGAACA" + }, + "gene_name": "PF3D7_0831600", + "insert_location": { + "chrom": "Pf3D7_08_v3", + "end": 1363087, + "genome_id": 0, + "ref_seq": "CGTAAAAAAAAAGGGTTTTCCTAAAAAACCATCGGTTCATGGTTTTACACAGATGGTGTTTTTGCAGCTTACTAATATAGTCATGTATGCCCTTTGTTTTATGAGCCTTTCACAAATATATGCTTATTTCGAAAACGTGAATTTTTATATTATAAGCAATTTTCGTTTCCTTGAGAGATATTTTAATATATTCAAT", + "start": 1362891, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_08_v3", + "end": 1362891, + "genome_id": 0, + "start": 1362863, + "strand": "+" + }, + "seq": "AAGTTTTCTTCTGAATAGTTCTACAAAGTATTT" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t53" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_07_v3", + "end": 165235, + "genome_id": 0, + "start": 165202, + "strand": "+" + }, + "seq": "GGATCCTCTTACAATCTCGAAATAATTATAATT" + }, + "gene_name": "PF3D7_0703900", + "insert_location": { + "chrom": "Pf3D7_07_v3", + "end": 165422, + "genome_id": 0, + "ref_seq": "ATCATTATTATTATTATTATAATTATCATTGTTATTATTATTGTTGTTGTTGTTATTATTATTTCCTTTATTATTTAATATGCATTTTTTAATATCCATTTTATTATTTATCATATCAGTACTTTTATTTTTCTCCTTTTCGTTTATAGCTTTTTCCCTATGCACCCTGAATTTCCCATTTTTTTTT", + "start": 165235, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_07_v3", + "end": 165235, + "genome_id": 0, + "start": 165202, + "strand": "+" + }, + "seq": "ATGGTTTGGTAAGCGAGTTTATGTTATT" + }, + "target_attributes": [ + "Excluded", + "Microhaplotype" + ], + "target_name": "t40" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_08_v3", + "end": 1344686, + "genome_id": 0, + "start": 1344653, + "strand": "+" + }, + "seq": "TCTTTTCCATATATAATAACGCATGAATTCTTT" + }, + "gene_name": "PF3D7_0831400", + "insert_location": { + "chrom": "Pf3D7_08_v3", + "end": 1344819, + "genome_id": 0, + "ref_seq": "AAATATATCTTTTACTTTATCTGTAAGTTTCATGGAATCTATTATTTCATGTGCATATTTTATTTTTGCCTCGTTTATATATTTACCTGCTTTTAATTTACATAAACATTTTTCTATTAAGTTTTGATCATTT", + "start": 1344686, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_08_v3", + "end": 1344686, + "genome_id": 0, + "start": 1344653, + "strand": "+" + }, + "seq": "TGAGAACAGATGAAGTAACTACTCGATT" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t52" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_14_v3", + "end": 3124642, + "genome_id": 0, + "start": 3124614, + "strand": "+" + }, + "seq": "CAGATTATTTGGTAATGAACAACCAGGA" + }, + "gene_name": "PF3D7_1475900", + "insert_location": { + "chrom": "Pf3D7_14_v3", + "end": 3124842, + "genome_id": 0, + "ref_seq": "TATGGAAAAATGGAATATGAAGTATTAAGTGATGATAACATAGTGTATGAAAATATACAACATGATTTATTAAAAACAATAGAAGATGATGAAGAAATGTTAAAAGGAACTGAAAGGAAGGATAATATAGATATACTGAGGACTCCTGGAAGGGGAGAATATAATATGTGGTCTACTTCTGGACTAGGGTTCTATGAATT", + "start": 3124642, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_14_v3", + "end": 3124642, + "genome_id": 0, + "start": 3124614, + "strand": "+" + }, + "seq": "AGGTCTTCCTAATCTTGAACCATCATAT" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t99" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_08_v3", + "end": 1269320, + "genome_id": 0, + "start": 1269294, + "strand": "+" + }, + "seq": "CTCTTATATCAGGAGCAGCTATAGGA" + }, + "gene_name": "PF3D7_0829600", + "insert_location": { + "chrom": "Pf3D7_08_v3", + "end": 1269456, + "genome_id": 0, + "ref_seq": "GCCTTAGCATTAATAACACTTATAGGAGGTATTTATATGACTAAAGGAAGAAAAAGTTCCATATGGCATAATTCAGAAATAAATGATACACTTTATGATGTTGTTCTTGAAACAGTGAATCAAGGAAATACAGATG", + "start": 1269320, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_08_v3", + "end": 1269320, + "genome_id": 0, + "start": 1269294, + "strand": "+" + }, + "seq": "TTTTACTCCTCTTTGAAAAGCCAACTTTA" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t51" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_05_v3", + "end": 329378, + "genome_id": 0, + "start": 329351, + "strand": "+" + }, + "seq": "GTGTTAAAACAACAGGAGGAACACTAA" + }, + "gene_name": "PF3D7_0508000", + "insert_location": { + "chrom": "Pf3D7_05_v3", + "end": 329550, + "genome_id": 0, + "ref_seq": "ATTGTGATGTATATAAATTCCCTTCTTCTTTATGTACCACATTATAAGAACCACGAACATATTCTTTTAAAAATGTTAACTTACTTCCAACAAATATATAATCAAAACAAAATTTTTTATTGTCGAAATGTTCTCGTTCAACCCCATTCATATTTCGGATATCATTATTTAA", + "start": 329378, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_05_v3", + "end": 329378, + "genome_id": 0, + "start": 329351, + "strand": "+" + }, + "seq": "TGTTGTAGAATATTCGTGTCCGTATAGT" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t33" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_10_v3", + "end": 1386700, + "genome_id": 0, + "start": 1386672, + "strand": "+" + }, + "seq": "TGCTACAGTTATATAGGACGATTTTGGT" + }, + "gene_name": "PF3D7_1035000", + "insert_location": { + "chrom": "Pf3D7_10_v3", + "end": 1386869, + "genome_id": 0, + "ref_seq": "AGGGAACAGGTTAAATATATTGAAGACGTGGTTTGATAATCAGGTATTTCTTTAATTAAATATTCATGATATTGTTCGTTAGATACATAAATTAATTCGTCCTCCACATTTTGCTGTTCTGTTATAATTTGTGAAGAAGCTTGGTTTGTCTTATTTGGTAATTGCTCTT", + "start": 1386700, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_10_v3", + "end": 1386700, + "genome_id": 0, + "start": 1386672, + "strand": "+" + }, + "seq": "AAAATGAGGACAAGGAAAATAATACATTCATAA" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t62" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_07_v3", + "end": 1358694, + "genome_id": 0, + "start": 1358666, + "strand": "+" + }, + "seq": "AAGGATCATTTCATTGAAGCCTCTAAAA" + }, + "gene_name": "PF3D7_0731500", + "insert_location": { + "chrom": "Pf3D7_07_v3", + "end": 1358911, + "genome_id": 0, + "ref_seq": "AAGAATCTCAACTTTTGCTTAAAAAAAATGATAACAAATATAATTCTAAATTTTGTAATGATTTGAAGAATAGTTTTTTAGATTATGGACATCTTGCTATGGGAAATGATATGGATTTTGGAGGTTATTCAACTAAGGCAGAAAACAAAATTCAAGAAGTTTTTAAAGGGGCTCATGGGGAAATAAGTGAACATAAAATTAAAAATTTTAGAAAAAA", + "start": 1358694, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_07_v3", + "end": 1358694, + "genome_id": 0, + "start": 1358666, + "strand": "+" + }, + "seq": "CAAAGTTTCTCTCTAAATTCATTCCACCAT" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t45" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_12_v3", + "end": 2050130, + "genome_id": 0, + "start": 2050103, + "strand": "+" + }, + "seq": "TTGGTTTTGATTATCTCCCATTTTCGT" + }, + "gene_name": "PF3D7_1250100", + "insert_location": { + "chrom": "Pf3D7_12_v3", + "end": 2050314, + "genome_id": 0, + "ref_seq": "TTTTAAACTTTGAATCTGTTCAATTAATAACACTTCATCATTGTCTTCGCCTTTTATAATATCTCCATGATTATGTGCTCCTCTAATTAAGGTATCACTAACCTGTTGTTCATCTGTCGCATGAGAACTAGTAGATATATCTGGTTTATTTTTTTTCTTTCTTTTTGTTATTTCTAATTTTTTT", + "start": 2050130, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_12_v3", + "end": 2050130, + "genome_id": 0, + "start": 2050103, + "strand": "+" + }, + "seq": "AAAAACATACCTAGACATTTGAATGTCTTAGA" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t77" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_03_v3", + "end": 141963, + "genome_id": 0, + "start": 141936, + "strand": "+" + }, + "seq": "AAAGCGAATAATGCCAATATGTTGTTC" + }, + "gene_name": "PF3D7_0302600", + "insert_location": { + "chrom": "Pf3D7_03_v3", + "end": 142181, + "genome_id": 0, + "ref_seq": "AGCATTTATAACAAAATATCAGAAGATGGAAAAACCAAAAATAGCCTACTTAGCGATATATCTAAATTATTTAAAATTGTAAAAGAAAGCAAATTAATATTTGTAACTGGATTTTTATTAACAACCTTGTCAGCAATTGTCGATTCATACATTCCAATTTTTCTATCCAAAACGGTATCTTTTGTAATGGAAAGAAAAAAATTTACATTTCTTAAAAT", + "start": 141963, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_03_v3", + "end": 141963, + "genome_id": 0, + "start": 141936, + "strand": "+" + }, + "seq": "TTTTTACAACTGACAAATTTGTTTTGTGT" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t15" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_01_v3", + "end": 512199, + "genome_id": 0, + "start": 512168, + "strand": "+" + }, + "seq": "CGAATCAAAGGTAGAAAATGATCTTGAAGAA" + }, + "insert_location": { + "chrom": "Pf3D7_01_v3", + "end": 512388, + "genome_id": 0, + "ref_seq": "TTAAATAAATTAAGTGAAGATGATTATGAAAAAAATTGTAGACATTTAAATTATTTAATAGATAATATAAGAGAATTATTTTTTAGTTCTAAAAATATTAGAATTCCTGATGTAGCTCGTAAATATTTGTGGGATAATCAAATTGAAGGAAATCTCAAAAAATTAATATCTTCAGAAACAAAATATAAA", + "start": 512199, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_01_v3", + "end": 512199, + "genome_id": 0, + "start": 512168, + "strand": "+" + }, + "seq": "CTGTGGATTATTTATACGATTCCTTTGACA" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t5" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_06_v3", + "end": 532195, + "genome_id": 0, + "start": 532167, + "strand": "+" + }, + "seq": "ATCAAGCTGAATCTATCCTATTGGATCA" + }, + "gene_name": "PF3D7_0612900", + "insert_location": { + "chrom": "Pf3D7_06_v3", + "end": 532378, + "genome_id": 0, + "ref_seq": "AGAACAATTGCTAAACACCAAATTGGGTGAAACAAAAAACCACCTGAACAGAACCCCATTTATACCTGAATCGGTCATACGAGAAAGGAAATTACGCCAAGAAAAAGCTCAATCCACAAACAACATGTTCGATTCAACAAACGCAGATAGTATTACGTCCCCATGTGATCCAACGAATGCCAC", + "start": 532195, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_06_v3", + "end": 532195, + "genome_id": 0, + "start": 532167, + "strand": "+" + }, + "seq": "GTATATTGTTTATTGGGATCCCCTTCC" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t39" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_01_v3", + "end": 532690, + "genome_id": 0, + "start": 532660, + "strand": "+" + }, + "seq": "GGGAAGAATGGTTTAATCGTAAAAATGAAG" + }, + "gene_name": "PF3D7_0113800", + "insert_location": { + "chrom": "Pf3D7_01_v3", + "end": 532844, + "genome_id": 0, + "ref_seq": "ACTTTCTTAATTCTATGAATGAAGAATATACGCATATTAATTTAAATAACTTTATACATAATAATAACCATGATAATGACGAAAATTATACATTAGATCAGGTGGAAGGATATCCTATGACTAGTTATCAAAATAATATATACAAGGATTTTTT", + "start": 532690, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_01_v3", + "end": 532690, + "genome_id": 0, + "start": 532660, + "strand": "+" + }, + "seq": "GTCTTCGAAATAATGAACTCCCTTTTCT" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t7" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_07_v3", + "end": 298886, + "genome_id": 0, + "start": 298857, + "strand": "+" + }, + "seq": "TAGATATATCATTCACAGTCGTCTCATGG" + }, + "gene_name": "PF3D7_0706100", + "insert_location": { + "chrom": "Pf3D7_07_v3", + "end": 299005, + "genome_id": 0, + "ref_seq": "ACATTCAATATGGTTCTGAGCTTAAAGATGTTATCCTTATACATGTTTCTATTCTCATTCGTTATAACATCAATGACATATAAAACATATCGCTCAAATATTTTGTGAACAATATTATA", + "start": 298886, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_07_v3", + "end": 298886, + "genome_id": 0, + "start": 298857, + "strand": "+" + }, + "seq": "TGTTAAGTTTTCTCTTGTGGAATCGAAT" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t42" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_02_v3", + "end": 278165, + "genome_id": 0, + "start": 278144, + "strand": "+" + }, + "seq": "CTTACCATTCGCGCTTTCTTG" + }, + "gene_name": "PF3D7_0207000", + "insert_location": { + "chrom": "Pf3D7_02_v3", + "end": 278336, + "genome_id": 0, + "ref_seq": "GGAATTTTCTTTTTTATGACTTTCTTCTCCTTGTTCAGAAGCTTCTTTTTCATCCTTTTTTTCTGCTGCGTCAGATAAATTGGGGGAAGCACTTGAAGATTCATTTCCTCCAGGAGTATTACTAGTACTTACTCCGTCCACATTTGGTTTTTCTTCCCCTAGAATTCTCAT", + "start": 278165, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_02_v3", + "end": 278165, + "genome_id": 0, + "start": 278144, + "strand": "+" + }, + "seq": "AATATAGTACCAGAAAATGGAAGAATGTTAAAT" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t11" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_04_v3", + "end": 133491, + "genome_id": 0, + "start": 133463, + "strand": "+" + }, + "seq": "TTTTGGTTCAGTACTATCTCTTGCATTT" + }, + "insert_location": { + "chrom": "Pf3D7_04_v3", + "end": 133701, + "genome_id": 0, + "ref_seq": "TTAGATTTTTTCCCTCCAGCAGGTGCACTAACTTTAGGTGTTTTAAATCTAGATGTATGTGGAACCCCATCTTTATTTGGTTTACCTCTATTTAATCTTTTACCAGCAGTAGAAACTACATTCTCTCGATTATCATTACCTACTTCAGTCTTTACAATTGTAGGAGGTGTTTTAACATGATTATCCCCTCCATGAGGAGTAACCCTTAAA", + "start": 133491, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_04_v3", + "end": 133491, + "genome_id": 0, + "start": 133463, + "strand": "+" + }, + "seq": "CGACACCAAATATTCAAGAAGAACC" + }, + "target_attributes": [ + "Excluded", + "Microhaplotype" + ], + "target_name": "t21" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_06_v3", + "end": 145343, + "genome_id": 0, + "start": 145315, + "strand": "+" + }, + "seq": "CAATCAACAAAAGCTGATGAATCATCAT" + }, + "gene_name": "PF3D7_0603600", + "insert_location": { + "chrom": "Pf3D7_06_v3", + "end": 145501, + "genome_id": 0, + "ref_seq": "AATTTGAATAAAATTTATCATTCACAATATTATATTTTTGTTTCTTCTTTTTTCCCATAATATTATTATTTTGTTCACAATATATGTTCATGTGTCCCCTCTTTTTCTGTAAAATATTAAAATGTTTCTTACTATGCTTCTCTTCATTTTTAATAACA", + "start": 145343, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_06_v3", + "end": 145343, + "genome_id": 0, + "start": 145315, + "strand": "+" + }, + "seq": "AAGGAAGGTAGAATATCAAATACAAGGGA" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t38" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_07_v3", + "end": 1149415, + "genome_id": 0, + "start": 1149387, + "strand": "+" + }, + "seq": "TGGACATGTAGATATTTGACTAGTCGAA" + }, + "gene_name": "PF3D7_0727000", + "insert_location": { + "chrom": "Pf3D7_07_v3", + "end": 1149585, + "genome_id": 0, + "ref_seq": "TAATATTTAATATTTTTGTTTAGGAAGTTTTCAAAATTGATGACATTGATAACCGTTTTTATTAAATCGCTTGGGTTGTTTGTGTGTTCCATTGTAGAAGACATAATTTTAAGAATGTGTTTTTGTGTTATTAAACAAAACTTTGTTACTATATGGAATCGTATGTTATA", + "start": 1149415, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_07_v3", + "end": 1149415, + "genome_id": 0, + "start": 1149387, + "strand": "+" + }, + "seq": "TGTATACTCTCACATATTCCCTTCAGTG" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t44" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_05_v3", + "end": 958389, + "genome_id": 0, + "start": 958362, + "strand": "+" + }, + "seq": "TTTAGAACAAGTGAGTTCAGGAATTGG" + }, + "gene_name": "PF3D7_0523000", + "insert_location": { + "chrom": "Pf3D7_05_v3", + "end": 958506, + "genome_id": 0, + "ref_seq": "TACGAAATTTATAACAATTTTTACATATGCCAGTTCCTTTTTAGGTTTATATATTTGGTCATTAATAAAAAATGCACGTTTGACTTTATGTATTACTTGCGTTTTTCCGTTAATTTA", + "start": 958389, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_05_v3", + "end": 958389, + "genome_id": 0, + "start": 958362, + "strand": "+" + }, + "seq": "TTTACTTTCTTATTACATATGACACCACAAACA" + }, + "target_attributes": [ + "Included", + "DrugResistance" + ], + "target_name": "t35" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_13_v3", + "end": 2481106, + "genome_id": 0, + "start": 2481079, + "strand": "+" + }, + "seq": "AGAAGATAAGCAATTATGGCAAAAGGT" + }, + "gene_name": "PF3D7_1361800", + "insert_location": { + "chrom": "Pf3D7_13_v3", + "end": 2481288, + "genome_id": 0, + "ref_seq": "GCAACTTACTTTAGAAGCCATGAATTCGGCCGATGATCCATTGGAAGCATTTAAAAATACTTTATTAATATTTGATTTTAATTTATCTGAATTTGATAAGGATCCATATATAAATGGTGTGCATGATTTAGCATCTAATATAAAGGATTGTTTAAGAAAAGGAGGTCACAGTAAAATATATT", + "start": 2481106, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_13_v3", + "end": 2481106, + "genome_id": 0, + "start": 2481079, + "strand": "+" + }, + "seq": "TCCATTTAAATAATAACCTTTGATCACTTTGAT" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t87" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_03_v3", + "end": 850816, + "genome_id": 0, + "start": 850788, + "strand": "+" + }, + "seq": "CCATTTTTATCTACACGTACTACATGCA" + }, + "gene_name": "PF3D7_0320400", + "insert_location": { + "chrom": "Pf3D7_03_v3", + "end": 850989, + "genome_id": 0, + "ref_seq": "TCATATTCGTTTCAGCGTTTATAGAGCGAATATTATCGATTATGTCTATATTCCCTAAAATATGTACATAATAATCTCCATTTAATAATGTTACTTTCTTAAGAATATTTTTGTATATGACATCAAAGATATTACGAGTTAACAATACATCTACATTTCCGTCTATTATATAT", + "start": 850816, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_03_v3", + "end": 850816, + "genome_id": 0, + "start": 850788, + "strand": "+" + }, + "seq": "AAATGTCTCTAAGAGTTACAGGAACAGA" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t19" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_05_v3", + "end": 958059, + "genome_id": 0, + "start": 958027, + "strand": "+" + }, + "seq": "AAATGTTTACCTGCACAACATAGAAAATTATT" + }, + "gene_name": "PF3D7_0523000", + "insert_location": { + "chrom": "Pf3D7_05_v3", + "end": 958221, + "genome_id": 0, + "ref_seq": "ATTTATATCATTTGTATGTGCTGTATTATCAGGAGGAACATTACCTTTTTTTATATCTGTGTTTGGTGTAATATTAAAGAACATGAATTTAGGTGATGATATTAATCCTATAATATTATCATTAGTATCTATAGGTTTAGTACAATTTATATTATCAATGAT", + "start": 958059, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_05_v3", + "end": 958059, + "genome_id": 0, + "start": 958027, + "strand": "+" + }, + "seq": "TTTGATGTAATTACATCCATACAATAACTTGAT" + }, + "target_attributes": [ + "Included", + "DrugResistance" + ], + "target_name": "t34" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_14_v3", + "end": 1992289, + "genome_id": 0, + "start": 1992261, + "strand": "+" + }, + "seq": "TTTTACTTTTGCTACCATCAGGCATAAT" + }, + "gene_name": "PF3D7_1448500", + "insert_location": { + "chrom": "Pf3D7_14_v3", + "end": 1992426, + "genome_id": 0, + "ref_seq": "ATAAACACCAGTACCATTTTTTTCTGATAAATTAATATTTTTTTGTATAACATCATATTTATCCCTTTTCGTGGTAAGTGCAGTATCCTGTTTTATTATTATATTATCGAATTCATCATGGTGTATATTTCTTTCAT", + "start": 1992289, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_14_v3", + "end": 1992289, + "genome_id": 0, + "start": 1992261, + "strand": "+" + }, + "seq": "ATCTTATTATGAAAGCTGTACATCCGATTTTA" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t97" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_09_v3", + "end": 1406405, + "genome_id": 0, + "start": 1406375, + "strand": "+" + }, + "seq": "CAGATTATCATAGTGTTGTGGATGAAGATT" + }, + "gene_name": "PF3D7_0935600", + "insert_location": { + "chrom": "Pf3D7_09_v3", + "end": 1406541, + "genome_id": 0, + "ref_seq": "TAATTAATTTTAATGATGATGTTACTTTAGAAACACAATCCATGATAGCACACGGAGGGTCTTTGTCAGAAATAGAAGAAACTGGAGATTTATCTTCAGATGTTGATAGATTACATTCATCAATCGAAACTACTCC", + "start": 1406405, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_09_v3", + "end": 1406405, + "genome_id": 0, + "start": 1406375, + "strand": "+" + }, + "seq": "ATCACCTCGTATATATACAACATCATCTCTT" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t58" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_04_v3", + "end": 1037634, + "genome_id": 0, + "start": 1037602, + "strand": "+" + }, + "seq": "ATTGAAGTACAATATGAAATCGATCTTGATAA" + }, + "gene_name": "PF3D7_0422500", + "insert_location": { + "chrom": "Pf3D7_04_v3", + "end": 1037844, + "genome_id": 0, + "ref_seq": "ATCTTATAAAGTTAATGAAATAGCTCAACTTAATTTAACCATAGAAAGAGATTTAACAGATGATGCTGTGATTTTTGCACACTCACTTTATTTACCATTTGAAAAAGAAGAAATGTGGTGGATCGTTATCGGAATTAAAAAAATGAACTTACTTTTATCTATCAAAAAATTATCTTTATTGAAAAGTGTCAATAATATAAAAATTAATTT", + "start": 1037634, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_04_v3", + "end": 1037634, + "genome_id": 0, + "start": 1037602, + "strand": "+" + }, + "seq": "GTATTTGGTTTGTCAGGCAATTCG" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t28" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_12_v3", + "end": 1237431, + "genome_id": 0, + "start": 1237407, + "strand": "+" + }, + "seq": "CGAATGCTTGTGTGATCAATGAAA" + }, + "gene_name": "PF3D7_1230000", + "insert_location": { + "chrom": "Pf3D7_12_v3", + "end": 1237603, + "genome_id": 0, + "ref_seq": "AGTATGAACACAAAACCGAAAGAGAGTTTAAAAAAAGATTCGATTTTAATGAAGGAAGAAATAACATAATAAATGTGTCAAATGTAAAGAAAACATGTAATATAGTTAAAAATGATTTAAAGGAATCTAACGAGATAAAAACTAATATAAACACAAGTTCTTATAATTTATA", + "start": 1237431, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_12_v3", + "end": 1237431, + "genome_id": 0, + "start": 1237407, + "strand": "+" + }, + "seq": "ACCTCTTTCAAAACATTCTCTTTTATTAATACA" + }, + "target_attributes": [ + "Excluded", + "Microhaplotype" + ], + "target_name": "t76" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_04_v3", + "end": 1128489, + "genome_id": 0, + "start": 1128461, + "strand": "+" + }, + "seq": "CTGTCGCAAAAGAAGGTTTTGATAATAT" + }, + "gene_name": "PF3D7_0424900", + "insert_location": { + "chrom": "Pf3D7_04_v3", + "end": 1128673, + "genome_id": 0, + "ref_seq": "ATTGAAAGAGTTAAAGGGAAAAATACAAAATTATTTAGATAATGATATTCAATTGAAAAATGGAAAACTCCTATATAAGGATACATGGGATAGAATTGTTTTGAAATTTTGTAGAACTGTAGCAATAGAAGAGGCAGAATACACTAGAAAATTTTATAGCTTAATTAATGATAAACATACAATT", + "start": 1128489, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_04_v3", + "end": 1128489, + "genome_id": 0, + "start": 1128461, + "strand": "+" + }, + "seq": "ATGAATGAATAAATCAATTTTACCACGTCATT" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t32" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_14_v3", + "end": 39953, + "genome_id": 0, + "start": 39920, + "strand": "+" + }, + "seq": "CCAACTATATCTGTTCCATAAATGGTTATATTT" + }, + "gene_name": "PF3D7_1401100", + "insert_location": { + "chrom": "Pf3D7_14_v3", + "end": 40137, + "genome_id": 0, + "ref_seq": "ACATAGAAATATGTGCGAAAATTGGGAAAAAAATAAATAACAGGAATTGTTATATAAATTGAATCAAGAATGGCACAAAGAAAATAATACTGGTGACTTTCACACTAGTGATATCACACACAATAGTGGTATTACATACAGTAGTGGTAACATACCTAGTGAAAGTAATAGTAGTTATATCCAA", + "start": 39953, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_14_v3", + "end": 39953, + "genome_id": 0, + "start": 39920, + "strand": "+" + }, + "seq": "ATTTATTTGGATTGAGATCTTAATGTTCAAAGT" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t89" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_11_v3", + "end": 1018953, + "genome_id": 0, + "start": 1018920, + "strand": "+" + }, + "seq": "GCTATACTACTACTTATGTTACTTATACCACAT" + }, + "gene_name": "PF3D7_1126100", + "insert_location": { + "chrom": "Pf3D7_11_v3", + "end": 1019085, + "genome_id": 0, + "ref_seq": "CTAGTGACTGTACATTTTTCATCTAATGTTCTATAGGATAAAGAATCTGAAGGACAATGCATATCATTACAAAAATAGCATGCACCTTTAAAATATAAATAAGAATGTCTTAACACAACAAAGGAATCAAAA", + "start": 1018953, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_11_v3", + "end": 1018953, + "genome_id": 0, + "start": 1018920, + "strand": "+" + }, + "seq": "CTCCTTTAGGTATTACGGTAGCAATAAG" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t67" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_03_v3", + "end": 221363, + "genome_id": 0, + "start": 221330, + "strand": "+" + }, + "seq": "GGAACAAGAAGGATAATACCATTATTAATCCTA" + }, + "gene_name": "PF3D7_0304600", + "insert_location": { + "chrom": "Pf3D7_03_v3", + "end": 221495, + "genome_id": 0, + "ref_seq": "TTGAACTATTTACGACATTAAACACACTGGAACATTTTTCCATTTTACAAATTTTTTTTTCAATATCATTTGCATAATCTAATTCGTCTTTAGGTTTATTAGCAGAGCCAGGCTTTATTCTAACTTGAATAC", + "start": 221363, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_03_v3", + "end": 221363, + "genome_id": 0, + "start": 221330, + "strand": "+" + }, + "seq": "CCCATGTAGTGTAACTTGTGGAAATG" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t16" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_04_v3", + "end": 748533, + "genome_id": 0, + "start": 748500, + "strand": "+" + }, + "seq": "AGATGTTTATATCATTAACAAAGTTGAAGATCT" + }, + "gene_name": "PF3D7_0417200", + "insert_location": { + "chrom": "Pf3D7_04_v3", + "end": 748696, + "genome_id": 0, + "ref_seq": "AATAGTTTTACTTGGGAAATTAAATTACTATAAATGTTTTATTATAGGAGGTTCCGTTGTTTATCAAGAATTTTTAGAAAAGAAATTAATAAAAAAAATATATTTTACTAGAATAAATAGTACATATGAATGTGATGTATTTTTTCCAGAAATAAATGAAAAT", + "start": 748533, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_04_v3", + "end": 748533, + "genome_id": 0, + "start": 748500, + "strand": "+" + }, + "seq": "ACATCGCTAACAGAAATAATTTGATACTC" + }, + "target_attributes": [ + "Included", + "DrugResistance" + ], + "target_name": "t26" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_07_v3", + "end": 166035, + "genome_id": 0, + "start": 166002, + "strand": "+" + }, + "seq": "AGGATATGTTCTTTTTAAAGTTCTCTTCATTTT" + }, + "gene_name": "PF3D7_0703900", + "insert_location": { + "chrom": "Pf3D7_07_v3", + "end": 166167, + "genome_id": 0, + "ref_seq": "CTTTTATTTGAACTTTTTTATTTTCTTCATTATCAATATAAAAACAACAATCTTTAAATTTATGAAATAACACCCAACTTAATGTATAAAATATAATTTCTATAAAATCAAAATTAATGTAATAACCTAATT", + "start": 166035, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_07_v3", + "end": 166035, + "genome_id": 0, + "start": 166002, + "strand": "+" + }, + "seq": "CGTTAAATGTAGAAAAGACGAAATCATCCA" + }, + "target_attributes": [ + "Excluded", + "Microhaplotype" + ], + "target_name": "t41" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_11_v3", + "end": 1376185, + "genome_id": 0, + "start": 1376159, + "strand": "+" + }, + "seq": "CTGCAAATTGAGCCATAGAAAAATGA" + }, + "gene_name": "PF3D7_1135100", + "insert_location": { + "chrom": "Pf3D7_11_v3", + "end": 1376372, + "genome_id": 0, + "ref_seq": "TTCTCATTCCTTTGAAAATATGAACTATTCAACTCATCAAGTTTTTCATATGTTATTTCATAACTGCCATCATCTGAATCCTCTTCATCACTACTACTTAAAGAATGCTCTTCTACAGTTATATCTTCATAATGATTATTTTTAGGAAAATATTCTTCAGATCTTTCTATAAATTCTGTTCCACTAC", + "start": 1376185, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_11_v3", + "end": 1376185, + "genome_id": 0, + "start": 1376159, + "strand": "+" + }, + "seq": "CGATAACACTAGATGTAAGATATGCATCAT" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t68" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_04_v3", + "end": 1113450, + "genome_id": 0, + "start": 1113422, + "strand": "+" + }, + "seq": "GATTCTGCATGCAGTAATGAATCTATTG" + }, + "gene_name": "PF3D7_0424600", + "insert_location": { + "chrom": "Pf3D7_04_v3", + "end": 1113604, + "genome_id": 0, + "ref_seq": "AAATCATCTAAGAATAAACTTTTTTGTTTAAACCATTTATTGAACATTTCACTTAAATGTGATTCAATTTTTTTTTCTGAGCTTTCCATAATTTGATTACAACTATTCAATTTGTTTGTATAAGTTTTAGGTCTTATTATTCTTTTACGTTTTA", + "start": 1113450, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_04_v3", + "end": 1113450, + "genome_id": 0, + "start": 1113422, + "strand": "+" + }, + "seq": "CGTAGCATGCTCAGATATTATGATGATT" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t31" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_01_v3", + "end": 495971, + "genome_id": 0, + "start": 495941, + "strand": "+" + }, + "seq": "GCCACCAAAATATTATATACCACAAGACAA" + }, + "gene_name": "PF3D7_0113100", + "insert_location": { + "chrom": "Pf3D7_01_v3", + "end": 496143, + "genome_id": 0, + "ref_seq": "TGAAAGTAGCGAATACCCTGTAGAAATTGTTAGTAAACCTCTGGAATGGTTATTGTTTCATGATTTGACTAAGCCTGATGTTACTGCACTACCTGAAGAATTACCATTAACGAGCTATAAAGTAACACCTACTTCTATTAATGTATTGCATAAAGAGGGCCCCACTTTAAAA", + "start": 495971, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_01_v3", + "end": 495971, + "genome_id": 0, + "start": 495941, + "strand": "+" + }, + "seq": "AAGGAAAATCTTTGGTGGGAAAAATAGA" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t4" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_10_v3", + "end": 377095, + "genome_id": 0, + "start": 377062, + "strand": "+" + }, + "seq": "AAACAAATAGCATTCGATAAATTTGAAAATTTC" + }, + "gene_name": "PF3D7_1009200", + "insert_location": { + "chrom": "Pf3D7_10_v3", + "end": 377209, + "genome_id": 0, + "ref_seq": "AACCAAAAAATGATACCTGTACGTTTTTCTCCAGGAGAAACAAAAAAATTAGAAAGGATTCTCAAAAAAGTAGACGACTTTTTCTGTGCCAATATTAAAGCTCAATATACTTGC", + "start": 377095, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_10_v3", + "end": 377095, + "genome_id": 0, + "start": 377062, + "strand": "+" + }, + "seq": "CTTCATCTATATAGTCCCCGATGAATGA" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t60" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_01_v3", + "end": 181557, + "genome_id": 0, + "start": 181524, + "strand": "+" + }, + "seq": "TCTATTAGCTTTTTCAAACCTTTCATTATTGTT" + }, + "gene_name": "PF3D7_0104100", + "insert_location": { + "chrom": "Pf3D7_01_v3", + "end": 181673, + "genome_id": 0, + "ref_seq": "TTCATTCTTTTTTTAACGAAAACTATTCATCTCAAAAATATAAGATATTTTATATGACGAATGCCATTGTATTTTTTGTTACGTAAAACCTGACTTCTTCAAGGAAAACACATGCG", + "start": 181557, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_01_v3", + "end": 181557, + "genome_id": 0, + "start": 181524, + "strand": "+" + }, + "seq": "AGCTTAGGCAAAAATTGGTGAAAATG" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t3" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_10_v3", + "end": 992371, + "genome_id": 0, + "start": 992338, + "strand": "+" + }, + "seq": "TGCCTATCATTAATGGAAAATATCCTCATTATA" + }, + "gene_name": "PF3D7_1023700", + "insert_location": { + "chrom": "Pf3D7_10_v3", + "end": 992544, + "genome_id": 0, + "ref_seq": "TTTTTAAAAAAAAAAATTATGATATAAAATCTTCAATTAATAAAAGATCTATCCAGTTCTTTAAAGACACTAATATAGATCATTATATAGCATATGAATATTATAAGGAGGACCGTACGGAATTTATATTAACTATTATGAATGAAAAAAATATTACTCATCAAGAAACTCAA", + "start": 992371, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_10_v3", + "end": 992371, + "genome_id": 0, + "start": 992338, + "strand": "+" + }, + "seq": "TCCCTTTCAACTTTTTCATTTCAAGACT" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t61" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_14_v3", + "end": 407379, + "genome_id": 0, + "start": 407346, + "strand": "+" + }, + "seq": "TCGTCTTTCTGTTCATTATCCATATAATCTTTT" + }, + "gene_name": "PF3D7_1410300", + "insert_location": { + "chrom": "Pf3D7_14_v3", + "end": 407571, + "genome_id": 0, + "ref_seq": "TCTCCTTCCTTTTCATTCTTTACTTTATTTCTATTAATACACAACTCTCCTTGAGTTAAGAGATTTACGATATTATCAATATTGTTTTCTTTCATATACTTCAACTTTTTACTATTCATTTTTAAAAGATAATTAACCAAGTTACTCATGTTTGTATTAGATGGTATGTTCCCAATTTTTTCGTCTTTTCTT", + "start": 407379, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_14_v3", + "end": 407379, + "genome_id": 0, + "start": 407346, + "strand": "+" + }, + "seq": "TGAACTCTTTAAATTATCCTTTTTGAATATCCA" + }, + "target_attributes": [ + "Excluded", + "Microhaplotype" + ], + "target_name": "t93" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_04_v3", + "end": 1102389, + "genome_id": 0, + "start": 1102362, + "strand": "+" + }, + "seq": "CGTAGAGGTGTTGATGTTAATATGGAG" + }, + "gene_name": "PF3D7_0424400", + "insert_location": { + "chrom": "Pf3D7_04_v3", + "end": 1102578, + "genome_id": 0, + "ref_seq": "GAAGAAATAAATAAAATAATTTATACAAACGAATTTAATAATTATGAAGATAAAATATATGAAGATGTCAAATATATTAAAGAACAGGAAAATGAAATGTACTTGAGAGATGGAATTGAAGAGTTACATATGGATGAACCAAGTGGGGATGTATATTTTGATGATCAAGATGATTATATATTTTTAGAT", + "start": 1102389, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_04_v3", + "end": 1102389, + "genome_id": 0, + "start": 1102362, + "strand": "+" + }, + "seq": "CATCCAAACATACATCCTCTTTTTGTTC" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t30" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_13_v3", + "end": 2114975, + "genome_id": 0, + "start": 2114942, + "strand": "+" + }, + "seq": "TGTATCTATAGTCGATTTTGTTATTCTAAGCAT" + }, + "gene_name": "PF3D7_1352900", + "insert_location": { + "chrom": "Pf3D7_13_v3", + "end": 2115142, + "genome_id": 0, + "ref_seq": "ATCATTAAGTAAAAAATTTACGGTATCGACATTAACAGTGTAATAATTTCTTCCTAAATTTAAATGTTCTATATAATTCAAATTTAATACGGTATTTAACCTTTCTTCAAGTATTATCATTGCATTAATTTGAAACATAAGTAAAAAATTATTAGCACTTCTAAAAT", + "start": 2114975, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_13_v3", + "end": 2114975, + "genome_id": 0, + "start": 2114942, + "strand": "+" + }, + "seq": "ACATTTTATTGTTGTTAGAATACCTCTAGTTT" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t84" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_12_v3", + "end": 63166, + "genome_id": 0, + "start": 63135, + "strand": "+" + }, + "seq": "ACATTCTATTAAAAACTTTGGGTACTCCTAA" + }, + "gene_name": "PF3D7_1200700", + "insert_location": { + "chrom": "Pf3D7_12_v3", + "end": 63280, + "genome_id": 0, + "ref_seq": "TATAATTTCACCTTTTGAATTACATATGTCTGTATTCAAAAATTTTATATCTCTACTCCATATATTTATCTTTACACCCAAAAACAAAGCAATGAAAAAAACAACCCTTTCATA", + "start": 63166, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_12_v3", + "end": 63166, + "genome_id": 0, + "start": 63135, + "strand": "+" + }, + "seq": "ACACATTTATCTTATTTACCCGTATCTCATATA" + }, + "target_attributes": [ + "Excluded", + "Microhaplotype" + ], + "target_name": "t72" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_04_v3", + "end": 141778, + "genome_id": 0, + "start": 141751, + "strand": "+" + }, + "seq": "GATACACGTGATGAATACCATATAGCC" + }, + "gene_name": "PF3D7_0402300", + "insert_location": { + "chrom": "Pf3D7_04_v3", + "end": 141945, + "genome_id": 0, + "ref_seq": "CTTTCAAATTATATAAAGACAGAACTAAGAAATATAAACCTGCAAGAAATAAAAAACAATATAATAAAAATATTTAAAGAATTCAAATCTGCACACAAAGAAATTAAAAAAGAATCAGAACAAATTAATAAAGAATTTACCAAAATGGATGTCGTCATAAATCAATT", + "start": 141778, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_04_v3", + "end": 141778, + "genome_id": 0, + "start": 141751, + "strand": "+" + }, + "seq": "AGATCAAGCATTTGTCTGTCTATATCTCTT" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t22" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_10_v3", + "end": 1399544, + "genome_id": 0, + "start": 1399515, + "strand": "+" + }, + "seq": "GGTCAAACTCATTCTGAATTAAATCCTGA" + }, + "gene_name": "PF3D7_1035300", + "insert_location": { + "chrom": "Pf3D7_10_v3", + "end": 1399711, + "genome_id": 0, + "ref_seq": "AACATCAGAACATAGTAAAGATTTAAATAATAATGATTCAAAAAATGAATCTAGTGATATTATTTCAGTAAATAATAAATCAAATAAAGTACAAAATCATTTTGAATCATTATCAGATTTAGAATTACTTGAAAATTCCTCACAAGATAATTTAGACAAAGATACAA", + "start": 1399544, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_10_v3", + "end": 1399544, + "genome_id": 0, + "start": 1399515, + "strand": "+" + }, + "seq": "GTTTTTGATTAGGAAAAGGTTCTGTTGAAA" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t63" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_04_v3", + "end": 748230, + "genome_id": 0, + "start": 748200, + "strand": "+" + }, + "seq": "AGGTCTAGGAAATAAAGGAGTATTACCATG" + }, + "gene_name": "PF3D7_0417200", + "insert_location": { + "chrom": "Pf3D7_04_v3", + "end": 748436, + "genome_id": 0, + "ref_seq": "GAAATGTAATTCCCTAGATATGAAATATTTTTGTGCAGTTACAACATATGTGAATGAATCAAAATATGAAAAATTGAAATATAAGAGATGTAAATATTTAAACAAAGAAACTGTGGATAATGTAAATGATATGCCTAATTCTAAAAAATTACAAAATGTTGTAGTTATGGGAAGAACAAGCTGGGAAAGCATTCCAAAAAAATTTA", + "start": 748230, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_04_v3", + "end": 748230, + "genome_id": 0, + "start": 748200, + "strand": "+" + }, + "seq": "ACAATATAACATTTATCCTATTGCTTAAAGGTT" + }, + "target_attributes": [ + "Included", + "DrugResistance" + ], + "target_name": "t25" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_03_v3", + "end": 85440, + "genome_id": 0, + "start": 85407, + "strand": "+" + }, + "seq": "ACCCATAGAAATGTTAAATGATATTTTTCTTCT" + }, + "gene_name": "PF3D7_0301400", + "insert_location": { + "chrom": "Pf3D7_03_v3", + "end": 85646, + "genome_id": 0, + "ref_seq": "AACTTTTTAACACTATCATTATAATTATGTCTTTTATTTTCATATTTTTCTTTATAATAATTTATATCCTTTAATTTTTCTTTCATCAAATTTAACCATTTATCATTTAAATTCTCTTTTTCCACAGCTCCAGCATTTTTATTTATATCATCTACAACTACATCTTCCTTCACATAATTATTTATATAAAAATTATTATCATCTAA", + "start": 85440, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_03_v3", + "end": 85440, + "genome_id": 0, + "start": 85407, + "strand": "+" + }, + "seq": "GAAGAAGTATTAAATGAAGAATTTTCAGATGCT" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t14" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_04_v3", + "end": 109912, + "genome_id": 0, + "start": 109879, + "strand": "+" + }, + "seq": "TTTTAAAACTGGCAAATTATTTATTTCTGTCAT" + }, + "gene_name": "PF3D7_0401900", + "insert_location": { + "chrom": "Pf3D7_04_v3", + "end": 110087, + "genome_id": 0, + "ref_seq": "AATATTTGTATATATTCTAGTAAACACTTTAGGTACACCTGCAAGTACCTCAACATCTGAATTATATAAATCTTTAGAAAAACAACTAATATCCTTACTCGATATATTTATTTTTATACCAAGAATAACAGCCATATAAACCAAAACTCTCTCAAATACATGTGATACAGGTAAA", + "start": 109912, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_04_v3", + "end": 109912, + "genome_id": 0, + "start": 109879, + "strand": "+" + }, + "seq": "CATGAAACCGAAAACCCATTTTTCTTA" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t20" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_07_v3", + "end": 729975, + "genome_id": 0, + "start": 729943, + "strand": "+" + }, + "seq": "AATAAGAAATATGTCTTACAAGGAGATGTTTT" + }, + "gene_name": "PF3D7_0716700", + "insert_location": { + "chrom": "Pf3D7_07_v3", + "end": 730088, + "genome_id": 0, + "ref_seq": "TTTTATGTGAAATTTTAAATAAAGAGAAATTGTTTGTGCACACATCTATTTTGGGATATATATCTAATCGTTTATGTTACGATATAAAAAAATATAGATGTTCATTATTGAAG", + "start": 729975, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_07_v3", + "end": 729975, + "genome_id": 0, + "start": 729943, + "strand": "+" + }, + "seq": "AAACATTATGTAGTCAACATATGAAGGAAA" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t43" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_01_v3", + "end": 534941, + "genome_id": 0, + "start": 534908, + "strand": "+" + }, + "seq": "TGTATGTGTGTTGATTGTAATTATAAGAATTGT" + }, + "gene_name": "PF3D7_0113800", + "insert_location": { + "chrom": "Pf3D7_01_v3", + "end": 535110, + "genome_id": 0, + "ref_seq": "AATACTCCGTCAGATATTCAAAATGAATGTATTTGTTCAAAAATAAATGAAGATAGAAATAATGATATGATAAACATATCTGAAATATATTATCGTTTCATTAAATTTATAACAATGATTGAAATATATTTGTGTGTAATAGAGGAAATTAAAAGGGAAGAATGGGAAA", + "start": 534941, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_01_v3", + "end": 534941, + "genome_id": 0, + "start": 534908, + "strand": "+" + }, + "seq": "CTACAAAAATTATGAAAAAGTTTGGTTCCTTTT" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t9" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_09_v3", + "end": 685601, + "genome_id": 0, + "start": 685583, + "strand": "+" + }, + "seq": "CACGCGAACCAAACAACG" + }, + "gene_name": "PF3D7_0916400", + "insert_location": { + "chrom": "Pf3D7_09_v3", + "end": 685792, + "genome_id": 0, + "ref_seq": "ACAAAGGAACAAGATAATTTTTTCCATTTTTATAAAAGTAATATATATGATATGGAAAATAGAACCTGTAATAATAATATATTACAATATTGTGTTATGAATAATAAATCATATTTATTTCATAATATATCATCCAAAAAAAATATATATATAAAAAAAAAGAATCATCAGTTTTCTTTATTCATATATTC", + "start": 685601, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_09_v3", + "end": 685601, + "genome_id": 0, + "start": 685583, + "strand": "+" + }, + "seq": "GGGCGAAATTCTATGAATGTATTATTAATAGAA" + }, + "target_attributes": [ + "Excluded", + "Microhaplotype" + ], + "target_name": "t56" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_02_v3", + "end": 470492, + "genome_id": 0, + "start": 470459, + "strand": "+" + }, + "seq": "TGAACATGAAGAATATTGACATGAAACATTATA" + }, + "gene_name": "PF3D7_0211700", + "insert_location": { + "chrom": "Pf3D7_02_v3", + "end": 470676, + "genome_id": 0, + "ref_seq": "ATACACATAAGAAAAAAAAAATTTATTTATTCTTACAAAAAGAATATAAAAACAAAATTTTGGGATTTATAAATTTTTATAAACATATAACACACAAAATAAAAAAGAAACAAGAAAATGTTCATGATAAAATCACTTTTTTAAAATGTCTAAAGGAACTCTTTTTTGTCACACATACAAATAA", + "start": 470492, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_02_v3", + "end": 470492, + "genome_id": 0, + "start": 470459, + "strand": "+" + }, + "seq": "GTATGTATTATACCCTCCATTTGATTATTCTCT" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t12" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_01_v3", + "end": 145449, + "genome_id": 0, + "start": 145416, + "strand": "+" + }, + "seq": "TGTTCGATATGTTTAAATATATGATTCTCGAAA" + }, + "gene_name": "PF3D7_0103300", + "insert_location": { + "chrom": "Pf3D7_01_v3", + "end": 145622, + "genome_id": 0, + "ref_seq": "AAACTTTTTTTATTTTTTTTGTCAATAGATAAATGATCAATATTTTCTATATTTAATCTATCAAGTATTTTTATATATCTATTATTTCTTTCTTCGATGGATAAATTATAAGAATCAATATCCTTTCTTTCATCAACAAACTTTTTTATTGTTAACTCCATTTTTTTATTTAA", + "start": 145449, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_01_v3", + "end": 145449, + "genome_id": 0, + "start": 145416, + "strand": "+" + }, + "seq": "CCAATATGTCAAGGTATATTAAAGTATGGTATC" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t1" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_08_v3", + "end": 339168, + "genome_id": 0, + "start": 339139, + "strand": "+" + }, + "seq": "TGAGATAATCCTCCTGGAATATTTGTCAT" + }, + "gene_name": "PF3D7_0806300", + "insert_location": { + "chrom": "Pf3D7_08_v3", + "end": 339357, + "genome_id": 0, + "ref_seq": "ATCATTACTATTCTTTATCCATATATATGTTGTTATATCAGTTGCACCTGAGGGTGGATTCAAACCTCTTGCTTGTATAATATATGCACGTACTACTAAATTACGTGTTAATCTATATTCTCTTACTAAATCATCACATTTCTTTATCATTTCTTTTTTTAAATACATTGTCTTTTCATCATACACATT", + "start": 339168, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_08_v3", + "end": 339168, + "genome_id": 0, + "start": 339139, + "strand": "+" + }, + "seq": "CTGAAGCGGTTGGATATTTGAAATATATATGT" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t48" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_04_v3", + "end": 1100656, + "genome_id": 0, + "start": 1100629, + "strand": "+" + }, + "seq": "CCCAAAACGGTTAATACTGAAGTTAGA" + }, + "gene_name": "PF3D7_0424400", + "insert_location": { + "chrom": "Pf3D7_04_v3", + "end": 1100831, + "genome_id": 0, + "ref_seq": "AATGTTCTAAGATCTGATGGAAAAATATCTGATCAAGGTTCTCAGAAAAGTCCTCCTAAGGAACTTTCTAATAAACAAATGACTCCTGCTCAACGTAAGAATGTGCCACATTTTGTTGAAAGAAGAGGCTATGGAAATAGTCATGTTAGGGGTAACGCACTTAAAAAAATTAGTA", + "start": 1100656, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_04_v3", + "end": 1100656, + "genome_id": 0, + "start": 1100629, + "strand": "+" + }, + "seq": "AGAAGAAGGACTTTTATAATTATCATCACCAT" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t29" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_01_v3", + "end": 179903, + "genome_id": 0, + "start": 179874, + "strand": "+" + }, + "seq": "AACAACAAGCTTTGTCGCTAAAATTAATT" + }, + "gene_name": "PF3D7_0104100", + "insert_location": { + "chrom": "Pf3D7_01_v3", + "end": 180115, + "genome_id": 0, + "ref_seq": "CTTTCGATACAGGACATATAGATCATAATATAAACGAATATGAAAAACATTTTACAATTTTAAAAGAATCTTTTTTTCATAAGTCATTAAAATTTATGGATTATATATGGATTGTTATAATGAAACGAGAAAATAATACATTTTTAAATAGAATAAGAACTGAACAAGTCAAAAAATCGTTATTAATAACAGGTATTATAAACGAAAATATT", + "start": 179903, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_01_v3", + "end": 179903, + "genome_id": 0, + "start": 179874, + "strand": "+" + }, + "seq": "TCTGATACCTATAGCTTCCATATTTTCATATTT" + }, + "target_attributes": [ + "Excluded", + "Microhaplotype" + ], + "target_name": "t2" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_14_v3", + "end": 120215, + "genome_id": 0, + "start": 120188, + "strand": "+" + }, + "seq": "GTCCTTATCACATCCTCCATTGTTTAC" + }, + "gene_name": "PF3D7_1403200", + "insert_location": { + "chrom": "Pf3D7_14_v3", + "end": 120351, + "genome_id": 0, + "ref_seq": "CTTACAATGTTCTTCGCATTCGAAATTTTTTTCAGGATTACTTGAAAAGCCTTCTGGACAATTACAATATTCATATCCATGAGTATTCTTACAAACACCTTTTCCACAATTTAAAAAACATTTTTCTTCATTTAAA", + "start": 120215, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_14_v3", + "end": 120215, + "genome_id": 0, + "start": 120188, + "strand": "+" + }, + "seq": "ACAGAAAGAATGGTTTAGAAATGTACGAAT" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t90" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_01_v3", + "end": 534215, + "genome_id": 0, + "start": 534182, + "strand": "+" + }, + "seq": "TTCAGATGTGATAAATATATGTGACATTTGTAA" + }, + "gene_name": "PF3D7_0113800", + "insert_location": { + "chrom": "Pf3D7_01_v3", + "end": 534368, + "genome_id": 0, + "ref_seq": "TGATAAAAAAAGAAAATGTAACAATCTACCTTGTGATTGTATCTTATGTAAAAAAAAGCACAATGTTTGTTATTGTAATATGTGTAAAAAGAAAGAAAAAAATATGAGAGAAGATTTATCGGTTGTAAAATATAATGAATATCCGATTAGTGT", + "start": 534215, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_01_v3", + "end": 534215, + "genome_id": 0, + "start": 534182, + "strand": "+" + }, + "seq": "AAAAATATAAGAGATTCAAAGGGTCAGAC" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t8" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_08_v3", + "end": 336468, + "genome_id": 0, + "start": 336438, + "strand": "+" + }, + "seq": "AATACATGAATATGATTAACAACGAACCCA" + }, + "gene_name": "PF3D7_0806200", + "insert_location": { + "chrom": "Pf3D7_08_v3", + "end": 336647, + "genome_id": 0, + "ref_seq": "TAAATTTACAGAAAAATTTAGATTTAATCATATGGCTAAAAAAGAATATAAAAGAAGGAGAAGCTTTAATTTCTGATATACCCACATCAAGTTTTTTAAGGTGTACTACAAATTATAAATTTGTATTGCATCCACAATATGAAGATAGTAACTTGAGAAAGAGGGTTCAAGATTATTAT", + "start": 336468, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_08_v3", + "end": 336468, + "genome_id": 0, + "start": 336438, + "strand": "+" + }, + "seq": "ACTAAAAGGAAGACAAGCTGAAAACAT" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t47" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_08_v3", + "end": 102326, + "genome_id": 0, + "start": 102298, + "strand": "+" + }, + "seq": "ACTTGTCGCTATACCTTCATCTATTGAA" + }, + "gene_name": "PF3D7_0801300", + "insert_location": { + "chrom": "Pf3D7_08_v3", + "end": 102500, + "genome_id": 0, + "ref_seq": "TTAATTTTCTCAAGTAACATATTTTTGTCTTGACTACTTTCATCTGTAAATGGAACGACTACTCTTTGCTTACCTGCAAAAAGGACAACTGACATATGAGCCTTATCCTTACTTACATTCGAATTAAAGACCATAGATTCTAAAAATGGTATAGTTCCTTTTAACCAATAATCC", + "start": 102326, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_08_v3", + "end": 102326, + "genome_id": 0, + "start": 102298, + "strand": "+" + }, + "seq": "TGTTGAAGAGTCAAGTTTTGTTCAGAA" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t46" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_09_v3", + "end": 1437114, + "genome_id": 0, + "start": 1437081, + "strand": "+" + }, + "seq": "CATCATAATCATCTAATGATGTTAATCCTTGTA" + }, + "gene_name": "PF3D7_0936300", + "insert_location": { + "chrom": "Pf3D7_09_v3", + "end": 1437303, + "genome_id": 0, + "ref_seq": "CTAAAACCTGACAGCTTTGTACAGTTATATTTACCCAATTAGAATGTTCAAACATATTTAAGTGTTGCCATTCTTCAAATAATTTTTTTTCATATTCAGTTTTTGGTTGGTTTTTAAATTCTTTTGATACTGTACCTTCTGCGGATGGTATAGGGAAGTTAAAAATTTTATTACGTACTTTGTTTGATT", + "start": 1437114, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_09_v3", + "end": 1437114, + "genome_id": 0, + "start": 1437081, + "strand": "+" + }, + "seq": "GCACCATCATTAAATTTAGAAGAAACCC" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t59" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_14_v3", + "end": 279663, + "genome_id": 0, + "start": 279635, + "strand": "+" + }, + "seq": "CGGATAAATGTTTAGTTATTAGCCAGGT" + }, + "gene_name": "PF3D7_1407700", + "insert_location": { + "chrom": "Pf3D7_14_v3", + "end": 279786, + "genome_id": 0, + "ref_seq": "GAGTAATAGTGATTCATATAAGGTAAATTGTATTAATTTCTCTGAAGGATTTTGTTGCTGTCATCCAATAAATAATTTAGCACTATTATATGGAGAGTATCAACAAAATCAAGAATCAAAAAT", + "start": 279663, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_14_v3", + "end": 279663, + "genome_id": 0, + "start": 279635, + "strand": "+" + }, + "seq": "CATTACTTATGGGAAGTTTCGGTAATTTCATA" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t92" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_09_v3", + "end": 1178894, + "genome_id": 0, + "start": 1178862, + "strand": "+" + }, + "seq": "GAACGTTGAGAAATTACCTTTAGAAGATTACT" + }, + "gene_name": "PF3D7_0929400", + "insert_location": { + "chrom": "Pf3D7_09_v3", + "end": 1179078, + "genome_id": 0, + "ref_seq": "ACAAATTATCCTTAGCCCCAGATATGGTAAAGACATATCACTGTTATAAATTAGGAAAGCAAGCAGCTGAATTATTAGAATCTATCATTTTAAAGAAAAAGTTCGTAAGATTTAGAGTTACTGATGCTATTGATGTATATGATTTCTTTTATATAAAGAAAGTTTTATCCAGTCGTATTAAGAA", + "start": 1178894, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_09_v3", + "end": 1178894, + "genome_id": 0, + "start": 1178862, + "strand": "+" + }, + "seq": "GCTCTTTTGTCTTGTAAAAATTCATTATATTCT" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t57" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_03_v3", + "end": 654002, + "genome_id": 0, + "start": 653972, + "strand": "+" + }, + "seq": "TCACCTAACGGTATATTTTTATCTCGTACA" + }, + "gene_name": "PF3D7_0316200", + "insert_location": { + "chrom": "Pf3D7_03_v3", + "end": 654175, + "genome_id": 0, + "ref_seq": "ATATTTTTATAATTTCCTTTCATCTTATTTTTTTCTTTATATTTTTTTTTTTCATATGTAAGATTTATATAATCACTTTCGCTTTTTCTAACCCTTTTGAACTTTTTAAATGTACTTCGTTCATTATTTCTAATTCTCGTAAACACAAGAATAAATATTTTGATATATCTTAT", + "start": 654002, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_03_v3", + "end": 654002, + "genome_id": 0, + "start": 653972, + "strand": "+" + }, + "seq": "TTATGTATTTTTCAAAAATCGGCACGTTT" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t18" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_12_v3", + "end": 943258, + "genome_id": 0, + "start": 943227, + "strand": "+" + }, + "seq": "ACCCTACTTATACAAAGAGATAAAGAAGTAG" + }, + "gene_name": "PF3D7_1223400", + "insert_location": { + "chrom": "Pf3D7_12_v3", + "end": 943428, + "genome_id": 0, + "ref_seq": "AATCAACTATAATTAAAAATAGTGGAATTATTGAAAACTTTGGAGATATTGATTATATCTTTACGGATAAAACAGGAACACTAACAGAAAATGTCATGGTGCTTAAAGTTATACATATAGGTTTTGATGTTATACATGCAGAAAATGAAAAAAATTCCATACAAGGTAAT", + "start": 943258, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_12_v3", + "end": 943258, + "genome_id": 0, + "start": 943227, + "strand": "+" + }, + "seq": "AATTCCCTTTTTGTTTGGTTTCCATATT" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t75" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_04_v3", + "end": 802525, + "genome_id": 0, + "start": 802494, + "strand": "+" + }, + "seq": "AAGCATCTGAACATTAAAGTTCAAACAAATA" + }, + "gene_name": "PF3D7_0418000", + "insert_location": { + "chrom": "Pf3D7_04_v3", + "end": 802713, + "genome_id": 0, + "ref_seq": "TAAATTATTATAGAAAGATAGAAGTTATTTTATATGAATGGTTATATTTTCATTATAATAATGTATATAACACCAAAGTAAAAAAACAAAAATTTATATTTACCCAACAAAAAAAAGACATATCAAAACATAACAAGTTATATCTTCAGTATGATCAAAATAAAAGAAACTCTGAAATAGAACATACA", + "start": 802525, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_04_v3", + "end": 802525, + "genome_id": 0, + "start": 802494, + "strand": "+" + }, + "seq": "GCACATCGAATAATCTTCTTTGTGATT" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t27" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_08_v3", + "end": 549993, + "genome_id": 0, + "start": 549962, + "strand": "+" + }, + "seq": "CATAAAAGAGGAAATCCACATACAATGGATA" + }, + "gene_name": "PF3D7_0810800", + "insert_location": { + "chrom": "Pf3D7_08_v3", + "end": 550218, + "genome_id": 0, + "ref_seq": "AACTAACAAATTATGATAATCTAGTTTATGATATAAAAAATTATTTAGAACAAAGATTAAATTTTCTTGTATTAAATGGAATACCTCGTTATAGGATACTATTTGATATTGGATTAGGATTTGCGAAGAAACATGATCAATCTATTAAACTCTTACAAAATATACATGTATATGATGAGTATCCACTTTTTATTGGATATTCAAGAAAAAGATTTATTGCCCATT", + "start": 549993, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_08_v3", + "end": 549993, + "genome_id": 0, + "start": 549962, + "strand": "+" + }, + "seq": "GTGTATTTATTACAACATTTTGATCATTCATGC" + }, + "target_attributes": [ + "Included", + "DrugResistance" + ], + "target_name": "t49" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_03_v3", + "end": 618396, + "genome_id": 0, + "start": 618367, + "strand": "+" + }, + "seq": "GGGACACTACAGACAAAAATAAATGATCT" + }, + "gene_name": "PF3D7_0315200", + "insert_location": { + "chrom": "Pf3D7_03_v3", + "end": 618581, + "genome_id": 0, + "ref_seq": "AAAAAGAGATTATAGAAGTGGAAAGAAGACATATATAATACAAGCTCTACAATATGCATTAACATATTATAGCAAACTTTCAAATAGAAAGGAAGCACCTAAAGTAACCATGTTATTTACAGATGGAAATGATTCCTATGAATCAGAAAAGGGATTACAGGATATTGCATTATTATATAGAAAAG", + "start": 618396, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_03_v3", + "end": 618396, + "genome_id": 0, + "start": 618367, + "strand": "+" + }, + "seq": "AGAAACTCCTACTACCAATAATTTGACATTTT" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t17" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_02_v3", + "end": 805822, + "genome_id": 0, + "start": 805795, + "strand": "+" + }, + "seq": "TTGGAAAATTTGAGAATCCTATGTGCT" + }, + "gene_name": "PF3D7_0220100", + "insert_location": { + "chrom": "Pf3D7_02_v3", + "end": 805942, + "genome_id": 0, + "ref_seq": "TTAATTATGAAGACAGTCTCACGACTTCATGTTATATTGATGAAAACAAATCCGATTCATCCTATGAAACTGAAGAAAATGTAAACTATAATAATAAAATGGGTAAACGCAAAAATTTAG", + "start": 805822, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_02_v3", + "end": 805822, + "genome_id": 0, + "start": 805795, + "strand": "+" + }, + "seq": "TTCGATTTGCCTACAATTTGTGATTCTA" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t13" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_04_v3", + "end": 544718, + "genome_id": 0, + "start": 544686, + "strand": "+" + }, + "seq": "AACCCAGATAATCATTTATTAAATACAGACAC" + }, + "gene_name": "PF3D7_0412300", + "insert_location": { + "chrom": "Pf3D7_04_v3", + "end": 544861, + "genome_id": 0, + "ref_seq": "ATATATTTTACATAATAACAATCCTTCATGTAATGATTATAATTTAAATAATCTTTCATTTAATATAAATAAATATATTAATGAAGAAAAAGGCAAAAATAAAAAAACAAATCAACATATATCAGAACAATTTTTATTTCCTA", + "start": 544718, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_04_v3", + "end": 544718, + "genome_id": 0, + "start": 544686, + "strand": "+" + }, + "seq": "CTGCAGCACACATTATAACTAAATGTG" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t24" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_14_v3", + "end": 150105, + "genome_id": 0, + "start": 150075, + "strand": "+" + }, + "seq": "CCGAAAATAGAACTCCATATGTTCATTACC" + }, + "gene_name": "PF3D7_1404300", + "insert_location": { + "chrom": "Pf3D7_14_v3", + "end": 150294, + "genome_id": 0, + "ref_seq": "ATAATAATAGTAATATAAAGAATTATTCAGCTGTAGATATATTCTCACCCAAAAAAACTGGAAAGGAATGTATTAAATGTCTCCCAGATAATTTTTGTGAATGCGAATGTAGTTGTAAAAATAAAACAGGTTTTTCAATGAAATATAGACATGCCAGTAAGGGATCTAAAGGATATAGTAAAAAAATGA", + "start": 150105, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_14_v3", + "end": 150105, + "genome_id": 0, + "start": 150075, + "strand": "+" + }, + "seq": "GTCTGGAACGAGAAGATGTCTTTG" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t91" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_02_v3", + "end": 109807, + "genome_id": 0, + "start": 109776, + "strand": "+" + }, + "seq": "CCACCATTTCTTCATTTTAATTTTGAATGGT" + }, + "gene_name": "PF3D7_0202100", + "insert_location": { + "chrom": "Pf3D7_02_v3", + "end": 109982, + "genome_id": 0, + "ref_seq": "AACTTATGTTCATGAGCTAATTTCCCACAAATACTCCATAACGAACTTTTCATTTTATTAAATTTATCTCTCAAAAGAGAATGACTATAATGCCATATTAAATACATATCTTTCCTTTCTAATTTTCCTGGTAATTCTATTATCATTCTTTCTAAATCTTCTTCTGTAACTTTTC", + "start": 109807, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_02_v3", + "end": 109807, + "genome_id": 0, + "start": 109776, + "strand": "+" + }, + "seq": "ACCATTTGGATTAAAACCTTCAGATTTAAATA" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t10" + }, + { + "forward_primer": { + "location": { + "chrom": "Pf3D7_14_v3", + "end": 3214351, + "genome_id": 0, + "start": 3214318, + "strand": "+" + }, + "seq": "TGTTAAAATATTTTCCAAAGAATTCAATTAGCG" + }, + "gene_name": "PF3D7_1478000", + "insert_location": { + "chrom": "Pf3D7_14_v3", + "end": 3214478, + "genome_id": 0, + "ref_seq": "ATCGTTTTGAATTGTTAGAATTTAAAATGACGGAGGATTGTTATACAAAAATGTGGTTTGATTTTATGAGTGATTTTGGAATAGCTACAATGAATGAAACCGAACATACTAGATCTTTTTATGGATT", + "start": 3214351, + "strand": "+" + }, + "reverse_primer": { + "location": { + "chrom": "Pf3D7_14_v3", + "end": 3214351, + "genome_id": 0, + "start": 3214318, + "strand": "+" + }, + "seq": "TCAATTGATGGTTGCCTTTCGATT" + }, + "target_attributes": [ + "Included", + "Microhaplotype" + ], + "target_name": "t100" + } + ], + "panel_info": [ + { + "panel_name": "heomev1", + "reactions": [ + { + "panel_targets": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99 + ], + "reaction_name": "full" + } + ] + } + ], + "sequencing_info": [ + { + "library_kit": "TruSeq i5/i7 barcode primers", + "library_layout": "paired-end", + "library_screen": "40 uL reaction containing 10 uL of bead purified digested product, 18uL of nuclease-free water, 8uL of 5X secondary PCR master mix, and 5 uL of 10 uM TruSeq i5/i7 barcode primers", + "library_selection": "RANDOM", + "library_source": "GENOMIC", + "library_strategy": "WGS", + "nucl_acid_amp": "https://www.paragongenomics.com/targeted-sequencing/amplicon-sequencing/cleanplex-ngs-amplicon-sequencing/", + "nucl_acid_amp_date": "2019-07-15", + "nucl_acid_ext": "https://www.paragongenomics.com/targeted-sequencing/amplicon-sequencing/cleanplex-ngs-amplicon-sequencing/", + "nucl_acid_ext_date": "2019-07-15", + "pcr_cond": "10 min at 95C, 13 cycles for high density samples (or 15 cycles for low density samples) of 15 sec at 98C and 75 sec at 60C", + "seq_center": "UCSF", + "seq_date": "2019-07-15", + "seq_instrument_model": "NextSeq 550 instrument", + "seq_platform": "ILLUMINA", + "sequencing_info_name": "Mozambique2018" + }, + { + "library_layout": "paired-end", + "library_selection": "RANDOM", + "library_source": "GENOMIC", + "library_strategy": "WGS", + "seq_date": "2020-01-01", + "seq_instrument_model": "Multiple", + "seq_platform": "ILLUMINA", + "sequencing_info_name": "Pf7Plus" + } + ], + "project_info": [ + { + "project_collector_chief_scientist": "Greenhouse, Bryan", + "project_description": "Heome1 targeted amplicon sequencing in 2018 from patients from several health clinics in provinces Inhassoro, Mandlakazi, and Namaacha", + "project_name": "MOZ2018" + }, + { + "project_description": "PathWeaver assemblies of Heome1 from large collection of global samples", + "project_name": "PathWeaverHeome1" + } + ], + "specimen_info": [ + { + "collection_country": "Mozambique", + "collection_date": "2018-06-07", + "geo_admin3": "Inhassoro", + "host_taxon_id": 9606, + "lat_lon": "-21.5535,35.1819", + "parasite_density_info": [ + { + "parasite_density": 477719.34375, + "parasite_density_method": "qpcr" + } + ], + "project_id": 0, + "specimen_collect_device": "dried blood spot", + "specimen_name": "8025874217", + "specimen_store_loc": "UCSF Greenhouse Lab", + "specimen_taxon_id": [ + 5833 + ], + "storage_plate_info": { + "plate_col": 12, + "plate_name": "8", + "plate_row": "C" + } + }, + { + "collection_country": "Mozambique", + "collection_date": "2018-04-30", + "geo_admin3": "Namaacha", + "host_taxon_id": 9606, + "lat_lon": "-25.9871,32.0326", + "parasite_density_info": [ + { + "parasite_density": 875.130981445312, + "parasite_density_method": "qpcr" + } + ], + "project_id": 0, + "specimen_collect_device": "dried blood spot", + "specimen_name": "8025874266", + "specimen_store_loc": "UCSF Greenhouse Lab", + "specimen_taxon_id": [ + 5833 + ], + "storage_plate_info": { + "plate_col": 7, + "plate_name": "8", + "plate_row": "B" + } + }, + { + "collection_country": "India", + "collection_date": "2012-08-01", + "geo_admin3": "NA", + "host_taxon_id": 9606, + "project_id": 1, + "specimen_collect_device": "Dried Blood spot", + "specimen_name": "5tbx", + "specimen_store_loc": "Multiple", + "specimen_taxon_id": [ + 5833 + ] + }, + { + "collection_country": "Papua New Guinea", + "collection_date": "NA", + "geo_admin3": "NA", + "host_taxon_id": 9606, + "project_id": 1, + "specimen_collect_device": "Dried Blood spot", + "specimen_name": "XUC009", + "specimen_store_loc": "Multiple", + "specimen_taxon_id": [ + 5833 + ] + } + ], + "library_sample_info": [ + { + "library_prep_plate_info": { + "plate_col": 12, + "plate_name": "8", + "plate_row": "C" + }, + "library_sample_name": "8025874217_lib_name", + "panel_id": 0, + "sequencing_info_id": 0, + "specimen_id": 0 + }, + { + "library_prep_plate_info": { + "plate_col": 7, + "plate_name": "8", + "plate_row": "B" + }, + "library_sample_name": "8025874266_lib_name", + "panel_id": 0, + "sequencing_info_id": 0, + "specimen_id": 1 + }, + { + "library_sample_name": "5tbx_lib_name", + "panel_id": 0, + "sequencing_info_id": 1, + "specimen_id": 2 + }, + { + "library_sample_name": "XUC009_lib_name", + "panel_id": 0, + "sequencing_info_id": 1, + "specimen_id": 3 + } + ], + "bioinformatics_methods_info": [ + { + "methods": [ + { + "program": "SeekDeep extractorPairedEnd", + "program_description": "Takes raw paired-end reads and demultiplexes on primers and does QC filtering", + "program_version": "v2.6.5" + }, + { + "additional_argument": [ + "--illumina", + "--qualThres 25,20", + "--trimFront 1", + "--trimBack 1" + ], + "program": "SeekDeep qluster", + "program_description": "Takes sequences per sample per target and clusters them", + "program_version": "v2.6.5" + }, + { + "additional_argument": [ + "--strictErrors", + "--illumina", + "--removeOneSampOnlyOneOffHaps", + "--excludeCommonlyLowFreqHaplotypes", + "--excludeLowFreqOneOffs", + "--rescueExcludedOneOffLowFreqHaplotypes" + ], + "program": "SeekDeep processClusters", + "program_description": "Compare across samples for each target to create population level identifiers and do post artifact cleanup", + "program_version": "v2.6.5" + } + ] + }, + { + "methods": [ + { + "additional_argument": [ + "--bamExtractTrimToRegion", + "--bed /tank/data/plasmodium/falciparum/beds/targeted_panels/heome1/heome1_Pf3D7_withPrimers.bed", + "--genomeDir /tank/data/genomes/plasmodium/genomes/pf/genomes/", + "--primaryGenome Pf3D7", + "--bam bams/{SAMPLE}.sorted.bam" + ], + "program": "PathWeaver BamExtractPathwaysFromRegion", + "program_description": "Extract reads from a bam file for a specific genomic locatioon and then assembles local haplotypes for that region", + "program_version": "1.0.0-dev" + }, + { + "additional_argument": [ + "--overWriteDir", + "--fracCutOff 0.005", + "--dout popClusteringTrimmedParagon", + "--replicateMinTotalReadCutOff 10", + "--clusterCutOff 5", + "--pat _heome1", + "--numThreads 10", + "--groupingsFile /tank/data/plasmodium/falciparum/pfdata/metadata/meta.tab.txt", + "--genome2bit /tank/data/genomes/plasmodium/genomes/pf/genomes/Pf3D7.2bit", + "--trimBedFnp /tank/data/plasmodium/falciparum/beds/targeted_panels/heome1/heome1_Pf3D7_inserts_trimmed1.bed" + ], + "program": "PathWeaver runProcessClustersOnRecon", + "program_description": "Compare across samples for each target to create population level identifiers and do post artifact cleanup", + "program_version": "1.0.0-dev" + } + ] + } + ], + "bioinformatics_run_info": [ + { + "bioinformatics_methods_id": 0, + "bioinformatics_run_name": "Mozambique2018-SeekDeep", + "run_date": "2022-04-01" + }, + { + "bioinformatics_methods_id": 1, + "bioinformatics_run_name": "PathWeaver-Heome1", + "run_date": "2024-09-03" + } + ], + "representative_microhaplotypes": { + "targets": [ + { + "mhap_location": { + "chrom": "Pf3D7_01_v3", + "end": 145621, + "genome_id": 0, + "start": 145448, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "AACTTTTTTTATTTTTTTTGTCAATAGATAAATGATCAATATTTTCTATATTTAATCTATCAAGTATTTTTATATATCTATTATTTCTTTCTTCGATGGATAAATTATATGAATCAATATCCTTTCTTTCATCAACAAACTTTTTTATTGTTAACTCCATTTTTTTATTTA" + }, + { + "seq": "AACTTTTTTTATTTTTTTTGTCAATAGATAAATGATCAATATTTTCTATATTTAATCTATCAAGTATTTTTATATATCTATTATTTCTTTCTTCGATGGATAAATTATAAGAATCAATATCCTTTCTTTCATCAACAAACTTTTTTATTGTTAACTCCATTTTTTTATTTA" + }, + { + "seq": "AACTTTTTTTATTTTTTTTGTCAATAGATAAATGATCAATATTTTCTATATTTAATCTATCAAGAATTTTTATATATCTATTATTTCTTTCTTCGATGGATAAATTATATGAATCAATATCCTTTCTTTCATCAACAAACTTTTTTATTGTTAACTCCATTTTTTTATTTA" + }, + { + "seq": "AACTTTTTTTATTTTTTTTGTCAATAGATAAATGATCAATATTTTCTATATTTAATCTATCAAGAATTTTTATATATCTATTATTTCTTTCTTCGATGGATAAATTATAAGAATCAATATCCTTTCTTTCATCAACAAACTTTTTTATTGTTAACTCCATTTTTTTATTTA" + } + ], + "target_id": 79 + }, + { + "mhap_location": { + "chrom": "Pf3D7_02_v3", + "end": 109981, + "genome_id": 0, + "start": 109806, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "ACTTATGTTCATGAGCTAATTTCCCACAAATACTCCATAACGAACTTTTCATTTTATTAAATTTATCTCTCAAAAGAGAATGACTATAATGCCATATTAAATACATATCTTTCCTTTCTAATTTTCCTGGTAATTCTATTATCATTCTTTCTAAATCTTCTTCTGTAACTTTT" + }, + { + "seq": "ACTCATGTTCATGAGCTAATTTCCCACAAATACTCCATAACGAACTTTTCATTTTATTAAATTTATCTCTCAAAAGAGAATGACTATAATGCCATATTAAATACATATCTTTCCTTTCTAATGTTCCTGGTAATTCTATTATCATTCTTTCTAAATCTTCTTCTGTAAGTTTT" + }, + { + "seq": "ACTTATGTTCATGAGCTAATTTCCCACAAATACTCCATAACGAACTTTTCATTTTATTAAATTTATCTCTCAAAAGAGAATGACTATAATGCCATATTAAATACATATCTTTCCTTTCTAATTTTCCTGGTAATTCTATTATCATTCTTTCTAAATCTTCTTCTGTAAGTTTT" + } + ], + "target_id": 98 + }, + { + "mhap_location": { + "chrom": "Pf3D7_14_v3", + "end": 3214477, + "genome_id": 0, + "start": 3214350, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "TCGTTTTGAATTGTTAGAATTTAAAATGACGGAGGATTGTTATACAAAAATGTGGTTTGATTTTATGATTGATTTTGGAATAGCTACAATGAATGAAAACGAACATACTAGATCTTTTTATGGCT" + }, + { + "seq": "TCGTTTTGAATTGTTAGAATTTAAAATGACGGAGGATTGTTATACAAAAATGTGGTTTGATTTTATGAGTGATTTTGGAATAGCTACAATGAATGAAACCGAACATACTAGATCTTTTTATGGCT" + }, + { + "seq": "TCGTTTTGAATTGTCAGAATTTAAAATGACGGAGGATTGTTATACAAAAATGTGGTTTGATTTTATGAGTGATTTTGGAATAGCTACAATGAATGAAACCGAACATACTAGATCTTTTTATGGCT" + }, + { + "seq": "TCGTTTTGCATTGTCAGAATTTAAAATGACGGAGGATTGTTATACAAAAATGTGGTTTGATTTTATGAGTGATTTTGGAATAGCTACAATGAATGAAAGCGAACATACTAGATCTTTTTATGGCT" + } + ], + "target_id": 99 + }, + { + "mhap_location": { + "chrom": "Pf3D7_02_v3", + "end": 278335, + "genome_id": 0, + "start": 278164, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "GAATTTTCTTTTTTATGACTTTCTTCTCCTTGTTCAGAAGCTTCTTTTTCATCCTTTTTTTCTGCTGCGTCAGATAAATTGGGGGAAGCACTTGAAGATTCATTTCCTCCAGGAGTATTACTAGTACTTACTCCTTCCACATTTGGTTTTTCTTCCCCTAGAATTCTCA" + }, + { + "seq": "GAATTTTCTTTTTTATGACTTTCTTCTCCTTGTTCAGAAGCTTCTTTTTCATCCTTTTTTTCTGCTGCGTCAGATAAATTGGGGGAAGCACTTGAAGATTCATTTCCTCCAGGAGTATTACTAGTACTTACTCCGTCCACATTTGGTTTTTCTTCCCCTAGAATTCTCA" + }, + { + "seq": "GAATTTTCTTTTTTATGACTTTCTTCTCCTTGTTCAGAAGCTTCTTTTTCATCCTTTTTTTCTGCTGCGTCAGATAAATTGGGGGAAGCACTTGAAGATTCATTTCCTCCAGGAGTATCACTAGTACTTACTCCGTCCATATTTGGTTTTTCTTCCCTTAGAATTCTCA" + } + ], + "target_id": 42 + }, + { + "mhap_location": { + "chrom": "Pf3D7_02_v3", + "end": 470675, + "genome_id": 0, + "start": 470491, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "TACACATAAGAAAAAAAAAATTTATTTATTCTTACAAAAAGAATATAAAAACAAAATTTTGGGATTTATAAATTTTTATAAACATATAACACACAAAATAAAAAAGAAACAAGAAAATGTTCATGATAAAATCACTTTTTTAAAATGTCTAAAGGAACTCTTTTTTGTCACACATACAAATG" + }, + { + "seq": "TACACATAAGAAAAAAAAAATTTATTTATTCTTACAAAAAGAATATAAAAACAAAATTTTGGGATTTATAAATTTTTATAAACATATAACACACAAAATAAAAAAGAAACAAGAAAATGTTCATGATAAAATCACTTTTTTAAAATGTCTAAAGGAACTCTTTTTTGTCACACATACAAATA" + }, + { + "seq": "TACACATAAGAAAAAAAAAATTTATTTATTCTTACAAAAAGAATATAAAAACAAAATTTTGGGATTTATAAATTTTTATAAACGTATAACACACAAAATAAAAAAGAAACAAGAAAATGTTCATGATAAAATCACTTTTTTAAAATGTCTAAAGGAACTCTTTTTTGTCACACATACAAATA" + } + ], + "target_id": 78 + }, + { + "mhap_location": { + "chrom": "Pf3D7_02_v3", + "end": 805941, + "genome_id": 0, + "start": 805821, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "TAATTATGAAGACAGTCTCACGACTGCATGTTATATTGATGAAAACAAATCCGATTCATCCTATAAAACTGAAGAAGAAAATGTAAACTATAATAATAAAATGGGTAAACGCAAAAATTTA" + }, + { + "seq": "TAATTATGAAGACAGTCTCACGACTTCATGTTATATTGATGAAAACAAATCCGATTCATCCTATGAAACTGAAGAAAATGTAAACTATAATAATAAAATGGGTAAACGCAAAAATTTA" + } + ], + "target_id": 95 + }, + { + "mhap_location": { + "chrom": "Pf3D7_03_v3", + "end": 85645, + "genome_id": 0, + "start": 85439, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "ACTTTTTAACACTATCATTATAATTATGTCTTTTATTTTCATATTTTTCTTTATAATAATTTATATCCTTTAATTTTTCTTTCATCAAATTTAACCATTTATCATTTAAATTCTCTTTTTCCACAGCTCCAGCATTTTTATTTATATCATCTACAACTACATCTTCCTTCACATAATTATTTATATAAAAATTATTATCATCTA" + }, + { + "seq": "ACTTTTTAACACTATCATTATAATTATGTCTTTTATTTTCATATTTTTCTTTATAATAATTTATATCCTTTAATTTTTCTTTCATCAAATTTAACCATTTATCATTTAAATTCTCTTTTTCCACAGCTCCAGCATTTTTATTTATATCATCTACAACTACATCTTCCTTCACATAATTATTTATATAAAAACTATTATCATCTA" + } + ], + "target_id": 73 + }, + { + "mhap_location": { + "chrom": "Pf3D7_03_v3", + "end": 142180, + "genome_id": 0, + "start": 141962, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "GCATTTATAACAAAATATCAGAAGATGGAAAAACCAAAAATAGCCTACTTAGCGATATATCAAAATTATTTAAAATTGTAAAAGAAAGCAAATTAATATTTGTAACTGGATTTTTATTAACAACCTTGTCAGCAATTGTAGATTCATACATTCCAATTTTTCTATCCAAAACGGTATCTTTTGTAATGGAAAGAAAAAAATTTACATTTCTTAAAA" + }, + { + "seq": "GCATTTATAACAAAATATCAGAAGATGGAAAAACCAAAAATAGCCTACTTAGCGATATATCAAAATTATTTAAAATTGTAAAAGAAAGCAAATTAATATTTGTAACTGGATTTTTATTAACAACCTTGTCAGCAATTGTCGATTCATACATTCCAATTTTTTTATCCAAAACGGTATCTTTTGTAATGGAAAGAAAAAGTTTTACATTTCTTAAAA" + } + ], + "target_id": 37 + }, + { + "mhap_location": { + "chrom": "Pf3D7_03_v3", + "end": 221494, + "genome_id": 0, + "start": 221362, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "TGAACTATTTACGACATTAAACACACTGGAACATTTTTCCATTTTACAAATTTTTTTTTCAATATCATTTGCATAATCTAATTGGTCTTTAGGTTTATTAGCAGAGCCAGGCTTTATTCTAACTTGAATA" + }, + { + "seq": "TGAACTATTTACGACATTAAACACACTGGAACATTTTTCCATTTTACAAATTTTTTTTTCAATATCATTTTCATAATTTAATTCGTCTTTAGGTTTATTAGCAGAGCCAGGCTTTATTCTAACTTGAATA" + }, + { + "seq": "TGAACTATTTACGACATTAAACACACTGGAACATTTTTCCATTTTACAAATTTTTTTTTCAATATCATTTTCATAATCTAATTCGTCTTTAGGTTTATTAGCAGAGCCAGGCTTTATTCTAACTTGAATA" + }, + { + "seq": "TGAACTATTTACGACATTAAACACACTGGAACATTTTTCCATTTTACAAATTTTTTTTTCAATATCATTTTCATAATCTAATTGGTCTTTAGGTTTATCAGCAGAGCCAGGCTTTATTCTAACTTGAATA" + } + ], + "target_id": 57 + }, + { + "mhap_location": { + "chrom": "Pf3D7_03_v3", + "end": 618580, + "genome_id": 0, + "start": 618395, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "AAAAGAGATTATAGAAGTGGAAAGAAGACATATATAATACAAGCTCTACAATATGCATTAACATATTATAGCAAACTTTCAAATAGAAAGGAAGCACCTAAAGTAACCATGTTATTTACAGATGGAAATGATTCCTATGAATCAGAAAAGGGATTACAGGATATTGCATTATTATATAGAAAA" + }, + { + "seq": "AAAAGAGATTATAGAAGTGGAAAGAAGACATATATAATACAAGCTCTACGATATGCATTAACATATTATAGCAAACTTTCAAATAGAAAGGAAGCACCTAAAGTAACCATGTTATTTACAGATGGAAATGATTCCTATGAATCAGAAAAGGGATTACAGGATATTGCATTATTATATAGAAAA" + }, + { + "seq": "AAAAGAGATTATAGAAGTGGAAAGAAGACATATATAATACAAGCTCTACGATATGCATTAACATATTATAGCAAACTTTCAAATAGAAAGGAAGCACCTAAAGTAACCATGTTATTTACAGATGGAAATGATCCCTATGAATCAGAAAAGGGATTACAGGATATTGCATTATTATATAGAAAA" + } + ], + "target_id": 94 + }, + { + "mhap_location": { + "chrom": "Pf3D7_03_v3", + "end": 654174, + "genome_id": 0, + "start": 654001, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "TATTTTTATAATTTCCTTTCATCTTATTTTTTTCTTTATATTTTTTTTTTTCATATGTAAGATTTATATAATCACTTTCGCTTTTTCTAACGCTTTTGAACTTTTTAAATGTACTTCGTTCATTATTTCTAATTCTCGTAAACACAAGAATAAATATTTTGATATATCTTA" + }, + { + "seq": "TATTTTTATAATTTCCTTTCATCTTATTTTTTTCTTTATATTTTTTTTTTTCATATGTAAGATTTATATAATCACTTTCGCTTTTTCTAACCCTTTTGAACTTTTTAAATGTACTTCGTTCATTATTTCTAATTCTCGTAAACACAAGAATAAATATTTTGATATATCTTA" + }, + { + "seq": "TATTTTTATAATTTCCTTTCATCTTATTTTTTTCTTTATATTTTTTTTTTTCATATGTAAGATTTATATAATCACTTTCGCTTTTTCTAACGCTTTTGAACTTTTTAAATGTACTTCCTTCATTATTTCTAATTCTCGTAAACACAAGAATAAATATTTTGATATATCTTA" + } + ], + "target_id": 90 + }, + { + "mhap_location": { + "chrom": "Pf3D7_03_v3", + "end": 850988, + "genome_id": 0, + "start": 850815, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "CATATTCGTTTCAGCGTTTATAGAGCGAATATTATCGATTATGTCTATATTCCCTAAAATATGTACATAATAATCTCCATTTAATAATGTTACTTTCTTAAGAATATTTTTGTATATGACATCAAAGATATTACGAGTTAACAATACATCTACATTTCCGTCTATTATATA" + }, + { + "seq": "CATATTCGTTTCAGCGTTTATAGAGCGAATATTATCGATTATGTCTATATTCCCTAAAATATGTACATAATAATCTCCATTTAATAATGTTACTTTCTTAAGAATATTTTTGTATATGACATCAAAGATATTACGAGTTAACAATACATCTACATTTCGGTCTATTATATA" + }, + { + "seq": "CATATTCGTTTCAGCGTTTATAGAGCGAAAATTATCGATTATGTCTATATTCCCTAAAATATGTACATAATAATCTCCATTTAATAATGTTACTTTCTTAAGAATATTTTTGTATATGACATCAAAGATATTACGAGTTAACAATACATCTACATTTCGGTCTATTATATA" + } + ], + "target_id": 48 + }, + { + "mhap_location": { + "chrom": "Pf3D7_01_v3", + "end": 180114, + "genome_id": 0, + "start": 179902, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "TTTCGATACAGGACATATAGATCATAATATAAACGAATATGAAAAACATTTTACAATTTTAAAAAAATCTTTTTTTCATAAGTCATTAAAATTTATGGATTATATATGGATTGTTATAATGAAACGAGATAATAATACATTTTTAAATAAAATAAGAAATGAACAAGTGAGGGCATCGTTATTAATAACAGGTATTATAAACGAAAATAT" + }, + { + "seq": "TTTCGATACAGGACATATAGATCATAATATAAACGAATATGAAAAACATTTTACAATTTTAAAAAAATCTTTTTTTCATAAGTCATTAAAATTTATGGATTATATATGGATTGTTATAATGAAACGAGATAATAATACATTTTTAAATAGAATAAGCCATGAAGGAATCAAAAAATCGTTATTAATAACAGGTATTATAAACGAAAATAT" + }, + { + "seq": "TTTCGATATAGGACATATAGATCATAATATAAACGAATATGAAAAACGTTTTACAATTTTAAAAGAATCTTTTTTTCATAAGTCATTAAAATTTATGGATTATATATGGATTGTTATAATGAAACGAGAAAATAATACATTTTTAAATAGATTAAGAAATGAACAAGTGAGGGCATCGTTATTAATAACAGGTATTATAAACGAAAATAT" + }, + { + "seq": "TTTCGATACAGGACATATAGATCATAATATAAACGAATATGAAAAACATTTTACAATTTTAAAAAAATCTTTTTTTCATAAGTCATTAAAATTTATGGATTATATATGGATTGTTATAATGAAACGAGATAATAATACATTTTTAAATAGATTAAGAAATGAACAAGTGAGGGCATCGTTATTAATAACAGGTATTATAAACGAAAATAT" + } + ], + "target_id": 82 + }, + { + "mhap_location": { + "chrom": "Pf3D7_04_v3", + "end": 110086, + "genome_id": 0, + "start": 109911, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "ATATTTGTATATATTCTAGTAAACACTTTAGGTACACCTGCAAGTACCTCAACATCTGAATTATATAAATCTTTAGAAAAACAACTAATATCCTTACTCCATATATTTATTTTTATACCAAGAATAACAGCCATATAAACCAAAACTCTCTCAAATACATGTGATACAGGTAA" + }, + { + "seq": "ATATTTGTATATATTCTAGTAAACACTTTAGGTACACCTGCAAGTACCTCAACATCTGAATTATATAAATCTTTAGAAAAACAACTAATATCCTTACTACATATATTTATTTTTATACCAAGAATAACAGCCATATAAACCAAAACTCTCTCAAATGCATGTGATACAGGTAA" + }, + { + "seq": "ATATTTGTATATATTCTAGTAAACACTTTAGGTACACCTGCAAGTACCTCAACATCTGAATTATATAAATCTTTAGAAAAACAACTAATATCCTTACTCCATATATTTATTTTTATACCAAGAATAACAGCCATATAAACCAAAACTCTCTCAAATGCATGTGATACAGGTAA" + } + ], + "target_id": 74 + }, + { + "mhap_location": { + "chrom": "Pf3D7_04_v3", + "end": 133700, + "genome_id": 0, + "start": 133490, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "TAGATTTTTTCCCTTCAGCAGGTGCCCTCACTTTAGGTGTTTTAAACTTAGTTGTATGTGGAACCCCATCTTTATTTGGTTTACCTCTATTTAATCTTTTACCAGCAGTAGAAACTACATTCTCTCGATTATCATTACCTACTTCAGTCTTTACAATTGTAGGAGGTGTTTTAACATGATTATCCCCTCCATGAGGAGTAACCCTTAA" + }, + { + "seq": "TAGATTTTTTCCCTTCAGCAGGTGCCCTCACTTTAGGTGTTTTAAACTTAGTTGTATGTGGAACCCCATCTTTATTTGCTTTACCTCTATTTAATCTTTTACCAGCAGTAGAAACTACATTCTCTCGATTATCATTACCTACTTCAGTCTTTACAATTGTAGGAGGTGTTTTAACATGATTATCCCCTCCATGAGGAGTAACCCTTAA" + }, + { + "seq": "TAGATTTTTTCCCTCCAACAGATGCACTCACTTTAGGTGTTTTAAACTTAGTTGTATGTTGACCCCCCTCATTATTTAGTTTACCTTTATTTAATCTTTTACCAGCAGTAGAAACTACATTCTCTCGATTATCATTACCTACTTCAGTCTTTACAATTGTAGGAGGTGTTTTAACATGATCATCCCCTCCATGAGGAGTAACCCTTAA" + } + ], + "target_id": 43 + }, + { + "mhap_location": { + "chrom": "Pf3D7_04_v3", + "end": 141944, + "genome_id": 0, + "start": 141777, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "TTTCAAATTATATAAAGACAGAACTAAGAAATATAAACCTGCAAGAAATAAAAAACAATATAATAAAAATATTTAAAGAATTCGAATCTGCACACAAAGAAATTAAAAAAGAATCAAAACAAATTAATAAAGAATTTACCAAAATGGATGTCGTCATAAATCAAT" + }, + { + "seq": "TTTCAAATTATATAAAGACAGAACTAAGAAATATAAACCTGCAAGAAATAAAAAACAATATAATAAAAATATTTAAAGAATTCAAATCTGCACACAAAGAAATTAAAAAAGAATCAGAACAAATTAATAAAGAATTTACCAAAATGGATGTCGTCATAAATCAAT" + }, + { + "seq": "TTTCAAATTATATAAAGACAGAACTAAGAAATATAAACCTGCAAGAAATAAAAAACAATATAATAAAAATATTTAAAGAATTCAAATCTGCACACAAAGAAATTAAAAAAGAATCAAAACAAATTAATAAAGAATTTACCAAAATGGATGTCGTCATAAATCAAT" + }, + { + "seq": "TTTCAAATTATATAAAGACAGAACTAAGAAATATAAACCTGCAAGAAATAAAAAACAATATAATAAAAATATTTAAAGAATTCGAATCTGCACACAAAGAAATTAAAAAAGAATCAGAACAAATTAATAAAGAATTTACCAAAATGGATGTCGTCATAAATCAAT" + } + ], + "target_id": 70 + }, + { + "mhap_location": { + "chrom": "Pf3D7_04_v3", + "end": 415825, + "genome_id": 0, + "start": 415652, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "TGCTAGTTTTGCTGCTCATGAAAATAAAAGCTACTCATATGAAGGTCGTACATATAAAATGTATCCACCTGAATTTAATACATTAATGTTAAAAGCAGATTATTTTATAAGAGATATAAATACACGAGGATTTAGAGAAGTAAATATGGATTCATGTAAATCATATACAAA" + }, + { + "seq": "TGCTAGTTTTGCTGCTCATGAAAATAAAAGCTACTCATATGAAGGTCGTACATATAAAATGTATCCACCTGAATTTAATGCATTAATGTTAAAAGCAGATTATTTTATAAGAGATATAAATACACGAGGATTTAGAGAAGTAAATATGGATTCATGTAAATCATATACAAA" + }, + { + "seq": "TGCTAGTTTTGCTGCTCATGAAAATAAAAGCTACTCATATGAAAGTCGTACATATAAAATGTATCCACCTGAATTTAATACATTAATGTTAAAAGCAGATTATTTTATAAGAGATATAAATACACGAGGATTTAGAGAAGTAAATATGGATTCATGTAAATCATATACAAA" + } + ], + "target_id": 15 + }, + { + "mhap_location": { + "chrom": "Pf3D7_04_v3", + "end": 544860, + "genome_id": 0, + "start": 544717, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "TATATTTTACATAATAACAATCTTTCATGTAATGATTATAATTTAAATAATCTTTCATTTAATATAAATAAATATATTAATGAAGAAAAAGGCAAAAATAAAAAAACAAATCAACATATATCAGAACAATTTTTATTTCCT" + }, + { + "seq": "TATATTTTACATAATAACAATCTTTCATGTAATGATTATAATTTAAATAATCTTTCATTTAATATAAATAAATATATAAATGAAGAAAAAGGCAAAAATAAAAAAACAAATCAACATATATCAGAACAATTTTTATTTCCT" + }, + { + "seq": "TATATTTTACATAATAACAATCCTTCATGTAATGATTATAATTTAAATAATCTTTCATTTAATATAAATAAATATATAAATGAAGAAAAAGGCAAAAATAAAAAAACAAATCAACATATATCAGAACAATTTTTATTTCCT" + } + ], + "target_id": 96 + }, + { + "mhap_location": { + "chrom": "Pf3D7_04_v3", + "end": 748435, + "genome_id": 0, + "start": 748229, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "AAATGTAATTCCCTAGATATGAAATATTTTCGTGCAGTTACAACATATGTGAATGAATCAAAATATGAAAAATTGAAATATAAGAGATGTAAATATTTAAACAAAGAAACTGTGGATAATGTAAATGATATGCCTAATTCTAAAAAATTACAAAATGTTGTAGTTATGGGAAGAACAAACTGGGAAAGCATTCCAAAAAAATTT" + } + ], + "target_id": 72 + }, + { + "mhap_location": { + "chrom": "Pf3D7_04_v3", + "end": 748695, + "genome_id": 0, + "start": 748532, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "ATAGTTTTACTTGGGAAATTAAATTACTATAAATGTTTTATTATAGGAGGTTCCGTTGTTTATCAAGAATTTTTAGAAAAGAAATTAATAAAAAAAATATATTTTACTAGAATAAATAGTACATATGAATGTGATGTATTTTTTCCAGAAATAAATGAAAA" + } + ], + "target_id": 58 + }, + { + "mhap_location": { + "chrom": "Pf3D7_04_v3", + "end": 802712, + "genome_id": 0, + "start": 802524, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "AAATTATTATAGAAAGATAGAAGTTATTTTATATGAATGGTTATATTTTCATTATAATAATGTATATAACACCAAAGTAAAAAAACAAAAATTTATATTTACCCAACAAAAAAAAGACATATCAAAACATAACAAGTTATATCTTCAGTATGATCAAAATAAAAGAAATTCTGAAATAAAACATAC" + }, + { + "seq": "AAATTATTATAGAAAGATAGAAGTTATTTTATATGAATGGTTATATTTTCATTATAATAATGTATATAACACCAAAGTAAAAAAACAAAAATTTATATTTACCCAACAAAAAAAAGACATATCAAAACATAACAAGTTATATCTTCAGTATGATCAAAATAAAAGAAATTCTGAAATAGAACATAC" + }, + { + "seq": "AAATTATTATAGAAAGATAGAAGTTATTTTATATGAATGGTTATATTTTCATTATAATAATGTATATAACACCAAAGTAAAAAAACAAAAATTTATATTTACCCAACAAAAAAAAGACATATCAAAACATAACAAGTTATATCTTCAGTATGATCAAAATAAAAGAAATTCTGAAATAGAACGTAC" + } + ], + "target_id": 92 + }, + { + "mhap_location": { + "chrom": "Pf3D7_04_v3", + "end": 1037843, + "genome_id": 0, + "start": 1037633, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "TCTTATAAAGTTAATGAAATAGCTCAACTTAATTTAACCATAGAAAGAGATTTAACAGATGATGCTGTGATTTTTGCACACTCACTTTATTTACCATTTGAAAAAGAAGAAATGTGGTGGATCGTTATCGGAATTAAAAAAATGAACTTACTTTTATCTATCAAAAAATTATCTTTATTGAAAAGTATCAATAATATAAAAATTAATT" + }, + { + "seq": "TCTTATAAAGTTAATGAAATAGCTCAACTTAATTTAACCATAGAAAGAGATTTAACAGATGATGCTGTGATTTTTGCACACTCACTTTATTTACCATTTGAAAAAGAAGAAATGTGGTGGATCGTTATCGGAATTAAAAAAATGAACTTACTTTTATCTATCAAAAAATTATCTTTATTGAAAAGTGTCAATAATATAAAAATTAATT" + }, + { + "seq": "TCTTATAAAGTTAATGAAATTGCTCAACTTAATTTAACCATAGAAAGAGATTTAACAGATGATGCTGTGATTTTTGCACACTCACTTTATTTACCATTTGAAAAAGAAGAAATGTGGTGGATCGTTATCGGAATTAAAAAAATGAACTTACTTTTATCTATCAAAAAATTATCTTTATTGAAAAGTATCAATAATATAAAAATTAATT" + } + ], + "target_id": 52 + }, + { + "mhap_location": { + "chrom": "Pf3D7_04_v3", + "end": 1100830, + "genome_id": 0, + "start": 1100655, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "ATGTTCTAAGATCTGGTGGAAAAATATCTGATCAAGGTTCTGAGATAAGTCCTCCTAAGGCACTTTCTAATAAACAAATGACTCCTGCTCAACGTAAGAATGTGCCACATTTTGTTGAAAGAAGAGGCTATGGAAATAGTCATGTTAGGGGTAACGCACTTAAAAAAATTAGT" + }, + { + "seq": "ATGTTCTAAGATCTGATGGAAAAATATCTGATCAAGGTTCTCAGAAAAGTCCTCCTAAGGAACTTTCTAATAAACAAATGACTCCTGCTCAACGTAAGAATGTGCCACATTTTGTTGAAAGAAGAGGCTATGGAAATAGTCATGTTAGGGGTAACGCACTTAAAAAAATTAGT" + }, + { + "seq": "ATGTTCTAAGATCTGGTGGAAAAATATCTGATCAAGGTTCTCAGAAAAGTCCTCCTAAGGAACTTTCTAATAAACAAATGACTCCTGCTCAACGTAAGAATGTGCCACATTTTGTTGAAAGAAGAGGCTATGGAAATAGTCATGTTAGGGGTAACTCACTTAAAAAAATTAGT" + } + ], + "target_id": 81 + }, + { + "mhap_location": { + "chrom": "Pf3D7_01_v3", + "end": 181672, + "genome_id": 0, + "start": 181556, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "TCATTCTTTTTTTAACGAAAACTATTCATCTCAAAAATATAAGATATTTTATATGACGAATGCCATTGTATTTTTTGTTACGTAAAACCTGACTTCTTCAAGGAAAACACATGC" + }, + { + "seq": "TCATTCTTTTTTTAACTAAAACTATTCATCTCAAAAATATAAGATATTTTATATGACGAATGCCATTGTATTTTTTGTTACGTAAAACCTGACTTCTTCAAGGAAAACACATGC" + } + ], + "target_id": 64 + }, + { + "mhap_location": { + "chrom": "Pf3D7_04_v3", + "end": 1102577, + "genome_id": 0, + "start": 1102388, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "AAGAAATAAATAAAATAATTTATACAAACGAATTTAATAATTATGAAGATAAAATATATGAAGATGTCAAATATATTAAAGAACAGGAAAATGAAATGTACTTGAGAGATGGAATTGAAGAGTTACATATGGATGAACCAAGTGGGGATGTATATTTTGATGATCAAGATGATTATATATTTTTAGA" + }, + { + "seq": "AAGAAATAAATAAAATAATTTATACAAACGAATTTAATAATTATGAAGATAAAATATATGAAGATGTCAAATATATTAAAGAACAGGAAAATGAAATATACTTGAGAGATGGAATTGAAGAGTTACATATGGATGAACCAAGTCGGGATGTATATTTTGATGATGAAAATGATTATATATTTTTAGA" + }, + { + "seq": "AAGAAATAAATAAAATAATTTATACAAACGAATTTAATAATTATGAAGATAAAATATATGAAGATGTCAAATATATTAAAGAACAGGAAAATGAAATATACTTGAGAGATGGAATTGAAGAGTTACATATGGATGAACCAAGTCGGGATGTATATGTTGATGATGAAAATGATTATATATTTTTAGA" + } + ], + "target_id": 67 + }, + { + "mhap_location": { + "chrom": "Pf3D7_04_v3", + "end": 1113603, + "genome_id": 0, + "start": 1113449, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "AATCATCTAAGAATAAACTTTTTTGTTTAAACCATTTATTGAACATTTCACTTAAATGTGATTCAATTTTTTTTTCTGAGCTTTCCATAATTTGATTACATCTATTCAATTTGTTTGTATAAGTTTTAGGTGTTATTATTCTTTTACGTTTT" + }, + { + "seq": "AATCATCTAAGAATAAACTTTTTTGTTTAAACCATTTATTGAACATTTCACTTAAATGTGATTCAATTTTTTTTTCTGAGCTTTCCATAATTTGATTACAACTATTCAATTTGTTTGTATAAGTTTTAGGTCTTATTATTCTTTTACGTTTT" + }, + { + "seq": "AATCATCTAAGAATAAACTTTTTTGTTTAAACCATTTATTGAACATTTCACTTAAATGTGATTCAATTTTTTTTTCTGAGCTTTCCATAATTTGATTACATCTATTCAATTTGTTTGTATAAGTATTAGGTCTTATTATTCTTTTACGTTTT" + }, + { + "seq": "AATCATCTAAGAATAAACTTTTTTGTTTAAACCATTTATTGAACATTTCACTTAAATGTGATTCAATTTTTTTTTCTGAGATTTCCATAATTTGATTACATCTATTCAATTTGTTTGTATAATTATTAGGTCTTATTATTCTTTTACGTTTT" + }, + { + "seq": "AATCATCTAAGAATAAACTTTTTTGTTTAAACCATTTATTGAACATTTCACTTAAATGTGATTCAATTTTTTTTTCTGAGCTTTCCATAATTTGATTACATCTATTCAATTTGTTTGTATAATTATTAGGTCTTATTATTCTTTTACGTTTT" + } + ], + "target_id": 61 + }, + { + "mhap_location": { + "chrom": "Pf3D7_04_v3", + "end": 1128672, + "genome_id": 0, + "start": 1128488, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "TTGAAAGAGTTAAAGGGAAAAATACAAAATTATTTAGATAATGATATTCAATTGAGTAATGGAAAACTCCTATATAAGGATACATGGGATAGAATTGATTTGAAGTTTTGTAGAACGGTAGCAATAGAAGAGGCAGTATACACTAGAAAATTTTATAGCTTAATTAATGATAAACATACAAT" + }, + { + "seq": "TTGAAAGAGTTAAAGGGAAAAATACAAAATTATTTAGATAATGATATTCAATTGAGTAATGGAAAACTCCTATATAAGGATACATGGGATAGAATTGATTTGAAGTTTTGTAGAACGGTAGCAATAGAAGAGGCAGAATACACTAGAAAATTTTATAGCTTAATTAATGATAAACATACAAT" + }, + { + "seq": "TTGAAAGAATTAAAGGGAAAAATACAAAATTATTTAGATAATGATATTCAATTGAGTAATGGAAAACTCCTATATAAGGATACATGGGATAGAATTGATTTGAAGTTTTGTAGAACGATAGCAATAGAAGAGGCAGAATACACTAGAAAATTTTATAGCTTAATTAATGATAAACATACAAT" + } + ], + "target_id": 54 + }, + { + "mhap_location": { + "chrom": "Pf3D7_05_v3", + "end": 329549, + "genome_id": 0, + "start": 329377, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "TTGTGATGTATATAAATTCCCTTCTTCTTTATGTACCACATTATAAGAACCACGAACATATTCTTTTAAAAATGTTAACTTACTTCCAACAAATATATAATCAAAACAAAATTTTTTATTGTCGAAATGTTCTCGTTCAACCCCATTCATATTTCGGATATCATTATTTA" + }, + { + "seq": "TTGTGATGTATATAAATTCCCTTCTTCTTTATGTACCACATTATAAGAACCACGAACATATTCTTTTAAAAATGTTAACTTACTTCCAACAAATATATAATCAAAACAAAATTGTTTATTGTCGAAATGTTTTCGTTCAACCCCATTCATATTTCGGATATCATTATTTA" + } + ], + "target_id": 33 + }, + { + "mhap_location": { + "chrom": "Pf3D7_05_v3", + "end": 958220, + "genome_id": 0, + "start": 958058, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "TTTATATCATTTGTATGTGCTGTATTATCAGGAGGAACATTACCTTTTTTTATATCTGTGTTTGGTGTAATATTAAAGAACATGAATTTAGGTGATGATATTAATCCTATAATATTATCATTAGTATCTATAGGTTTAGTACAATTTATATTATCAATGA" + }, + { + "seq": "TTTATATCATTTGTATGTGCTGTATTATCAGGAGGAACATTACCTTTTTTTATATCTGTGTTTGGTGTAATATTAAAGAACATGTATTTAGGTGATGATATTAATCCTATAATATTATCATTAGTATCTATAGGTTTAGTACAATTTATATTATCAATGA" + } + ], + "target_id": 49 + }, + { + "mhap_location": { + "chrom": "Pf3D7_05_v3", + "end": 958505, + "genome_id": 0, + "start": 958388, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "ACGAAATTTATAACAATTTTTACATATGCCAGTTCCTTTTTAGGTTTATTTATTTGGTCATTAATAAAAAATGCACGTTTGACTTTATGTATTACTTGCGTTTTTCCGTTAATTT" + }, + { + "seq": "ACGAAATTTATAACAATTTTTACATATGCCAGTTCCTTTTTAGGTTTATATATTTGGTCATTAATAAAAAATGCACGTTTGACTTTATGTATTACTTGCGTTTTTCCGTTAATTT" + }, + { + "seq": "ACGAAATTTATAACAATTTTTACATATGCCAGTTCCTTTTTAGGGTTATTTATTTGGTCATTAATAAAAAATGCACGTTTGACTTTATGTATTACTTGCGTTTTTCCGTTAATTT" + } + ], + "target_id": 46 + }, + { + "mhap_location": { + "chrom": "Pf3D7_05_v3", + "end": 1042280, + "genome_id": 0, + "start": 1042161, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "TATTATTACGGTACCATTATATGATTCTTTAGGTCCTCAATCAAGTAGATTTATATTAGATCAAACACAGATGGAAACTATTGTATGTGACAAGACATGTGCTCGTAATTTATTTAA" + }, + { + "seq": "TATTATTACGGTACCATTATATGATTCTTTAGGTCCTCAATCAAGTAGATTTATATTAGATCAAACACAGATGGAAACTATTGTATGTAACAAGACATGTGCTCGTAATTTATTTAA" + } + ], + "target_id": 4 + }, + { + "mhap_location": { + "chrom": "Pf3D7_05_v3", + "end": 1309743, + "genome_id": 0, + "start": 1309608, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "AATGAAGAAAATATGTCTGACAGACCAAACAGTTTATCTCATGATAAGGATCAACACCTCGATGAAACATGTAATGAACAATATGGATTATACGTAAAAGAAATGGAATCTAAAGTTGAAAAATTAGCTGAAA" + }, + { + "seq": "AATGAAGAAAATATGTCTGACAGACCAAACAGTTTATCTCATGATAAGGATCAACACCACGATGAAACACATAATGAACAATATGGATTATACGTAAAAGAAATGGAATCTAAAGTTGAAAAATTAGCTGAAA" + } + ], + "target_id": 27 + }, + { + "mhap_location": { + "chrom": "Pf3D7_06_v3", + "end": 145500, + "genome_id": 0, + "start": 145342, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "ATTTGAATAAAATTTATCATTCACAATATTATATTTTTGTTTCTTCTTTTTTCCCATAATATTATTATTTTGTTCACAATATATGTTCATGTGTCCCCTCTTTTTCTGTAAAATATTAAAATGTTTCTTACTATGCTTTTCTTCATTTTTAATAAC" + }, + { + "seq": "ATTTGAATAAAATTTATCATTCACAATATTATATTTTTGTTTCTTCTTTTTTCCCATAATATTATTATTTTGTTCACAATATATGTTCATGTGTCCCCTCTTTTTCTGTAAAATATTAAAATGTTTCTTAGTATGCTTCTCTTCATTTTTAATAAC" + } + ], + "target_id": 44 + }, + { + "mhap_location": { + "chrom": "Pf3D7_06_v3", + "end": 532377, + "genome_id": 0, + "start": 532194, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "GAACAATTGTTAAACACCAAATTGGGTGAAACAAAAAACCACCTGAACAGAACTCCATTTATACCTGAATCGGTCATACGAGAAAGGAAATTACGCCAAGAAAAAGCGCAATCCACAAACAACATGTTCGATTCAACAAACGCAGATAGTATTACTTCCCCATGTGATCCAACGAATGCCA" + }, + { + "seq": "GAACAATTGCTAAACACCAAATTGGGTGAAACAAAAAACCACCTGAACAGAACTCCATTTATACCTGAATCGGTCATACGAGAAAGGAAATTACGCCAAGAAAAAGCTCAATCCACAAACAACATGTTCGATTCAACAAACGCAGATAGTATTACTTCCCCATGTGATCCAACGAATGCCA" + }, + { + "seq": "GAACAATTGTTAAACACCAAATTGGGTGAAACAAAAAACCACCTGAACAGAACCCCATTTATACCTGAATCGGTCATACGAGAAAGGAAATTACGCCAAGAAAAAGCGCAATCCACAAACAACATGTTCGATTCAACAAACGCAGATAGTATTACTTCCCCATGTGATCCAACGAATGCCA" + }, + { + "seq": "GAACAATTGCTAAACACCAAATTGGGTGAAACAAAAAACCACCTGAACAGAACCCCATTTATACCTGAATCGGTCATACGAGAAAGGAAATTACGCCAAGAAAAAGCGCAATCCACAAACAACATGTTCGATTCAACAAACGCAGATAGTATTACTTCCCCATGTGATCCAACGAATGCCA" + } + ], + "target_id": 39 + }, + { + "mhap_location": { + "chrom": "Pf3D7_01_v3", + "end": 496142, + "genome_id": 0, + "start": 495970, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "GAAAGTAGCGAATACCCTGTACAAATCGTTAGTAAACCTCTGGAATGGTTATTGTTTCATGATTTTACTACGCCTGATGTTACTGCACTACCTGAAGAATTACCATTAACGAGCTATAAAGTAACACCTACTTCTATTAATGTATTGCATAAAGAGGGCCCCACTTTAAA" + }, + { + "seq": "GAAAGTAGCGAATACCCTGTAGAAATTGTTAGTAAACCTCTGGAATGGTTATTGTTTCATGATTTTACTACGCCTGATGTTACTGCACTACCTGAAGAATTACCATTAACGAGCTATAAAGTAACACCTACTTCTATTAATGTATTGCATAAAGAGGGCCCCACTTTAAA" + }, + { + "seq": "GAAAGTAGCGAATACCCTGTACAAATCGTTAGTAAACCTCTGGAATGGTTATTGTTTCATGATTTGACTAAGCCTGATGTTACTGCACTACCTGAACAATTGCCATTAACAAATTATAAAGTAACACCTACTTCTATTAATGTATTGAATAAAGAGGGCCCCACTTTAAA" + }, + { + "seq": "GAAAGTAGCGAATACCCTGTAGAAATTGTTAGTAAACCTCTGGAATGGTTATTGTTTCATGATTTTACTACGCCTGGTGTTACTGCACTACCTGAAGAATTACCATTAACGAGCTATAAAGTAACACCTACTTCTATTAATGTATTGCATAAAGAGGGCCCCACTTTAAA" + } + ], + "target_id": 62 + }, + { + "mhap_location": { + "chrom": "Pf3D7_07_v3", + "end": 165421, + "genome_id": 0, + "start": 165234, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "TCATTATTATTATTATTATAATTATCATTGTTATTATTATTGTTGTTGTTGTTATTATTATTTCCTTTATTATTTAATATGCATTTTTTAATATCCATTTTATTATTTATCATATCAGTACTTTTATTTTTCTCCTTTTCGTTTATAGCTTTTTCCCTATGCACCCTGAATTTCCCATTTTTTTT" + }, + { + "seq": "TAATTATCATTATTATTATAATTATCATTGTTATTATTATTGTTGTTGTTGTTATTATTATTTCCTTTATTATTTAATATGCATTTTTTAATATCCATTTTATTATTTATCATATCAGTACTTTTATTTTTCTCCTTTTCGTTTATAGCTTTTTCCCTATGCACCCTGAATTTCCCATTTTTTTT" + }, + { + "seq": "TCATTATTATTATTATTATAATTATCATTTTTATTATTATTGTTGTTATTATTATTTCCTTTATTATTTAATATGCATTTTTTAATATCCATTTTATTATTTATCATATCAGTACTTTTATTTTTCTCCTTTTCGTTTATAGCTTTTTCCCTATGCACCCTGAATTTCCCATTTTTTTT" + } + ], + "target_id": 29 + }, + { + "mhap_location": { + "chrom": "Pf3D7_07_v3", + "end": 166166, + "genome_id": 0, + "start": 166034, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "TTTTATTTGAACTTTTTTATTTTCTTCATTATCAATATAAAAACAACAATCTTTAAATTTATGAAATAACACCCAACTTAATGTATAAAATATAATTTCTATAAAATCAAAATTAATGTAATAACCTAAT" + } + ], + "target_id": 59 + }, + { + "mhap_location": { + "chrom": "Pf3D7_07_v3", + "end": 299004, + "genome_id": 0, + "start": 298885, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "CATTCAATATGGTTCTGAGCTTAAAGATGTTATCCTTATACATGTTTCTATTCTCATTCGTTATAACATCAATGACATATAAAACATATCTCTCAAATATTTTGTGAACAATATTAT" + } + ], + "target_id": 41 + }, + { + "mhap_location": { + "chrom": "Pf3D7_07_v3", + "end": 730087, + "genome_id": 0, + "start": 729974, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "TTTATGTGAAATTTTAAATAAAGAGAAATTGTTTGTGCACACATCTATTTTGGGATATATATCTAATCGTTTATATTACGATATAGAAAAATATAGATGTTCATTATTGAA" + }, + { + "seq": "TTTATGTGAAATTTTAAATAAAGAGAAATTGTTTGTGCACACATCTATTTTGGGATATATATCTAATCGTTTATATTACGATATAGAAAAATATAGATGTTCATTATTGAG" + }, + { + "seq": "TTTATGTGAAATTTTAAATAAAGAGAAATTGTTTGTGCACACATCTATTTTGGGATATATATCTAATCGTTTATGTTACGATATAAAAAAATATAGATGTTCATTATTGAA" + }, + { + "seq": "TTTATGTGAAATTTTAAATAAAGAGAAATTGTTTGTGCACACATCTATTTTGGGATATATATCTAATCGTTTATGTTACGATATAGAAAAATATAGATGTTCATTATTGAA" + } + ], + "target_id": 75 + }, + { + "mhap_location": { + "chrom": "Pf3D7_07_v3", + "end": 1149584, + "genome_id": 0, + "start": 1149414, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "AATATTTAATATTTTTGTTTAGGAAGTTTTCAAAATTGATGACATTGATAACCGTTTTTATTAAATCGCTTGGGTTGTTTGTGTGTTCTATAGTAGAAGACATAATTTTAAGAATGTGTTTTTGTGTTATTAAACAAAACTTTGTTACTATATGGAATCGTATGTTAT" + }, + { + "seq": "AATATTTAATATTTTTGTTTAGGAAGTTTTCAAAATTGATGACATTGATAACCGTTTTTATTAAATCGCTTGGGTTGTTTGTGTGTTCCATTGTAGAAGACATAATTTTAAGAATGTGTTTTTGTGTTATTAAACAAAACTTTGTTACTATATGGAATCGTATGTTAT" + }, + { + "seq": "AATATTTAATATTTTTGTTTAGGAAGTTTTCAAAATTGATGACATTGATAACCGTTTTTATTAAATCGCTTGGGTTGTTTGTGTGTTCTATTGTAGAAGACATAATTTTAAGAATGTGTTTTTGTGTTATTAAACAAAACTTTGTTACTATATGGAATCGTATGTTAT" + } + ], + "target_id": 45 + }, + { + "mhap_location": { + "chrom": "Pf3D7_07_v3", + "end": 1358910, + "genome_id": 0, + "start": 1358693, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "AGAATCTCAACTTTTGCTTAAAAAAAATGATAACAAATATAATTCTAAATTTTGTAATGATTTGAAGAATAGTTTTTTAGATTATGGACATCTTGCTATGGGAAATGATATGGATTTTGGAGGTTATTCAACTAAGGCAGAAAACAAAATTCAAGAAGTTTTTAAAGGGGCTCATGGGGAAATAAGTGAACATAAAATTAAAAATTTTAGAAAAG" + }, + { + "seq": "AGAATCTCAACTTTTGCTTAAAAAAAATGATAACAAATATAATTCTAAATTTTGTAATGATTTGAAGAATAGTTTTTTAGATTATGGACATCTTGCTATGGGAAATGATATGGATTTTGGAGGTTATTCAACTAAGGCAGAAAACAAAATTCAAGAAGTTTTTAAAGGGGCTCATGGGAAAATAAGTGAACATGAAATTAAAAATTTTAGAAAAA" + }, + { + "seq": "AGAATCTCAACTTTTGCTTAAAAAAAATGATAACAAATATAATTCTAAATTTTGTAATGATTTGAAGAATAGTTTTTTAGATTATGGACATCTTGCTATGGGAAATGATATGGATTTTGGAGGTTATTCAACTAAGGCAGAAAACAAAATTCAAGAAGTTTTTAAAGGGGCTCATGGGAAAATAAGTGAACATGAAATTAAAAATTTTAGAAAAG" + } + ], + "target_id": 35 + }, + { + "mhap_location": { + "chrom": "Pf3D7_08_v3", + "end": 102499, + "genome_id": 0, + "start": 102325, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "TAATTTTCTCAAGTAACATATTTTTGTCTTGACTACTTTCATCTGTAAATGGAACGAATACTCTTTGCTTACCTGCAAAAAGGACAACTGACATATGAGCCTTATCCTTACTTACATTCGAATTAAAGACCATAGATTCTAAAAATGGTATAGTTCCTTTTAACCAATAATC" + }, + { + "seq": "TAATTTTCTCAAGTAACATATTTTTGTCTTGACTACTTTCATCTGTAAATGGAACCAATACTCTTTGCTTACCTGCAAAAAGGACAACTGACATATGAGCCTTATCCTTACTTACATTCGAATTAAAGACCATAGATTCTAAAAATGGTATAGTTCCTTTTAACCAATAATC" + }, + { + "seq": "TAATTTTCTCAAGTAACATATTTTTGTCTTGACTACTTTCATCTGTAAATGGAACGACTACTCTTTGCTTACCTGCAAAAAGGACAACTGACATATGAGCCTTATCCTTACTTACATTCGAATTAAAGACCATAGATTCTAAAAATGGTATAGTTCCTTTTAACCAATAATC" + }, + { + "seq": "TAATTTTCTCAAGTAACATATTTTTGTCTTGACTACTTTCATCTGTAAATGGAACGAATACTCTTTGCTTACCTGCAAAAAGGACAACTGACATATGAGCCTTATCCTTACTTACATTCGAATTAAGGACCATAGATTCTAAAAATGGTATAGTTCCTTTTAACCAATAATC" + } + ], + "target_id": 86 + }, + { + "mhap_location": { + "chrom": "Pf3D7_08_v3", + "end": 336646, + "genome_id": 0, + "start": 336467, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "AAATTTACAGAAAAATTTAGATTTAATCATATGGCTAAAAAAGAATATAAAAGAAGGAGAAGCTTTAATTTCTGATATACCCACATCAAGTTTTTTAAGGTGTACTACAAATTATAAATTTGTATTGCATCCACAATATGAAGATAGTAACTTGAGAAAGAGGGTTCAAGATTATTA" + }, + { + "seq": "AAATTTACAAAAAAATTTAGATTTAATCATATGGCTAAAAAAGAATATAAAAGAAGGAGAAGCTTTAATTTCTGATATACCTACATCAAGTTTTTTAAGGTGTACTACAAATTATAAATTTGTATTGCATCCACAATATGAAGATAGTAACTTGAGAAAGAGGGTTCAAGATTATTA" + }, + { + "seq": "AAATTTACAGAAAAATTTAGATTTAATCATATGGCTAAAAAAGAATATAAAAGAAGGAGAAGCTTTAATTTCTGATATACCCACATCAAGTTTTTTAAGGTGTACTACAAATTATAAATTTGTATTGCATCCCCAATATGAAGATAGTAACTTGAGAAAGAGGGTTCAAGATTATTA" + }, + { + "seq": "AAATTTACAAAAAAATTTAGATTTAATCATATGGCTAAAAAAGAATATAAAAGAAGGAGAAGCTTTAATTTCTGATATACCTACATCAAGTTTTTTAAGGTGTACTACAAATTATAAATTTGTATTGCATCCCCAATATGAAGATAGTAACTTGAGAAAGAGGGTTCAAGATTATTA" + }, + { + "seq": "AAATTTACAGAAAAATTTAGATTTAATCATATGGCTAAAAAAGAATATAAAAGAAGGAGAAGCTTTAATTTCTGATATACCTACATCAAGTTTTTTAAGGTGTACTACAAATTATAAATTTGTATTGCATCCCCAATATGAAGATAGTAACTTGAGAAAGAGGGTTCAAGATTATTA" + } + ], + "target_id": 85 + }, + { + "mhap_location": { + "chrom": "Pf3D7_08_v3", + "end": 339356, + "genome_id": 0, + "start": 339167, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "TCATTACTATTCTTTATCCATATATATGTTGTTATATCAGTTGCACCTGAGGGTGGATTCAAACCTCTTGCTTGTATAATATATGCACGTACTACTAAATTACGTGTTAATCTATATTCTCTTACTAAATCATCACATTTCTTTATCATTTCTTTTTTTAAATACATTGTCTTTTCATCATACACAT" + }, + { + "seq": "TCATTACTATTCTTTATCCATATATATGTTGTTATATCAGTTGCACCGGATGGTGGATTCAAACCTCTTGCTTGTATAATATATGCACGTACTACTAAATTACGTGTTAATCTATATTCTCTTACTAAATCATCACATTTCTTTATCATTTCTTTTTTTAAATACATTGTCTTTTCATCATACACAT" + }, + { + "seq": "TCATTACTATTCTTTATCCATATATATGTTGTTATATCAGTTGCACCGGATGGTGGATTCAAACCTCTTGCTTGTATAATATATGCACGTACTACTAAATTACGTGTTAATCTATATTCTCTTACTAAATCACCACATTTCTTTATCATTTCTTTTTTTAAATACATTGTCTTTTCATCATACACAT" + } + ], + "target_id": 80 + }, + { + "mhap_location": { + "chrom": "Pf3D7_08_v3", + "end": 550217, + "genome_id": 0, + "start": 549992, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "ACTAACAAATTATGATAATCTAGTTTATGATATAAAAAATTATTTAGAACAAAGATTAAATTTTCTTGTATTAAATGGAATACCTCGTTATAGGATACTATTTGATATTGGATTAGGATTTGCGAAGAAACATGATCAATCTATTAAACTCTTACAAAATATACATGTATATGATGAGTATCCACTTTTTATTGGATATTCAAGAAAAAGATTTATTGCCCAT" + } + ], + "target_id": 93 + }, + { + "mhap_location": { + "chrom": "Pf3D7_01_v3", + "end": 512387, + "genome_id": 0, + "start": 512198, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "TAAAGAAATTAAGTGAAGATGATTATGAAAAAAATTGTAGACATTTAAATTATTTAATAGATAATATAAGAGAATTATTTTTTAGTTCTAAAAATATTAGAATTCCTGATGTAGCTCGTAAATATTTGTGGGATAATCAAATTGAAGGAAATCTCAAAAAATTAATATCTTCAGAAACAAAATATAA" + }, + { + "seq": "TAAAGAAATTAAGTGAAGATGATTATGAAAAAAATTGTAGACATTTAAATTATTTAATAGATAATATAAGAGAATTATTTTTTAGTTCTAAAAATATTAGAATTCCTGATTTAGCTCGTAAATATTTGTGGGATAATCAAATTGAAGGAAATCTCAAAAAATTAATATCTTCAGCAACAAAATATAA" + }, + { + "seq": "TAAAGAAATTAAGTGAAGATGATTATGAAAAAAATTGTAGACATTTAAATTATTTAATAGATAATATAAGAGAATTATTTTTTAGTTCTAAAAATATTAGAATTCTTGATGTAGCTCGTAAATATTTGTGGGATAATCAAATTGAAGGAAATCTCAAAAAATTAATATCTTCAGAAACAAAAAATAA" + } + ], + "target_id": 38 + }, + { + "mhap_location": { + "chrom": "Pf3D7_08_v3", + "end": 933142, + "genome_id": 0, + "start": 933022, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "TGGTTTTAATGAGGATGATTTAGATAAAGAGTTTTCTTTTGATTTGCCGTCGATTAGTGGTTTTTCAAGTAATGGTATGAAAAAATGTAATTTAAGAAATTTATTAAAAAGATTAGAA" + }, + { + "seq": "TGGTTTTAATGAGGATGATTTAGATAAAGAGTTTTTTTTTGATTTGCCGTCGATTAGTGGTTTTTCAAGTAATGGTATGAAAAAATGTAATTTAAGAAATTTATTAAAAAGATTAGAA" + } + ], + "target_id": 3 + }, + { + "mhap_location": { + "chrom": "Pf3D7_08_v3", + "end": 1269455, + "genome_id": 0, + "start": 1269319, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "CCTTAGCATTAATAACACTTATAGGAGGTATTTATATGACTAAAGGAAGAAAAAGTTCCATATGGCATAATTCAGAAATAAATGATACACTTTATGATGTTGTTCTTGAAGCAGTGAATCAAGGAAATACAGAT" + }, + { + "seq": "CCTTAGCATTAATAACACTTATAGGAGGTATTTATATGACTAAAGGAAGAAAAAGTTCCATATGGCATAATTCAGAAATAAATGATACACTTTATGATGTTGTTCTTGAAACAGTGAATCAAGGAAATACAGAT" + }, + { + "seq": "CCTTAGCATTAATAACACTTATAGGAGGTATTTATATGACTAAAGGAAGAAAAAGTTCCATATGGCATAATTCAGAAATAAATGATACACTTTATGATATTGTTCTTGAAACAGTGAATCAAGGAAATACAGAT" + } + ], + "target_id": 32 + }, + { + "mhap_location": { + "chrom": "Pf3D7_08_v3", + "end": 1344818, + "genome_id": 0, + "start": 1344685, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "AATATATCTTTTACTTTATCTGTAAGTTTCATGGAATCTATTATTTCTTCTGCATATTTTATTTTTGCCTCGTTTATATATTTACCTGCTTCTAATTTACATAAACATTTTTCTATTAAGTTTTGATCATT" + }, + { + "seq": "AATATATCTTTTACTTTATCTGTAAGTTTCATGGAATCTATTATTTCATGTGCATATTTTATTTTTGCCTCGTTTATATATTTACCTGCTTTTAATTTACATAAACATTTTTCTATTAAGTTTTGATCATT" + }, + { + "seq": "AATATATCTTTTACTTTATCTGTAAGTTTCATGGAATCTATTATTTCATCTGCATATTTTATTTTTGCCTCGTTTATATATTTACCTGCTTTTAATTTACATAAACATTTTTCTATTAAGTTTTGATCATT" + } + ], + "target_id": 30 + }, + { + "mhap_location": { + "chrom": "Pf3D7_08_v3", + "end": 1363086, + "genome_id": 0, + "start": 1362890, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "GTAAAAAAAAAGGGTTTTCCTAAAAAACCATCGGTTCATGGTTTTACACAGATGGTGTTTTTGCAGCTTACTAATATAGTCATGTATGCCCTTTGTTTTATGAGCCTTTCACAAATATATGCTTATTTCGAAAACGTGAATTTTTATATTATAAGCAATTTTCGTTTCCTTGAGAGATATTTTAATATATTCAA" + }, + { + "seq": "GTAAAAAAAAAGGGTTTTCCTAAAAAACCATCGGTTCATGGTTTTACACAGATGATGTTTTTGCAGCTTACTAATATAGTCATGTATGCCCTTTGTTTTATGAACCTTTCACAATTATATGCTTATTTCGAAAACGTGAATTTTTATATTATAAGCAATTTTCGTTTCCTTGAGAGATATTTTAATATATTCAA" + }, + { + "seq": "GTAAAAAAAAAGGGTTTTCCTAAAAAACCATCGGTTCATGGTTTTACACAGATGGTGTTTTTGAAGATTACTAATATAGTCATGTATGCCCTTTGTTTTATGAGCCTTTCACAAATATATGCTTATTTCGAAAACGTGAATTTTTATATTATAAGCAATTTTCGTTTCCTTGAGAGATATTTTAATATATTCAA" + }, + { + "seq": "GTAAACAAAAAGGGTTTTCCTAAAAAACCATTGGTTCATGGTTTTACACAGATGGTGTTTTTGCAGCTTACTAATATAGTCATGTATGCCCTTTGTTTTATGGACCTTTCACAAATATATGCTTATTTCGAAAACGTGAATTTTTATATTATAAGCAATTTTCGTTTCCTTGAGAGATATTTTAATATATTCAA" + } + ], + "target_id": 28 + }, + { + "mhap_location": { + "chrom": "Pf3D7_09_v3", + "end": 517091, + "genome_id": 0, + "start": 516927, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "TGTTTGTGTAATAAAGGATATTTCTATAATGTCAAGAAACAACAATGTAAAGAATGTCCCATAGGTTTTTATTGTCCAGAAATAAGCTCAAAAAATAATATAAAAAAACCTATCAAATGTCCTAAAAATTCCTCAAGTATAAAAAAAGGTATGTATATATCA" + }, + { + "seq": "TGTTTGTGTAATAAAGGATATTTCTATAATGTCAAGAAACAACAATGTGAAGAATGTCCCATAGGTTTTTATTGTCCAGAAATAAGCTCAAAAAATAATATAAAAAAACCTATCAAATGTCCTAAAAATTCCTCAAGTATAAAAAAAGGTATGTATATATCA" + }, + { + "seq": "TGTTTGTGTAATAAAGGATATTTCTATAATGTCAAGAAACAACAATGTAAAGAATGTCCCATAGGTTTTTATTGTCCAAAAATAAGCTCAAAAAATAATATAAAAAAACCTATCAAATGTCCTAAAAATTCCTCAAGTATAAAAAAAGGTATGTATATATCA" + } + ], + "target_id": 26 + }, + { + "mhap_location": { + "chrom": "Pf3D7_09_v3", + "end": 596333, + "genome_id": 0, + "start": 596132, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "TTATTTTCGTTTTTTTTTATATTATCATTATAATTATATGTATTTACAAAGAATTTATTATTATTTGTTTCTTTATAATTATATTCATTTTCTTTATTACTTAAGGAATTTATATTTGATAAAACTTGTTGTCCTCTTTCTTCTTTGTTGATGTGAATATTTGAGAAAATAATAATAAATGTAATGACTAGGGCTATAT" + }, + { + "seq": "TTATTTTCGTTTTTTTTTATATTATCATTATAATTATATGTATTTACAAAGAATTTATTATTATTTGTTTCTTTATAATTATATTCATTTTCTTTATTACTTAAGGAATTTATATTTGATAAAACTTGTTGTCCTCTTTCTTCTTTGTTGATGTGAATATTTGAGAAAATAATAATAAATGTAATGACTAGGGCTATGT" + }, + { + "seq": "TTATTTTCGTTTTTTTTTATATTATCATTATAATTATATGTATTTACAAAGAATTTATTATTATTTGTTTCTTTATAATTATATTCATTTTCTTTATTACTTAAGGAATTTATATTTGATAAAACTTGTTGTACTCTTTCTTCTTTGTTGATGTGAATATTTGAGAAAATAATAATAAATGTAATGACTAGGGCTATGT" + } + ], + "target_id": 25 + }, + { + "mhap_location": { + "chrom": "Pf3D7_09_v3", + "end": 685791, + "genome_id": 0, + "start": 685600, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "CAAAGGAACAAGATAATTTTTTCCATTTTTATAAAAGTAATATATATGATATGGAAAATAGAACATGTAATAATAATATATTACAATATTGTGTTATGAATAATAAATCATATTTATTTCATAATATATCATCCAAAAAAAATATATATATAAAAAAAAAGAATCATCAGTTTTCTTTATTCATATATT" + }, + { + "seq": "CAAAGGAACAAGATAATTTTTTCAATTTTTATAAAAGTAATATATATGATATGGAAAATAGAACATGTAATAATAATATATTACAATATTGTGTTATGAATAATAAATCATATTTATTTCATAATATATCATCCAAAAAAAATATATATATAAAAAAAAAGAATCATCAGTTTTCTTTATTCATATATT" + } + ], + "target_id": 77 + }, + { + "mhap_location": { + "chrom": "Pf3D7_09_v3", + "end": 1179077, + "genome_id": 0, + "start": 1178893, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "CAAATTATCCTTAGCCCCAGATATGGTAAAGACATATCACTGTTATAAATTAGGAAAGCAAGCAGCTGAATTATTAGAATCTATCATTTTAAAGAAAAAGTTCGTAAGATTTAGAGTTACTGATGCTATTGATGTATATGATTTCTTTTATATAAAGAAAGTTTTATCCAGTCGTATTAAGA" + }, + { + "seq": "CAAATTACCCTTAGCCCCAGATATGGTAAAGACATATCACTGTTATAAATTAGGAAAGCAAGCAGCTAAATTATTAGAATCTATCATTTTAAAGAAAAAGTTCGTAAGATTTAGAGTTACTGATGCTATTGATGTATATGATTTCTTTTATATAAAGAAAGTTTTATCCAGTCGTATTAAGA" + } + ], + "target_id": 89 + }, + { + "mhap_location": { + "chrom": "Pf3D7_09_v3", + "end": 1406540, + "genome_id": 0, + "start": 1406404, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "AATTAATTTTAATGATGATGTTACTTTAGAAACACAATCCATGATAGCACACGGAGGGTCTTTGTCAGAAATAGAAGAAACTGGAGATTTATCTTCAGATGTTGATAGATTACTTTCATCAATCGAAACTACTC" + }, + { + "seq": "AATTAATTTTAATGATGATGTTACTTTAGAAACACAATCCATGATAGCACACGGAGGGTCTTTGTCAGAAATAGAAGAAACTGAAGATTTATCTTCAGATGTTGATAGATTACTTTCATCAATCGAAACTACTC" + } + ], + "target_id": 51 + }, + { + "mhap_location": { + "chrom": "Pf3D7_09_v3", + "end": 1437302, + "genome_id": 0, + "start": 1437113, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "TAAAACCTGACAGCTTTGTACAGTTATATTTACCCAATTAGAATGTTCAAACATATTTAAGTGTTGCCATTCTTCAAATAATTTTTTTTCATATTCAGTTTTTGGTTGGTTTTTAAATTCTTTTGATAATGTACCTTCTGCGGATGGTATAGGGAAGTTAAAAATTTTATTACTTACTTTGTTTGAT" + }, + { + "seq": "TAAAACCTGACAGCTTTGTACAGTTATATTTACCCAATTAGAATGTTCAAACATATTTAAGTGTTGCCATTCTTCAAATAATTTTTTTTCATATTCAGTTTTTGGTTGGTTTTTAAATTCTTTTGATACTGTACCTTCTGCGGATGGTATAGGGAAGTTAAAAATTTTATTACGTACTTTGTTTGAT" + } + ], + "target_id": 87 + }, + { + "mhap_location": { + "chrom": "Pf3D7_01_v3", + "end": 531899, + "genome_id": 0, + "start": 531681, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "AAAGAAAGATGTTAAGAAAAAAAAGATCGATATGATAAATATATTACACATACCTACAAATAATTATAGCATGCCAAATGAAAAAGATATAAACAGTTATGAATTTTTTGGATCTGAACCTATTGAATTATATGATGGAAAATCTAATAAGAATTGTGTTATAACTAGCCAATCTTATATTTGTATTGAAAACCCGCATGCTGCCATATTATCCGA" + }, + { + "seq": "AAAGAAAGATGTTAAGAAAAAAAAGATCGATATGATAAATATATTACACATTCCTACAAATAATTATAGCATGCCAAATGAAAAAGATATAAACAGTTATGAATTTTTTGGATCTGAACCTATTGAATTATATGATGTAAAATCTAATAAGAATTGTGTTATAACTAGCCAATCTTATATTTGTATTGAAAACCCGCATGCTGCCATAGTATCCGA" + }, + { + "seq": "AAAGAAAGATGTTAAGAAAAAAAAGATCGATATGATAAATATATTACACATTCCTACAAATAATTATAGCATGCCAAATGAAAAAGATATAAACAGTTATGAATTTTTTGGATCTGAACCTATTGAATTATATGATGGAAAATCTAATAAGAATTGTGTTATAACTAGCCAATCTTATATTTGTATTGAAAACCCGCATGCTGCCATATTATCCGA" + }, + { + "seq": "AAAGAAAGATGTTAAGAAAAAAAAGATCGATATGATAAATATATTACACATACCTACAAATAATTATAACATGCCAAATGAAAAAGATATAAACAGTTATGAATTTTTTGGATCTGAACCTATTGAATTATATGATGTAAAATCTAATAAGAATTGTGTTATAACTAGCCAATCTTATATTTGTATTGAAAACCCGCATGCTGCCATATTATCCGA" + }, + { + "seq": "AAAGAAAGATGTTAAGAAAAAAAAGATCGATATGATAAATATATTACACATACCTACAAATAATTATAACATGCCAAATAAAAAAGATATAAACAGTTATGAATTTTTTGGATCTGAACCTATTGAATTATATGATGTAAAATCTAATAAGAATTGTGTTATAACTAGCCAATCTTATATTTGTATTGAAAACCCGCATGCTGCCATATTATCCGA" + } + ], + "target_id": 24 + }, + { + "mhap_location": { + "chrom": "Pf3D7_10_v3", + "end": 377208, + "genome_id": 0, + "start": 377094, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "ACCAAAAAATGATACCTGTACGTTTTTCTCCAGGAGAAACAAAAAAATTAGAAAGGATTCTCAAAAAAGTAGACGACTTTTTCTGTGCCAATATTAAAGCGCATTATACCTG" + }, + { + "seq": "ACCAAAAAATGATACCTGTACGTTTTTCTCCAGGAGAAACAAAAAAATTAGAAAGGATTCTCAAAAAAGTAGACGACTTTTTCTGTGCCAATATTAAAGCGCAATATACCTG" + } + ], + "target_id": 63 + }, + { + "mhap_location": { + "chrom": "Pf3D7_10_v3", + "end": 992543, + "genome_id": 0, + "start": 992370, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "TTTTAAAAAAAAAAATTATGATATAAAATCTTCAATTAATAAAAGATCTATCCAGTTCTTTAGAGACACTAATATAGATCATTATATAGCATATGAATATTATAAGGAGGACCGTACAGAATTTATATTAACTATTATGAATGAAAAAAATATTACTCATCAAGAAACTCA" + }, + { + "seq": "TTTTAAAAAAAAAAATTATGATATAAAATCTTCAATTAATAAAAGATCTATCCAGTTCTTTAAAGACACTAATATAGATCATTATATAGCATATGAATATTATAAGGAGGACCGTACAGAATTTATATTAACTATTATGAATGAAAAAAATATTACTCATCAAGAAACTCA" + }, + { + "seq": "TTTTAAAAAAAAAAATTATGATATAAAATCTTCAATTAATAAAAGATCTATCCAGTTCTTTACAGACACTAATATAGATCATTATATAGCATATGAATATTATAAGGAGGACCGTACAGAATTTATATTAACTATTATGAATGAAAAAAATATTACTCATCAAGAAACTCA" + } + ], + "target_id": 65 + }, + { + "mhap_location": { + "chrom": "Pf3D7_10_v3", + "end": 1386868, + "genome_id": 0, + "start": 1386699, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "GAGAACAGGTTAAATATATTGAAGACGTGGTTTGATAATCAGGTATTTCTTTAATTAAATATTCATGATATTGTTCGTTAGATACATAAATTAATTCATCCTCCACATTTTGCTGTTCTGTTATAATTTGTGAAGAAGCTTGGTTTGTTTTATTTGGTAATTGCTCT" + }, + { + "seq": "GGGAACAGGTTAAATATATTGAAGACGTGGTTTGATAATCAGGTATTTCTTTAATTAAATATTCATGATATTGTTCGTTAGATACATAAATTAATTCGTCCTCCACATTTTGCTGTTCTGTTATAATTTGTGAAGAAGCTTGGTTTGTCTTATTTGGTAATTGCTCT" + }, + { + "seq": "GAGAACAGGTTAAATATATTGAAGACGTGGTTTGATAATCAGGTATTTCTTTAATTAAATATTCATGATATTGTTCGTTAGATACATAAATTAATTCGTCCTCCACATTTTGCTGTTCTGTTATAATTTGTGAAGAAGCTTGGTTTGTCTTATTTGGTAATTGCTCT" + } + ], + "target_id": 34 + }, + { + "mhap_location": { + "chrom": "Pf3D7_10_v3", + "end": 1399710, + "genome_id": 0, + "start": 1399543, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "ACATCAGAACATAGTAAAGATTTAAATAATAATGATTCAAAAAATGAATCTAGTGATATTATTTCAGTAAATAATAAATCAAATAAAGTACAAAATCATTTTGAATCATTATCAGATTTAGAATTACTTGAAAATTCCTCACAAGATAATTTAGACAAAGATACA" + }, + { + "seq": "ACATCAGAACATAGTAAAGATTTAAATAATAATGATTCAAAAAATGAATCTAGTGATATTATTTCAGAAAATAATAAATCAAATAAAGTACAAAATCATTTTGAATCATTATCAGATTTAGAATTACTTGAAAATTCCTCACAAGATAATTTAGACAAAGATACA" + }, + { + "seq": "ACATCAGAACATAGTAAAGATTTAAATAATAATGGTTCAAAAAATGAATCTAGTGATATTATTTCAGAAAATAATAAATCAAATAAAGTACAAAATCATTTTGAATCATTATCAGATTTAGAATTACTTGAAAATTCCTCACAAGATAATTTAGACAAAGATACA" + }, + { + "seq": "ACATCAGAACATAGTAAAGATTTAAATAATAATGATTCAAAAAATGAATCTAGTGATATTATTTCAGAAAATAATAAATCAAATAAAGTAGAAAATCATTTTGAATCATTATCAGATTTAGAATTACTTGAAAATTCCTCACAAGATAATTTAGACAAAGATACA" + } + ], + "target_id": 71 + }, + { + "mhap_location": { + "chrom": "Pf3D7_10_v3", + "end": 1436681, + "genome_id": 0, + "start": 1436478, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "GAGAAGAAACACGTTTTATCTCATAATTCATATGAGAAAACTAAAAATAATGAAAATAATAAATTTTTCGATAAGGATAAAGAGTTAACGATGTCTAATGTAAAAAATGTGTCACAAACAAATTTCAAAAGTCTTTTAAGAAATCTTGGTGTTTCAGAGAATATATTCCTTAAAGAAAATAAATTAAATAAGGAAGGGAAA" + }, + { + "seq": "GAGGAGAAACACGTTTTATCTCATAATTCATATGAGAAAACTAAAAATAATGAAAATAATAAATTTTTCGATAAGGATAAAGAGTTATCGATGTCTAATGTAAAAAATGTGTCACAAACAAATTTCAAAAGTCTTTTAAGAAATCTTGGTGTTTCAGAGAATATATTCCTTAAAGAAAATAAATTAAATAAGGAAGGGAAA" + } + ], + "target_id": 23 + }, + { + "mhap_location": { + "chrom": "Pf3D7_11_v3", + "end": 119692, + "genome_id": 0, + "start": 119485, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "TTCATCCAAAAGTAATTATGTTTTTCTTGTTGATATTTTGCTTTATACAAACGAGCAAGATACTTATTATACGATTCATGCTCTTTAATTTTCTTTTCAAAAGTTTTGGTTATAATGTGTTGAAGTGATTGTAAAGTATTTTTCTTTAATTTTCTCCATATTAATCTACATGCGATTATAAGAATTCTATATTCTTTGATATTCC" + }, + { + "seq": "TTCATCCAAAAGTAATTATGTTTTTCTTGTTGATATTTTGCTTTATACAAACGAGCAAGATACTTATTATACGATTCATGCTCTTTAATTTTCTTTTCAAAAGTTTTGGTTATAATGTGTTCAAGTGATTGTAAAGTATTTTTCTTTAATTTTCTCCATATTAATCTACATGCGATTATAAGAATTCTATATTCTTTGATATTCC" + }, + { + "seq": "TTCATCCAAGAGTAATTATGTTTTTCTTGTTGATATTTTGCTTTATACAAACGAGCAAGATACTTATTATACGATTCATGCTCTTTAATTTTCTTTTCAAAAGTTTTGGTTATAATGTGTTGAAGTGATTGTAAAGTATTTTTCTTTAATTTTCTCCATATTAATCTACATGCGATTATAAGAATTCTATATTCTTTGATATTCC" + } + ], + "target_id": 22 + }, + { + "mhap_location": { + "chrom": "Pf3D7_11_v3", + "end": 1010037, + "genome_id": 0, + "start": 1009855, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "AGTTCTATCTATTTGTTTAATTGGTGTCCATGAATTTTTAGAGAAACACCACATATCAGCTAATAAGGAATTATTAACATCTAATCCTCCATGAATATATAAAAAATCATTAAAACTGAAAGAAGCATGCTTATATCTTGCACGTGGACAAATTTTATTTCCAATAAGTTCCCATTTCTT" + }, + { + "seq": "AATTCTATCTATTTGTTTAATTGGTGTCCATGAATTTTTAGAGAAACACCACATATCAGCTAATAAGGAATTATTAACATCTAATCCTCCATGAATATATAAAAAATCATTAAAACTGAAAGAAGCATGCTTATATCTTGCACGTGGACAAATTTTATTTCCAATAAGTTCCCATTTCTT" + } + ], + "target_id": 20 + }, + { + "mhap_location": { + "chrom": "Pf3D7_11_v3", + "end": 1019084, + "genome_id": 0, + "start": 1018952, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "TAGTGACTGTACATTTTTCATCTAATGTTCTATAGGATAAAGAATCTGAAGGACAATGCATATCATTACAAAAATAGCATGCACCTTTAAAATATAAATAAGAATGTCTTAACACAACAAAGGAATCAAA" + } + ], + "target_id": 56 + }, + { + "mhap_location": { + "chrom": "Pf3D7_11_v3", + "end": 1376371, + "genome_id": 0, + "start": 1376184, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "TCTCATTCCTTTGAAAATATGAACTATTCAACTCATCAAGGTTTTCATATGTTATTTCATAACTGCCATCATCTGAATCCTCTTCATCACTACTACTTAAAGAATGCTCTTCTACAGTTATATCTTCATAATGATTATTTTTAGGAAAATATTCTTCAGATCTTTCTATAAATTCTGTTCCATTA" + }, + { + "seq": "TCTCATTCCTTTGAAAATATGAACTATTCAACTCATCAAGGTTTTCATATGTTATTTCATAAGTGCCATCATCTGAATCCTCTTCATCACTACTACTTAAAGAATGCTCTTCTACAGTTATATCTTCATAATGATTATTTTTAGGAAAATATTCTTCAGATCTTTCTATAAATTCTGTTCCATTA" + } + ], + "target_id": 60 + }, + { + "mhap_location": { + "chrom": "Pf3D7_11_v3", + "end": 1552639, + "genome_id": 0, + "start": 1552429, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "ATATCGACAATTATAAAGAAAAAATAGAAAATTTTAATGAAAGATATTATGAAGATGATTTAAGTTTCTTAAACTTTCCAGGAACCATAACAAGTTATGATAAAAACCATCAAAGAGATAAAAGAAAAAACTGTTTTGAAGAATATCTAGACAATAATAATTATTTTATTGATAGTAATCTAAAGGAAGTTATAGAAAATAATATATA" + } + ], + "target_id": 19 + }, + { + "mhap_location": { + "chrom": "Pf3D7_01_v3", + "end": 532843, + "genome_id": 0, + "start": 532689, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "CTTTCTTAATTCTATGAATGAAGAATATACGCATATTAATTTAAATAACTTTATACATAATGATAACAATGATAAAGACGAAAATTATACATTAGATCAGGTGGAAGAATATCCTATGACTAGTTATCAAAATAATATATACAAGGATTTTT" + }, + { + "seq": "CTTTCTTAATTCTATGAATGAAGAATATACGCATATTAATTTAAATAACTTTATACATAATAATAACCATGATAATGACGAAAATTATACATTAGATCAGGTGGAAGGATATCCTATGACTAGTTATCAAAATAATATATACAAGGATTTTT" + } + ], + "target_id": 40 + }, + { + "mhap_location": { + "chrom": "Pf3D7_11_v3", + "end": 1751054, + "genome_id": 0, + "start": 1750864, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "TATTAAAAACAACAAATAAATTACCAAGGTCATGGAAAAAACTCTTGTTAAATCTATCCATTAGATTTCAAACAATACCTATAGGTGGTTCTATCGAAATCATATCAAAGGATGAGAAAAATATTTCTGTGACACGATCCAGTGAATATAATGCAACAACATATGAGCATTACACATTTCCCAAATGG" + }, + { + "seq": "TATTAAAAACAACAAATAAATTACCAAGGTCATGGAAAAAACTCTTGTTAAATCTATCCATTAGATTTCAAACAATACCTATAGGTGGTTCTATCGAAATCATATCAAAGGATGAGAAAAATATTTCTATGACACGATCCAGTGAATATAATGCAACAACATATGAGCATTACACATTTCCCAAATGG" + }, + { + "seq": "TATTAAAAACAACAGATAAATTACCAAGGTCATGGAAAAAACTCTTGTTAAATCTATCCATTAGATTTCAAACAATACCTATAGGTGGTTCTATCGAAATCATATCAAAGGATGAGAAAAATATTTCTATGACACGATCCAGTGAATATAATGCAACAACATATGAGCATTACACATTTCCCAAATGG" + } + ], + "target_id": 21 + }, + { + "mhap_location": { + "chrom": "Pf3D7_11_v3", + "end": 1816424, + "genome_id": 0, + "start": 1816210, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "TTGACTTCTCCGGGTTGGTTACATTATCATTACAACCAATATTATTAAGGTTAATATTATTTTTATCATTATTATTGTTGTTTTCATTTGTGTGGTTATATAATAACAATGATGTGTCGTCTATTGGATCATTTTGCACAAGGTCAATATCATTAGAATTATGTTTCATATTATTTGTATACATTTTTTTGTAATTATCATTTTTTCTTACT" + }, + { + "seq": "TTGACTTCTCCGGGTTTGTTACATTATCATTACAACCAATATTATTAAGGTTAATACTATTTTTATCATTATTATTGTTGTTTTCATTTGTGTGGTTATATAATAACAATGATGTGTCGTCTATTGGATCATTTTGCACAAGGTCAATATCATTAGAATTATGTTTCATATTATTTGTATACATTTTTTTGTAATTATCATTTTTTCTTACT" + }, + { + "seq": "TTGACTTCTCCGGGTTTGTTACATTATCATTACAACCAATATTATTAAGGTTAATATTATTTTTATCATTATTATTGTTGTTTTCATTTGTGTGGTTATATAATAACAATGATGTGTCGTCTATTGGATCATTTTGCACAAGGTCAATATCATTAGAATTATGTTTCATATTATTTGTATACATTTTTTTGTAATTATCATTTTTTCTTACT" + }, + { + "seq": "TTGACTTCTCCGGGTTTGTTACATTATCATTACAACCAATATTATTAAGGTTAATATTATTTTTATCATTATTATTGTTGTTTTCATTTGTGTGGTTATATAATAACAATGATGTGTCGTCTATTGGATCATTTTGCACAAGGTCAATATCATTAGAATTATGTTTCCTATTATTTGTATACATTTTTTTGTAATTATCATTTTTTCTTACT" + } + ], + "target_id": 18 + }, + { + "mhap_location": { + "chrom": "Pf3D7_12_v3", + "end": 63279, + "genome_id": 0, + "start": 63165, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "ATAATTTCAGCTTTTGAATTACATATGTCTGTATTCAAAAATTTTATATCTCTACTCCATATATTTATCTTTACACCCAAAAACAAAGTAATGAAAAAAATAACCCTTTCAT" + }, + { + "seq": "ATAATTTCACCTTTTGAATTACATATGTCTGTATTCAAAAATTTTATATCTCTACTCCATATATTTATCTTTACACCCAAAAACAAAGCAATGAAAAAAATAACCCTTTCAT" + }, + { + "seq": "ATAATTTCACCTTTTGAATTACATATGTCTGTATTCAAAAATTTTATATCTCTACTCCATATATTTATCTTTACACCCAAAAACAAAGCAATGAAAAAAACAACCCTTTCAT" + }, + { + "seq": "ATAATTTCACCTTTTGAATTACATATGTCTGTATTCAAAAATTTTATATCTCTACTCCATATATTTATCTTTACACCCAAAAACAAAGTAATGAAAAAAATAACCCTTTCAT" + } + ], + "target_id": 69 + }, + { + "mhap_location": { + "chrom": "Pf3D7_12_v3", + "end": 660009, + "genome_id": 0, + "start": 659890, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "GGTCGACTTTTGGTGGTTTAACATTTTGAGCTACGAGATTTTCGACTGATGGCAATCCTACTTTGATTAATTCCTTTAACATAGATTTTGCGTGTCTTTTTACTTCTGATTTGATAT" + }, + { + "seq": "GGTCGACTTTTGGTGGTTTAACATTTTGAGCTACGAGTTTTTCGAATGATGGCAATCCTACTTTGATTAATTCCTTTAACATAAGTTTTGCGTGGTTTTTTACTTCTGATTTGATAT" + }, + { + "seq": "GGTCGACTTTTGGTGGTTTAACATTTTCAGCTATGAGTTTTTCGACTGATGGCAATCCTACTTTGATTAATTCCTTTAACATAAGTTTTGCGTGTTTTTTTACTTCTGATTTGATAT" + }, + { + "seq": "GGTCGACTTTTGGTGGTTTAACATTTTCAGCTACGAGTTTTTCGACTGATGGCAATCCTACTTTGATTAATTCCTTTAACATAAGTTTTGCGTGTCTTTTTACTTCTGATTTGATAT" + } + ], + "target_id": 16 + }, + { + "mhap_location": { + "chrom": "Pf3D7_12_v3", + "end": 684260, + "genome_id": 0, + "start": 684087, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "ATATCAAGATGGTAGTATTGTTTTAGAGGTTAGTAGTACGAGAGATAAACTTTATGGAGAAGTTGAGTGGGAAGGATATAAATTTGAACTTGTGGATACAGGAGGTTTAGTTTTTGAACAAGAAAAGTTTTCAAAAGAAATAAAGGATCAAATTCTTATGGCTCTAAAAGA" + }, + { + "seq": "ATATCAAGATGGTAGTATTGTTTTAGATGTTAGTAGTACGAGAGATAAACTTTATGGAGAAGTTGAGTGGGAAGGATATAAATTTGAACTTGTGGATACAGGAGGTTTAGTTTTTGAACAAGAAAAGTTTTCAAAAGAAATAAAGGATCAAATTCTTATGGCTCTAAAAGA" + }, + { + "seq": "ATATCAAGATGGTAGTATTGTTTTAGATGTTAGTAGTACGAGAGATAAACTTTATGGAGAAGTTGAGTGGGAAGGATATAAATTTGAACTTGTGGATACAGGAGGTTTAGTTTTTGAACAAGAAAAGTTTTCAAAAGAAATAAAGGATCAAATTTTTATGGCTCTAAAAGA" + } + ], + "target_id": 14 + }, + { + "mhap_location": { + "chrom": "Pf3D7_12_v3", + "end": 943427, + "genome_id": 0, + "start": 943257, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "ATCAACTATAATTAAAAATAGTGGAATTATTGAAAACTTTGGAGATATTGATTATATCTTTACGGATAAAACAGGAACACTAACAGAAAATGTTATGGTGCTTAAAGTTATACATATAGGTTTTGATGTTATACATGCAGAAAATGAAAAAAATTCCATACAAGGTAA" + }, + { + "seq": "ATCAACTATAATTAAAAATAGTGGAATTATTGAAAACTTTGGAGATATTGATTATATCTTTACGGATAAAACAGGAACATTAACAGAAAATGTTATGGTGCTTAAAGTTATACATATAGGTTTTGATGTTATACATGCAGAAAATGAAAAAAATTCCATACAAGGTAA" + } + ], + "target_id": 91 + }, + { + "mhap_location": { + "chrom": "Pf3D7_12_v3", + "end": 2050313, + "genome_id": 0, + "start": 2050129, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "TTTAAACTTTGAATCTGTTCAATTAATAACACTTCATCATTGTCTTCGCCTTTTATAATATCTCCATGATTATGTGCTCCTCTAATTAAGGTATCACTAACCTGTTGTTCATCTGTCGCATGAGAACTAGTAGATATATCTGGTTTATTTTTTTTCTTTCTTTTTGTTATTTCTAATTTTTT" + }, + { + "seq": "TTTAAACTTTGAATCTGTTCAATTAATAACACTTCATCATTGTCTTCTCCTTTTATAATATCTCCATGATTATGTGCTCCTCTAATTAAGGTATCACTAACCTGTTGTTCATCTGTCGCATGAGAACTAGTAGATATATCTGGTTTATTTTTTTTCTTTCTTTTTGTTATTTCTAATTTTTT" + }, + { + "seq": "TTTAAACTTTGAATCTGTTCAATTAATAACACTTCATCATTGTCTTCTCCTTTTATAATATCCCCATGATTATGTGCTCCTCTAATTAAGGTATCACTAACCTGTTGTTCATCTGTCGCATGAGAACTAGTAGATATATCTGGTTTATTTTTTTTCTTTCTTTTTGTTATTTCTAATTTTTT" + } + ], + "target_id": 36 + }, + { + "mhap_location": { + "chrom": "Pf3D7_13_v3", + "end": 103878, + "genome_id": 0, + "start": 103658, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "ACTGATGTTAATGAAGGCCAAAATGGAAAACGTTTAACACAAGAAAAAACCCTAAAACAAATTCCTTCGACATCACCAAATAATTTAGAACAAAAATTACAACAAACACATATTTCTTCTTCCCAACAAAAACATTTAATAAAAACTACTCCTACTTCAGATTCAACTACAACTTCATCAAGCTCTTCTGTTCCTCTTACAAAACAATCCCTTCATTC" + }, + { + "seq": "ACTGATGTTAATGAAGGCCAAAATGGAAAAAGTTTAACACAAGAAAAAACCCTAAAACAAATTCCTTCGACATCACCAAATAATTTAGAACAAAAATTACAACAAACACATATTTCTTCTTCCCAACAAAAACATTTAATAAAAACTACTCCTACTTCAGATTCAACTACAACTTCATCAAGCTCTTCTGTTCCTCTTACAAAACAATCCCTTCATTC" + } + ], + "target_id": 13 + }, + { + "mhap_location": { + "chrom": "Pf3D7_13_v3", + "end": 156721, + "genome_id": 0, + "start": 156565, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "ATAGAGTTATTATGTTCGAATTAATGACCAGATTGTTTCGATTTTATACAAAACCAATAGACCTTATTATTACTATGAATACACACAGATATGACACACCTATATTGTTAAAACATTCAAACAGCTTACAACTTATCTTATCAAATCAACAAAA" + }, + { + "seq": "ATAGAGTTATTATGTTCGAATTAATGACCAGATTATTTCGATTTTATACAAAACCAATAGACCTTATTATTACTATGAATACACACAGATATGACACACCTATATTGTTAAAACATTCAAACAGCTTACAACTTATCTTATCAAATCAACAAAA" + } + ], + "target_id": 17 + }, + { + "mhap_location": { + "chrom": "Pf3D7_01_v3", + "end": 534367, + "genome_id": 0, + "start": 534214, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "GATAAAAAAAGAAAATGTACTAATCTACCTTGTGATTGTATCTTATGTAAAAAAAAGCACAATGTTTGTTATTGTAATATGTGTAAAAAGAAAGAGAAAAATATGAGAGAAGATTTATCGGTTGTAAAATATAATGAATATCCGATTAGTG" + }, + { + "seq": "GATAAAAAAAGAAAATGTAACAATCTACCTTGTGATTGTATCTTATGTAAAAAAAAGCACAATGTTTGTTATTGTAATATGTGTAAAAAGAAAGAAAAAAATATGAGAGAAGATTTATCGGTTGTAAAATATAATGAATATCCTATTAGTG" + }, + { + "seq": "GATAAAAAAAGAAAATGTAATAATCTACTTTGTGATTGTATCTTATGTAAAAAAAAGCACAATGTTTGTTATTGTAATATGTGTAAAAAGAAAGAGAAAAATATGAGAGAAGATTTATCGGTTGTAAAATATAATGAATATCCGATTAGTG" + }, + { + "seq": "GATAAAAAAAGAAAATGTAACAATCTACCTTGTGATTGTATCTTATGTAAAAAAAAGCACAATGTTTGTTATTGTAATATGTGTAAAAAGAAAGAAAAAAATATGAGAGAAGATTTATCGGTTGTAAAATATAATGAATATCCGATTAGTG" + }, + { + "seq": "GATAAAAAAAGAAAATGTAATAATCTACCTTGTGATTGTATCTTATGTAAAAAAAAGCACAATGTTTGTTATTGTAATATGTGTAAAAAGAAAGAAAAAAATATGAGAGAAGATTTATCGGTTGTAAAATATAATGAATATCCGATTAGTG" + } + ], + "target_id": 84 + }, + { + "mhap_location": { + "chrom": "Pf3D7_13_v3", + "end": 1150492, + "genome_id": 0, + "start": 1150302, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "TAAAAAAAGCAAACAAAAAGAAAAGAGAATGGAAGATTTAAGTATTGAGGAAAATTTGAAAGAGAAATTAATAAACCTAAATATTCAGAAACAGTATAGTGGTTTCCATATGAAAGAAATGGAGGAACAAAATATTCCTGAATTAAATATTCCACAACTTTCAGCTATTCATAATAGAGAAGATATGA" + }, + { + "seq": "TAAAAAAAGCAAACAAAAAGAAAAGAGAATGGAAGATTTAAGTATTGAGGAAAATTTGAAAGAGAAATTAATAAACCTAAATATTCAGAAACAGTATAGTGGTTTCCATATGAAAGAAATGGAGGAACAAAATATTCCTGAATTAAATATTCCACAACTTTCAGCTACTCATAATAGAGAAGATATGA" + } + ], + "target_id": 9 + }, + { + "mhap_location": { + "chrom": "Pf3D7_13_v3", + "end": 1419669, + "genome_id": 0, + "start": 1419542, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "TGGTTTTTGTACTTCTTTTCCTTGTGTTGATATCTCTTGTTCATTTTTAGATTGAGTATCTGTTTCACTTTGTGCCTTTACCTTTGATAATACGTTTTTACCGAATAATCCTAAATTTTGGAATA" + }, + { + "seq": "TGGTTTTTGTACTTTTTGTCCTTGTGTTGATATCTCTTGTTCATTTTTAGATTGAGTATCTGTTTCACTTTGTGCCTTTACCTTTGATAATACGTTTTTACCGAATAATCCTAAATTTTGGAATA" + } + ], + "target_id": 8 + }, + { + "mhap_location": { + "chrom": "Pf3D7_13_v3", + "end": 1725569, + "genome_id": 0, + "start": 1725364, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "CCAATACAATAAATTCTACCATTTGACGTAACACCACAATTATTTCTTCTAGGTATATTTAAATTACTTGAAACATACCATACATCTCTTAAACGATCATACACCTCAGTTTCAAATAAAGCCTTATAATCATAGTTATTACCACCAAAAACGTATAAGAAATTATTCAATACAGCACTTCCAAAATAAGCTTTTTTGGTAGA" + } + ], + "target_id": 10 + }, + { + "mhap_location": { + "chrom": "Pf3D7_13_v3", + "end": 1876533, + "genome_id": 0, + "start": 1876351, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "TATATTTTGGTTCAGACAAATGTACGTTACATGAAATATGTGCACTATCATCAACTAAAGAAATATCTAAACTATCTGTAAAAGTATGTTTAGAACTAACATTTGAAGAGAAGTTACATCCGTGTATGACTTTTTTTTCATATTTTGGTTTTAAAACTATTTTATAATTATTATTTTTAA" + }, + { + "seq": "TATATTTTGGTTCAGACAAATGTACGTTACATGAAATATGTGCATTATCATCAACTAAAGAAATATCTAAACTATCTGTAAAAGTATGTTTAGAACTATCATTTGAAGAGAAGTTACATCCGTGTATGACTTTTTTTTCATATTTTGGTTTTAAAACTATTTTATAATTATTATTTTTAA" + } + ], + "target_id": 11 + }, + { + "mhap_location": { + "chrom": "Pf3D7_13_v3", + "end": 2115141, + "genome_id": 0, + "start": 2114974, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "TCATTAAGTAAAAAATTTACGGTATCGACATTAACAGTGTAATAATTTCTTCCTAAATTTAAATGTTCTATATAATTCAAATTTAATACGGTATTTAACCTTTCTTCAAGTATTATCATTGCATTAATTTGAAACATAAGTGAAAAATTATTAGCACTTCTAAAA" + }, + { + "seq": "TCATTAAGTAAAAAATTTACGGTATCGACATTAACAGTGTAATAATTTCTTCCTAAATTTAAATGTTCTAAATAATTCAAATTTAATACGGTATTTAACCTTTCTTCAAGTATTATCATTGCATTAATTTGAAACATAAGTAAAAAATTATTAGCACTTCTAAAA" + }, + { + "seq": "TCATTAAGTAAAAAATTTACGGTATCGACATTAACAGTGTAATAATGTCTTCCTAAATTTAAATGTTCTAAATAATTCAAATTTAATACGGTATTTAACCTTTCTTCAAGTATTATCATTGCATTAATTTGAAACATAAGTAAAAAATTATTAGCACTTCTAAAA" + } + ], + "target_id": 68 + }, + { + "mhap_location": { + "chrom": "Pf3D7_13_v3", + "end": 2124846, + "genome_id": 0, + "start": 2124633, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "AACATTTTTTTAACATCTTTACCTTTTTGACTTGGTTCTTCATCATAATTCTGTTGTTCTGCAGAATCAGCATTTACTTCAGTTTCTTCTTTATTTTGAAAAGTGTTTGATTCTACATGAGAATTGGAAGATGAACGTCTATGTTTTACTTCTGTATAACTAGTACGTTCTCCAGTATGATGAGCCTTAAGGTTTACATCTTCAGTTTCTT" + } + ], + "target_id": 7 + }, + { + "mhap_location": { + "chrom": "Pf3D7_13_v3", + "end": 2479245, + "genome_id": 0, + "start": 2479085, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "CTATGCTTTATCAAAACAAAGTAATGAAAATGTAATACATTATTCTTGTCGATCTATATGTGCTTTTACAAAAAACCCTAAGGGTTTAGAAGCGGTAAAGGATATCAAGGACTTTGCGAATATTATAAGTAAATCTGTTGGTGATTTGAGTAAAGAGA" + }, + { + "seq": "CCATGCTTTATCAAAACAAAGTAATGAAAATGTAATACATTATTCTTGTCGATCTATATGTGCTTTTACAAAAAACCCTAAGGGTTTAGAAGCGGTAAAGGATATCAAGGACTTTGCGAATATTATAAGTAAATCTGTTGGTGATTTGAGTAAAGAGA" + } + ], + "target_id": 6 + }, + { + "mhap_location": { + "chrom": "Pf3D7_13_v3", + "end": 2481287, + "genome_id": 0, + "start": 2481105, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "GAACTTACTTTAGAAGCCATGAATTCGGCCGATGATCCATTGGAAGCATTTAAAAATACTTTATTAATATTTGATTTTAATTTATCTGAATTTGATAAGGATCCATATATAAATGGTGTGCATGATTTAGCATCTAATATAAAGGATTGTTTAAGAAAAGGAGGTCAGAGTAAAATATAT" + }, + { + "seq": "GAACTTACTTTAGAAGCCATGAATTCGGCCGATGATCCATTGGAAGCATTTAAAAATACTTTATTAATATTTGATTTTAATTTATCTGAATTTGATAAGGATCCATATGTAAATGGTGTGCATGATTTAGCATCTAATATAAAGGATTGTTTAAGAAAAGGAGGTCACAGTAAAATATAT" + } + ], + "target_id": 47 + }, + { + "mhap_location": { + "chrom": "Pf3D7_13_v3", + "end": 2669306, + "genome_id": 0, + "start": 2669134, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "AAAAAAATACATTTAAATCTATAATATTTGTAATAAATGATAAGAATATTAGTAATAATAGGGTACTACTATTTGTAAATACTTTTCTACATAATTTATCAATAGTAGGAAATATGATATTCTTTTTGTTTGGCTTTATTTTATCTGGGATTTTCCAATCATAAAGTTCG" + } + ], + "target_id": 5 + }, + { + "mhap_location": { + "chrom": "Pf3D7_14_v3", + "end": 40136, + "genome_id": 0, + "start": 39952, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "CATAGAAATATGTGCGAAAATTGGGAAAAAAATAAATAACAGGAATTGTTATATAAATTGAATCAAGAATGGCACAAAGAAAATAATACTGGTGACTTTCACACTAGTGATATCACACACAATAGTGGTATTACATACACTAGTGGTAACATACCTAGTGAAAGTAATAGTAGTTATATCCA" + }, + { + "seq": "CATAGAAATGTGTGCGAAAATTGGGAAAAAAATAAATAACAGGAATTGTTAGATAAATTGAATGAAGAATGGCACAAAGAAAATAATACTGGTGACTTTCACACTAGTGATATCACACACAATAGTGGTATTACATACACTAGTGGTAACATACCTAGTGAAAGTAATAGTAGTTATATCTA" + }, + { + "seq": "CATAGAAATATGTGCGAAAATTGGGAAAAAAATAAATAACAGGAATTGTTATATAAATTGAATCAAGAATGGCACAAAGAAAATAATACTGGTGACTTTCACACTAGTGATATCACACACAATAGTGGTATTACATACAGTAGTGGTAACATACCTAGTGAAAGTAATAGTAGTTATATCCA" + } + ], + "target_id": 55 + }, + { + "mhap_location": { + "chrom": "Pf3D7_01_v3", + "end": 535109, + "genome_id": 0, + "start": 534940, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "ATATTCCGTCAGATATTCAAAATGAATGTATTTGTTCAAAAATAAATGAAGATAGAAATAATGATATGATAAACATATCTGAAATATTTTATCGTTTCATTAAATTTATAACAATGATTGAAATATATTTGTGTGTAATAGAGGAAATTAAAAGGGAAGAATGGGAA" + }, + { + "seq": "ATATTCCGTCAGATATTCAAAATGAATGTATTTGTTCAAAAATAAATGAAGATAGAAATAATGATATGATAAACATATCTGAAATATATTATCGTTTCATTAAATTTATAACAATGATTGAAATATATTTGTGTGTAATAGAGGAAATTAAAAGGGAAGAATGGGAA" + }, + { + "seq": "ATACTCCGTCAGATATTCAAAATGAATGTATTTGTTCAAAAATAAATGAAGATAGAAATAATGATATGATAAACATATCTGAAATATATTATCGTTTCATTAAATTTATAACAATGATTGAAATATATTTGTGTGTAATAGAGGAAATTAAAAGGGAAGAATGGGAA" + } + ], + "target_id": 76 + }, + { + "mhap_location": { + "chrom": "Pf3D7_14_v3", + "end": 120350, + "genome_id": 0, + "start": 120214, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "TTACAATGTTCTTCGCATTCGAAATTTTTTTCAGGATTACTTGAAAAGCCTTCTGGACAATTACAATATTCATATCCATGAGCATTCTTACAAACACCTTTTCCACAATTTAAAAAACATTTTTCTTCATTTAA" + }, + { + "seq": "TTACAATGTTCTTCGCATTCGAAATTTTTTTCAGGATTACTTGAAAAGCCTTCTGGACAATTACAATATTCATATCCATGAACATTCTTACAAACACCTTTTCCACAATTTAAAAAACATTTTTCTTCATTTAA" + }, + { + "seq": "TTACAATGTTCTTCGCATTCGAAATTTTTTTCAGGATTACTTGAAAAGCCTTCTGGACAATTACAATATTCATATCCATGAGCATTGTTACAAACACCTTTTCCACAATTTAAAAAACATTTTTCTTCATTTAA" + }, + { + "seq": "TTACAATGTTCTTCGCATTCGAAATTTTTTTCAGGATTACTTGAAAAGCCTTGTGGACAATTACAATATTCATATCCATGAGCATTCTTACAAACACCTTTTCCACAATTTAAAAAACATTTTTCTTCATTTAA" + } + ], + "target_id": 83 + }, + { + "mhap_location": { + "chrom": "Pf3D7_14_v3", + "end": 150293, + "genome_id": 0, + "start": 150104, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "TAATAATAGTAATATAAAGAATTATTCAGCTGTAGATATATTCTCACCCAAAAAAACTGGAAAGGAATGTATTAAATGTCTCCCAGATAATTTTTGTGAATGCGAATGTAGTTGTAAAAATAAAACAGGTTTTTCAATGAAATATAGACATGCCAGTAAGGGATCTAAAAGATATAGTAAAAAAATG" + }, + { + "seq": "TAATAATAGTAATATAAAGAATTATTCAGCTGTAGATATATTCTCACCCAAAAAAACTGGAAAGGAATGTATTAAATGTCTCCCAGATAATTTTTGTGAATGCGAATGTAGTTGTAAAAATAAAACAGGTTTTTCAATGAAATATAGACATGCCAGTAAGGGATCTAAAAGATATCGTAAAAAAATG" + } + ], + "target_id": 97 + }, + { + "mhap_location": { + "chrom": "Pf3D7_14_v3", + "end": 279785, + "genome_id": 0, + "start": 279662, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "AGTTATAGTGATTCATATAAGGTAAATTGTATTAATTTCTCTGAAGGATTTTGTTGCTGTCATCCAATAAATAATTTAGCACTATTATATGGAGAGTATCAACAAAATCAAGAATCAAAAA" + }, + { + "seq": "AGTAATAGTGATTCATATAAGGTAAATTGTATTAATTTCTCTGAAGGATTTTGTTGCTGTCATCCAATAAATAATTTAGCACTATTATATGGAGAGTATCAACAAAATCAAGAATCAAAAA" + } + ], + "target_id": 88 + }, + { + "mhap_location": { + "chrom": "Pf3D7_14_v3", + "end": 407570, + "genome_id": 0, + "start": 407378, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "CTCCTTCCTTTTCATTCTTTACTTTATTTCTATTAATACACAACTCTCCTTGAGTTAAGAGATTTACGATATTATCAATATTGTTTTCTTTCATATACTTCAACTTTTTACTATTCATTTTTAAAAGATAATTAACCAAGTTACTCATGTTTGTATTAGATGGTATGTTCCCAATTTTTTCGTCTTTTCT" + }, + { + "seq": "CTACTACCTTTTCATTCTTTACTTTATTTCTATTAATACACAACTCTCCTTGAGTTAAGAGATTTACGATATTATCAATATTGTTTTCTTTCATATACTTCAACTTTTTACTATTCATTTTTAAAAGATAATTAACCAAGTTACTCATGTTTGTATTAGATGGTATGTTCCCAATTTTTTCGTCTTTTCT" + } + ], + "target_id": 66 + }, + { + "mhap_location": { + "chrom": "Pf3D7_14_v3", + "end": 564376, + "genome_id": 0, + "start": 564207, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "TATTAAAACTTTTTTTTCTTTCTGTAAAGTTTGTACATTATGTTTTGATGAGTTTTTATTATCTTCATAAAACTTTATATATTTATAAAAATTATTTTGTATAAAATCATTTAATAAAGGTAACATAATTTTTTTAGCTTGATTCAATTCACTACATGAATGTATAT" + }, + { + "seq": "TATTAAAACTTTTTTTTCTTTCTGTAAAGTTTGTACATTATGTTTTGATGAGTTTTGATTATCTTCATAAAACTTTATATATTTATAAAAATTATTTTGTATAAAATCATTTAATAAAGGTAACATAATTTTTTTAGCTTGATTCAATTCACTACATGAATGTATAT" + } + ], + "target_id": 2 + }, + { + "mhap_location": { + "chrom": "Pf3D7_14_v3", + "end": 1038485, + "genome_id": 0, + "start": 1038368, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "ATACAACTAATAAAGCTCTACGATAAATTTCTTTTTTATTTGATTTAGAAAAAGGAGAAAACCATTGAAACTTTTTGGCTAGATATTTATGGTCTTTATCAAAAATATATTCTGA" + }, + { + "seq": "ATACAACTAATAAAGCTCTACGATAAATTTCTTTTTTATTTGATTTAGAAAAAGGAGAAAACCATTGAAACTTTTTGGCTAGATATTTATGGTCTTTATCAAAAATATAATCTGA" + } + ], + "target_id": 1 + }, + { + "mhap_location": { + "chrom": "Pf3D7_14_v3", + "end": 1956285, + "genome_id": 0, + "start": 1956128, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "TATATATAAAGTTAAACCTATAAATAATACACTACCTAATAAACTATTCTTATATTTAAAAATAAATATAATACATGTTATTAATCCTTCTATTGTTGCCGGAATAATATACATTAAAACAGAACTCATCAAATTATTAGCACTCTCGGTACCTC" + }, + { + "seq": "TATATAAAGTTAAACCTATAAATAATACACTACCTAATAAACTATTCTTATATTTAAAAATAAATATAATACATGTTATTAATCCTTCTATTGTTGCCGGAATAATATACATTAAAACAGAACTCATCAAATTATTAGCACTCTCGGTACCTC" + }, + { + "seq": "TATATATAAAGTTAAACCTATAAATAATACACTACCTAATAAACTATTCTTATATTTAAAAATAAATATAACACATGTTATTAATCCTTCTATTGTTGCCGGAATAATATACATTAAAACAGAACTCATCAAATTATTAGCACTCTCGGTACCTC" + } + ], + "target_id": 0 + }, + { + "mhap_location": { + "chrom": "Pf3D7_14_v3", + "end": 1992425, + "genome_id": 0, + "start": 1992288, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "TAATCACCAGTACCATTTTTTTCTGATAAATTAATATTTTTTTGTATAACATCATATTTATCCCTTTTCGTGGTAAGTGCAGTATCCTGTTTTATTATTATATTATCGAATTCATCATGGTGTATATTTCTTTCT" + }, + { + "seq": "TAAACACCAGTACCATTTTTTTCTGATAAATTAATATTTTTTTGTATAACATCATATTTATCCCTTTTCGTGGTAAGTGCAGTATCCTGTTTTATTATTATATTATCGAATTCATCATGGTGTATATTTCTTTCA" + }, + { + "seq": "TAAACACCAGTACCATTTTTTTCTGATAAATTAATATTTTTTTGTATAACATCATATTTATCCCTTTTCGTGGTAAGTGCAGTATCCTGTTTTATTATTATATTATCGAATTCATCATGGTGTATATTTCTTTCT" + } + ], + "target_id": 50 + }, + { + "mhap_location": { + "chrom": "Pf3D7_14_v3", + "end": 2525088, + "genome_id": 0, + "start": 2524961, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "AATGAGGTATAATCATTCATTTCGTTGGGTCGATTTGATCTATTTTTAAGGTCCATATATTGAGATGAATCATTATGCATTTTATAATCATGAGGGATATTAGGTGCATGGTATTTAGGGTCTTT" + }, + { + "seq": "AATGAGGTATAATCATCCATTTCGTTGGGTCGATTTGATCTATTTTTAAGGTCCATATATTGAGATGAATCATTATGCATTTTATAATCATGAGGGATATTAGGTGCATGGTATTTAGGGTCTTT" + }, + { + "seq": "AAAGAGGTATAATCATCCATTTTGTTGGGTCGATTTGATCTATTTTTAAGGTCCATATATTGAGATGAATCATTATGCATTTTATAATCATGAGGGATATTAGGTGCATGGTATTTAGGGTCTTT" + } + ], + "target_id": 12 + }, + { + "mhap_location": { + "chrom": "Pf3D7_14_v3", + "end": 3124841, + "genome_id": 0, + "start": 3124641, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "ATGGAAAAATGGAATATGAAGTATTAAGTGATGATAATATAGTGTATGAAAATATACAACATGATTTATTAAAAACAATAGAAGATGGTGAAGAAATGTTAAAAGGAACTGAAAGGAAGGATAATATAGATATACTGAGGACTCCTGGAAGGGGAGAATATAATATGTGGTCTACTTCTGGACTAGGGTTCTATGAAT" + }, + { + "seq": "ATGGAAAAATGGAATATGAAGTATTAAGTGATGATAAAATAGTGTATGAAAATATACAACATGATTTATTAAAAACAATAGAAGATGATGACGAAATGTTAAAAGGAACTGAAAGGAAGGATAATATAGATATACTGAGGACTCCTGGAAGGGGAGAATATAATATGTGGTCTACTTCTGGACTAGGGTTCTATGAAT" + }, + { + "seq": "ATGGAAAAATGGAATATGAAGTATTAAGTGATGATAAAATAGTGTATGAAAATATACAACATGATTTATTAAAAACAATAGAAGATGATGAAGAAATGTTAAAAGGAACTGAAAGGAAGGATAATATAGATATACTGAGGACTCCTGGAAGGGGAGAATATAATATGTGGTCTACTTCTGGACTAGGGTTCTATGAAT" + }, + { + "seq": "ATGGAAAAATGGAATATGAAGTATTAAGTGATGATAAAATAGTGTATGAAAATATACAACATGATTTATTAAAAACAATAGAAGATGGTGAAGAAATGTTAAAAGGAACTGAAAGGAAGGATAATATAGATATACTGAGGACTCCTGGAAGGGGAGAATATGATATGTGGTCTACTTCTGGACTAGGGTTCTATGAAT" + }, + { + "seq": "ATGGAAAAATGGAATATGAAGTATTAAGTGATGATAAAATAGTGTATGAAAATATACAACATGATTTATTAAAAACAATAGAAGATGATGAAGAAATGTTAAAAGGAACTGAAAGGAAGGATAATATAGATATACTGAGGACTCCTGGAAGGGGAGAATATGATATGTGGTCTACTTCTGGACTAGGGTTCTATGAAT" + } + ], + "target_id": 31 + }, + { + "mhap_location": { + "chrom": "Pf3D7_12_v3", + "end": 1237602, + "genome_id": 0, + "start": 1237430, + "strand": "+" + }, + "microhaplotypes": [ + { + "seq": "GTATGAACACAAAACCGAAAGAGAGTTTAAAAAAAGATCCGATTTTAATGAAGGAAGAAATAACATAATAAATGTGTCAAATGTAAAGAAAACATGTAATATAGTTAAAAATGATTTAAAGGAATCTAACGAGATAAAAACTAATATAAACACAAGTTCTTATAATTTAT" + } + ], + "target_id": 53 + } + ] + }, + "detected_microhaplotypes": [ + { + "bioinformatics_run_id": 0, + "library_samples": [ + { + "library_sample_id": 1, + "target_results": [ + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 2227 + }, + { + "mhap_id": 2, + "reads": 51 + } + ], + "mhaps_target_id": 98 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 19391 + } + ], + "mhaps_target_id": 97 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 16586 + } + ], + "mhaps_target_id": 96 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 836 + }, + { + "mhap_id": 0, + "reads": 33 + } + ], + "mhaps_target_id": 95 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 6967 + } + ], + "mhaps_target_id": 94 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 1010 + } + ], + "mhaps_target_id": 93 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 300 + } + ], + "mhaps_target_id": 86 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 4256 + } + ], + "mhaps_target_id": 84 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 958 + } + ], + "mhaps_target_id": 83 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 31313 + } + ], + "mhaps_target_id": 79 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 2554 + } + ], + "mhaps_target_id": 78 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 1379 + } + ], + "mhaps_target_id": 81 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 1089 + } + ], + "mhaps_target_id": 75 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 2310 + } + ], + "mhaps_target_id": 72 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 44681 + } + ], + "mhaps_target_id": 71 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 365 + }, + { + "mhap_id": 2, + "reads": 19 + } + ], + "mhaps_target_id": 69 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 282 + } + ], + "mhaps_target_id": 67 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 3831 + }, + { + "mhap_id": 0, + "reads": 64 + } + ], + "mhaps_target_id": 63 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 507 + } + ], + "mhaps_target_id": 56 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 2790 + }, + { + "mhap_id": 0, + "reads": 67 + } + ], + "mhaps_target_id": 10 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 1186 + }, + { + "mhap_id": 1, + "reads": 20 + } + ], + "mhaps_target_id": 55 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 5344 + } + ], + "mhaps_target_id": 41 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 10595 + } + ], + "mhaps_target_id": 54 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 1420 + }, + { + "mhap_id": 0, + "reads": 30 + } + ], + "mhaps_target_id": 50 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 11091 + } + ], + "mhaps_target_id": 48 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 3576 + } + ], + "mhaps_target_id": 59 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 377 + }, + { + "mhap_id": 1, + "reads": 15 + } + ], + "mhaps_target_id": 7 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 710 + } + ], + "mhaps_target_id": 45 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 259 + }, + { + "mhap_id": 1, + "reads": 15 + } + ], + "mhaps_target_id": 40 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 1009 + } + ], + "mhaps_target_id": 43 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 3485 + }, + { + "mhap_id": 2, + "reads": 31 + } + ], + "mhaps_target_id": 74 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 16766 + }, + { + "mhap_id": 0, + "reads": 93 + } + ], + "mhaps_target_id": 38 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 13601 + } + ], + "mhaps_target_id": 33 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 33117 + } + ], + "mhaps_target_id": 37 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 1980 + }, + { + "mhap_id": 0, + "reads": 15 + } + ], + "mhaps_target_id": 14 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 957 + }, + { + "mhap_id": 0, + "reads": 25 + } + ], + "mhaps_target_id": 32 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 6197 + } + ], + "mhaps_target_id": 39 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 19559 + } + ], + "mhaps_target_id": 29 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 1167 + } + ], + "mhaps_target_id": 85 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 5895 + } + ], + "mhaps_target_id": 11 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 733 + } + ], + "mhaps_target_id": 28 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 860 + } + ], + "mhaps_target_id": 26 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 4213 + } + ], + "mhaps_target_id": 27 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 560 + }, + { + "mhap_id": 0, + "reads": 19 + } + ], + "mhaps_target_id": 58 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 361 + }, + { + "mhap_id": 2, + "reads": 17 + } + ], + "mhaps_target_id": 21 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 23438 + } + ], + "mhaps_target_id": 31 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 511 + }, + { + "mhap_id": 0, + "reads": 16 + } + ], + "mhaps_target_id": 92 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 2230 + }, + { + "mhap_id": 1, + "reads": 17 + } + ], + "mhaps_target_id": 24 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 419 + } + ], + "mhaps_target_id": 82 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 14122 + } + ], + "mhaps_target_id": 70 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 25203 + } + ], + "mhaps_target_id": 57 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 516 + } + ], + "mhaps_target_id": 19 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 2249 + }, + { + "mhap_id": 0, + "reads": 48 + }, + { + "mhap_id": 2, + "reads": 20 + } + ], + "mhaps_target_id": 88 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 371 + } + ], + "mhaps_target_id": 4 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 515 + }, + { + "mhap_id": 0, + "reads": 22 + } + ], + "mhaps_target_id": 0 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 7336 + } + ], + "mhaps_target_id": 3 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 486 + }, + { + "mhap_id": 0, + "reads": 20 + } + ], + "mhaps_target_id": 87 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 1564 + }, + { + "mhap_id": 1, + "reads": 15 + } + ], + "mhaps_target_id": 68 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 17721 + } + ], + "mhaps_target_id": 64 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 784 + } + ], + "mhaps_target_id": 25 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 283 + } + ], + "mhaps_target_id": 36 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 7629 + } + ], + "mhaps_target_id": 8 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 1964 + }, + { + "mhap_id": 0, + "reads": 50 + } + ], + "mhaps_target_id": 16 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 1213 + } + ], + "mhaps_target_id": 80 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 11070 + }, + { + "mhap_id": 0, + "reads": 106 + } + ], + "mhaps_target_id": 15 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 2500 + }, + { + "mhap_id": 2, + "reads": 39 + } + ], + "mhaps_target_id": 60 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 24537 + } + ], + "mhaps_target_id": 30 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 1868 + }, + { + "mhap_id": 2, + "reads": 18 + }, + { + "mhap_id": 1, + "reads": 15 + } + ], + "mhaps_target_id": 13 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 22789 + } + ], + "mhaps_target_id": 89 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 3602 + }, + { + "mhap_id": 0, + "reads": 20 + } + ], + "mhaps_target_id": 77 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 2155 + }, + { + "mhap_id": 0, + "reads": 16 + }, + { + "mhap_id": 3, + "reads": 11 + } + ], + "mhaps_target_id": 42 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 16298 + } + ], + "mhaps_target_id": 91 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 2079 + }, + { + "mhap_id": 0, + "reads": 38 + } + ], + "mhaps_target_id": 65 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 4739 + } + ], + "mhaps_target_id": 22 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 775 + } + ], + "mhaps_target_id": 73 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 618 + } + ], + "mhaps_target_id": 20 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 20051 + } + ], + "mhaps_target_id": 46 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 1533 + }, + { + "mhap_id": 0, + "reads": 12 + } + ], + "mhaps_target_id": 9 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 34752 + } + ], + "mhaps_target_id": 5 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 6522 + } + ], + "mhaps_target_id": 34 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 26863 + } + ], + "mhaps_target_id": 23 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 15285 + } + ], + "mhaps_target_id": 47 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 1324 + } + ], + "mhaps_target_id": 90 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 1590 + } + ], + "mhaps_target_id": 1 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 46824 + } + ], + "mhaps_target_id": 2 + } + ] + }, + { + "library_sample_id": 0, + "target_results": [ + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 23292 + }, + { + "mhap_id": 0, + "reads": 8192 + } + ], + "mhaps_target_id": 54 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 17655 + }, + { + "mhap_id": 1, + "reads": 6421 + } + ], + "mhaps_target_id": 21 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 29456 + }, + { + "mhap_id": 1, + "reads": 6163 + } + ], + "mhaps_target_id": 96 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 33182 + }, + { + "mhap_id": 1, + "reads": 283 + } + ], + "mhaps_target_id": 95 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 32066 + } + ], + "mhaps_target_id": 94 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 38609 + } + ], + "mhaps_target_id": 93 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 48414 + } + ], + "mhaps_target_id": 46 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 30508 + }, + { + "mhap_id": 0, + "reads": 6187 + } + ], + "mhaps_target_id": 30 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 25447 + } + ], + "mhaps_target_id": 86 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 21610 + } + ], + "mhaps_target_id": 84 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 42576 + } + ], + "mhaps_target_id": 83 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 49627 + } + ], + "mhaps_target_id": 79 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 45595 + } + ], + "mhaps_target_id": 78 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 17913 + } + ], + "mhaps_target_id": 80 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 42252 + } + ], + "mhaps_target_id": 81 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 37051 + }, + { + "mhap_id": 1, + "reads": 12590 + } + ], + "mhaps_target_id": 97 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 49953 + } + ], + "mhaps_target_id": 75 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 33844 + } + ], + "mhaps_target_id": 72 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 19299 + }, + { + "mhap_id": 0, + "reads": 6398 + } + ], + "mhaps_target_id": 16 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 46915 + } + ], + "mhaps_target_id": 71 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 41720 + }, + { + "mhap_id": 1, + "reads": 8246 + } + ], + "mhaps_target_id": 76 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 28472 + }, + { + "mhap_id": 1, + "reads": 10008 + } + ], + "mhaps_target_id": 69 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 18960 + } + ], + "mhaps_target_id": 66 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 33183 + } + ], + "mhaps_target_id": 63 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 31147 + } + ], + "mhaps_target_id": 68 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 35366 + } + ], + "mhaps_target_id": 62 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 29611 + } + ], + "mhaps_target_id": 61 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 27075 + } + ], + "mhaps_target_id": 56 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 26668 + }, + { + "mhap_id": 1, + "reads": 9510 + } + ], + "mhaps_target_id": 51 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 28161 + } + ], + "mhaps_target_id": 50 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 48791 + } + ], + "mhaps_target_id": 31 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 11363 + }, + { + "mhap_id": 1, + "reads": 4463 + } + ], + "mhaps_target_id": 49 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 43173 + } + ], + "mhaps_target_id": 35 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 35561 + }, + { + "mhap_id": 0, + "reads": 14385 + } + ], + "mhaps_target_id": 48 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 45402 + } + ], + "mhaps_target_id": 98 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 21661 + }, + { + "mhap_id": 1, + "reads": 7975 + } + ], + "mhaps_target_id": 47 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 34294 + }, + { + "mhap_id": 0, + "reads": 12740 + } + ], + "mhaps_target_id": 27 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 49955 + } + ], + "mhaps_target_id": 59 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 16463 + } + ], + "mhaps_target_id": 40 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 37292 + }, + { + "mhap_id": 0, + "reads": 12510 + } + ], + "mhaps_target_id": 74 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 24539 + } + ], + "mhaps_target_id": 7 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 41530 + } + ], + "mhaps_target_id": 45 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 29642 + }, + { + "mhap_id": 1, + "reads": 12542 + } + ], + "mhaps_target_id": 33 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 20519 + }, + { + "mhap_id": 0, + "reads": 7538 + } + ], + "mhaps_target_id": 67 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 27730 + } + ], + "mhaps_target_id": 37 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 49338 + } + ], + "mhaps_target_id": 3 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 32341 + }, + { + "mhap_id": 1, + "reads": 12140 + } + ], + "mhaps_target_id": 14 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 49365 + } + ], + "mhaps_target_id": 32 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 39009 + } + ], + "mhaps_target_id": 39 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 27621 + }, + { + "mhap_id": 0, + "reads": 9786 + } + ], + "mhaps_target_id": 29 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 29934 + } + ], + "mhaps_target_id": 85 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 49971 + } + ], + "mhaps_target_id": 11 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 23924 + } + ], + "mhaps_target_id": 28 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 29713 + } + ], + "mhaps_target_id": 26 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 38625 + } + ], + "mhaps_target_id": 87 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 49969 + } + ], + "mhaps_target_id": 64 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 45069 + } + ], + "mhaps_target_id": 8 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 24050 + } + ], + "mhaps_target_id": 19 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 41999 + } + ], + "mhaps_target_id": 36 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 48335 + } + ], + "mhaps_target_id": 65 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 22586 + }, + { + "mhap_id": 0, + "reads": 18757 + } + ], + "mhaps_target_id": 25 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 37449 + }, + { + "mhap_id": 1, + "reads": 12495 + } + ], + "mhaps_target_id": 34 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 31005 + }, + { + "mhap_id": 1, + "reads": 6377 + } + ], + "mhaps_target_id": 57 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 44271 + } + ], + "mhaps_target_id": 23 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 24451 + } + ], + "mhaps_target_id": 58 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 49746 + } + ], + "mhaps_target_id": 92 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 28724 + }, + { + "mhap_id": 1, + "reads": 21186 + } + ], + "mhaps_target_id": 24 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 25672 + } + ], + "mhaps_target_id": 82 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 35612 + } + ], + "mhaps_target_id": 70 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 49786 + } + ], + "mhaps_target_id": 15 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 29564 + } + ], + "mhaps_target_id": 60 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 21816 + } + ], + "mhaps_target_id": 18 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 36326 + } + ], + "mhaps_target_id": 6 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 21602 + }, + { + "mhap_id": 1, + "reads": 7824 + } + ], + "mhaps_target_id": 13 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 31697 + } + ], + "mhaps_target_id": 38 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 33113 + }, + { + "mhap_id": 1, + "reads": 11252 + } + ], + "mhaps_target_id": 88 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 3203 + }, + { + "mhap_id": 1, + "reads": 2781 + } + ], + "mhaps_target_id": 52 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 28266 + }, + { + "mhap_id": 1, + "reads": 9483 + } + ], + "mhaps_target_id": 4 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 34463 + }, + { + "mhap_id": 1, + "reads": 11600 + } + ], + "mhaps_target_id": 0 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 37213 + } + ], + "mhaps_target_id": 43 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 24157 + }, + { + "mhap_id": 1, + "reads": 18874 + } + ], + "mhaps_target_id": 22 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 10520 + }, + { + "mhap_id": 1, + "reads": 3622 + } + ], + "mhaps_target_id": 12 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 49745 + } + ], + "mhaps_target_id": 89 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 24530 + }, + { + "mhap_id": 1, + "reads": 9730 + } + ], + "mhaps_target_id": 77 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 22427 + }, + { + "mhap_id": 0, + "reads": 8239 + } + ], + "mhaps_target_id": 42 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 35294 + }, + { + "mhap_id": 1, + "reads": 12195 + } + ], + "mhaps_target_id": 41 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 49972 + } + ], + "mhaps_target_id": 55 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 37605 + } + ], + "mhaps_target_id": 91 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 19230 + } + ], + "mhaps_target_id": 53 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 49701 + } + ], + "mhaps_target_id": 10 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 30585 + }, + { + "mhap_id": 0, + "reads": 10686 + } + ], + "mhaps_target_id": 73 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 32967 + } + ], + "mhaps_target_id": 20 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 3634 + } + ], + "mhaps_target_id": 44 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 28109 + } + ], + "mhaps_target_id": 9 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 37013 + } + ], + "mhaps_target_id": 5 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 21764 + }, + { + "mhap_id": 1, + "reads": 7383 + } + ], + "mhaps_target_id": 17 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 34162 + } + ], + "mhaps_target_id": 90 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 49728 + } + ], + "mhaps_target_id": 1 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 49740 + } + ], + "mhaps_target_id": 2 + } + ] + } + ] + }, + { + "bioinformatics_run_id": 1, + "library_samples": [ + { + "library_sample_id": 3, + "target_results": [ + { + "mhaps": [ + { + "mhap_id": 3, + "reads": 289 + } + ], + "mhaps_target_id": 2 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 333 + } + ], + "mhaps_target_id": 47 + }, + { + "mhaps": [ + { + "mhap_id": 4, + "reads": 480 + } + ], + "mhaps_target_id": 98 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 427 + } + ], + "mhaps_target_id": 75 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 181 + } + ], + "mhaps_target_id": 97 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 352 + } + ], + "mhaps_target_id": 21 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 333 + } + ], + "mhaps_target_id": 99 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 302 + } + ], + "mhaps_target_id": 96 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 299 + } + ], + "mhaps_target_id": 95 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 230 + } + ], + "mhaps_target_id": 94 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 268 + } + ], + "mhaps_target_id": 93 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 301 + } + ], + "mhaps_target_id": 30 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 271 + } + ], + "mhaps_target_id": 46 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 260 + } + ], + "mhaps_target_id": 86 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 358 + } + ], + "mhaps_target_id": 84 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 329 + } + ], + "mhaps_target_id": 83 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 305 + } + ], + "mhaps_target_id": 79 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 208 + } + ], + "mhaps_target_id": 78 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 360 + } + ], + "mhaps_target_id": 80 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 311 + } + ], + "mhaps_target_id": 81 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 377 + } + ], + "mhaps_target_id": 72 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 446 + } + ], + "mhaps_target_id": 16 + }, + { + "mhaps": [ + { + "mhap_id": 3, + "reads": 361 + } + ], + "mhaps_target_id": 71 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 324 + } + ], + "mhaps_target_id": 76 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 282 + } + ], + "mhaps_target_id": 69 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 208 + } + ], + "mhaps_target_id": 66 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 408 + } + ], + "mhaps_target_id": 63 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 286 + } + ], + "mhaps_target_id": 68 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 363 + } + ], + "mhaps_target_id": 62 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 387 + } + ], + "mhaps_target_id": 61 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 362 + } + ], + "mhaps_target_id": 51 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 316 + } + ], + "mhaps_target_id": 50 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 356 + } + ], + "mhaps_target_id": 31 + }, + { + "mhaps": [ + { + "mhap_id": 3, + "reads": 374 + } + ], + "mhaps_target_id": 49 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 317 + } + ], + "mhaps_target_id": 35 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 288 + } + ], + "mhaps_target_id": 48 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 354 + } + ], + "mhaps_target_id": 43 + }, + { + "mhaps": [ + { + "mhap_id": 3, + "reads": 441 + } + ], + "mhaps_target_id": 33 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 385 + } + ], + "mhaps_target_id": 67 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 156 + } + ], + "mhaps_target_id": 37 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 391 + } + ], + "mhaps_target_id": 3 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 469 + } + ], + "mhaps_target_id": 14 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 276 + } + ], + "mhaps_target_id": 32 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 441 + } + ], + "mhaps_target_id": 85 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 395 + } + ], + "mhaps_target_id": 11 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 305 + } + ], + "mhaps_target_id": 28 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 346 + } + ], + "mhaps_target_id": 26 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 326 + } + ], + "mhaps_target_id": 59 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 382 + } + ], + "mhaps_target_id": 27 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 433 + } + ], + "mhaps_target_id": 87 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 310 + } + ], + "mhaps_target_id": 64 + }, + { + "mhaps": [ + { + "mhap_id": 3, + "reads": 333 + } + ], + "mhaps_target_id": 8 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 350 + } + ], + "mhaps_target_id": 19 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 257 + } + ], + "mhaps_target_id": 36 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 235 + } + ], + "mhaps_target_id": 65 + }, + { + "mhaps": [ + { + "mhap_id": 4, + "reads": 348 + } + ], + "mhaps_target_id": 25 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 335 + } + ], + "mhaps_target_id": 58 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 262 + } + ], + "mhaps_target_id": 73 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 385 + } + ], + "mhaps_target_id": 20 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 289 + } + ], + "mhaps_target_id": 92 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 366 + } + ], + "mhaps_target_id": 24 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 270 + } + ], + "mhaps_target_id": 82 + }, + { + "mhaps": [ + { + "mhap_id": 3, + "reads": 346 + } + ], + "mhaps_target_id": 70 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 293 + } + ], + "mhaps_target_id": 23 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 356 + } + ], + "mhaps_target_id": 57 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 316 + } + ], + "mhaps_target_id": 17 + }, + { + "mhaps": [ + { + "mhap_id": 3, + "reads": 358 + } + ], + "mhaps_target_id": 15 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 366 + } + ], + "mhaps_target_id": 60 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 420 + } + ], + "mhaps_target_id": 18 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 341 + } + ], + "mhaps_target_id": 6 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 392 + } + ], + "mhaps_target_id": 13 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 327 + } + ], + "mhaps_target_id": 9 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 351 + } + ], + "mhaps_target_id": 53 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 287 + } + ], + "mhaps_target_id": 91 + }, + { + "mhaps": [ + { + "mhap_id": 3, + "reads": 420 + } + ], + "mhaps_target_id": 12 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 405 + } + ], + "mhaps_target_id": 22 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 399 + } + ], + "mhaps_target_id": 45 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 395 + } + ], + "mhaps_target_id": 74 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 370 + } + ], + "mhaps_target_id": 7 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 418 + } + ], + "mhaps_target_id": 40 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 261 + } + ], + "mhaps_target_id": 5 + }, + { + "mhaps": [ + { + "mhap_id": 3, + "reads": 439 + } + ], + "mhaps_target_id": 41 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 251 + } + ], + "mhaps_target_id": 52 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 308 + } + ], + "mhaps_target_id": 38 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 398 + } + ], + "mhaps_target_id": 88 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 300 + } + ], + "mhaps_target_id": 4 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 329 + } + ], + "mhaps_target_id": 0 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 250 + } + ], + "mhaps_target_id": 89 + }, + { + "mhaps": [ + { + "mhap_id": 4, + "reads": 340 + } + ], + "mhaps_target_id": 77 + }, + { + "mhaps": [ + { + "mhap_id": 4, + "reads": 303 + } + ], + "mhaps_target_id": 42 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 389 + } + ], + "mhaps_target_id": 34 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 302 + } + ], + "mhaps_target_id": 90 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 338 + } + ], + "mhaps_target_id": 1 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 357 + } + ], + "mhaps_target_id": 39 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 300 + } + ], + "mhaps_target_id": 29 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 293 + } + ], + "mhaps_target_id": 44 + }, + { + "mhaps": [ + { + "mhap_id": 4, + "reads": 358 + } + ], + "mhaps_target_id": 56 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 290 + } + ], + "mhaps_target_id": 10 + } + ] + }, + { + "library_sample_id": 2, + "target_results": [ + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 1191 + } + ], + "mhaps_target_id": 2 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 1129 + } + ], + "mhaps_target_id": 54 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 920 + }, + { + "mhap_id": 2, + "reads": 291 + } + ], + "mhaps_target_id": 21 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 1039 + } + ], + "mhaps_target_id": 99 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 1151 + } + ], + "mhaps_target_id": 96 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 1177 + } + ], + "mhaps_target_id": 95 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 1221 + } + ], + "mhaps_target_id": 94 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 1076 + } + ], + "mhaps_target_id": 93 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 1090 + } + ], + "mhaps_target_id": 30 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 1137 + } + ], + "mhaps_target_id": 46 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 884 + } + ], + "mhaps_target_id": 86 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 1417 + } + ], + "mhaps_target_id": 84 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 1282 + } + ], + "mhaps_target_id": 83 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 1295 + } + ], + "mhaps_target_id": 79 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 1488 + } + ], + "mhaps_target_id": 78 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 1455 + } + ], + "mhaps_target_id": 80 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 1375 + } + ], + "mhaps_target_id": 81 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 928 + } + ], + "mhaps_target_id": 97 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 1439 + } + ], + "mhaps_target_id": 75 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 1315 + } + ], + "mhaps_target_id": 72 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 1434 + } + ], + "mhaps_target_id": 16 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 997 + } + ], + "mhaps_target_id": 71 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 1208 + } + ], + "mhaps_target_id": 76 + }, + { + "mhaps": [ + { + "mhap_id": 3, + "reads": 788 + }, + { + "mhap_id": 2, + "reads": 321 + } + ], + "mhaps_target_id": 69 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 1354 + } + ], + "mhaps_target_id": 66 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 1234 + } + ], + "mhaps_target_id": 63 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 1117 + } + ], + "mhaps_target_id": 68 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 833 + }, + { + "mhap_id": 2, + "reads": 336 + } + ], + "mhaps_target_id": 62 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 1451 + } + ], + "mhaps_target_id": 61 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 1283 + } + ], + "mhaps_target_id": 51 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 915 + }, + { + "mhap_id": 0, + "reads": 267 + } + ], + "mhaps_target_id": 50 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 1209 + } + ], + "mhaps_target_id": 31 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 2063 + }, + { + "mhap_id": 2, + "reads": 450 + } + ], + "mhaps_target_id": 49 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 1319 + } + ], + "mhaps_target_id": 35 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 1196 + } + ], + "mhaps_target_id": 48 + }, + { + "mhaps": [ + { + "mhap_id": 3, + "reads": 1507 + } + ], + "mhaps_target_id": 98 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 843 + }, + { + "mhap_id": 2, + "reads": 269 + } + ], + "mhaps_target_id": 47 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 1411 + } + ], + "mhaps_target_id": 43 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 1334 + } + ], + "mhaps_target_id": 33 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 937 + }, + { + "mhap_id": 1, + "reads": 318 + } + ], + "mhaps_target_id": 67 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 1066 + } + ], + "mhaps_target_id": 37 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 1128 + } + ], + "mhaps_target_id": 3 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 1500 + } + ], + "mhaps_target_id": 14 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 1276 + } + ], + "mhaps_target_id": 32 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 1370 + } + ], + "mhaps_target_id": 85 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 1011 + }, + { + "mhap_id": 1, + "reads": 347 + } + ], + "mhaps_target_id": 11 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 1288 + } + ], + "mhaps_target_id": 28 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 955 + }, + { + "mhap_id": 1, + "reads": 313 + } + ], + "mhaps_target_id": 26 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 1171 + } + ], + "mhaps_target_id": 59 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 1197 + } + ], + "mhaps_target_id": 27 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 952 + }, + { + "mhap_id": 0, + "reads": 403 + } + ], + "mhaps_target_id": 87 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 1100 + } + ], + "mhaps_target_id": 64 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 1133 + } + ], + "mhaps_target_id": 8 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 1293 + } + ], + "mhaps_target_id": 19 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 1257 + } + ], + "mhaps_target_id": 36 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 1338 + } + ], + "mhaps_target_id": 65 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 934 + }, + { + "mhap_id": 3, + "reads": 318 + } + ], + "mhaps_target_id": 25 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 1371 + } + ], + "mhaps_target_id": 58 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 933 + }, + { + "mhap_id": 1, + "reads": 338 + } + ], + "mhaps_target_id": 73 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 712 + }, + { + "mhap_id": 1, + "reads": 289 + } + ], + "mhaps_target_id": 20 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 1413 + } + ], + "mhaps_target_id": 92 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 1196 + } + ], + "mhaps_target_id": 24 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 1348 + } + ], + "mhaps_target_id": 82 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 1207 + } + ], + "mhaps_target_id": 70 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 909 + } + ], + "mhaps_target_id": 23 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 1135 + } + ], + "mhaps_target_id": 57 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 951 + }, + { + "mhap_id": 1, + "reads": 318 + } + ], + "mhaps_target_id": 17 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 964 + }, + { + "mhap_id": 0, + "reads": 294 + } + ], + "mhaps_target_id": 15 + }, + { + "mhaps": [ + { + "mhap_id": 3, + "reads": 1397 + } + ], + "mhaps_target_id": 60 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 1251 + } + ], + "mhaps_target_id": 18 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 910 + }, + { + "mhap_id": 0, + "reads": 337 + } + ], + "mhaps_target_id": 6 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 1039 + }, + { + "mhap_id": 0, + "reads": 325 + } + ], + "mhaps_target_id": 13 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 1489 + } + ], + "mhaps_target_id": 9 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 814 + }, + { + "mhap_id": 1, + "reads": 267 + } + ], + "mhaps_target_id": 53 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 1186 + } + ], + "mhaps_target_id": 91 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 1496 + } + ], + "mhaps_target_id": 12 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 1454 + } + ], + "mhaps_target_id": 22 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 1224 + } + ], + "mhaps_target_id": 45 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 1429 + } + ], + "mhaps_target_id": 74 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 1097 + }, + { + "mhap_id": 1, + "reads": 350 + } + ], + "mhaps_target_id": 7 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 1493 + } + ], + "mhaps_target_id": 40 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 1024 + } + ], + "mhaps_target_id": 5 + }, + { + "mhaps": [ + { + "mhap_id": 3, + "reads": 1365 + } + ], + "mhaps_target_id": 41 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 1097 + } + ], + "mhaps_target_id": 52 + }, + { + "mhaps": [ + { + "mhap_id": 3, + "reads": 819 + }, + { + "mhap_id": 2, + "reads": 273 + } + ], + "mhaps_target_id": 38 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 1121 + } + ], + "mhaps_target_id": 88 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 1227 + } + ], + "mhaps_target_id": 4 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 1058 + }, + { + "mhap_id": 3, + "reads": 245 + } + ], + "mhaps_target_id": 0 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 732 + }, + { + "mhap_id": 3, + "reads": 253 + } + ], + "mhaps_target_id": 89 + }, + { + "mhaps": [ + { + "mhap_id": 3, + "reads": 883 + }, + { + "mhap_id": 2, + "reads": 299 + } + ], + "mhaps_target_id": 77 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 1076 + } + ], + "mhaps_target_id": 42 + }, + { + "mhaps": [ + { + "mhap_id": 3, + "reads": 991 + } + ], + "mhaps_target_id": 34 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 1158 + } + ], + "mhaps_target_id": 90 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 1341 + } + ], + "mhaps_target_id": 1 + }, + { + "mhaps": [ + { + "mhap_id": 1, + "reads": 992 + }, + { + "mhap_id": 0, + "reads": 302 + } + ], + "mhaps_target_id": 39 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 1184 + } + ], + "mhaps_target_id": 29 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 1304 + } + ], + "mhaps_target_id": 44 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 810 + }, + { + "mhap_id": 3, + "reads": 364 + } + ], + "mhaps_target_id": 56 + }, + { + "mhaps": [ + { + "mhap_id": 0, + "reads": 1356 + } + ], + "mhaps_target_id": 55 + }, + { + "mhaps": [ + { + "mhap_id": 2, + "reads": 1109 + } + ], + "mhaps_target_id": 10 + } + ] + } + ] + } + ], + "read_counts_by_stage": [ + { + "bioinformatics_run_id": 0, + "read_counts_by_library_sample_by_stage": [ + { + "library_sample_id": 1, + "read_counts_for_targets": [ + { + "stages": [ + { + "reads": 15285, + "stage": "final" + }, + { + "reads": 16686, + "stage": "demultiplexed" + } + ], + "target_id": 32 + }, + { + "stages": [ + { + "reads": 2278, + "stage": "final" + }, + { + "reads": 2448, + "stage": "demultiplexed" + } + ], + "target_id": 31 + }, + { + "stages": [ + { + "reads": 1089, + "stage": "final" + }, + { + "reads": 1172, + "stage": "demultiplexed" + } + ], + "target_id": 13 + }, + { + "stages": [ + { + "reads": 19391, + "stage": "final" + }, + { + "reads": 20615, + "stage": "demultiplexed" + } + ], + "target_id": 12 + }, + { + "stages": [ + { + "reads": 10595, + "stage": "final" + }, + { + "reads": 11645, + "stage": "demultiplexed" + } + ], + "target_id": 51 + }, + { + "stages": [ + { + "reads": 378, + "stage": "final" + }, + { + "reads": 408, + "stage": "demultiplexed" + } + ], + "target_id": 52 + }, + { + "stages": [ + { + "reads": 16586, + "stage": "final" + }, + { + "reads": 17719, + "stage": "demultiplexed" + } + ], + "target_id": 50 + }, + { + "stages": [ + { + "reads": 869, + "stage": "final" + }, + { + "reads": 936, + "stage": "demultiplexed" + } + ], + "target_id": 0 + }, + { + "stages": [ + { + "reads": 6967, + "stage": "final" + }, + { + "reads": 7810, + "stage": "demultiplexed" + } + ], + "target_id": 1 + }, + { + "stages": [ + { + "reads": 1010, + "stage": "final" + }, + { + "reads": 1080, + "stage": "demultiplexed" + } + ], + "target_id": 2 + }, + { + "stages": [ + { + "reads": 20051, + "stage": "final" + }, + { + "reads": 21658, + "stage": "demultiplexed" + } + ], + "target_id": 3 + }, + { + "stages": [ + { + "reads": 24537, + "stage": "final" + }, + { + "reads": 26316, + "stage": "demultiplexed" + } + ], + "target_id": 4 + }, + { + "stages": [ + { + "reads": 300, + "stage": "final" + }, + { + "reads": 327, + "stage": "demultiplexed" + } + ], + "target_id": 5 + }, + { + "stages": [ + { + "reads": 4256, + "stage": "final" + }, + { + "reads": 4550, + "stage": "demultiplexed" + } + ], + "target_id": 6 + }, + { + "stages": [ + { + "reads": 958, + "stage": "final" + }, + { + "reads": 1028, + "stage": "demultiplexed" + } + ], + "target_id": 7 + }, + { + "stages": [ + { + "reads": 31313, + "stage": "final" + }, + { + "reads": 34255, + "stage": "demultiplexed" + } + ], + "target_id": 8 + }, + { + "stages": [ + { + "reads": 2554, + "stage": "final" + }, + { + "reads": 2798, + "stage": "demultiplexed" + } + ], + "target_id": 9 + }, + { + "stages": [ + { + "reads": 1213, + "stage": "final" + }, + { + "reads": 1271, + "stage": "demultiplexed" + } + ], + "target_id": 10 + }, + { + "stages": [ + { + "reads": 1379, + "stage": "final" + }, + { + "reads": 1462, + "stage": "demultiplexed" + } + ], + "target_id": 11 + }, + { + "stages": [ + { + "reads": 2310, + "stage": "final" + }, + { + "reads": 2421, + "stage": "demultiplexed" + } + ], + "target_id": 14 + }, + { + "stages": [ + { + "reads": 2014, + "stage": "final" + }, + { + "reads": 2126, + "stage": "demultiplexed" + } + ], + "target_id": 15 + }, + { + "stages": [ + { + "reads": 44681, + "stage": "final" + }, + { + "reads": 47559, + "stage": "demultiplexed" + } + ], + "target_id": 16 + }, + { + "stages": [ + { + "reads": 273, + "stage": "demultiplexed" + } + ], + "target_id": 17 + }, + { + "stages": [ + { + "reads": 384, + "stage": "final" + }, + { + "reads": 410, + "stage": "demultiplexed" + } + ], + "target_id": 18 + }, + { + "stages": [ + { + "reads": 507, + "stage": "final" + }, + { + "reads": 594, + "stage": "demultiplexed" + } + ], + "target_id": 24 + }, + { + "stages": [ + { + "reads": 226, + "stage": "demultiplexed" + } + ], + "target_id": 19 + }, + { + "stages": [ + { + "reads": 3895, + "stage": "final" + }, + { + "reads": 4189, + "stage": "demultiplexed" + } + ], + "target_id": 20 + }, + { + "stages": [ + { + "reads": 1579, + "stage": "final" + }, + { + "reads": 1650, + "stage": "demultiplexed" + } + ], + "target_id": 21 + }, + { + "stages": [ + { + "reads": 222, + "stage": "demultiplexed" + } + ], + "target_id": 22 + }, + { + "stages": [ + { + "reads": 170, + "stage": "demultiplexed" + } + ], + "target_id": 23 + }, + { + "stages": [ + { + "reads": 150, + "stage": "demultiplexed" + } + ], + "target_id": 25 + }, + { + "stages": [ + { + "reads": 1450, + "stage": "final" + }, + { + "reads": 1537, + "stage": "demultiplexed" + } + ], + "target_id": 26 + }, + { + "stages": [ + { + "reads": 23438, + "stage": "final" + }, + { + "reads": 25268, + "stage": "demultiplexed" + } + ], + "target_id": 27 + }, + { + "stages": [ + { + "reads": 128, + "stage": "demultiplexed" + } + ], + "target_id": 28 + }, + { + "stages": [ + { + "reads": 269, + "stage": "demultiplexed" + } + ], + "target_id": 29 + }, + { + "stages": [ + { + "reads": 11091, + "stage": "final" + }, + { + "reads": 11848, + "stage": "demultiplexed" + } + ], + "target_id": 30 + }, + { + "stages": [ + { + "reads": 6522, + "stage": "final" + }, + { + "reads": 7079, + "stage": "demultiplexed" + } + ], + "target_id": 62 + }, + { + "stages": [ + { + "reads": 25203, + "stage": "final" + }, + { + "reads": 27285, + "stage": "demultiplexed" + } + ], + "target_id": 63 + }, + { + "stages": [ + { + "reads": 26863, + "stage": "final" + }, + { + "reads": 29317, + "stage": "demultiplexed" + } + ], + "target_id": 64 + }, + { + "stages": [ + { + "reads": 13601, + "stage": "final" + }, + { + "reads": 14870, + "stage": "demultiplexed" + } + ], + "target_id": 39 + }, + { + "stages": [ + { + "reads": 282, + "stage": "final" + }, + { + "reads": 298, + "stage": "demultiplexed" + } + ], + "target_id": 40 + }, + { + "stages": [ + { + "reads": 33117, + "stage": "final" + }, + { + "reads": 35774, + "stage": "demultiplexed" + } + ], + "target_id": 41 + }, + { + "stages": [ + { + "reads": 7336, + "stage": "final" + }, + { + "reads": 8382, + "stage": "demultiplexed" + } + ], + "target_id": 42 + }, + { + "stages": [ + { + "reads": 1995, + "stage": "final" + }, + { + "reads": 2099, + "stage": "demultiplexed" + } + ], + "target_id": 43 + }, + { + "stages": [ + { + "reads": 982, + "stage": "final" + }, + { + "reads": 1036, + "stage": "demultiplexed" + } + ], + "target_id": 44 + }, + { + "stages": [ + { + "reads": 6197, + "stage": "final" + }, + { + "reads": 6765, + "stage": "demultiplexed" + } + ], + "target_id": 45 + }, + { + "stages": [ + { + "reads": 19559, + "stage": "final" + }, + { + "reads": 20984, + "stage": "demultiplexed" + } + ], + "target_id": 46 + }, + { + "stages": [ + { + "reads": 1167, + "stage": "final" + }, + { + "reads": 1229, + "stage": "demultiplexed" + } + ], + "target_id": 47 + }, + { + "stages": [ + { + "reads": 5895, + "stage": "final" + }, + { + "reads": 6380, + "stage": "demultiplexed" + } + ], + "target_id": 48 + }, + { + "stages": [ + { + "reads": 733, + "stage": "final" + }, + { + "reads": 786, + "stage": "demultiplexed" + } + ], + "target_id": 49 + }, + { + "stages": [ + { + "reads": 3576, + "stage": "final" + }, + { + "reads": 3856, + "stage": "demultiplexed" + } + ], + "target_id": 34 + }, + { + "stages": [ + { + "reads": 4213, + "stage": "final" + }, + { + "reads": 4575, + "stage": "demultiplexed" + } + ], + "target_id": 33 + }, + { + "stages": [ + { + "reads": 860, + "stage": "final" + }, + { + "reads": 942, + "stage": "demultiplexed" + } + ], + "target_id": 54 + }, + { + "stages": [ + { + "reads": 506, + "stage": "final" + }, + { + "reads": 546, + "stage": "demultiplexed" + } + ], + "target_id": 55 + }, + { + "stages": [ + { + "reads": 17721, + "stage": "final" + }, + { + "reads": 19024, + "stage": "demultiplexed" + } + ], + "target_id": 56 + }, + { + "stages": [ + { + "reads": 516, + "stage": "final" + }, + { + "reads": 546, + "stage": "demultiplexed" + } + ], + "target_id": 58 + }, + { + "stages": [ + { + "reads": 283, + "stage": "final" + }, + { + "reads": 298, + "stage": "demultiplexed" + } + ], + "target_id": 59 + }, + { + "stages": [ + { + "reads": 7629, + "stage": "final" + }, + { + "reads": 8260, + "stage": "demultiplexed" + } + ], + "target_id": 57 + }, + { + "stages": [ + { + "reads": 2117, + "stage": "final" + }, + { + "reads": 2224, + "stage": "demultiplexed" + } + ], + "target_id": 60 + }, + { + "stages": [ + { + "reads": 784, + "stage": "final" + }, + { + "reads": 826, + "stage": "demultiplexed" + } + ], + "target_id": 61 + }, + { + "stages": [ + { + "reads": 579, + "stage": "final" + }, + { + "reads": 622, + "stage": "demultiplexed" + } + ], + "target_id": 65 + }, + { + "stages": [ + { + "reads": 527, + "stage": "final" + }, + { + "reads": 563, + "stage": "demultiplexed" + } + ], + "target_id": 66 + }, + { + "stages": [ + { + "reads": 2247, + "stage": "final" + }, + { + "reads": 2384, + "stage": "demultiplexed" + } + ], + "target_id": 67 + }, + { + "stages": [ + { + "reads": 419, + "stage": "final" + }, + { + "reads": 444, + "stage": "demultiplexed" + } + ], + "target_id": 68 + }, + { + "stages": [ + { + "reads": 14122, + "stage": "final" + }, + { + "reads": 16039, + "stage": "demultiplexed" + } + ], + "target_id": 69 + }, + { + "stages": [ + { + "reads": 1009, + "stage": "final" + }, + { + "reads": 1071, + "stage": "demultiplexed" + } + ], + "target_id": 80 + }, + { + "stages": [ + { + "reads": 274, + "stage": "final" + }, + { + "reads": 300, + "stage": "demultiplexed" + } + ], + "target_id": 35 + }, + { + "stages": [ + { + "reads": 392, + "stage": "final" + }, + { + "reads": 426, + "stage": "demultiplexed" + } + ], + "target_id": 37 + }, + { + "stages": [ + { + "reads": 3516, + "stage": "final" + }, + { + "reads": 3818, + "stage": "demultiplexed" + } + ], + "target_id": 36 + }, + { + "stages": [ + { + "reads": 2317, + "stage": "final" + }, + { + "reads": 2458, + "stage": "demultiplexed" + } + ], + "target_id": 76 + }, + { + "stages": [ + { + "reads": 16859, + "stage": "final" + }, + { + "reads": 17934, + "stage": "demultiplexed" + } + ], + "target_id": 75 + }, + { + "stages": [ + { + "reads": 4739, + "stage": "final" + }, + { + "reads": 5188, + "stage": "demultiplexed" + } + ], + "target_id": 81 + }, + { + "stages": [ + { + "reads": 19, + "stage": "demultiplexed" + } + ], + "target_id": 82 + }, + { + "stages": [ + { + "reads": 371, + "stage": "final" + }, + { + "reads": 413, + "stage": "demultiplexed" + } + ], + "target_id": 78 + }, + { + "stages": [ + { + "reads": 537, + "stage": "final" + }, + { + "reads": 595, + "stage": "demultiplexed" + } + ], + "target_id": 79 + }, + { + "stages": [ + { + "reads": 11176, + "stage": "final" + }, + { + "reads": 12286, + "stage": "demultiplexed" + } + ], + "target_id": 70 + }, + { + "stages": [ + { + "reads": 2539, + "stage": "final" + }, + { + "reads": 2663, + "stage": "demultiplexed" + } + ], + "target_id": 71 + }, + { + "stages": [ + { + "reads": 232, + "stage": "demultiplexed" + } + ], + "target_id": 72 + }, + { + "stages": [ + { + "reads": 172, + "stage": "demultiplexed" + } + ], + "target_id": 73 + }, + { + "stages": [ + { + "reads": 1901, + "stage": "final" + }, + { + "reads": 2051, + "stage": "demultiplexed" + } + ], + "target_id": 74 + }, + { + "stages": [ + { + "reads": 22789, + "stage": "final" + }, + { + "reads": 25098, + "stage": "demultiplexed" + } + ], + "target_id": 83 + }, + { + "stages": [ + { + "reads": 3622, + "stage": "final" + }, + { + "reads": 3947, + "stage": "demultiplexed" + } + ], + "target_id": 84 + }, + { + "stages": [ + { + "reads": 2182, + "stage": "final" + }, + { + "reads": 2296, + "stage": "demultiplexed" + } + ], + "target_id": 85 + }, + { + "stages": [ + { + "reads": 5344, + "stage": "final" + }, + { + "reads": 5849, + "stage": "demultiplexed" + } + ], + "target_id": 86 + }, + { + "stages": [ + { + "reads": 1206, + "stage": "final" + }, + { + "reads": 1279, + "stage": "demultiplexed" + } + ], + "target_id": 87 + }, + { + "stages": [ + { + "reads": 16298, + "stage": "final" + }, + { + "reads": 17431, + "stage": "demultiplexed" + } + ], + "target_id": 88 + }, + { + "stages": [ + { + "reads": 106, + "stage": "demultiplexed" + } + ], + "target_id": 89 + }, + { + "stages": [ + { + "reads": 2857, + "stage": "final" + }, + { + "reads": 3115, + "stage": "demultiplexed" + } + ], + "target_id": 90 + }, + { + "stages": [ + { + "reads": 710, + "stage": "final" + }, + { + "reads": 774, + "stage": "demultiplexed" + } + ], + "target_id": 38 + }, + { + "stages": [ + { + "reads": 775, + "stage": "final" + }, + { + "reads": 813, + "stage": "demultiplexed" + } + ], + "target_id": 91 + }, + { + "stages": [ + { + "reads": 618, + "stage": "final" + }, + { + "reads": 655, + "stage": "demultiplexed" + } + ], + "target_id": 92 + }, + { + "stages": [ + { + "reads": 4, + "stage": "demultiplexed" + } + ], + "target_id": 93 + }, + { + "stages": [ + { + "reads": 1545, + "stage": "final" + }, + { + "reads": 1630, + "stage": "demultiplexed" + } + ], + "target_id": 94 + }, + { + "stages": [ + { + "reads": 170, + "stage": "demultiplexed" + } + ], + "target_id": 96 + }, + { + "stages": [ + { + "reads": 34752, + "stage": "final" + }, + { + "reads": 37672, + "stage": "demultiplexed" + } + ], + "target_id": 95 + }, + { + "stages": [ + { + "reads": 1324, + "stage": "final" + }, + { + "reads": 1416, + "stage": "demultiplexed" + } + ], + "target_id": 97 + }, + { + "stages": [ + { + "reads": 1590, + "stage": "final" + }, + { + "reads": 1663, + "stage": "demultiplexed" + } + ], + "target_id": 98 + }, + { + "stages": [ + { + "reads": 46824, + "stage": "final" + }, + { + "reads": 50413, + "stage": "demultiplexed" + } + ], + "target_id": 99 + } + ], + "total_raw_count": 806549 + }, + { + "library_sample_id": 0, + "read_counts_for_targets": [ + { + "stages": [ + { + "reads": 31484, + "stage": "final" + } + ], + "target_id": 51 + }, + { + "stages": [ + { + "reads": 24076, + "stage": "final" + } + ], + "target_id": 52 + }, + { + "stages": [ + { + "reads": 35619, + "stage": "final" + } + ], + "target_id": 50 + }, + { + "stages": [ + { + "reads": 33465, + "stage": "final" + } + ], + "target_id": 0 + }, + { + "stages": [ + { + "reads": 32066, + "stage": "final" + } + ], + "target_id": 1 + }, + { + "stages": [ + { + "reads": 38609, + "stage": "final" + } + ], + "target_id": 2 + }, + { + "stages": [ + { + "reads": 48414, + "stage": "final" + } + ], + "target_id": 3 + }, + { + "stages": [ + { + "reads": 36695, + "stage": "final" + } + ], + "target_id": 4 + }, + { + "stages": [ + { + "reads": 25447, + "stage": "final" + } + ], + "target_id": 5 + }, + { + "stages": [ + { + "reads": 21610, + "stage": "final" + } + ], + "target_id": 6 + }, + { + "stages": [ + { + "reads": 42576, + "stage": "final" + } + ], + "target_id": 7 + }, + { + "stages": [ + { + "reads": 49627, + "stage": "final" + } + ], + "target_id": 8 + }, + { + "stages": [ + { + "reads": 45595, + "stage": "final" + } + ], + "target_id": 9 + }, + { + "stages": [ + { + "reads": 17913, + "stage": "final" + } + ], + "target_id": 10 + }, + { + "stages": [ + { + "reads": 42252, + "stage": "final" + } + ], + "target_id": 11 + }, + { + "stages": [ + { + "reads": 49641, + "stage": "final" + } + ], + "target_id": 12 + }, + { + "stages": [ + { + "reads": 49953, + "stage": "final" + } + ], + "target_id": 13 + }, + { + "stages": [ + { + "reads": 33844, + "stage": "final" + } + ], + "target_id": 14 + }, + { + "stages": [ + { + "reads": 25697, + "stage": "final" + } + ], + "target_id": 15 + }, + { + "stages": [ + { + "reads": 46915, + "stage": "final" + } + ], + "target_id": 16 + }, + { + "stages": [ + { + "reads": 49966, + "stage": "final" + } + ], + "target_id": 17 + }, + { + "stages": [ + { + "reads": 38480, + "stage": "final" + } + ], + "target_id": 18 + }, + { + "stages": [ + { + "reads": 18960, + "stage": "final" + } + ], + "target_id": 19 + }, + { + "stages": [ + { + "reads": 33183, + "stage": "final" + } + ], + "target_id": 20 + }, + { + "stages": [ + { + "reads": 31147, + "stage": "final" + } + ], + "target_id": 21 + }, + { + "stages": [ + { + "reads": 35366, + "stage": "final" + } + ], + "target_id": 22 + }, + { + "stages": [ + { + "reads": 29611, + "stage": "final" + } + ], + "target_id": 23 + }, + { + "stages": [ + { + "reads": 27075, + "stage": "final" + } + ], + "target_id": 24 + }, + { + "stages": [ + { + "reads": 36178, + "stage": "final" + } + ], + "target_id": 25 + }, + { + "stages": [ + { + "reads": 28161, + "stage": "final" + } + ], + "target_id": 26 + }, + { + "stages": [ + { + "reads": 48791, + "stage": "final" + } + ], + "target_id": 27 + }, + { + "stages": [ + { + "reads": 15826, + "stage": "final" + } + ], + "target_id": 28 + }, + { + "stages": [ + { + "reads": 43173, + "stage": "final" + } + ], + "target_id": 29 + }, + { + "stages": [ + { + "reads": 49946, + "stage": "final" + } + ], + "target_id": 30 + }, + { + "stages": [ + { + "reads": 45402, + "stage": "final" + } + ], + "target_id": 31 + }, + { + "stages": [ + { + "reads": 29636, + "stage": "final" + } + ], + "target_id": 32 + }, + { + "stages": [ + { + "reads": 47034, + "stage": "final" + } + ], + "target_id": 33 + }, + { + "stages": [ + { + "reads": 49955, + "stage": "final" + } + ], + "target_id": 34 + }, + { + "stages": [ + { + "reads": 16463, + "stage": "final" + } + ], + "target_id": 35 + }, + { + "stages": [ + { + "reads": 49802, + "stage": "final" + } + ], + "target_id": 36 + }, + { + "stages": [ + { + "reads": 24539, + "stage": "final" + } + ], + "target_id": 37 + }, + { + "stages": [ + { + "reads": 41530, + "stage": "final" + } + ], + "target_id": 38 + }, + { + "stages": [ + { + "reads": 42184, + "stage": "final" + } + ], + "target_id": 39 + }, + { + "stages": [ + { + "reads": 28057, + "stage": "final" + } + ], + "target_id": 40 + }, + { + "stages": [ + { + "reads": 27730, + "stage": "final" + } + ], + "target_id": 41 + }, + { + "stages": [ + { + "reads": 49338, + "stage": "final" + } + ], + "target_id": 42 + }, + { + "stages": [ + { + "reads": 44481, + "stage": "final" + } + ], + "target_id": 43 + }, + { + "stages": [ + { + "reads": 49365, + "stage": "final" + } + ], + "target_id": 44 + }, + { + "stages": [ + { + "reads": 39009, + "stage": "final" + } + ], + "target_id": 45 + }, + { + "stages": [ + { + "reads": 37407, + "stage": "final" + } + ], + "target_id": 46 + }, + { + "stages": [ + { + "reads": 29934, + "stage": "final" + } + ], + "target_id": 47 + }, + { + "stages": [ + { + "reads": 49971, + "stage": "final" + } + ], + "target_id": 48 + }, + { + "stages": [ + { + "reads": 23924, + "stage": "final" + } + ], + "target_id": 49 + }, + { + "stages": [ + { + "reads": 29713, + "stage": "final" + } + ], + "target_id": 54 + }, + { + "stages": [ + { + "reads": 38625, + "stage": "final" + } + ], + "target_id": 55 + }, + { + "stages": [ + { + "reads": 49969, + "stage": "final" + } + ], + "target_id": 56 + }, + { + "stages": [ + { + "reads": 45069, + "stage": "final" + } + ], + "target_id": 57 + }, + { + "stages": [ + { + "reads": 24050, + "stage": "final" + } + ], + "target_id": 58 + }, + { + "stages": [ + { + "reads": 41999, + "stage": "final" + } + ], + "target_id": 59 + }, + { + "stages": [ + { + "reads": 48335, + "stage": "final" + } + ], + "target_id": 60 + }, + { + "stages": [ + { + "reads": 41343, + "stage": "final" + } + ], + "target_id": 61 + }, + { + "stages": [ + { + "reads": 49944, + "stage": "final" + } + ], + "target_id": 62 + }, + { + "stages": [ + { + "reads": 37382, + "stage": "final" + } + ], + "target_id": 63 + }, + { + "stages": [ + { + "reads": 44271, + "stage": "final" + } + ], + "target_id": 64 + }, + { + "stages": [ + { + "reads": 24451, + "stage": "final" + } + ], + "target_id": 65 + }, + { + "stages": [ + { + "reads": 49746, + "stage": "final" + } + ], + "target_id": 66 + }, + { + "stages": [ + { + "reads": 49910, + "stage": "final" + } + ], + "target_id": 67 + }, + { + "stages": [ + { + "reads": 25672, + "stage": "final" + } + ], + "target_id": 68 + }, + { + "stages": [ + { + "reads": 35612, + "stage": "final" + } + ], + "target_id": 69 + }, + { + "stages": [ + { + "reads": 49786, + "stage": "final" + } + ], + "target_id": 70 + }, + { + "stages": [ + { + "reads": 29564, + "stage": "final" + } + ], + "target_id": 71 + }, + { + "stages": [ + { + "reads": 21816, + "stage": "final" + } + ], + "target_id": 72 + }, + { + "stages": [ + { + "reads": 36326, + "stage": "final" + } + ], + "target_id": 73 + }, + { + "stages": [ + { + "reads": 29426, + "stage": "final" + } + ], + "target_id": 74 + }, + { + "stages": [ + { + "reads": 31697, + "stage": "final" + } + ], + "target_id": 75 + }, + { + "stages": [ + { + "reads": 44365, + "stage": "final" + } + ], + "target_id": 76 + }, + { + "stages": [ + { + "reads": 5984, + "stage": "final" + } + ], + "target_id": 77 + }, + { + "stages": [ + { + "reads": 37749, + "stage": "final" + } + ], + "target_id": 78 + }, + { + "stages": [ + { + "reads": 46063, + "stage": "final" + } + ], + "target_id": 79 + }, + { + "stages": [ + { + "reads": 37213, + "stage": "final" + } + ], + "target_id": 80 + }, + { + "stages": [ + { + "reads": 43031, + "stage": "final" + } + ], + "target_id": 81 + }, + { + "stages": [ + { + "reads": 14142, + "stage": "final" + } + ], + "target_id": 82 + }, + { + "stages": [ + { + "reads": 49745, + "stage": "final" + } + ], + "target_id": 83 + }, + { + "stages": [ + { + "reads": 34260, + "stage": "final" + } + ], + "target_id": 84 + }, + { + "stages": [ + { + "reads": 30666, + "stage": "final" + } + ], + "target_id": 85 + }, + { + "stages": [ + { + "reads": 47489, + "stage": "final" + } + ], + "target_id": 86 + }, + { + "stages": [ + { + "reads": 49972, + "stage": "final" + } + ], + "target_id": 87 + }, + { + "stages": [ + { + "reads": 37605, + "stage": "final" + } + ], + "target_id": 88 + }, + { + "stages": [ + { + "reads": 19230, + "stage": "final" + } + ], + "target_id": 89 + }, + { + "stages": [ + { + "reads": 49701, + "stage": "final" + } + ], + "target_id": 90 + }, + { + "stages": [ + { + "reads": 41271, + "stage": "final" + } + ], + "target_id": 91 + }, + { + "stages": [ + { + "reads": 32967, + "stage": "final" + } + ], + "target_id": 92 + }, + { + "stages": [ + { + "reads": 3634, + "stage": "final" + } + ], + "target_id": 93 + }, + { + "stages": [ + { + "reads": 28109, + "stage": "final" + } + ], + "target_id": 94 + }, + { + "stages": [ + { + "reads": 37013, + "stage": "final" + } + ], + "target_id": 95 + }, + { + "stages": [ + { + "reads": 29147, + "stage": "final" + } + ], + "target_id": 96 + }, + { + "stages": [ + { + "reads": 34162, + "stage": "final" + } + ], + "target_id": 97 + }, + { + "stages": [ + { + "reads": 49728, + "stage": "final" + } + ], + "target_id": 98 + }, + { + "stages": [ + { + "reads": 49740, + "stage": "final" + } + ], + "target_id": 99 + } + ], + "total_raw_count": 6858739 + } + ] + } + ] +} diff --git a/tests/data/minimum_pmo_example.json b/tests/data/minimum_pmo_example.json index 9649871..55305af 100644 --- a/tests/data/minimum_pmo_example.json +++ b/tests/data/minimum_pmo_example.json @@ -2,8 +2,25 @@ "bioinformatics_methods_info" : [ { - "additional_methods" : + "methods" : [ + { + "program" : "SeekDeep extractorPairedEnd", + "program_description" : "Takes raw paired-end reads and demultiplexes on primers and does QC filtering", + "program_version" : "v2.6.5" + }, + { + "additional_argument" : + [ + "--illumina", + "--qualThres 25,20", + "--trimFront 1", + "--trimBack 1" + ], + "program" : "SeekDeep qluster", + "program_description" : "Takes sequences per sample per target and clusters them", + "program_version" : "v2.6.5" + }, { "additional_argument" : [ @@ -18,27 +35,7 @@ "program_description" : "Compare across samples for each target to create population level identifiers and do post artifact cleanup", "program_version" : "v2.6.5" } - ], - "bioinformatics_method_name" : "SeekDeep", - "demultiplexing_method" : - { - "program" : "SeekDeep extractorPairedEnd", - "program_description" : "Takes raw paired-end reads and demultiplexes on primers and does QC filtering", - "program_version" : "v2.6.5" - }, - "denoising_method" : - { - "additional_argument" : - [ - "--illumina", - "--qualThres 25,20", - "--trimFront 1", - "--trimBack 1" - ], - "program" : "SeekDeep qluster", - "program_description" : "Takes sequences per sample per target and clusters them", - "program_version" : "v2.6.5" - } + ] } ], "bioinformatics_run_info" : @@ -2187,7 +2184,7 @@ "plate_name" : "8", "plate_row" : "C" }, - "library_sample_name" : "8025874217", + "library_sample_name" : "8025874217_lib_name", "panel_id" : 0, "sequencing_info_id" : 0, "specimen_id" : 0 @@ -2199,7 +2196,7 @@ "plate_name" : "8", "plate_row" : "B" }, - "library_sample_name" : "8025874266", + "library_sample_name" : "8025874266_lib_name", "panel_id" : 0, "sequencing_info_id" : 0, "specimen_id" : 1 @@ -2322,7 +2319,7 @@ ], "pmo_header" : { - "creation_date" : "2025-07-22", + "creation_date" : "2025-11-03", "generation_method" : { "program_name" : "elucidator combingallintopmojson", @@ -2352,11 +2349,11 @@ "stages" : [ { - "read_count" : 15285, + "reads" : 15285, "stage" : "final" }, { - "read_count" : 16686, + "reads" : 16686, "stage" : "demultiplexed" } ], @@ -2366,11 +2363,11 @@ "stages" : [ { - "read_count" : 2278, + "reads" : 2278, "stage" : "final" }, { - "read_count" : 2448, + "reads" : 2448, "stage" : "demultiplexed" } ], @@ -2380,11 +2377,11 @@ "stages" : [ { - "read_count" : 1089, + "reads" : 1089, "stage" : "final" }, { - "read_count" : 1172, + "reads" : 1172, "stage" : "demultiplexed" } ], @@ -2394,11 +2391,11 @@ "stages" : [ { - "read_count" : 19391, + "reads" : 19391, "stage" : "final" }, { - "read_count" : 20615, + "reads" : 20615, "stage" : "demultiplexed" } ], @@ -2408,11 +2405,11 @@ "stages" : [ { - "read_count" : 10595, + "reads" : 10595, "stage" : "final" }, { - "read_count" : 11645, + "reads" : 11645, "stage" : "demultiplexed" } ], @@ -2422,11 +2419,11 @@ "stages" : [ { - "read_count" : 378, + "reads" : 378, "stage" : "final" }, { - "read_count" : 408, + "reads" : 408, "stage" : "demultiplexed" } ], @@ -2436,11 +2433,11 @@ "stages" : [ { - "read_count" : 16586, + "reads" : 16586, "stage" : "final" }, { - "read_count" : 17719, + "reads" : 17719, "stage" : "demultiplexed" } ], @@ -2450,11 +2447,11 @@ "stages" : [ { - "read_count" : 869, + "reads" : 869, "stage" : "final" }, { - "read_count" : 936, + "reads" : 936, "stage" : "demultiplexed" } ], @@ -2464,11 +2461,11 @@ "stages" : [ { - "read_count" : 6967, + "reads" : 6967, "stage" : "final" }, { - "read_count" : 7810, + "reads" : 7810, "stage" : "demultiplexed" } ], @@ -2478,11 +2475,11 @@ "stages" : [ { - "read_count" : 1010, + "reads" : 1010, "stage" : "final" }, { - "read_count" : 1080, + "reads" : 1080, "stage" : "demultiplexed" } ], @@ -2492,11 +2489,11 @@ "stages" : [ { - "read_count" : 20051, + "reads" : 20051, "stage" : "final" }, { - "read_count" : 21658, + "reads" : 21658, "stage" : "demultiplexed" } ], @@ -2506,11 +2503,11 @@ "stages" : [ { - "read_count" : 24537, + "reads" : 24537, "stage" : "final" }, { - "read_count" : 26316, + "reads" : 26316, "stage" : "demultiplexed" } ], @@ -2520,11 +2517,11 @@ "stages" : [ { - "read_count" : 300, + "reads" : 300, "stage" : "final" }, { - "read_count" : 327, + "reads" : 327, "stage" : "demultiplexed" } ], @@ -2534,11 +2531,11 @@ "stages" : [ { - "read_count" : 4256, + "reads" : 4256, "stage" : "final" }, { - "read_count" : 4550, + "reads" : 4550, "stage" : "demultiplexed" } ], @@ -2548,11 +2545,11 @@ "stages" : [ { - "read_count" : 958, + "reads" : 958, "stage" : "final" }, { - "read_count" : 1028, + "reads" : 1028, "stage" : "demultiplexed" } ], @@ -2562,11 +2559,11 @@ "stages" : [ { - "read_count" : 31313, + "reads" : 31313, "stage" : "final" }, { - "read_count" : 34255, + "reads" : 34255, "stage" : "demultiplexed" } ], @@ -2576,11 +2573,11 @@ "stages" : [ { - "read_count" : 2554, + "reads" : 2554, "stage" : "final" }, { - "read_count" : 2798, + "reads" : 2798, "stage" : "demultiplexed" } ], @@ -2590,11 +2587,11 @@ "stages" : [ { - "read_count" : 1213, + "reads" : 1213, "stage" : "final" }, { - "read_count" : 1271, + "reads" : 1271, "stage" : "demultiplexed" } ], @@ -2604,11 +2601,11 @@ "stages" : [ { - "read_count" : 1379, + "reads" : 1379, "stage" : "final" }, { - "read_count" : 1462, + "reads" : 1462, "stage" : "demultiplexed" } ], @@ -2618,11 +2615,11 @@ "stages" : [ { - "read_count" : 2310, + "reads" : 2310, "stage" : "final" }, { - "read_count" : 2421, + "reads" : 2421, "stage" : "demultiplexed" } ], @@ -2632,11 +2629,11 @@ "stages" : [ { - "read_count" : 2014, + "reads" : 2014, "stage" : "final" }, { - "read_count" : 2126, + "reads" : 2126, "stage" : "demultiplexed" } ], @@ -2646,11 +2643,11 @@ "stages" : [ { - "read_count" : 44681, + "reads" : 44681, "stage" : "final" }, { - "read_count" : 47559, + "reads" : 47559, "stage" : "demultiplexed" } ], @@ -2660,7 +2657,7 @@ "stages" : [ { - "read_count" : 273, + "reads" : 273, "stage" : "demultiplexed" } ], @@ -2670,11 +2667,11 @@ "stages" : [ { - "read_count" : 384, + "reads" : 384, "stage" : "final" }, { - "read_count" : 410, + "reads" : 410, "stage" : "demultiplexed" } ], @@ -2684,11 +2681,11 @@ "stages" : [ { - "read_count" : 507, + "reads" : 507, "stage" : "final" }, { - "read_count" : 594, + "reads" : 594, "stage" : "demultiplexed" } ], @@ -2698,7 +2695,7 @@ "stages" : [ { - "read_count" : 226, + "reads" : 226, "stage" : "demultiplexed" } ], @@ -2708,11 +2705,11 @@ "stages" : [ { - "read_count" : 3895, + "reads" : 3895, "stage" : "final" }, { - "read_count" : 4189, + "reads" : 4189, "stage" : "demultiplexed" } ], @@ -2722,11 +2719,11 @@ "stages" : [ { - "read_count" : 1579, + "reads" : 1579, "stage" : "final" }, { - "read_count" : 1650, + "reads" : 1650, "stage" : "demultiplexed" } ], @@ -2736,7 +2733,7 @@ "stages" : [ { - "read_count" : 222, + "reads" : 222, "stage" : "demultiplexed" } ], @@ -2746,7 +2743,7 @@ "stages" : [ { - "read_count" : 170, + "reads" : 170, "stage" : "demultiplexed" } ], @@ -2756,7 +2753,7 @@ "stages" : [ { - "read_count" : 150, + "reads" : 150, "stage" : "demultiplexed" } ], @@ -2766,11 +2763,11 @@ "stages" : [ { - "read_count" : 1450, + "reads" : 1450, "stage" : "final" }, { - "read_count" : 1537, + "reads" : 1537, "stage" : "demultiplexed" } ], @@ -2780,11 +2777,11 @@ "stages" : [ { - "read_count" : 23438, + "reads" : 23438, "stage" : "final" }, { - "read_count" : 25268, + "reads" : 25268, "stage" : "demultiplexed" } ], @@ -2794,7 +2791,7 @@ "stages" : [ { - "read_count" : 128, + "reads" : 128, "stage" : "demultiplexed" } ], @@ -2804,7 +2801,7 @@ "stages" : [ { - "read_count" : 269, + "reads" : 269, "stage" : "demultiplexed" } ], @@ -2814,11 +2811,11 @@ "stages" : [ { - "read_count" : 11091, + "reads" : 11091, "stage" : "final" }, { - "read_count" : 11848, + "reads" : 11848, "stage" : "demultiplexed" } ], @@ -2828,11 +2825,11 @@ "stages" : [ { - "read_count" : 6522, + "reads" : 6522, "stage" : "final" }, { - "read_count" : 7079, + "reads" : 7079, "stage" : "demultiplexed" } ], @@ -2842,11 +2839,11 @@ "stages" : [ { - "read_count" : 25203, + "reads" : 25203, "stage" : "final" }, { - "read_count" : 27285, + "reads" : 27285, "stage" : "demultiplexed" } ], @@ -2856,11 +2853,11 @@ "stages" : [ { - "read_count" : 26863, + "reads" : 26863, "stage" : "final" }, { - "read_count" : 29317, + "reads" : 29317, "stage" : "demultiplexed" } ], @@ -2870,11 +2867,11 @@ "stages" : [ { - "read_count" : 13601, + "reads" : 13601, "stage" : "final" }, { - "read_count" : 14870, + "reads" : 14870, "stage" : "demultiplexed" } ], @@ -2884,11 +2881,11 @@ "stages" : [ { - "read_count" : 282, + "reads" : 282, "stage" : "final" }, { - "read_count" : 298, + "reads" : 298, "stage" : "demultiplexed" } ], @@ -2898,11 +2895,11 @@ "stages" : [ { - "read_count" : 33117, + "reads" : 33117, "stage" : "final" }, { - "read_count" : 35774, + "reads" : 35774, "stage" : "demultiplexed" } ], @@ -2912,11 +2909,11 @@ "stages" : [ { - "read_count" : 7336, + "reads" : 7336, "stage" : "final" }, { - "read_count" : 8382, + "reads" : 8382, "stage" : "demultiplexed" } ], @@ -2926,11 +2923,11 @@ "stages" : [ { - "read_count" : 1995, + "reads" : 1995, "stage" : "final" }, { - "read_count" : 2099, + "reads" : 2099, "stage" : "demultiplexed" } ], @@ -2940,11 +2937,11 @@ "stages" : [ { - "read_count" : 982, + "reads" : 982, "stage" : "final" }, { - "read_count" : 1036, + "reads" : 1036, "stage" : "demultiplexed" } ], @@ -2954,11 +2951,11 @@ "stages" : [ { - "read_count" : 6197, + "reads" : 6197, "stage" : "final" }, { - "read_count" : 6765, + "reads" : 6765, "stage" : "demultiplexed" } ], @@ -2968,11 +2965,11 @@ "stages" : [ { - "read_count" : 19559, + "reads" : 19559, "stage" : "final" }, { - "read_count" : 20984, + "reads" : 20984, "stage" : "demultiplexed" } ], @@ -2982,11 +2979,11 @@ "stages" : [ { - "read_count" : 1167, + "reads" : 1167, "stage" : "final" }, { - "read_count" : 1229, + "reads" : 1229, "stage" : "demultiplexed" } ], @@ -2996,11 +2993,11 @@ "stages" : [ { - "read_count" : 5895, + "reads" : 5895, "stage" : "final" }, { - "read_count" : 6380, + "reads" : 6380, "stage" : "demultiplexed" } ], @@ -3010,11 +3007,11 @@ "stages" : [ { - "read_count" : 733, + "reads" : 733, "stage" : "final" }, { - "read_count" : 786, + "reads" : 786, "stage" : "demultiplexed" } ], @@ -3024,11 +3021,11 @@ "stages" : [ { - "read_count" : 3576, + "reads" : 3576, "stage" : "final" }, { - "read_count" : 3856, + "reads" : 3856, "stage" : "demultiplexed" } ], @@ -3038,11 +3035,11 @@ "stages" : [ { - "read_count" : 4213, + "reads" : 4213, "stage" : "final" }, { - "read_count" : 4575, + "reads" : 4575, "stage" : "demultiplexed" } ], @@ -3052,11 +3049,11 @@ "stages" : [ { - "read_count" : 860, + "reads" : 860, "stage" : "final" }, { - "read_count" : 942, + "reads" : 942, "stage" : "demultiplexed" } ], @@ -3066,11 +3063,11 @@ "stages" : [ { - "read_count" : 506, + "reads" : 506, "stage" : "final" }, { - "read_count" : 546, + "reads" : 546, "stage" : "demultiplexed" } ], @@ -3080,11 +3077,11 @@ "stages" : [ { - "read_count" : 17721, + "reads" : 17721, "stage" : "final" }, { - "read_count" : 19024, + "reads" : 19024, "stage" : "demultiplexed" } ], @@ -3094,11 +3091,11 @@ "stages" : [ { - "read_count" : 516, + "reads" : 516, "stage" : "final" }, { - "read_count" : 546, + "reads" : 546, "stage" : "demultiplexed" } ], @@ -3108,11 +3105,11 @@ "stages" : [ { - "read_count" : 283, + "reads" : 283, "stage" : "final" }, { - "read_count" : 298, + "reads" : 298, "stage" : "demultiplexed" } ], @@ -3122,11 +3119,11 @@ "stages" : [ { - "read_count" : 7629, + "reads" : 7629, "stage" : "final" }, { - "read_count" : 8260, + "reads" : 8260, "stage" : "demultiplexed" } ], @@ -3136,11 +3133,11 @@ "stages" : [ { - "read_count" : 2117, + "reads" : 2117, "stage" : "final" }, { - "read_count" : 2224, + "reads" : 2224, "stage" : "demultiplexed" } ], @@ -3150,11 +3147,11 @@ "stages" : [ { - "read_count" : 784, + "reads" : 784, "stage" : "final" }, { - "read_count" : 826, + "reads" : 826, "stage" : "demultiplexed" } ], @@ -3164,11 +3161,11 @@ "stages" : [ { - "read_count" : 579, + "reads" : 579, "stage" : "final" }, { - "read_count" : 622, + "reads" : 622, "stage" : "demultiplexed" } ], @@ -3178,11 +3175,11 @@ "stages" : [ { - "read_count" : 527, + "reads" : 527, "stage" : "final" }, { - "read_count" : 563, + "reads" : 563, "stage" : "demultiplexed" } ], @@ -3192,11 +3189,11 @@ "stages" : [ { - "read_count" : 2247, + "reads" : 2247, "stage" : "final" }, { - "read_count" : 2384, + "reads" : 2384, "stage" : "demultiplexed" } ], @@ -3206,11 +3203,11 @@ "stages" : [ { - "read_count" : 419, + "reads" : 419, "stage" : "final" }, { - "read_count" : 444, + "reads" : 444, "stage" : "demultiplexed" } ], @@ -3220,11 +3217,11 @@ "stages" : [ { - "read_count" : 14122, + "reads" : 14122, "stage" : "final" }, { - "read_count" : 16039, + "reads" : 16039, "stage" : "demultiplexed" } ], @@ -3234,11 +3231,11 @@ "stages" : [ { - "read_count" : 1009, + "reads" : 1009, "stage" : "final" }, { - "read_count" : 1071, + "reads" : 1071, "stage" : "demultiplexed" } ], @@ -3248,11 +3245,11 @@ "stages" : [ { - "read_count" : 274, + "reads" : 274, "stage" : "final" }, { - "read_count" : 300, + "reads" : 300, "stage" : "demultiplexed" } ], @@ -3262,11 +3259,11 @@ "stages" : [ { - "read_count" : 392, + "reads" : 392, "stage" : "final" }, { - "read_count" : 426, + "reads" : 426, "stage" : "demultiplexed" } ], @@ -3276,11 +3273,11 @@ "stages" : [ { - "read_count" : 3516, + "reads" : 3516, "stage" : "final" }, { - "read_count" : 3818, + "reads" : 3818, "stage" : "demultiplexed" } ], @@ -3290,11 +3287,11 @@ "stages" : [ { - "read_count" : 2317, + "reads" : 2317, "stage" : "final" }, { - "read_count" : 2458, + "reads" : 2458, "stage" : "demultiplexed" } ], @@ -3304,11 +3301,11 @@ "stages" : [ { - "read_count" : 16859, + "reads" : 16859, "stage" : "final" }, { - "read_count" : 17934, + "reads" : 17934, "stage" : "demultiplexed" } ], @@ -3318,11 +3315,11 @@ "stages" : [ { - "read_count" : 4739, + "reads" : 4739, "stage" : "final" }, { - "read_count" : 5188, + "reads" : 5188, "stage" : "demultiplexed" } ], @@ -3332,7 +3329,7 @@ "stages" : [ { - "read_count" : 19, + "reads" : 19, "stage" : "demultiplexed" } ], @@ -3342,11 +3339,11 @@ "stages" : [ { - "read_count" : 371, + "reads" : 371, "stage" : "final" }, { - "read_count" : 413, + "reads" : 413, "stage" : "demultiplexed" } ], @@ -3356,11 +3353,11 @@ "stages" : [ { - "read_count" : 537, + "reads" : 537, "stage" : "final" }, { - "read_count" : 595, + "reads" : 595, "stage" : "demultiplexed" } ], @@ -3370,11 +3367,11 @@ "stages" : [ { - "read_count" : 11176, + "reads" : 11176, "stage" : "final" }, { - "read_count" : 12286, + "reads" : 12286, "stage" : "demultiplexed" } ], @@ -3384,11 +3381,11 @@ "stages" : [ { - "read_count" : 2539, + "reads" : 2539, "stage" : "final" }, { - "read_count" : 2663, + "reads" : 2663, "stage" : "demultiplexed" } ], @@ -3398,7 +3395,7 @@ "stages" : [ { - "read_count" : 232, + "reads" : 232, "stage" : "demultiplexed" } ], @@ -3408,7 +3405,7 @@ "stages" : [ { - "read_count" : 172, + "reads" : 172, "stage" : "demultiplexed" } ], @@ -3418,11 +3415,11 @@ "stages" : [ { - "read_count" : 1901, + "reads" : 1901, "stage" : "final" }, { - "read_count" : 2051, + "reads" : 2051, "stage" : "demultiplexed" } ], @@ -3432,11 +3429,11 @@ "stages" : [ { - "read_count" : 22789, + "reads" : 22789, "stage" : "final" }, { - "read_count" : 25098, + "reads" : 25098, "stage" : "demultiplexed" } ], @@ -3446,11 +3443,11 @@ "stages" : [ { - "read_count" : 3622, + "reads" : 3622, "stage" : "final" }, { - "read_count" : 3947, + "reads" : 3947, "stage" : "demultiplexed" } ], @@ -3460,11 +3457,11 @@ "stages" : [ { - "read_count" : 2182, + "reads" : 2182, "stage" : "final" }, { - "read_count" : 2296, + "reads" : 2296, "stage" : "demultiplexed" } ], @@ -3474,11 +3471,11 @@ "stages" : [ { - "read_count" : 5344, + "reads" : 5344, "stage" : "final" }, { - "read_count" : 5849, + "reads" : 5849, "stage" : "demultiplexed" } ], @@ -3488,11 +3485,11 @@ "stages" : [ { - "read_count" : 1206, + "reads" : 1206, "stage" : "final" }, { - "read_count" : 1279, + "reads" : 1279, "stage" : "demultiplexed" } ], @@ -3502,11 +3499,11 @@ "stages" : [ { - "read_count" : 16298, + "reads" : 16298, "stage" : "final" }, { - "read_count" : 17431, + "reads" : 17431, "stage" : "demultiplexed" } ], @@ -3516,7 +3513,7 @@ "stages" : [ { - "read_count" : 106, + "reads" : 106, "stage" : "demultiplexed" } ], @@ -3526,11 +3523,11 @@ "stages" : [ { - "read_count" : 2857, + "reads" : 2857, "stage" : "final" }, { - "read_count" : 3115, + "reads" : 3115, "stage" : "demultiplexed" } ], @@ -3540,11 +3537,11 @@ "stages" : [ { - "read_count" : 710, + "reads" : 710, "stage" : "final" }, { - "read_count" : 774, + "reads" : 774, "stage" : "demultiplexed" } ], @@ -3554,11 +3551,11 @@ "stages" : [ { - "read_count" : 775, + "reads" : 775, "stage" : "final" }, { - "read_count" : 813, + "reads" : 813, "stage" : "demultiplexed" } ], @@ -3568,11 +3565,11 @@ "stages" : [ { - "read_count" : 618, + "reads" : 618, "stage" : "final" }, { - "read_count" : 655, + "reads" : 655, "stage" : "demultiplexed" } ], @@ -3582,7 +3579,7 @@ "stages" : [ { - "read_count" : 4, + "reads" : 4, "stage" : "demultiplexed" } ], @@ -3592,11 +3589,11 @@ "stages" : [ { - "read_count" : 1545, + "reads" : 1545, "stage" : "final" }, { - "read_count" : 1630, + "reads" : 1630, "stage" : "demultiplexed" } ], @@ -3606,7 +3603,7 @@ "stages" : [ { - "read_count" : 170, + "reads" : 170, "stage" : "demultiplexed" } ], @@ -3616,11 +3613,11 @@ "stages" : [ { - "read_count" : 34752, + "reads" : 34752, "stage" : "final" }, { - "read_count" : 37672, + "reads" : 37672, "stage" : "demultiplexed" } ], @@ -3630,11 +3627,11 @@ "stages" : [ { - "read_count" : 1324, + "reads" : 1324, "stage" : "final" }, { - "read_count" : 1416, + "reads" : 1416, "stage" : "demultiplexed" } ], @@ -3644,11 +3641,11 @@ "stages" : [ { - "read_count" : 1590, + "reads" : 1590, "stage" : "final" }, { - "read_count" : 1663, + "reads" : 1663, "stage" : "demultiplexed" } ], @@ -3658,11 +3655,11 @@ "stages" : [ { - "read_count" : 46824, + "reads" : 46824, "stage" : "final" }, { - "read_count" : 50413, + "reads" : 50413, "stage" : "demultiplexed" } ], @@ -3679,7 +3676,7 @@ "stages" : [ { - "read_count" : 31484, + "reads" : 31484, "stage" : "final" } ], @@ -3689,7 +3686,7 @@ "stages" : [ { - "read_count" : 24076, + "reads" : 24076, "stage" : "final" } ], @@ -3699,7 +3696,7 @@ "stages" : [ { - "read_count" : 35619, + "reads" : 35619, "stage" : "final" } ], @@ -3709,7 +3706,7 @@ "stages" : [ { - "read_count" : 33465, + "reads" : 33465, "stage" : "final" } ], @@ -3719,7 +3716,7 @@ "stages" : [ { - "read_count" : 32066, + "reads" : 32066, "stage" : "final" } ], @@ -3729,7 +3726,7 @@ "stages" : [ { - "read_count" : 38609, + "reads" : 38609, "stage" : "final" } ], @@ -3739,7 +3736,7 @@ "stages" : [ { - "read_count" : 48414, + "reads" : 48414, "stage" : "final" } ], @@ -3749,7 +3746,7 @@ "stages" : [ { - "read_count" : 36695, + "reads" : 36695, "stage" : "final" } ], @@ -3759,7 +3756,7 @@ "stages" : [ { - "read_count" : 25447, + "reads" : 25447, "stage" : "final" } ], @@ -3769,7 +3766,7 @@ "stages" : [ { - "read_count" : 21610, + "reads" : 21610, "stage" : "final" } ], @@ -3779,7 +3776,7 @@ "stages" : [ { - "read_count" : 42576, + "reads" : 42576, "stage" : "final" } ], @@ -3789,7 +3786,7 @@ "stages" : [ { - "read_count" : 49627, + "reads" : 49627, "stage" : "final" } ], @@ -3799,7 +3796,7 @@ "stages" : [ { - "read_count" : 45595, + "reads" : 45595, "stage" : "final" } ], @@ -3809,7 +3806,7 @@ "stages" : [ { - "read_count" : 17913, + "reads" : 17913, "stage" : "final" } ], @@ -3819,7 +3816,7 @@ "stages" : [ { - "read_count" : 42252, + "reads" : 42252, "stage" : "final" } ], @@ -3829,7 +3826,7 @@ "stages" : [ { - "read_count" : 49641, + "reads" : 49641, "stage" : "final" } ], @@ -3839,7 +3836,7 @@ "stages" : [ { - "read_count" : 49953, + "reads" : 49953, "stage" : "final" } ], @@ -3849,7 +3846,7 @@ "stages" : [ { - "read_count" : 33844, + "reads" : 33844, "stage" : "final" } ], @@ -3859,7 +3856,7 @@ "stages" : [ { - "read_count" : 25697, + "reads" : 25697, "stage" : "final" } ], @@ -3869,7 +3866,7 @@ "stages" : [ { - "read_count" : 46915, + "reads" : 46915, "stage" : "final" } ], @@ -3879,7 +3876,7 @@ "stages" : [ { - "read_count" : 49966, + "reads" : 49966, "stage" : "final" } ], @@ -3889,7 +3886,7 @@ "stages" : [ { - "read_count" : 38480, + "reads" : 38480, "stage" : "final" } ], @@ -3899,7 +3896,7 @@ "stages" : [ { - "read_count" : 18960, + "reads" : 18960, "stage" : "final" } ], @@ -3909,7 +3906,7 @@ "stages" : [ { - "read_count" : 33183, + "reads" : 33183, "stage" : "final" } ], @@ -3919,7 +3916,7 @@ "stages" : [ { - "read_count" : 31147, + "reads" : 31147, "stage" : "final" } ], @@ -3929,7 +3926,7 @@ "stages" : [ { - "read_count" : 35366, + "reads" : 35366, "stage" : "final" } ], @@ -3939,7 +3936,7 @@ "stages" : [ { - "read_count" : 29611, + "reads" : 29611, "stage" : "final" } ], @@ -3949,7 +3946,7 @@ "stages" : [ { - "read_count" : 27075, + "reads" : 27075, "stage" : "final" } ], @@ -3959,7 +3956,7 @@ "stages" : [ { - "read_count" : 36178, + "reads" : 36178, "stage" : "final" } ], @@ -3969,7 +3966,7 @@ "stages" : [ { - "read_count" : 28161, + "reads" : 28161, "stage" : "final" } ], @@ -3979,7 +3976,7 @@ "stages" : [ { - "read_count" : 48791, + "reads" : 48791, "stage" : "final" } ], @@ -3989,7 +3986,7 @@ "stages" : [ { - "read_count" : 15826, + "reads" : 15826, "stage" : "final" } ], @@ -3999,7 +3996,7 @@ "stages" : [ { - "read_count" : 43173, + "reads" : 43173, "stage" : "final" } ], @@ -4009,7 +4006,7 @@ "stages" : [ { - "read_count" : 49946, + "reads" : 49946, "stage" : "final" } ], @@ -4019,7 +4016,7 @@ "stages" : [ { - "read_count" : 45402, + "reads" : 45402, "stage" : "final" } ], @@ -4029,7 +4026,7 @@ "stages" : [ { - "read_count" : 29636, + "reads" : 29636, "stage" : "final" } ], @@ -4039,7 +4036,7 @@ "stages" : [ { - "read_count" : 47034, + "reads" : 47034, "stage" : "final" } ], @@ -4049,7 +4046,7 @@ "stages" : [ { - "read_count" : 49955, + "reads" : 49955, "stage" : "final" } ], @@ -4059,7 +4056,7 @@ "stages" : [ { - "read_count" : 16463, + "reads" : 16463, "stage" : "final" } ], @@ -4069,7 +4066,7 @@ "stages" : [ { - "read_count" : 49802, + "reads" : 49802, "stage" : "final" } ], @@ -4079,7 +4076,7 @@ "stages" : [ { - "read_count" : 24539, + "reads" : 24539, "stage" : "final" } ], @@ -4089,7 +4086,7 @@ "stages" : [ { - "read_count" : 41530, + "reads" : 41530, "stage" : "final" } ], @@ -4099,7 +4096,7 @@ "stages" : [ { - "read_count" : 42184, + "reads" : 42184, "stage" : "final" } ], @@ -4109,7 +4106,7 @@ "stages" : [ { - "read_count" : 28057, + "reads" : 28057, "stage" : "final" } ], @@ -4119,7 +4116,7 @@ "stages" : [ { - "read_count" : 27730, + "reads" : 27730, "stage" : "final" } ], @@ -4129,7 +4126,7 @@ "stages" : [ { - "read_count" : 49338, + "reads" : 49338, "stage" : "final" } ], @@ -4139,7 +4136,7 @@ "stages" : [ { - "read_count" : 44481, + "reads" : 44481, "stage" : "final" } ], @@ -4149,7 +4146,7 @@ "stages" : [ { - "read_count" : 49365, + "reads" : 49365, "stage" : "final" } ], @@ -4159,7 +4156,7 @@ "stages" : [ { - "read_count" : 39009, + "reads" : 39009, "stage" : "final" } ], @@ -4169,7 +4166,7 @@ "stages" : [ { - "read_count" : 37407, + "reads" : 37407, "stage" : "final" } ], @@ -4179,7 +4176,7 @@ "stages" : [ { - "read_count" : 29934, + "reads" : 29934, "stage" : "final" } ], @@ -4189,7 +4186,7 @@ "stages" : [ { - "read_count" : 49971, + "reads" : 49971, "stage" : "final" } ], @@ -4199,7 +4196,7 @@ "stages" : [ { - "read_count" : 23924, + "reads" : 23924, "stage" : "final" } ], @@ -4209,7 +4206,7 @@ "stages" : [ { - "read_count" : 29713, + "reads" : 29713, "stage" : "final" } ], @@ -4219,7 +4216,7 @@ "stages" : [ { - "read_count" : 38625, + "reads" : 38625, "stage" : "final" } ], @@ -4229,7 +4226,7 @@ "stages" : [ { - "read_count" : 49969, + "reads" : 49969, "stage" : "final" } ], @@ -4239,7 +4236,7 @@ "stages" : [ { - "read_count" : 45069, + "reads" : 45069, "stage" : "final" } ], @@ -4249,7 +4246,7 @@ "stages" : [ { - "read_count" : 24050, + "reads" : 24050, "stage" : "final" } ], @@ -4259,7 +4256,7 @@ "stages" : [ { - "read_count" : 41999, + "reads" : 41999, "stage" : "final" } ], @@ -4269,7 +4266,7 @@ "stages" : [ { - "read_count" : 48335, + "reads" : 48335, "stage" : "final" } ], @@ -4279,7 +4276,7 @@ "stages" : [ { - "read_count" : 41343, + "reads" : 41343, "stage" : "final" } ], @@ -4289,7 +4286,7 @@ "stages" : [ { - "read_count" : 49944, + "reads" : 49944, "stage" : "final" } ], @@ -4299,7 +4296,7 @@ "stages" : [ { - "read_count" : 37382, + "reads" : 37382, "stage" : "final" } ], @@ -4309,7 +4306,7 @@ "stages" : [ { - "read_count" : 44271, + "reads" : 44271, "stage" : "final" } ], @@ -4319,7 +4316,7 @@ "stages" : [ { - "read_count" : 24451, + "reads" : 24451, "stage" : "final" } ], @@ -4329,7 +4326,7 @@ "stages" : [ { - "read_count" : 49746, + "reads" : 49746, "stage" : "final" } ], @@ -4339,7 +4336,7 @@ "stages" : [ { - "read_count" : 49910, + "reads" : 49910, "stage" : "final" } ], @@ -4349,7 +4346,7 @@ "stages" : [ { - "read_count" : 25672, + "reads" : 25672, "stage" : "final" } ], @@ -4359,7 +4356,7 @@ "stages" : [ { - "read_count" : 35612, + "reads" : 35612, "stage" : "final" } ], @@ -4369,7 +4366,7 @@ "stages" : [ { - "read_count" : 49786, + "reads" : 49786, "stage" : "final" } ], @@ -4379,7 +4376,7 @@ "stages" : [ { - "read_count" : 29564, + "reads" : 29564, "stage" : "final" } ], @@ -4389,7 +4386,7 @@ "stages" : [ { - "read_count" : 21816, + "reads" : 21816, "stage" : "final" } ], @@ -4399,7 +4396,7 @@ "stages" : [ { - "read_count" : 36326, + "reads" : 36326, "stage" : "final" } ], @@ -4409,7 +4406,7 @@ "stages" : [ { - "read_count" : 29426, + "reads" : 29426, "stage" : "final" } ], @@ -4419,7 +4416,7 @@ "stages" : [ { - "read_count" : 31697, + "reads" : 31697, "stage" : "final" } ], @@ -4429,7 +4426,7 @@ "stages" : [ { - "read_count" : 44365, + "reads" : 44365, "stage" : "final" } ], @@ -4439,7 +4436,7 @@ "stages" : [ { - "read_count" : 5984, + "reads" : 5984, "stage" : "final" } ], @@ -4449,7 +4446,7 @@ "stages" : [ { - "read_count" : 37749, + "reads" : 37749, "stage" : "final" } ], @@ -4459,7 +4456,7 @@ "stages" : [ { - "read_count" : 46063, + "reads" : 46063, "stage" : "final" } ], @@ -4469,7 +4466,7 @@ "stages" : [ { - "read_count" : 37213, + "reads" : 37213, "stage" : "final" } ], @@ -4479,7 +4476,7 @@ "stages" : [ { - "read_count" : 43031, + "reads" : 43031, "stage" : "final" } ], @@ -4489,7 +4486,7 @@ "stages" : [ { - "read_count" : 14142, + "reads" : 14142, "stage" : "final" } ], @@ -4499,7 +4496,7 @@ "stages" : [ { - "read_count" : 49745, + "reads" : 49745, "stage" : "final" } ], @@ -4509,7 +4506,7 @@ "stages" : [ { - "read_count" : 34260, + "reads" : 34260, "stage" : "final" } ], @@ -4519,7 +4516,7 @@ "stages" : [ { - "read_count" : 30666, + "reads" : 30666, "stage" : "final" } ], @@ -4529,7 +4526,7 @@ "stages" : [ { - "read_count" : 47489, + "reads" : 47489, "stage" : "final" } ], @@ -4539,7 +4536,7 @@ "stages" : [ { - "read_count" : 49972, + "reads" : 49972, "stage" : "final" } ], @@ -4549,7 +4546,7 @@ "stages" : [ { - "read_count" : 37605, + "reads" : 37605, "stage" : "final" } ], @@ -4559,7 +4556,7 @@ "stages" : [ { - "read_count" : 19230, + "reads" : 19230, "stage" : "final" } ], @@ -4569,7 +4566,7 @@ "stages" : [ { - "read_count" : 49701, + "reads" : 49701, "stage" : "final" } ], @@ -4579,7 +4576,7 @@ "stages" : [ { - "read_count" : 41271, + "reads" : 41271, "stage" : "final" } ], @@ -4589,7 +4586,7 @@ "stages" : [ { - "read_count" : 32967, + "reads" : 32967, "stage" : "final" } ], @@ -4599,7 +4596,7 @@ "stages" : [ { - "read_count" : 3634, + "reads" : 3634, "stage" : "final" } ], @@ -4609,7 +4606,7 @@ "stages" : [ { - "read_count" : 28109, + "reads" : 28109, "stage" : "final" } ], @@ -4619,7 +4616,7 @@ "stages" : [ { - "read_count" : 37013, + "reads" : 37013, "stage" : "final" } ], @@ -4629,7 +4626,7 @@ "stages" : [ { - "read_count" : 29147, + "reads" : 29147, "stage" : "final" } ], @@ -4639,7 +4636,7 @@ "stages" : [ { - "read_count" : 34162, + "reads" : 34162, "stage" : "final" } ], @@ -4649,7 +4646,7 @@ "stages" : [ { - "read_count" : 49728, + "reads" : 49728, "stage" : "final" } ], @@ -4659,7 +4656,7 @@ "stages" : [ { - "read_count" : 49740, + "reads" : 49740, "stage" : "final" } ], diff --git a/tests/data/minimum_pmo_example.json.gz b/tests/data/minimum_pmo_example.json.gz index 29c670f..be9231f 100644 Binary files a/tests/data/minimum_pmo_example.json.gz and b/tests/data/minimum_pmo_example.json.gz differ diff --git a/tests/data/minimum_pmo_example_2.json b/tests/data/minimum_pmo_example_2.json index 2ece80c..50673cd 100644 --- a/tests/data/minimum_pmo_example_2.json +++ b/tests/data/minimum_pmo_example_2.json @@ -2,8 +2,21 @@ "bioinformatics_methods_info" : [ { - "additional_methods" : + "methods" : [ + { + "additional_argument" : + [ + "--bamExtractTrimToRegion", + "--bed /tank/data/plasmodium/falciparum/beds/targeted_panels/heome1/heome1_Pf3D7_withPrimers.bed", + "--genomeDir /tank/data/genomes/plasmodium/genomes/pf/genomes/", + "--primaryGenome Pf3D7", + "--bam bams/{SAMPLE}.sorted.bam" + ], + "program" : "PathWeaver BamExtractPathwaysFromRegion", + "program_description" : "Extract reads from a bam file for a specific genomic locatioon and then assembles local haplotypes for that region", + "program_version" : "1.0.0-dev" + }, { "additional_argument" : [ @@ -22,35 +35,7 @@ "program_description" : "Compare across samples for each target to create population level identifiers and do post artifact cleanup", "program_version" : "1.0.0-dev" } - ], - "demultiplexing_method" : - { - "additional_argument" : - [ - "--bamExtractTrimToRegion", - "--bed /tank/data/plasmodium/falciparum/beds/targeted_panels/heome1/heome1_Pf3D7_withPrimers.bed", - "--genomeDir /tank/data/genomes/plasmodium/genomes/pf/genomes/", - "--primaryGenome Pf3D7", - "--bam bams/{SAMPLE}.sorted.bam" - ], - "program" : "PathWeaver BamExtractPathwaysFromRegion", - "program_description" : "Extract reads from a bam file for a specific genomic locatioon and then assembles local haplotypes for that region", - "program_version" : "1.0.0-dev" - }, - "denoising_method" : - { - "additional_argument" : - [ - "--bamExtractTrimToRegion", - "--bed /tank/data/plasmodium/falciparum/beds/targeted_panels/heome1/heome1_Pf3D7_withPrimers.bed", - "--genomeDir /tank/data/genomes/plasmodium/genomes/pf/genomes/", - "--primaryGenome Pf3D7", - "--bam bams/{SAMPLE}.sorted.bam" - ], - "program" : "PathWeaver BamExtractPathwaysFromRegion", - "program_description" : "Extract reads from a bam file for a specific genomic locatioon and then assembles local haplotypes for that region", - "program_version" : "1.0.0-dev" - } + ] } ], "bioinformatics_run_info" : @@ -2165,13 +2150,13 @@ "library_sample_info" : [ { - "library_sample_name" : "5tbx", + "library_sample_name" : "5tbx_lib_name", "panel_id" : 0, "sequencing_info_id" : 0, "specimen_id" : 0 }, { - "library_sample_name" : "XUC009", + "library_sample_name" : "XUC009_lib_name", "panel_id" : 0, "sequencing_info_id" : 0, "specimen_id" : 1 @@ -2294,7 +2279,7 @@ ], "pmo_header" : { - "creation_date" : "2025-07-22", + "creation_date" : "2025-11-03", "generation_method" : { "program_name" : "elucidator combingallintopmojson", diff --git a/tests/data/minimum_pmo_example_2.json.gz b/tests/data/minimum_pmo_example_2.json.gz index 57f0864..9ef4aba 100644 Binary files a/tests/data/minimum_pmo_example_2.json.gz and b/tests/data/minimum_pmo_example_2.json.gz differ diff --git a/tests/data/minimum_pmo_example_2_for_library_sample_dup_testing.json b/tests/data/minimum_pmo_example_2_for_library_sample_dup_testing.json new file mode 100644 index 0000000..50673cd --- /dev/null +++ b/tests/data/minimum_pmo_example_2_for_library_sample_dup_testing.json @@ -0,0 +1,8495 @@ +{ + "bioinformatics_methods_info" : + [ + { + "methods" : + [ + { + "additional_argument" : + [ + "--bamExtractTrimToRegion", + "--bed /tank/data/plasmodium/falciparum/beds/targeted_panels/heome1/heome1_Pf3D7_withPrimers.bed", + "--genomeDir /tank/data/genomes/plasmodium/genomes/pf/genomes/", + "--primaryGenome Pf3D7", + "--bam bams/{SAMPLE}.sorted.bam" + ], + "program" : "PathWeaver BamExtractPathwaysFromRegion", + "program_description" : "Extract reads from a bam file for a specific genomic locatioon and then assembles local haplotypes for that region", + "program_version" : "1.0.0-dev" + }, + { + "additional_argument" : + [ + "--overWriteDir", + "--fracCutOff 0.005", + "--dout popClusteringTrimmedParagon", + "--replicateMinTotalReadCutOff 10", + "--clusterCutOff 5", + "--pat _heome1", + "--numThreads 10", + "--groupingsFile /tank/data/plasmodium/falciparum/pfdata/metadata/meta.tab.txt", + "--genome2bit /tank/data/genomes/plasmodium/genomes/pf/genomes/Pf3D7.2bit", + "--trimBedFnp /tank/data/plasmodium/falciparum/beds/targeted_panels/heome1/heome1_Pf3D7_inserts_trimmed1.bed" + ], + "program" : "PathWeaver runProcessClustersOnRecon", + "program_description" : "Compare across samples for each target to create population level identifiers and do post artifact cleanup", + "program_version" : "1.0.0-dev" + } + ] + } + ], + "bioinformatics_run_info" : + [ + { + "bioinformatics_methods_id" : 0, + "bioinformatics_run_name" : "PathWeaver-Heome1", + "run_date" : "2024-09-03" + } + ], + "detected_microhaplotypes" : + [ + { + "bioinformatics_run_id" : 0, + "library_samples" : + [ + { + "library_sample_id" : 1, + "target_results" : + [ + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 289 + } + ], + "mhaps_target_id" : 2 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 333 + } + ], + "mhaps_target_id" : 47 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 480 + } + ], + "mhaps_target_id" : 99 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 427 + } + ], + "mhaps_target_id" : 76 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 181 + } + ], + "mhaps_target_id" : 98 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 352 + } + ], + "mhaps_target_id" : 21 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 333 + } + ], + "mhaps_target_id" : 74 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 302 + } + ], + "mhaps_target_id" : 97 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 299 + } + ], + "mhaps_target_id" : 96 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 230 + } + ], + "mhaps_target_id" : 95 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 268 + } + ], + "mhaps_target_id" : 94 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 301 + } + ], + "mhaps_target_id" : 30 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 271 + } + ], + "mhaps_target_id" : 46 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 260 + } + ], + "mhaps_target_id" : 87 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 358 + } + ], + "mhaps_target_id" : 85 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 329 + } + ], + "mhaps_target_id" : 84 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 305 + } + ], + "mhaps_target_id" : 80 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 208 + } + ], + "mhaps_target_id" : 79 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 360 + } + ], + "mhaps_target_id" : 81 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 311 + } + ], + "mhaps_target_id" : 82 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 377 + } + ], + "mhaps_target_id" : 72 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 446 + } + ], + "mhaps_target_id" : 16 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 361 + } + ], + "mhaps_target_id" : 71 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 324 + } + ], + "mhaps_target_id" : 77 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 282 + } + ], + "mhaps_target_id" : 69 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 208 + } + ], + "mhaps_target_id" : 66 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 408 + } + ], + "mhaps_target_id" : 63 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 286 + } + ], + "mhaps_target_id" : 68 + }, + { + "mhaps" : + [ + { + "mhap_id" : 2, + "reads" : 363 + } + ], + "mhaps_target_id" : 62 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 387 + } + ], + "mhaps_target_id" : 61 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 362 + } + ], + "mhaps_target_id" : 51 + }, + { + "mhaps" : + [ + { + "mhap_id" : 2, + "reads" : 316 + } + ], + "mhaps_target_id" : 50 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 356 + } + ], + "mhaps_target_id" : 31 + }, + { + "mhaps" : + [ + { + "mhap_id" : 2, + "reads" : 374 + } + ], + "mhaps_target_id" : 49 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 317 + } + ], + "mhaps_target_id" : 35 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 288 + } + ], + "mhaps_target_id" : 48 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 354 + } + ], + "mhaps_target_id" : 43 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 441 + } + ], + "mhaps_target_id" : 33 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 385 + } + ], + "mhaps_target_id" : 67 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 156 + } + ], + "mhaps_target_id" : 37 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 391 + } + ], + "mhaps_target_id" : 3 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 469 + } + ], + "mhaps_target_id" : 14 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 276 + } + ], + "mhaps_target_id" : 32 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 441 + } + ], + "mhaps_target_id" : 86 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 395 + } + ], + "mhaps_target_id" : 11 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 305 + } + ], + "mhaps_target_id" : 28 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 346 + } + ], + "mhaps_target_id" : 26 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 326 + } + ], + "mhaps_target_id" : 59 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 382 + } + ], + "mhaps_target_id" : 27 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 433 + } + ], + "mhaps_target_id" : 88 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 310 + } + ], + "mhaps_target_id" : 64 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 333 + } + ], + "mhaps_target_id" : 8 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 350 + } + ], + "mhaps_target_id" : 19 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 257 + } + ], + "mhaps_target_id" : 36 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 235 + } + ], + "mhaps_target_id" : 65 + }, + { + "mhaps" : + [ + { + "mhap_id" : 2, + "reads" : 348 + } + ], + "mhaps_target_id" : 25 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 335 + } + ], + "mhaps_target_id" : 58 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 262 + } + ], + "mhaps_target_id" : 73 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 385 + } + ], + "mhaps_target_id" : 20 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 289 + } + ], + "mhaps_target_id" : 93 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 366 + } + ], + "mhaps_target_id" : 24 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 270 + } + ], + "mhaps_target_id" : 83 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 346 + } + ], + "mhaps_target_id" : 70 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 293 + } + ], + "mhaps_target_id" : 23 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 356 + } + ], + "mhaps_target_id" : 57 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 316 + } + ], + "mhaps_target_id" : 17 + }, + { + "mhaps" : + [ + { + "mhap_id" : 2, + "reads" : 358 + } + ], + "mhaps_target_id" : 15 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 366 + } + ], + "mhaps_target_id" : 60 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 420 + } + ], + "mhaps_target_id" : 18 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 341 + } + ], + "mhaps_target_id" : 6 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 392 + } + ], + "mhaps_target_id" : 13 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 327 + } + ], + "mhaps_target_id" : 9 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 351 + } + ], + "mhaps_target_id" : 53 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 287 + } + ], + "mhaps_target_id" : 92 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 420 + } + ], + "mhaps_target_id" : 12 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 405 + } + ], + "mhaps_target_id" : 22 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 399 + } + ], + "mhaps_target_id" : 45 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 395 + } + ], + "mhaps_target_id" : 75 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 370 + } + ], + "mhaps_target_id" : 7 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 418 + } + ], + "mhaps_target_id" : 40 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 261 + } + ], + "mhaps_target_id" : 5 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 439 + } + ], + "mhaps_target_id" : 41 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 251 + } + ], + "mhaps_target_id" : 52 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 308 + } + ], + "mhaps_target_id" : 38 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 398 + } + ], + "mhaps_target_id" : 89 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 300 + } + ], + "mhaps_target_id" : 4 + }, + { + "mhaps" : + [ + { + "mhap_id" : 2, + "reads" : 329 + } + ], + "mhaps_target_id" : 0 + }, + { + "mhaps" : + [ + { + "mhap_id" : 2, + "reads" : 250 + } + ], + "mhaps_target_id" : 90 + }, + { + "mhaps" : + [ + { + "mhap_id" : 2, + "reads" : 340 + } + ], + "mhaps_target_id" : 78 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 303 + } + ], + "mhaps_target_id" : 42 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 389 + } + ], + "mhaps_target_id" : 34 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 302 + } + ], + "mhaps_target_id" : 91 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 338 + } + ], + "mhaps_target_id" : 1 + }, + { + "mhaps" : + [ + { + "mhap_id" : 2, + "reads" : 357 + } + ], + "mhaps_target_id" : 39 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 300 + } + ], + "mhaps_target_id" : 29 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 293 + } + ], + "mhaps_target_id" : 44 + }, + { + "mhaps" : + [ + { + "mhap_id" : 2, + "reads" : 358 + } + ], + "mhaps_target_id" : 56 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 290 + } + ], + "mhaps_target_id" : 10 + } + ] + }, + { + "library_sample_id" : 0, + "target_results" : + [ + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1191 + } + ], + "mhaps_target_id" : 2 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1129 + } + ], + "mhaps_target_id" : 54 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 920 + }, + { + "mhap_id" : 0, + "reads" : 291 + } + ], + "mhaps_target_id" : 21 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1039 + } + ], + "mhaps_target_id" : 74 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1151 + } + ], + "mhaps_target_id" : 97 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1177 + } + ], + "mhaps_target_id" : 96 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1221 + } + ], + "mhaps_target_id" : 95 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1076 + } + ], + "mhaps_target_id" : 94 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1090 + } + ], + "mhaps_target_id" : 30 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1137 + } + ], + "mhaps_target_id" : 46 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 884 + } + ], + "mhaps_target_id" : 87 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1417 + } + ], + "mhaps_target_id" : 85 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1282 + } + ], + "mhaps_target_id" : 84 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1295 + } + ], + "mhaps_target_id" : 80 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1488 + } + ], + "mhaps_target_id" : 79 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1455 + } + ], + "mhaps_target_id" : 81 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1375 + } + ], + "mhaps_target_id" : 82 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 928 + } + ], + "mhaps_target_id" : 98 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1439 + } + ], + "mhaps_target_id" : 76 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1315 + } + ], + "mhaps_target_id" : 72 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1434 + } + ], + "mhaps_target_id" : 16 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 997 + } + ], + "mhaps_target_id" : 71 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1208 + } + ], + "mhaps_target_id" : 77 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 788 + }, + { + "mhap_id" : 0, + "reads" : 321 + } + ], + "mhaps_target_id" : 69 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1354 + } + ], + "mhaps_target_id" : 66 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1234 + } + ], + "mhaps_target_id" : 63 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1117 + } + ], + "mhaps_target_id" : 68 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 833 + }, + { + "mhap_id" : 1, + "reads" : 336 + } + ], + "mhaps_target_id" : 62 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1451 + } + ], + "mhaps_target_id" : 61 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1283 + } + ], + "mhaps_target_id" : 51 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 915 + }, + { + "mhap_id" : 1, + "reads" : 267 + } + ], + "mhaps_target_id" : 50 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1209 + } + ], + "mhaps_target_id" : 31 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 2063 + }, + { + "mhap_id" : 1, + "reads" : 450 + } + ], + "mhaps_target_id" : 49 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1319 + } + ], + "mhaps_target_id" : 35 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1196 + } + ], + "mhaps_target_id" : 48 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1507 + } + ], + "mhaps_target_id" : 99 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 843 + }, + { + "mhap_id" : 1, + "reads" : 269 + } + ], + "mhaps_target_id" : 47 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1411 + } + ], + "mhaps_target_id" : 43 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1334 + } + ], + "mhaps_target_id" : 33 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 937 + }, + { + "mhap_id" : 1, + "reads" : 318 + } + ], + "mhaps_target_id" : 67 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1066 + } + ], + "mhaps_target_id" : 37 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1128 + } + ], + "mhaps_target_id" : 3 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1500 + } + ], + "mhaps_target_id" : 14 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1276 + } + ], + "mhaps_target_id" : 32 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1370 + } + ], + "mhaps_target_id" : 86 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 1011 + }, + { + "mhap_id" : 0, + "reads" : 347 + } + ], + "mhaps_target_id" : 11 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1288 + } + ], + "mhaps_target_id" : 28 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 955 + }, + { + "mhap_id" : 0, + "reads" : 313 + } + ], + "mhaps_target_id" : 26 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1171 + } + ], + "mhaps_target_id" : 59 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1197 + } + ], + "mhaps_target_id" : 27 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 952 + }, + { + "mhap_id" : 0, + "reads" : 403 + } + ], + "mhaps_target_id" : 88 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1100 + } + ], + "mhaps_target_id" : 64 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1133 + } + ], + "mhaps_target_id" : 8 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1293 + } + ], + "mhaps_target_id" : 19 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1257 + } + ], + "mhaps_target_id" : 36 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1338 + } + ], + "mhaps_target_id" : 65 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 934 + }, + { + "mhap_id" : 1, + "reads" : 318 + } + ], + "mhaps_target_id" : 25 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1371 + } + ], + "mhaps_target_id" : 58 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 933 + }, + { + "mhap_id" : 1, + "reads" : 338 + } + ], + "mhaps_target_id" : 73 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 712 + }, + { + "mhap_id" : 0, + "reads" : 289 + } + ], + "mhaps_target_id" : 20 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1413 + } + ], + "mhaps_target_id" : 93 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1196 + } + ], + "mhaps_target_id" : 24 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1348 + } + ], + "mhaps_target_id" : 83 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1207 + } + ], + "mhaps_target_id" : 70 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 909 + } + ], + "mhaps_target_id" : 23 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1135 + } + ], + "mhaps_target_id" : 57 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 951 + }, + { + "mhap_id" : 0, + "reads" : 318 + } + ], + "mhaps_target_id" : 17 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 964 + }, + { + "mhap_id" : 1, + "reads" : 294 + } + ], + "mhaps_target_id" : 15 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1397 + } + ], + "mhaps_target_id" : 60 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1251 + } + ], + "mhaps_target_id" : 18 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 910 + }, + { + "mhap_id" : 0, + "reads" : 337 + } + ], + "mhaps_target_id" : 6 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1039 + }, + { + "mhap_id" : 1, + "reads" : 325 + } + ], + "mhaps_target_id" : 13 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1489 + } + ], + "mhaps_target_id" : 9 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 814 + }, + { + "mhap_id" : 0, + "reads" : 267 + } + ], + "mhaps_target_id" : 53 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1186 + } + ], + "mhaps_target_id" : 92 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1496 + } + ], + "mhaps_target_id" : 12 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1454 + } + ], + "mhaps_target_id" : 22 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1224 + } + ], + "mhaps_target_id" : 45 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1429 + } + ], + "mhaps_target_id" : 75 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1097 + }, + { + "mhap_id" : 1, + "reads" : 350 + } + ], + "mhaps_target_id" : 7 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1493 + } + ], + "mhaps_target_id" : 40 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1024 + } + ], + "mhaps_target_id" : 5 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1365 + } + ], + "mhaps_target_id" : 41 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1097 + } + ], + "mhaps_target_id" : 52 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 819 + }, + { + "mhap_id" : 0, + "reads" : 273 + } + ], + "mhaps_target_id" : 38 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1121 + } + ], + "mhaps_target_id" : 89 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1227 + } + ], + "mhaps_target_id" : 4 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1058 + }, + { + "mhap_id" : 1, + "reads" : 245 + } + ], + "mhaps_target_id" : 0 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 732 + }, + { + "mhap_id" : 1, + "reads" : 253 + } + ], + "mhaps_target_id" : 90 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 883 + }, + { + "mhap_id" : 1, + "reads" : 299 + } + ], + "mhaps_target_id" : 78 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1076 + } + ], + "mhaps_target_id" : 42 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 991 + } + ], + "mhaps_target_id" : 34 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1158 + } + ], + "mhaps_target_id" : 91 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1341 + } + ], + "mhaps_target_id" : 1 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 992 + }, + { + "mhap_id" : 1, + "reads" : 302 + } + ], + "mhaps_target_id" : 39 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1184 + } + ], + "mhaps_target_id" : 29 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1304 + } + ], + "mhaps_target_id" : 44 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 810 + }, + { + "mhap_id" : 1, + "reads" : 364 + } + ], + "mhaps_target_id" : 56 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1356 + } + ], + "mhaps_target_id" : 55 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1109 + } + ], + "mhaps_target_id" : 10 + } + ] + } + ] + } + ], + "library_sample_info" : + [ + { + "library_sample_name" : "5tbx_lib_name", + "panel_id" : 0, + "sequencing_info_id" : 0, + "specimen_id" : 0 + }, + { + "library_sample_name" : "XUC009_lib_name", + "panel_id" : 0, + "sequencing_info_id" : 0, + "specimen_id" : 1 + } + ], + "panel_info" : + [ + { + "panel_name" : "heomev1", + "reactions" : + [ + { + "panel_targets" : + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99 + ], + "reaction_name" : "full" + } + ] + } + ], + "pmo_header" : + { + "creation_date" : "2025-11-03", + "generation_method" : + { + "program_name" : "elucidator combingallintopmojson", + "program_version" : "1.1.1" + }, + "pmo_version" : "v1.0.0" + }, + "project_info" : + [ + { + "project_description" : "PathWeaver assemblies of Heome1 from large collection of global samples", + "project_name" : "PathWeaverHeome1" + } + ], + "representative_microhaplotypes" : + { + "targets" : + [ + { + "mhap_location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 145621, + "genome_id" : 0, + "start" : 145448, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "AACTTTTTTTATTTTTTTTGTCAATAGATAAATGATCAATATTTTCTATATTTAATCTATCAAGAATTTTTATATATCTATTATTTCTTTCTTCGATGGATAAATTATATGAATCAATATCCTTTCTTTCATCAACAAACTTTTTTATTGTTAACTCCATTTTTTTATTTA" + }, + { + "seq" : "AACTTTTTTTATTTTTTTTGTCAATAGATAAATGATCAATATTTTCTATATTTAATCTATCAAGAATTTTTATATATCTATTATTTCTTTCTTCGATGGATAAATTATAAGAATCAATATCCTTTCTTTCATCAACAAACTTTTTTATTGTTAACTCCATTTTTTTATTTA" + }, + { + "seq" : "AACTTTTTTTATTTTTTTTGTCAATAGATAAATGATCAATATTTTCTATATTTAATCTATCAAGTATTTTTATATATCTATTATTTCTTTCTTCGATGGATAAATTATAAGAATCAATATCCTTTCTTTCATCAACAAACTTTTTTATTGTTAACTCCATTTTTTTATTTA" + } + ], + "target_id" : 79 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_02_v3", + "end" : 109981, + "genome_id" : 0, + "start" : 109806, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "ACTCATGTTCATGAGCTAATTTCCCACAAATACTCCATAACGAACTTTTCATTTTATTAAATTTATCTCTCAAAAGAGAATGACTATAATGCCATATTAAATACATATCTTTCCTTTCTAATGTTCCTGGTAATTCTATTATCATTCTTTCTAAATCTTCTTCTGTAAGTTTT" + }, + { + "seq" : "ACTTATGTTCATGAGCTAATTTCCCACAAATACTCCATAACGAACTTTTCATTTTATTAAATTTATCTCTCAAAAGAGAATGACTATAATGCCATATTAAATACATATCTTTCCTTTCTAATTTTCCTGGTAATTCTATTATCATTCTTTCTAAATCTTCTTCTGTAAGTTTT" + } + ], + "target_id" : 98 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 3214477, + "genome_id" : 0, + "start" : 3214350, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TCGTTTTGAATTGTCAGAATTTAAAATGACGGAGGATTGTTATACAAAAATGTGGTTTGATTTTATGAGTGATTTTGGAATAGCTACAATGAATGAAACCGAACATACTAGATCTTTTTATGGCT" + }, + { + "seq" : "TCGTTTTGCATTGTCAGAATTTAAAATGACGGAGGATTGTTATACAAAAATGTGGTTTGATTTTATGAGTGATTTTGGAATAGCTACAATGAATGAAAGCGAACATACTAGATCTTTTTATGGCT" + } + ], + "target_id" : 99 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_02_v3", + "end" : 278335, + "genome_id" : 0, + "start" : 278164, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "GAATTTTCTTTTTTATGACTTTCTTCTCCTTGTTCAGAAGCTTCTTTTTCATCCTTTTTTTCTGCTGCGTCAGATAAATTGGGGGAAGCACTTGAAGATTCATTTCCTCCAGGAGTATCACTAGTACTTACTCCGTCCATATTTGGTTTTTCTTCCCTTAGAATTCTCA" + }, + { + "seq" : "GAATTTTCTTTTTTATGACTTTCTTCTCCTTGTTCAGAAGCTTCTTTTTCATCCTTTTTTTCTGCTGCGTCAGATAAATTGGGGGAAGCACTTGAAGATTCATTTCCTCCAGGAGTATTACTAGTACTTACTCCGTCCACATTTGGTTTTTCTTCCCCTAGAATTCTCA" + } + ], + "target_id" : 42 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_02_v3", + "end" : 470675, + "genome_id" : 0, + "start" : 470491, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TACACATAAGAAAAAAAAAATTTATTTATTCTTACAAAAAGAATATAAAAACAAAATTTTGGGATTTATAAATTTTTATAAACGTATAACACACAAAATAAAAAAGAAACAAGAAAATGTTCATGATAAAATCACTTTTTTAAAATGTCTAAAGGAACTCTTTTTTGTCACACATACAAATA" + }, + { + "seq" : "TACACATAAGAAAAAAAAAATTTATTTATTCTTACAAAAAGAATATAAAAACAAAATTTTGGGATTTATAAATTTTTATAAACATATAACACACAAAATAAAAAAGAAACAAGAAAATGTTCATGATAAAATCACTTTTTTAAAATGTCTAAAGGAACTCTTTTTTGTCACACATACAAATG" + } + ], + "target_id" : 78 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_02_v3", + "end" : 805941, + "genome_id" : 0, + "start" : 805821, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TAATTATGAAGACAGTCTCACGACTTCATGTTATATTGATGAAAACAAATCCGATTCATCCTATGAAACTGAAGAAAATGTAAACTATAATAATAAAATGGGTAAACGCAAAAATTTA" + } + ], + "target_id" : 95 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 85645, + "genome_id" : 0, + "start" : 85439, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "ACTTTTTAACACTATCATTATAATTATGTCTTTTATTTTCATATTTTTCTTTATAATAATTTATATCCTTTAATTTTTCTTTCATCAAATTTAACCATTTATCATTTAAATTCTCTTTTTCCACAGCTCCAGCATTTTTATTTATATCATCTACAACTACATCTTCCTTCACATAATTATTTATATAAAAATTATTATCATCTA" + }, + { + "seq" : "ACTTTTTAACACTATCATTATAATTATGTCTTTTATTTTCATATTTTTCTTTATAATAATTTATATCCTTTAATTTTTCTTTCATCAAATTTAACCATTTATCATTTAAATTCTCTTTTTCCACAGCTCCAGCATTTTTATTTATATCATCTACAACTACATCTTCCTTCACATAATTATTTATATAAAAACTATTATCATCTA" + } + ], + "target_id" : 73 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 142180, + "genome_id" : 0, + "start" : 141962, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "GCATTTATAACAAAATATCAGAAGATGGAAAAACCAAAAATAGCCTACTTAGCGATATATCAAAATTATTTAAAATTGTAAAAGAAAGCAAATTAATATTTGTAACTGGATTTTTATTAACAACCTTGTCAGCAATTGTAGATTCATACATTCCAATTTTTCTATCCAAAACGGTATCTTTTGTAATGGAAAGAAAAAAATTTACATTTCTTAAAA" + }, + { + "seq" : "GCATTTATAACAAAATATCAGAAGATGGAAAAACCAAAAATAGCCTACTTAGCGATATATCAAAATTATTTAAAATTGTAAAAGAAAGCAAATTAATATTTGTAACTGGATTTTTATTAACAACCTTGTCAGCAATTGTCGATTCATACATTCCAATTTTTTTATCCAAAACGGTATCTTTTGTAATGGAAAGAAAAAGTTTTACATTTCTTAAAA" + } + ], + "target_id" : 37 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 221494, + "genome_id" : 0, + "start" : 221362, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TGAACTATTTACGACATTAAACACACTGGAACATTTTTCCATTTTACAAATTTTTTTTTCAATATCATTTTCATAATCTAATTCGTCTTTAGGTTTATTAGCAGAGCCAGGCTTTATTCTAACTTGAATA" + }, + { + "seq" : "TGAACTATTTACGACATTAAACACACTGGAACATTTTTCCATTTTACAAATTTTTTTTTCAATATCATTTTCATAATCTAATTGGTCTTTAGGTTTATCAGCAGAGCCAGGCTTTATTCTAACTTGAATA" + } + ], + "target_id" : 57 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 618580, + "genome_id" : 0, + "start" : 618395, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "AAAAGAGATTATAGAAGTGGAAAGAAGACATATATAATACAAGCTCTACGATATGCATTAACATATTATAGCAAACTTTCAAATAGAAAGGAAGCACCTAAAGTAACCATGTTATTTACAGATGGAAATGATCCCTATGAATCAGAAAAGGGATTACAGGATATTGCATTATTATATAGAAAA" + }, + { + "seq" : "AAAAGAGATTATAGAAGTGGAAAGAAGACATATATAATACAAGCTCTACGATATGCATTAACATATTATAGCAAACTTTCAAATAGAAAGGAAGCACCTAAAGTAACCATGTTATTTACAGATGGAAATGATTCCTATGAATCAGAAAAGGGATTACAGGATATTGCATTATTATATAGAAAA" + } + ], + "target_id" : 94 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 654174, + "genome_id" : 0, + "start" : 654001, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TATTTTTATAATTTCCTTTCATCTTATTTTTTTCTTTATATTTTTTTTTTTCATATGTAAGATTTATATAATCACTTTCGCTTTTTCTAACGCTTTTGAACTTTTTAAATGTACTTCCTTCATTATTTCTAATTCTCGTAAACACAAGAATAAATATTTTGATATATCTTA" + }, + { + "seq" : "TATTTTTATAATTTCCTTTCATCTTATTTTTTTCTTTATATTTTTTTTTTTCATATGTAAGATTTATATAATCACTTTCGCTTTTTCTAACGCTTTTGAACTTTTTAAATGTACTTCGTTCATTATTTCTAATTCTCGTAAACACAAGAATAAATATTTTGATATATCTTA" + } + ], + "target_id" : 90 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 850988, + "genome_id" : 0, + "start" : 850815, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "CATATTCGTTTCAGCGTTTATAGAGCGAATATTATCGATTATGTCTATATTCCCTAAAATATGTACATAATAATCTCCATTTAATAATGTTACTTTCTTAAGAATATTTTTGTATATGACATCAAAGATATTACGAGTTAACAATACATCTACATTTCGGTCTATTATATA" + }, + { + "seq" : "CATATTCGTTTCAGCGTTTATAGAGCGAAAATTATCGATTATGTCTATATTCCCTAAAATATGTACATAATAATCTCCATTTAATAATGTTACTTTCTTAAGAATATTTTTGTATATGACATCAAAGATATTACGAGTTAACAATACATCTACATTTCGGTCTATTATATA" + } + ], + "target_id" : 48 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 180114, + "genome_id" : 0, + "start" : 179902, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TTTCGATATAGGACATATAGATCATAATATAAACGAATATGAAAAACGTTTTACAATTTTAAAAGAATCTTTTTTTCATAAGTCATTAAAATTTATGGATTATATATGGATTGTTATAATGAAACGAGAAAATAATACATTTTTAAATAGATTAAGAAATGAACAAGTGAGGGCATCGTTATTAATAACAGGTATTATAAACGAAAATAT" + }, + { + "seq" : "TTTCGATACAGGACATATAGATCATAATATAAACGAATATGAAAAACATTTTACAATTTTAAAAAAATCTTTTTTTCATAAGTCATTAAAATTTATGGATTATATATGGATTGTTATAATGAAACGAGATAATAATACATTTTTAAATAGATTAAGAAATGAACAAGTGAGGGCATCGTTATTAATAACAGGTATTATAAACGAAAATAT" + } + ], + "target_id" : 82 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 110086, + "genome_id" : 0, + "start" : 109911, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "ATATTTGTATATATTCTAGTAAACACTTTAGGTACACCTGCAAGTACCTCAACATCTGAATTATATAAATCTTTAGAAAAACAACTAATATCCTTACTCCATATATTTATTTTTATACCAAGAATAACAGCCATATAAACCAAAACTCTCTCAAATGCATGTGATACAGGTAA" + }, + { + "seq" : "ATATTTGTATATATTCTAGTAAACACTTTAGGTACACCTGCAAGTACCTCAACATCTGAATTATATAAATCTTTAGAAAAACAACTAATATCCTTACTCCATATATTTATTTTTATACCAAGAATAACAGCCATATAAACCAAAACTCTCTCAAATACATGTGATACAGGTAA" + } + ], + "target_id" : 74 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 133700, + "genome_id" : 0, + "start" : 133490, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TAGATTTTTTCCCTCCAACAGATGCACTCACTTTAGGTGTTTTAAACTTAGTTGTATGTTGACCCCCCTCATTATTTAGTTTACCTTTATTTAATCTTTTACCAGCAGTAGAAACTACATTCTCTCGATTATCATTACCTACTTCAGTCTTTACAATTGTAGGAGGTGTTTTAACATGATCATCCCCTCCATGAGGAGTAACCCTTAA" + }, + { + "seq" : "TAGATTTTTTCCCTTCAGCAGGTGCCCTCACTTTAGGTGTTTTAAACTTAGTTGTATGTGGAACCCCATCTTTATTTGCTTTACCTCTATTTAATCTTTTACCAGCAGTAGAAACTACATTCTCTCGATTATCATTACCTACTTCAGTCTTTACAATTGTAGGAGGTGTTTTAACATGATTATCCCCTCCATGAGGAGTAACCCTTAA" + } + ], + "target_id" : 43 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 141944, + "genome_id" : 0, + "start" : 141777, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TTTCAAATTATATAAAGACAGAACTAAGAAATATAAACCTGCAAGAAATAAAAAACAATATAATAAAAATATTTAAAGAATTCAAATCTGCACACAAAGAAATTAAAAAAGAATCAAAACAAATTAATAAAGAATTTACCAAAATGGATGTCGTCATAAATCAAT" + }, + { + "seq" : "TTTCAAATTATATAAAGACAGAACTAAGAAATATAAACCTGCAAGAAATAAAAAACAATATAATAAAAATATTTAAAGAATTCGAATCTGCACACAAAGAAATTAAAAAAGAATCAAAACAAATTAATAAAGAATTTACCAAAATGGATGTCGTCATAAATCAAT" + }, + { + "seq" : "TTTCAAATTATATAAAGACAGAACTAAGAAATATAAACCTGCAAGAAATAAAAAACAATATAATAAAAATATTTAAAGAATTCGAATCTGCACACAAAGAAATTAAAAAAGAATCAGAACAAATTAATAAAGAATTTACCAAAATGGATGTCGTCATAAATCAAT" + } + ], + "target_id" : 70 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 415825, + "genome_id" : 0, + "start" : 415652, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TGCTAGTTTTGCTGCTCATGAAAATAAAAGCTACTCATATGAAGGTCGTACATATAAAATGTATCCACCTGAATTTAATACATTAATGTTAAAAGCAGATTATTTTATAAGAGATATAAATACACGAGGATTTAGAGAAGTAAATATGGATTCATGTAAATCATATACAAA" + } + ], + "target_id" : 15 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 544860, + "genome_id" : 0, + "start" : 544717, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TATATTTTACATAATAACAATCTTTCATGTAATGATTATAATTTAAATAATCTTTCATTTAATATAAATAAATATATAAATGAAGAAAAAGGCAAAAATAAAAAAACAAATCAACATATATCAGAACAATTTTTATTTCCT" + }, + { + "seq" : "TATATTTTACATAATAACAATCCTTCATGTAATGATTATAATTTAAATAATCTTTCATTTAATATAAATAAATATATAAATGAAGAAAAAGGCAAAAATAAAAAAACAAATCAACATATATCAGAACAATTTTTATTTCCT" + } + ], + "target_id" : 96 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 748435, + "genome_id" : 0, + "start" : 748229, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "AAATGTAATTCCCTAGATATGAAATATTTTCGTGCAGTTACAACATATGTGAATGAATCAAAATATGAAAAATTGAAATATAAGAGATGTAAATATTTAAACAAAGAAACTGTGGATAATGTAAATGATATGCCTAATTCTAAAAAATTACAAAATGTTGTAGTTATGGGAAGAACAAACTGGGAAAGCATTCCAAAAAAATTT" + } + ], + "target_id" : 72 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 748695, + "genome_id" : 0, + "start" : 748532, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "ATAGTTTTACTTGGGAAATTAAATTACTATAAATGTTTTATTATAGGAGGTTCCGTTGTTTATCAAGAATTTTTAGAAAAGAAATTAATAAAAAAAATATATTTTACTAGAATAAATAGTACATATGAATGTGATGTATTTTTTCCAGAAATAAATGAAAA" + } + ], + "target_id" : 58 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 802712, + "genome_id" : 0, + "start" : 802524, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "AAATTATTATAGAAAGATAGAAGTTATTTTATATGAATGGTTATATTTTCATTATAATAATGTATATAACACCAAAGTAAAAAAACAAAAATTTATATTTACCCAACAAAAAAAAGACATATCAAAACATAACAAGTTATATCTTCAGTATGATCAAAATAAAAGAAATTCTGAAATAGAACATAC" + }, + { + "seq" : "AAATTATTATAGAAAGATAGAAGTTATTTTATATGAATGGTTATATTTTCATTATAATAATGTATATAACACCAAAGTAAAAAAACAAAAATTTATATTTACCCAACAAAAAAAAGACATATCAAAACATAACAAGTTATATCTTCAGTATGATCAAAATAAAAGAAATTCTGAAATAGAACGTAC" + } + ], + "target_id" : 92 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 1037843, + "genome_id" : 0, + "start" : 1037633, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TCTTATAAAGTTAATGAAATTGCTCAACTTAATTTAACCATAGAAAGAGATTTAACAGATGATGCTGTGATTTTTGCACACTCACTTTATTTACCATTTGAAAAAGAAGAAATGTGGTGGATCGTTATCGGAATTAAAAAAATGAACTTACTTTTATCTATCAAAAAATTATCTTTATTGAAAAGTATCAATAATATAAAAATTAATT" + }, + { + "seq" : "TCTTATAAAGTTAATGAAATAGCTCAACTTAATTTAACCATAGAAAGAGATTTAACAGATGATGCTGTGATTTTTGCACACTCACTTTATTTACCATTTGAAAAAGAAGAAATGTGGTGGATCGTTATCGGAATTAAAAAAATGAACTTACTTTTATCTATCAAAAAATTATCTTTATTGAAAAGTGTCAATAATATAAAAATTAATT" + } + ], + "target_id" : 52 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 1100830, + "genome_id" : 0, + "start" : 1100655, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "ATGTTCTAAGATCTGATGGAAAAATATCTGATCAAGGTTCTCAGAAAAGTCCTCCTAAGGAACTTTCTAATAAACAAATGACTCCTGCTCAACGTAAGAATGTGCCACATTTTGTTGAAAGAAGAGGCTATGGAAATAGTCATGTTAGGGGTAACGCACTTAAAAAAATTAGT" + }, + { + "seq" : "ATGTTCTAAGATCTGGTGGAAAAATATCTGATCAAGGTTCTCAGAAAAGTCCTCCTAAGGAACTTTCTAATAAACAAATGACTCCTGCTCAACGTAAGAATGTGCCACATTTTGTTGAAAGAAGAGGCTATGGAAATAGTCATGTTAGGGGTAACTCACTTAAAAAAATTAGT" + } + ], + "target_id" : 81 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 181672, + "genome_id" : 0, + "start" : 181556, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TCATTCTTTTTTTAACTAAAACTATTCATCTCAAAAATATAAGATATTTTATATGACGAATGCCATTGTATTTTTTGTTACGTAAAACCTGACTTCTTCAAGGAAAACACATGC" + }, + { + "seq" : "TCATTCTTTTTTTAACGAAAACTATTCATCTCAAAAATATAAGATATTTTATATGACGAATGCCATTGTATTTTTTGTTACGTAAAACCTGACTTCTTCAAGGAAAACACATGC" + } + ], + "target_id" : 64 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 1102577, + "genome_id" : 0, + "start" : 1102388, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "AAGAAATAAATAAAATAATTTATACAAACGAATTTAATAATTATGAAGATAAAATATATGAAGATGTCAAATATATTAAAGAACAGGAAAATGAAATATACTTGAGAGATGGAATTGAAGAGTTACATATGGATGAACCAAGTCGGGATGTATATGTTGATGATGAAAATGATTATATATTTTTAGA" + }, + { + "seq" : "AAGAAATAAATAAAATAATTTATACAAACGAATTTAATAATTATGAAGATAAAATATATGAAGATGTCAAATATATTAAAGAACAGGAAAATGAAATGTACTTGAGAGATGGAATTGAAGAGTTACATATGGATGAACCAAGTGGGGATGTATATTTTGATGATCAAGATGATTATATATTTTTAGA" + } + ], + "target_id" : 67 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 1113603, + "genome_id" : 0, + "start" : 1113449, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "AATCATCTAAGAATAAACTTTTTTGTTTAAACCATTTATTGAACATTTCACTTAAATGTGATTCAATTTTTTTTTCTGAGCTTTCCATAATTTGATTACATCTATTCAATTTGTTTGTATAAGTATTAGGTCTTATTATTCTTTTACGTTTT" + }, + { + "seq" : "AATCATCTAAGAATAAACTTTTTTGTTTAAACCATTTATTGAACATTTCACTTAAATGTGATTCAATTTTTTTTTCTGAGATTTCCATAATTTGATTACATCTATTCAATTTGTTTGTATAATTATTAGGTCTTATTATTCTTTTACGTTTT" + }, + { + "seq" : "AATCATCTAAGAATAAACTTTTTTGTTTAAACCATTTATTGAACATTTCACTTAAATGTGATTCAATTTTTTTTTCTGAGCTTTCCATAATTTGATTACATCTATTCAATTTGTTTGTATAATTATTAGGTCTTATTATTCTTTTACGTTTT" + } + ], + "target_id" : 61 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 1128672, + "genome_id" : 0, + "start" : 1128488, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TTGAAAGAGTTAAAGGGAAAAATACAAAATTATTTAGATAATGATATTCAATTGAGTAATGGAAAACTCCTATATAAGGATACATGGGATAGAATTGATTTGAAGTTTTGTAGAACGGTAGCAATAGAAGAGGCAGAATACACTAGAAAATTTTATAGCTTAATTAATGATAAACATACAAT" + }, + { + "seq" : "TTGAAAGAATTAAAGGGAAAAATACAAAATTATTTAGATAATGATATTCAATTGAGTAATGGAAAACTCCTATATAAGGATACATGGGATAGAATTGATTTGAAGTTTTGTAGAACGATAGCAATAGAAGAGGCAGAATACACTAGAAAATTTTATAGCTTAATTAATGATAAACATACAAT" + } + ], + "target_id" : 54 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_05_v3", + "end" : 329549, + "genome_id" : 0, + "start" : 329377, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TTGTGATGTATATAAATTCCCTTCTTCTTTATGTACCACATTATAAGAACCACGAACATATTCTTTTAAAAATGTTAACTTACTTCCAACAAATATATAATCAAAACAAAATTTTTTATTGTCGAAATGTTCTCGTTCAACCCCATTCATATTTCGGATATCATTATTTA" + } + ], + "target_id" : 33 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_05_v3", + "end" : 958220, + "genome_id" : 0, + "start" : 958058, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TTTATATCATTTGTATGTGCTGTATTATCAGGAGGAACATTACCTTTTTTTATATCTGTGTTTGGTGTAATATTAAAGAACATGAATTTAGGTGATGATATTAATCCTATAATATTATCATTAGTATCTATAGGTTTAGTACAATTTATATTATCAATGA" + }, + { + "seq" : "TTTATATCATTTGTATGTGCTGTATTATCAGGAGGAACATTACCTTTTTTTATATCTGTGTTTGGTGTAATATTAAAGAACATGTATTTAGGTGATGATATTAATCCTATAATATTATCATTAGTATCTATAGGTTTAGTACAATTTATATTATCAATGA" + } + ], + "target_id" : 49 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_05_v3", + "end" : 958505, + "genome_id" : 0, + "start" : 958388, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "ACGAAATTTATAACAATTTTTACATATGCCAGTTCCTTTTTAGGGTTATTTATTTGGTCATTAATAAAAAATGCACGTTTGACTTTATGTATTACTTGCGTTTTTCCGTTAATTT" + }, + { + "seq" : "ACGAAATTTATAACAATTTTTACATATGCCAGTTCCTTTTTAGGTTTATATATTTGGTCATTAATAAAAAATGCACGTTTGACTTTATGTATTACTTGCGTTTTTCCGTTAATTT" + } + ], + "target_id" : 46 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_05_v3", + "end" : 1042280, + "genome_id" : 0, + "start" : 1042161, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TATTATTACGGTACCATTATATGATTCTTTAGGTCCTCAATCAAGTAGATTTATATTAGATCAAACACAGATGGAAACTATTGTATGTAACAAGACATGTGCTCGTAATTTATTTAA" + } + ], + "target_id" : 4 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_05_v3", + "end" : 1309743, + "genome_id" : 0, + "start" : 1309608, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "AATGAAGAAAATATGTCTGACAGACCAAACAGTTTATCTCATGATAAGGATCAACACCACGATGAAACACATAATGAACAATATGGATTATACGTAAAAGAAATGGAATCTAAAGTTGAAAAATTAGCTGAAA" + } + ], + "target_id" : 27 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_06_v3", + "end" : 145500, + "genome_id" : 0, + "start" : 145342, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "ATTTGAATAAAATTTATCATTCACAATATTATATTTTTGTTTCTTCTTTTTTCCCATAATATTATTATTTTGTTCACAATATATGTTCATGTGTCCCCTCTTTTTCTGTAAAATATTAAAATGTTTCTTACTATGCTTTTCTTCATTTTTAATAAC" + } + ], + "target_id" : 44 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_06_v3", + "end" : 532377, + "genome_id" : 0, + "start" : 532194, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "GAACAATTGTTAAACACCAAATTGGGTGAAACAAAAAACCACCTGAACAGAACCCCATTTATACCTGAATCGGTCATACGAGAAAGGAAATTACGCCAAGAAAAAGCGCAATCCACAAACAACATGTTCGATTCAACAAACGCAGATAGTATTACTTCCCCATGTGATCCAACGAATGCCA" + }, + { + "seq" : "GAACAATTGCTAAACACCAAATTGGGTGAAACAAAAAACCACCTGAACAGAACCCCATTTATACCTGAATCGGTCATACGAGAAAGGAAATTACGCCAAGAAAAAGCGCAATCCACAAACAACATGTTCGATTCAACAAACGCAGATAGTATTACTTCCCCATGTGATCCAACGAATGCCA" + } + ], + "target_id" : 39 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 496142, + "genome_id" : 0, + "start" : 495970, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "GAAAGTAGCGAATACCCTGTAGAAATTGTTAGTAAACCTCTGGAATGGTTATTGTTTCATGATTTTACTACGCCTGGTGTTACTGCACTACCTGAAGAATTACCATTAACGAGCTATAAAGTAACACCTACTTCTATTAATGTATTGCATAAAGAGGGCCCCACTTTAAA" + }, + { + "seq" : "GAAAGTAGCGAATACCCTGTAGAAATTGTTAGTAAACCTCTGGAATGGTTATTGTTTCATGATTTTACTACGCCTGATGTTACTGCACTACCTGAAGAATTACCATTAACGAGCTATAAAGTAACACCTACTTCTATTAATGTATTGCATAAAGAGGGCCCCACTTTAAA" + } + ], + "target_id" : 62 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 165421, + "genome_id" : 0, + "start" : 165234, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TAATTATCATTATTATTATAATTATCATTGTTATTATTATTGTTGTTGTTGTTATTATTATTTCCTTTATTATTTAATATGCATTTTTTAATATCCATTTTATTATTTATCATATCAGTACTTTTATTTTTCTCCTTTTCGTTTATAGCTTTTTCCCTATGCACCCTGAATTTCCCATTTTTTTT" + }, + { + "seq" : "TCATTATTATTATTATTATAATTATCATTTTTATTATTATTGTTGTTATTATTATTTCCTTTATTATTTAATATGCATTTTTTAATATCCATTTTATTATTTATCATATCAGTACTTTTATTTTTCTCCTTTTCGTTTATAGCTTTTTCCCTATGCACCCTGAATTTCCCATTTTTTTT" + } + ], + "target_id" : 29 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 166166, + "genome_id" : 0, + "start" : 166034, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TTTTATTTGAACTTTTTTATTTTCTTCATTATCAATATAAAAACAACAATCTTTAAATTTATGAAATAACACCCAACTTAATGTATAAAATATAATTTCTATAAAATCAAAATTAATGTAATAACCTAAT" + } + ], + "target_id" : 59 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 299004, + "genome_id" : 0, + "start" : 298885, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "CATTCAATATGGTTCTGAGCTTAAAGATGTTATCCTTATACATGTTTCTATTCTCATTCGTTATAACATCAATGACATATAAAACATATCTCTCAAATATTTTGTGAACAATATTAT" + } + ], + "target_id" : 41 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 730087, + "genome_id" : 0, + "start" : 729974, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TTTATGTGAAATTTTAAATAAAGAGAAATTGTTTGTGCACACATCTATTTTGGGATATATATCTAATCGTTTATGTTACGATATAAAAAAATATAGATGTTCATTATTGAA" + }, + { + "seq" : "TTTATGTGAAATTTTAAATAAAGAGAAATTGTTTGTGCACACATCTATTTTGGGATATATATCTAATCGTTTATGTTACGATATAGAAAAATATAGATGTTCATTATTGAA" + } + ], + "target_id" : 75 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 1149584, + "genome_id" : 0, + "start" : 1149414, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "AATATTTAATATTTTTGTTTAGGAAGTTTTCAAAATTGATGACATTGATAACCGTTTTTATTAAATCGCTTGGGTTGTTTGTGTGTTCCATTGTAGAAGACATAATTTTAAGAATGTGTTTTTGTGTTATTAAACAAAACTTTGTTACTATATGGAATCGTATGTTAT" + }, + { + "seq" : "AATATTTAATATTTTTGTTTAGGAAGTTTTCAAAATTGATGACATTGATAACCGTTTTTATTAAATCGCTTGGGTTGTTTGTGTGTTCTATAGTAGAAGACATAATTTTAAGAATGTGTTTTTGTGTTATTAAACAAAACTTTGTTACTATATGGAATCGTATGTTAT" + }, + { + "seq" : "AATATTTAATATTTTTGTTTAGGAAGTTTTCAAAATTGATGACATTGATAACCGTTTTTATTAAATCGCTTGGGTTGTTTGTGTGTTCTATTGTAGAAGACATAATTTTAAGAATGTGTTTTTGTGTTATTAAACAAAACTTTGTTACTATATGGAATCGTATGTTAT" + } + ], + "target_id" : 45 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 1358910, + "genome_id" : 0, + "start" : 1358693, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "AGAATCTCAACTTTTGCTTAAAAAAAATGATAACAAATATAATTCTAAATTTTGTAATGATTTGAAGAATAGTTTTTTAGATTATGGACATCTTGCTATGGGAAATGATATGGATTTTGGAGGTTATTCAACTAAGGCAGAAAACAAAATTCAAGAAGTTTTTAAAGGGGCTCATGGGAAAATAAGTGAACATGAAATTAAAAATTTTAGAAAAG" + } + ], + "target_id" : 35 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 102499, + "genome_id" : 0, + "start" : 102325, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TAATTTTCTCAAGTAACATATTTTTGTCTTGACTACTTTCATCTGTAAATGGAACGAATACTCTTTGCTTACCTGCAAAAAGGACAACTGACATATGAGCCTTATCCTTACTTACATTCGAATTAAGGACCATAGATTCTAAAAATGGTATAGTTCCTTTTAACCAATAATC" + } + ], + "target_id" : 86 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 336646, + "genome_id" : 0, + "start" : 336467, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "AAATTTACAGAAAAATTTAGATTTAATCATATGGCTAAAAAAGAATATAAAAGAAGGAGAAGCTTTAATTTCTGATATACCCACATCAAGTTTTTTAAGGTGTACTACAAATTATAAATTTGTATTGCATCCACAATATGAAGATAGTAACTTGAGAAAGAGGGTTCAAGATTATTA" + }, + { + "seq" : "AAATTTACAGAAAAATTTAGATTTAATCATATGGCTAAAAAAGAATATAAAAGAAGGAGAAGCTTTAATTTCTGATATACCTACATCAAGTTTTTTAAGGTGTACTACAAATTATAAATTTGTATTGCATCCCCAATATGAAGATAGTAACTTGAGAAAGAGGGTTCAAGATTATTA" + } + ], + "target_id" : 85 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 339356, + "genome_id" : 0, + "start" : 339167, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TCATTACTATTCTTTATCCATATATATGTTGTTATATCAGTTGCACCTGAGGGTGGATTCAAACCTCTTGCTTGTATAATATATGCACGTACTACTAAATTACGTGTTAATCTATATTCTCTTACTAAATCATCACATTTCTTTATCATTTCTTTTTTTAAATACATTGTCTTTTCATCATACACAT" + }, + { + "seq" : "TCATTACTATTCTTTATCCATATATATGTTGTTATATCAGTTGCACCGGATGGTGGATTCAAACCTCTTGCTTGTATAATATATGCACGTACTACTAAATTACGTGTTAATCTATATTCTCTTACTAAATCACCACATTTCTTTATCATTTCTTTTTTTAAATACATTGTCTTTTCATCATACACAT" + } + ], + "target_id" : 80 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 550217, + "genome_id" : 0, + "start" : 549992, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "ACTAACAAATTATGATAATCTAGTTTATGATATAAAAAATTATTTAGAACAAAGATTAAATTTTCTTGTATTAAATGGAATACCTCGTTATAGGATACTATTTGATATTGGATTAGGATTTGCGAAGAAACATGATCAATCTATTAAACTCTTACAAAATATACATGTATATGATGAGTATCCACTTTTTATTGGATATTCAAGAAAAAGATTTATTGCCCAT" + } + ], + "target_id" : 93 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 512387, + "genome_id" : 0, + "start" : 512198, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TAAAGAAATTAAGTGAAGATGATTATGAAAAAAATTGTAGACATTTAAATTATTTAATAGATAATATAAGAGAATTATTTTTTAGTTCTAAAAATATTAGAATTCCTGATTTAGCTCGTAAATATTTGTGGGATAATCAAATTGAAGGAAATCTCAAAAAATTAATATCTTCAGCAACAAAATATAA" + }, + { + "seq" : "TAAAGAAATTAAGTGAAGATGATTATGAAAAAAATTGTAGACATTTAAATTATTTAATAGATAATATAAGAGAATTATTTTTTAGTTCTAAAAATATTAGAATTCTTGATGTAGCTCGTAAATATTTGTGGGATAATCAAATTGAAGGAAATCTCAAAAAATTAATATCTTCAGAAACAAAAAATAA" + } + ], + "target_id" : 38 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 933142, + "genome_id" : 0, + "start" : 933022, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TGGTTTTAATGAGGATGATTTAGATAAAGAGTTTTTTTTTGATTTGCCGTCGATTAGTGGTTTTTCAAGTAATGGTATGAAAAAATGTAATTTAAGAAATTTATTAAAAAGATTAGAA" + } + ], + "target_id" : 3 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 1269455, + "genome_id" : 0, + "start" : 1269319, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "CCTTAGCATTAATAACACTTATAGGAGGTATTTATATGACTAAAGGAAGAAAAAGTTCCATATGGCATAATTCAGAAATAAATGATACACTTTATGATGTTGTTCTTGAAACAGTGAATCAAGGAAATACAGAT" + }, + { + "seq" : "CCTTAGCATTAATAACACTTATAGGAGGTATTTATATGACTAAAGGAAGAAAAAGTTCCATATGGCATAATTCAGAAATAAATGATACACTTTATGATATTGTTCTTGAAACAGTGAATCAAGGAAATACAGAT" + } + ], + "target_id" : 32 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 1344818, + "genome_id" : 0, + "start" : 1344685, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "AATATATCTTTTACTTTATCTGTAAGTTTCATGGAATCTATTATTTCATCTGCATATTTTATTTTTGCCTCGTTTATATATTTACCTGCTTTTAATTTACATAAACATTTTTCTATTAAGTTTTGATCATT" + } + ], + "target_id" : 30 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 1363086, + "genome_id" : 0, + "start" : 1362890, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "GTAAAAAAAAAGGGTTTTCCTAAAAAACCATCGGTTCATGGTTTTACACAGATGGTGTTTTTGCAGCTTACTAATATAGTCATGTATGCCCTTTGTTTTATGAGCCTTTCACAAATATATGCTTATTTCGAAAACGTGAATTTTTATATTATAAGCAATTTTCGTTTCCTTGAGAGATATTTTAATATATTCAA" + }, + { + "seq" : "GTAAAAAAAAAGGGTTTTCCTAAAAAACCATCGGTTCATGGTTTTACACAGATGGTGTTTTTGAAGATTACTAATATAGTCATGTATGCCCTTTGTTTTATGAGCCTTTCACAAATATATGCTTATTTCGAAAACGTGAATTTTTATATTATAAGCAATTTTCGTTTCCTTGAGAGATATTTTAATATATTCAA" + }, + { + "seq" : "GTAAACAAAAAGGGTTTTCCTAAAAAACCATTGGTTCATGGTTTTACACAGATGGTGTTTTTGCAGCTTACTAATATAGTCATGTATGCCCTTTGTTTTATGGACCTTTCACAAATATATGCTTATTTCGAAAACGTGAATTTTTATATTATAAGCAATTTTCGTTTCCTTGAGAGATATTTTAATATATTCAA" + } + ], + "target_id" : 28 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 517091, + "genome_id" : 0, + "start" : 516927, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TGTTTGTGTAATAAAGGATATTTCTATAATGTCAAGAAACAACAATGTGAAGAATGTCCCATAGGTTTTTATTGTCCAGAAATAAGCTCAAAAAATAATATAAAAAAACCTATCAAATGTCCTAAAAATTCCTCAAGTATAAAAAAAGGTATGTATATATCA" + }, + { + "seq" : "TGTTTGTGTAATAAAGGATATTTCTATAATGTCAAGAAACAACAATGTAAAGAATGTCCCATAGGTTTTTATTGTCCAGAAATAAGCTCAAAAAATAATATAAAAAAACCTATCAAATGTCCTAAAAATTCCTCAAGTATAAAAAAAGGTATGTATATATCA" + }, + { + "seq" : "TGTTTGTGTAATAAAGGATATTTCTATAATGTCAAGAAACAACAATGTAAAGAATGTCCCATAGGTTTTTATTGTCCAAAAATAAGCTCAAAAAATAATATAAAAAAACCTATCAAATGTCCTAAAAATTCCTCAAGTATAAAAAAAGGTATGTATATATCA" + } + ], + "target_id" : 26 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 596333, + "genome_id" : 0, + "start" : 596132, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TTATTTTCGTTTTTTTTTATATTATCATTATAATTATATGTATTTACAAAGAATTTATTATTATTTGTTTCTTTATAATTATATTCATTTTCTTTATTACTTAAGGAATTTATATTTGATAAAACTTGTTGTACTCTTTCTTCTTTGTTGATGTGAATATTTGAGAAAATAATAATAAATGTAATGACTAGGGCTATGT" + } + ], + "target_id" : 25 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 685791, + "genome_id" : 0, + "start" : 685600, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "CAAAGGAACAAGATAATTTTTTCAATTTTTATAAAAGTAATATATATGATATGGAAAATAGAACATGTAATAATAATATATTACAATATTGTGTTATGAATAATAAATCATATTTATTTCATAATATATCATCCAAAAAAAATATATATATAAAAAAAAAGAATCATCAGTTTTCTTTATTCATATATT" + } + ], + "target_id" : 77 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 1179077, + "genome_id" : 0, + "start" : 1178893, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "CAAATTACCCTTAGCCCCAGATATGGTAAAGACATATCACTGTTATAAATTAGGAAAGCAAGCAGCTAAATTATTAGAATCTATCATTTTAAAGAAAAAGTTCGTAAGATTTAGAGTTACTGATGCTATTGATGTATATGATTTCTTTTATATAAAGAAAGTTTTATCCAGTCGTATTAAGA" + }, + { + "seq" : "CAAATTATCCTTAGCCCCAGATATGGTAAAGACATATCACTGTTATAAATTAGGAAAGCAAGCAGCTGAATTATTAGAATCTATCATTTTAAAGAAAAAGTTCGTAAGATTTAGAGTTACTGATGCTATTGATGTATATGATTTCTTTTATATAAAGAAAGTTTTATCCAGTCGTATTAAGA" + } + ], + "target_id" : 89 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 1406540, + "genome_id" : 0, + "start" : 1406404, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "AATTAATTTTAATGATGATGTTACTTTAGAAACACAATCCATGATAGCACACGGAGGGTCTTTGTCAGAAATAGAAGAAACTGGAGATTTATCTTCAGATGTTGATAGATTACTTTCATCAATCGAAACTACTC" + } + ], + "target_id" : 51 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 1437302, + "genome_id" : 0, + "start" : 1437113, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TAAAACCTGACAGCTTTGTACAGTTATATTTACCCAATTAGAATGTTCAAACATATTTAAGTGTTGCCATTCTTCAAATAATTTTTTTTCATATTCAGTTTTTGGTTGGTTTTTAAATTCTTTTGATAATGTACCTTCTGCGGATGGTATAGGGAAGTTAAAAATTTTATTACTTACTTTGTTTGAT" + } + ], + "target_id" : 87 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 531899, + "genome_id" : 0, + "start" : 531681, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "AAAGAAAGATGTTAAGAAAAAAAAGATCGATATGATAAATATATTACACATTCCTACAAATAATTATAGCATGCCAAATGAAAAAGATATAAACAGTTATGAATTTTTTGGATCTGAACCTATTGAATTATATGATGGAAAATCTAATAAGAATTGTGTTATAACTAGCCAATCTTATATTTGTATTGAAAACCCGCATGCTGCCATATTATCCGA" + }, + { + "seq" : "AAAGAAAGATGTTAAGAAAAAAAAGATCGATATGATAAATATATTACACATACCTACAAATAATTATAACATGCCAAATGAAAAAGATATAAACAGTTATGAATTTTTTGGATCTGAACCTATTGAATTATATGATGTAAAATCTAATAAGAATTGTGTTATAACTAGCCAATCTTATATTTGTATTGAAAACCCGCATGCTGCCATATTATCCGA" + }, + { + "seq" : "AAAGAAAGATGTTAAGAAAAAAAAGATCGATATGATAAATATATTACACATACCTACAAATAATTATAACATGCCAAATAAAAAAGATATAAACAGTTATGAATTTTTTGGATCTGAACCTATTGAATTATATGATGTAAAATCTAATAAGAATTGTGTTATAACTAGCCAATCTTATATTTGTATTGAAAACCCGCATGCTGCCATATTATCCGA" + } + ], + "target_id" : 24 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_10_v3", + "end" : 377208, + "genome_id" : 0, + "start" : 377094, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "ACCAAAAAATGATACCTGTACGTTTTTCTCCAGGAGAAACAAAAAAATTAGAAAGGATTCTCAAAAAAGTAGACGACTTTTTCTGTGCCAATATTAAAGCGCAATATACCTG" + } + ], + "target_id" : 63 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_10_v3", + "end" : 992543, + "genome_id" : 0, + "start" : 992370, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TTTTAAAAAAAAAAATTATGATATAAAATCTTCAATTAATAAAAGATCTATCCAGTTCTTTACAGACACTAATATAGATCATTATATAGCATATGAATATTATAAGGAGGACCGTACAGAATTTATATTAACTATTATGAATGAAAAAAATATTACTCATCAAGAAACTCA" + } + ], + "target_id" : 65 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_10_v3", + "end" : 1386868, + "genome_id" : 0, + "start" : 1386699, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "GAGAACAGGTTAAATATATTGAAGACGTGGTTTGATAATCAGGTATTTCTTTAATTAAATATTCATGATATTGTTCGTTAGATACATAAATTAATTCGTCCTCCACATTTTGCTGTTCTGTTATAATTTGTGAAGAAGCTTGGTTTGTCTTATTTGGTAATTGCTCT" + }, + { + "seq" : "GGGAACAGGTTAAATATATTGAAGACGTGGTTTGATAATCAGGTATTTCTTTAATTAAATATTCATGATATTGTTCGTTAGATACATAAATTAATTCGTCCTCCACATTTTGCTGTTCTGTTATAATTTGTGAAGAAGCTTGGTTTGTCTTATTTGGTAATTGCTCT" + } + ], + "target_id" : 34 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_10_v3", + "end" : 1399710, + "genome_id" : 0, + "start" : 1399543, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "ACATCAGAACATAGTAAAGATTTAAATAATAATGATTCAAAAAATGAATCTAGTGATATTATTTCAGAAAATAATAAATCAAATAAAGTAGAAAATCATTTTGAATCATTATCAGATTTAGAATTACTTGAAAATTCCTCACAAGATAATTTAGACAAAGATACA" + }, + { + "seq" : "ACATCAGAACATAGTAAAGATTTAAATAATAATGATTCAAAAAATGAATCTAGTGATATTATTTCAGAAAATAATAAATCAAATAAAGTACAAAATCATTTTGAATCATTATCAGATTTAGAATTACTTGAAAATTCCTCACAAGATAATTTAGACAAAGATACA" + } + ], + "target_id" : 71 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_10_v3", + "end" : 1436681, + "genome_id" : 0, + "start" : 1436478, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "GAGGAGAAACACGTTTTATCTCATAATTCATATGAGAAAACTAAAAATAATGAAAATAATAAATTTTTCGATAAGGATAAAGAGTTATCGATGTCTAATGTAAAAAATGTGTCACAAACAAATTTCAAAAGTCTTTTAAGAAATCTTGGTGTTTCAGAGAATATATTCCTTAAAGAAAATAAATTAAATAAGGAAGGGAAA" + }, + { + "seq" : "GAGAAGAAACACGTTTTATCTCATAATTCATATGAGAAAACTAAAAATAATGAAAATAATAAATTTTTCGATAAGGATAAAGAGTTAACGATGTCTAATGTAAAAAATGTGTCACAAACAAATTTCAAAAGTCTTTTAAGAAATCTTGGTGTTTCAGAGAATATATTCCTTAAAGAAAATAAATTAAATAAGGAAGGGAAA" + } + ], + "target_id" : 23 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 119692, + "genome_id" : 0, + "start" : 119485, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TTCATCCAAAAGTAATTATGTTTTTCTTGTTGATATTTTGCTTTATACAAACGAGCAAGATACTTATTATACGATTCATGCTCTTTAATTTTCTTTTCAAAAGTTTTGGTTATAATGTGTTCAAGTGATTGTAAAGTATTTTTCTTTAATTTTCTCCATATTAATCTACATGCGATTATAAGAATTCTATATTCTTTGATATTCC" + }, + { + "seq" : "TTCATCCAAGAGTAATTATGTTTTTCTTGTTGATATTTTGCTTTATACAAACGAGCAAGATACTTATTATACGATTCATGCTCTTTAATTTTCTTTTCAAAAGTTTTGGTTATAATGTGTTGAAGTGATTGTAAAGTATTTTTCTTTAATTTTCTCCATATTAATCTACATGCGATTATAAGAATTCTATATTCTTTGATATTCC" + }, + { + "seq" : "TTCATCCAAAAGTAATTATGTTTTTCTTGTTGATATTTTGCTTTATACAAACGAGCAAGATACTTATTATACGATTCATGCTCTTTAATTTTCTTTTCAAAAGTTTTGGTTATAATGTGTTGAAGTGATTGTAAAGTATTTTTCTTTAATTTTCTCCATATTAATCTACATGCGATTATAAGAATTCTATATTCTTTGATATTCC" + } + ], + "target_id" : 22 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1010037, + "genome_id" : 0, + "start" : 1009855, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "AGTTCTATCTATTTGTTTAATTGGTGTCCATGAATTTTTAGAGAAACACCACATATCAGCTAATAAGGAATTATTAACATCTAATCCTCCATGAATATATAAAAAATCATTAAAACTGAAAGAAGCATGCTTATATCTTGCACGTGGACAAATTTTATTTCCAATAAGTTCCCATTTCTT" + }, + { + "seq" : "AATTCTATCTATTTGTTTAATTGGTGTCCATGAATTTTTAGAGAAACACCACATATCAGCTAATAAGGAATTATTAACATCTAATCCTCCATGAATATATAAAAAATCATTAAAACTGAAAGAAGCATGCTTATATCTTGCACGTGGACAAATTTTATTTCCAATAAGTTCCCATTTCTT" + } + ], + "target_id" : 20 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1019084, + "genome_id" : 0, + "start" : 1018952, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TAGTGACTGTACATTTTTCATCTAATGTTCTATAGGATAAAGAATCTGAAGGACAATGCATATCATTACAAAAATAGCATGCACCTTTAAAATATAAATAAGAATGTCTTAACACAACAAAGGAATCAAA" + } + ], + "target_id" : 56 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1376371, + "genome_id" : 0, + "start" : 1376184, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TCTCATTCCTTTGAAAATATGAACTATTCAACTCATCAAGGTTTTCATATGTTATTTCATAACTGCCATCATCTGAATCCTCTTCATCACTACTACTTAAAGAATGCTCTTCTACAGTTATATCTTCATAATGATTATTTTTAGGAAAATATTCTTCAGATCTTTCTATAAATTCTGTTCCATTA" + } + ], + "target_id" : 60 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1552639, + "genome_id" : 0, + "start" : 1552429, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "ATATCGACAATTATAAAGAAAAAATAGAAAATTTTAATGAAAGATATTATGAAGATGATTTAAGTTTCTTAAACTTTCCAGGAACCATAACAAGTTATGATAAAAACCATCAAAGAGATAAAAGAAAAAACTGTTTTGAAGAATATCTAGACAATAATAATTATTTTATTGATAGTAATCTAAAGGAAGTTATAGAAAATAATATATA" + } + ], + "target_id" : 19 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 532843, + "genome_id" : 0, + "start" : 532689, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "CTTTCTTAATTCTATGAATGAAGAATATACGCATATTAATTTAAATAACTTTATACATAATGATAACAATGATAAAGACGAAAATTATACATTAGATCAGGTGGAAGAATATCCTATGACTAGTTATCAAAATAATATATACAAGGATTTTT" + }, + { + "seq" : "CTTTCTTAATTCTATGAATGAAGAATATACGCATATTAATTTAAATAACTTTATACATAATAATAACCATGATAATGACGAAAATTATACATTAGATCAGGTGGAAGGATATCCTATGACTAGTTATCAAAATAATATATACAAGGATTTTT" + } + ], + "target_id" : 40 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1751054, + "genome_id" : 0, + "start" : 1750864, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TATTAAAAACAACAAATAAATTACCAAGGTCATGGAAAAAACTCTTGTTAAATCTATCCATTAGATTTCAAACAATACCTATAGGTGGTTCTATCGAAATCATATCAAAGGATGAGAAAAATATTTCTGTGACACGATCCAGTGAATATAATGCAACAACATATGAGCATTACACATTTCCCAAATGG" + }, + { + "seq" : "TATTAAAAACAACAGATAAATTACCAAGGTCATGGAAAAAACTCTTGTTAAATCTATCCATTAGATTTCAAACAATACCTATAGGTGGTTCTATCGAAATCATATCAAAGGATGAGAAAAATATTTCTATGACACGATCCAGTGAATATAATGCAACAACATATGAGCATTACACATTTCCCAAATGG" + } + ], + "target_id" : 21 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1816424, + "genome_id" : 0, + "start" : 1816210, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TTGACTTCTCCGGGTTTGTTACATTATCATTACAACCAATATTATTAAGGTTAATATTATTTTTATCATTATTATTGTTGTTTTCATTTGTGTGGTTATATAATAACAATGATGTGTCGTCTATTGGATCATTTTGCACAAGGTCAATATCATTAGAATTATGTTTCATATTATTTGTATACATTTTTTTGTAATTATCATTTTTTCTTACT" + }, + { + "seq" : "TTGACTTCTCCGGGTTTGTTACATTATCATTACAACCAATATTATTAAGGTTAATATTATTTTTATCATTATTATTGTTGTTTTCATTTGTGTGGTTATATAATAACAATGATGTGTCGTCTATTGGATCATTTTGCACAAGGTCAATATCATTAGAATTATGTTTCCTATTATTTGTATACATTTTTTTGTAATTATCATTTTTTCTTACT" + } + ], + "target_id" : 18 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 63279, + "genome_id" : 0, + "start" : 63165, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "ATAATTTCACCTTTTGAATTACATATGTCTGTATTCAAAAATTTTATATCTCTACTCCATATATTTATCTTTACACCCAAAAACAAAGCAATGAAAAAAACAACCCTTTCAT" + }, + { + "seq" : "ATAATTTCACCTTTTGAATTACATATGTCTGTATTCAAAAATTTTATATCTCTACTCCATATATTTATCTTTACACCCAAAAACAAAGTAATGAAAAAAATAACCCTTTCAT" + } + ], + "target_id" : 69 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 660009, + "genome_id" : 0, + "start" : 659890, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "GGTCGACTTTTGGTGGTTTAACATTTTCAGCTATGAGTTTTTCGACTGATGGCAATCCTACTTTGATTAATTCCTTTAACATAAGTTTTGCGTGTTTTTTTACTTCTGATTTGATAT" + }, + { + "seq" : "GGTCGACTTTTGGTGGTTTAACATTTTCAGCTACGAGTTTTTCGACTGATGGCAATCCTACTTTGATTAATTCCTTTAACATAAGTTTTGCGTGTCTTTTTACTTCTGATTTGATAT" + } + ], + "target_id" : 16 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 684260, + "genome_id" : 0, + "start" : 684087, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "ATATCAAGATGGTAGTATTGTTTTAGATGTTAGTAGTACGAGAGATAAACTTTATGGAGAAGTTGAGTGGGAAGGATATAAATTTGAACTTGTGGATACAGGAGGTTTAGTTTTTGAACAAGAAAAGTTTTCAAAAGAAATAAAGGATCAAATTCTTATGGCTCTAAAAGA" + }, + { + "seq" : "ATATCAAGATGGTAGTATTGTTTTAGATGTTAGTAGTACGAGAGATAAACTTTATGGAGAAGTTGAGTGGGAAGGATATAAATTTGAACTTGTGGATACAGGAGGTTTAGTTTTTGAACAAGAAAAGTTTTCAAAAGAAATAAAGGATCAAATTTTTATGGCTCTAAAAGA" + } + ], + "target_id" : 14 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 943427, + "genome_id" : 0, + "start" : 943257, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "ATCAACTATAATTAAAAATAGTGGAATTATTGAAAACTTTGGAGATATTGATTATATCTTTACGGATAAAACAGGAACACTAACAGAAAATGTTATGGTGCTTAAAGTTATACATATAGGTTTTGATGTTATACATGCAGAAAATGAAAAAAATTCCATACAAGGTAA" + }, + { + "seq" : "ATCAACTATAATTAAAAATAGTGGAATTATTGAAAACTTTGGAGATATTGATTATATCTTTACGGATAAAACAGGAACATTAACAGAAAATGTTATGGTGCTTAAAGTTATACATATAGGTTTTGATGTTATACATGCAGAAAATGAAAAAAATTCCATACAAGGTAA" + } + ], + "target_id" : 91 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 1237602, + "genome_id" : 0, + "start" : 1237430, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "GTATGAACACAAAACCGAAAGAGAGTTTAAAAAAAGATCCGATTTTAATGAAGGAAGAAATAACATAATAAATGTGTCAAATGTAAAGAAAACATGTAATATAGTTAAAAATGATTTAAAGGAATCTAACGAGATAAAAACTAATATAAACACAAGTTCTTATAATTTAT" + } + ], + "target_id" : 53 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 2050313, + "genome_id" : 0, + "start" : 2050129, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TTTAAACTTTGAATCTGTTCAATTAATAACACTTCATCATTGTCTTCGCCTTTTATAATATCTCCATGATTATGTGCTCCTCTAATTAAGGTATCACTAACCTGTTGTTCATCTGTCGCATGAGAACTAGTAGATATATCTGGTTTATTTTTTTTCTTTCTTTTTGTTATTTCTAATTTTTT" + }, + { + "seq" : "TTTAAACTTTGAATCTGTTCAATTAATAACACTTCATCATTGTCTTCTCCTTTTATAATATCCCCATGATTATGTGCTCCTCTAATTAAGGTATCACTAACCTGTTGTTCATCTGTCGCATGAGAACTAGTAGATATATCTGGTTTATTTTTTTTCTTTCTTTTTGTTATTTCTAATTTTTT" + } + ], + "target_id" : 36 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 103878, + "genome_id" : 0, + "start" : 103658, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "ACTGATGTTAATGAAGGCCAAAATGGAAAAAGTTTAACACAAGAAAAAACCCTAAAACAAATTCCTTCGACATCACCAAATAATTTAGAACAAAAATTACAACAAACACATATTTCTTCTTCCCAACAAAAACATTTAATAAAAACTACTCCTACTTCAGATTCAACTACAACTTCATCAAGCTCTTCTGTTCCTCTTACAAAACAATCCCTTCATTC" + }, + { + "seq" : "ACTGATGTTAATGAAGGCCAAAATGGAAAACGTTTAACACAAGAAAAAACCCTAAAACAAATTCCTTCGACATCACCAAATAATTTAGAACAAAAATTACAACAAACACATATTTCTTCTTCCCAACAAAAACATTTAATAAAAACTACTCCTACTTCAGATTCAACTACAACTTCATCAAGCTCTTCTGTTCCTCTTACAAAACAATCCCTTCATTC" + } + ], + "target_id" : 13 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 156721, + "genome_id" : 0, + "start" : 156565, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "ATAGAGTTATTATGTTCGAATTAATGACCAGATTGTTTCGATTTTATACAAAACCAATAGACCTTATTATTACTATGAATACACACAGATATGACACACCTATATTGTTAAAACATTCAAACAGCTTACAACTTATCTTATCAAATCAACAAAA" + } + ], + "target_id" : 17 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 534367, + "genome_id" : 0, + "start" : 534214, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "GATAAAAAAAGAAAATGTAACAATCTACCTTGTGATTGTATCTTATGTAAAAAAAAGCACAATGTTTGTTATTGTAATATGTGTAAAAAGAAAGAAAAAAATATGAGAGAAGATTTATCGGTTGTAAAATATAATGAATATCCGATTAGTG" + }, + { + "seq" : "GATAAAAAAAGAAAATGTAATAATCTACTTTGTGATTGTATCTTATGTAAAAAAAAGCACAATGTTTGTTATTGTAATATGTGTAAAAAGAAAGAGAAAAATATGAGAGAAGATTTATCGGTTGTAAAATATAATGAATATCCGATTAGTG" + }, + { + "seq" : "GATAAAAAAAGAAAATGTAATAATCTACCTTGTGATTGTATCTTATGTAAAAAAAAGCACAATGTTTGTTATTGTAATATGTGTAAAAAGAAAGAAAAAAATATGAGAGAAGATTTATCGGTTGTAAAATATAATGAATATCCGATTAGTG" + } + ], + "target_id" : 84 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 1150492, + "genome_id" : 0, + "start" : 1150302, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TAAAAAAAGCAAACAAAAAGAAAAGAGAATGGAAGATTTAAGTATTGAGGAAAATTTGAAAGAGAAATTAATAAACCTAAATATTCAGAAACAGTATAGTGGTTTCCATATGAAAGAAATGGAGGAACAAAATATTCCTGAATTAAATATTCCACAACTTTCAGCTATTCATAATAGAGAAGATATGA" + }, + { + "seq" : "TAAAAAAAGCAAACAAAAAGAAAAGAGAATGGAAGATTTAAGTATTGAGGAAAATTTGAAAGAGAAATTAATAAACCTAAATATTCAGAAACAGTATAGTGGTTTCCATATGAAAGAAATGGAGGAACAAAATATTCCTGAATTAAATATTCCACAACTTTCAGCTACTCATAATAGAGAAGATATGA" + } + ], + "target_id" : 9 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 1419669, + "genome_id" : 0, + "start" : 1419542, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TGGTTTTTGTACTTTTTGTCCTTGTGTTGATATCTCTTGTTCATTTTTAGATTGAGTATCTGTTTCACTTTGTGCCTTTACCTTTGATAATACGTTTTTACCGAATAATCCTAAATTTTGGAATA" + }, + { + "seq" : "TGGTTTTTGTACTTCTTTTCCTTGTGTTGATATCTCTTGTTCATTTTTAGATTGAGTATCTGTTTCACTTTGTGCCTTTACCTTTGATAATACGTTTTTACCGAATAATCCTAAATTTTGGAATA" + } + ], + "target_id" : 8 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 1725569, + "genome_id" : 0, + "start" : 1725364, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "CCAATACAATAAATTCTACCATTTGACGTAACACCACAATTATTTCTTCTAGGTATATTTAAATTACTTGAAACATACCATACATCTCTTAAACGATCATACACCTCAGTTTCAAATAAAGCCTTATAATCATAGTTATTACCACCAAAAACGTATAAGAAATTATTCAATACAGCACTTCCAAAATAAGCTTTTTTGGTAGA" + } + ], + "target_id" : 10 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 1876533, + "genome_id" : 0, + "start" : 1876351, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TATATTTTGGTTCAGACAAATGTACGTTACATGAAATATGTGCATTATCATCAACTAAAGAAATATCTAAACTATCTGTAAAAGTATGTTTAGAACTATCATTTGAAGAGAAGTTACATCCGTGTATGACTTTTTTTTCATATTTTGGTTTTAAAACTATTTTATAATTATTATTTTTAA" + } + ], + "target_id" : 11 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 2115141, + "genome_id" : 0, + "start" : 2114974, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TCATTAAGTAAAAAATTTACGGTATCGACATTAACAGTGTAATAATTTCTTCCTAAATTTAAATGTTCTAAATAATTCAAATTTAATACGGTATTTAACCTTTCTTCAAGTATTATCATTGCATTAATTTGAAACATAAGTAAAAAATTATTAGCACTTCTAAAA" + }, + { + "seq" : "TCATTAAGTAAAAAATTTACGGTATCGACATTAACAGTGTAATAATGTCTTCCTAAATTTAAATGTTCTAAATAATTCAAATTTAATACGGTATTTAACCTTTCTTCAAGTATTATCATTGCATTAATTTGAAACATAAGTAAAAAATTATTAGCACTTCTAAAA" + } + ], + "target_id" : 68 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 2124846, + "genome_id" : 0, + "start" : 2124633, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "AACATTTTTTTAACATCTTTACCTTTTTGACTTGGTTCTTCATCATAATTCTGTTGTTCTGCAGAATCAGCATTTACTTCAGTTTCTTCTTTATTTTGAAAAGTGTTTGATTCTACATGAGAATTGGAAGATGAACGTCTATGTTTTACTTCTGTATAACTAGTACGTTCTCCAGTATGATGAGCCTTAAGGTTTACATCTTCAGTTTCTT" + } + ], + "target_id" : 7 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 2479245, + "genome_id" : 0, + "start" : 2479085, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "CCATGCTTTATCAAAACAAAGTAATGAAAATGTAATACATTATTCTTGTCGATCTATATGTGCTTTTACAAAAAACCCTAAGGGTTTAGAAGCGGTAAAGGATATCAAGGACTTTGCGAATATTATAAGTAAATCTGTTGGTGATTTGAGTAAAGAGA" + } + ], + "target_id" : 6 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 2481287, + "genome_id" : 0, + "start" : 2481105, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "GAACTTACTTTAGAAGCCATGAATTCGGCCGATGATCCATTGGAAGCATTTAAAAATACTTTATTAATATTTGATTTTAATTTATCTGAATTTGATAAGGATCCATATGTAAATGGTGTGCATGATTTAGCATCTAATATAAAGGATTGTTTAAGAAAAGGAGGTCACAGTAAAATATAT" + } + ], + "target_id" : 47 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 2669306, + "genome_id" : 0, + "start" : 2669134, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "AAAAAAATACATTTAAATCTATAATATTTGTAATAAATGATAAGAATATTAGTAATAATAGGGTACTACTATTTGTAAATACTTTTCTACATAATTTATCAATAGTAGGAAATATGATATTCTTTTTGTTTGGCTTTATTTTATCTGGGATTTTCCAATCATAAAGTTCG" + } + ], + "target_id" : 5 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 40136, + "genome_id" : 0, + "start" : 39952, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "CATAGAAATATGTGCGAAAATTGGGAAAAAAATAAATAACAGGAATTGTTATATAAATTGAATCAAGAATGGCACAAAGAAAATAATACTGGTGACTTTCACACTAGTGATATCACACACAATAGTGGTATTACATACACTAGTGGTAACATACCTAGTGAAAGTAATAGTAGTTATATCCA" + }, + { + "seq" : "CATAGAAATATGTGCGAAAATTGGGAAAAAAATAAATAACAGGAATTGTTATATAAATTGAATCAAGAATGGCACAAAGAAAATAATACTGGTGACTTTCACACTAGTGATATCACACACAATAGTGGTATTACATACAGTAGTGGTAACATACCTAGTGAAAGTAATAGTAGTTATATCCA" + } + ], + "target_id" : 55 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 535109, + "genome_id" : 0, + "start" : 534940, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "ATACTCCGTCAGATATTCAAAATGAATGTATTTGTTCAAAAATAAATGAAGATAGAAATAATGATATGATAAACATATCTGAAATATATTATCGTTTCATTAAATTTATAACAATGATTGAAATATATTTGTGTGTAATAGAGGAAATTAAAAGGGAAGAATGGGAA" + } + ], + "target_id" : 76 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 120350, + "genome_id" : 0, + "start" : 120214, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TTACAATGTTCTTCGCATTCGAAATTTTTTTCAGGATTACTTGAAAAGCCTTCTGGACAATTACAATATTCATATCCATGAGCATTGTTACAAACACCTTTTCCACAATTTAAAAAACATTTTTCTTCATTTAA" + }, + { + "seq" : "TTACAATGTTCTTCGCATTCGAAATTTTTTTCAGGATTACTTGAAAAGCCTTGTGGACAATTACAATATTCATATCCATGAGCATTCTTACAAACACCTTTTCCACAATTTAAAAAACATTTTTCTTCATTTAA" + }, + { + "seq" : "TTACAATGTTCTTCGCATTCGAAATTTTTTTCAGGATTACTTGAAAAGCCTTCTGGACAATTACAATATTCATATCCATGAGCATTCTTACAAACACCTTTTCCACAATTTAAAAAACATTTTTCTTCATTTAA" + } + ], + "target_id" : 83 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 150293, + "genome_id" : 0, + "start" : 150104, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TAATAATAGTAATATAAAGAATTATTCAGCTGTAGATATATTCTCACCCAAAAAAACTGGAAAGGAATGTATTAAATGTCTCCCAGATAATTTTTGTGAATGCGAATGTAGTTGTAAAAATAAAACAGGTTTTTCAATGAAATATAGACATGCCAGTAAGGGATCTAAAAGATATCGTAAAAAAATG" + }, + { + "seq" : "TAATAATAGTAATATAAAGAATTATTCAGCTGTAGATATATTCTCACCCAAAAAAACTGGAAAGGAATGTATTAAATGTCTCCCAGATAATTTTTGTGAATGCGAATGTAGTTGTAAAAATAAAACAGGTTTTTCAATGAAATATAGACATGCCAGTAAGGGATCTAAAAGATATAGTAAAAAAATG" + } + ], + "target_id" : 97 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 279785, + "genome_id" : 0, + "start" : 279662, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "AGTTATAGTGATTCATATAAGGTAAATTGTATTAATTTCTCTGAAGGATTTTGTTGCTGTCATCCAATAAATAATTTAGCACTATTATATGGAGAGTATCAACAAAATCAAGAATCAAAAA" + } + ], + "target_id" : 88 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 407570, + "genome_id" : 0, + "start" : 407378, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "CTCCTTCCTTTTCATTCTTTACTTTATTTCTATTAATACACAACTCTCCTTGAGTTAAGAGATTTACGATATTATCAATATTGTTTTCTTTCATATACTTCAACTTTTTACTATTCATTTTTAAAAGATAATTAACCAAGTTACTCATGTTTGTATTAGATGGTATGTTCCCAATTTTTTCGTCTTTTCT" + } + ], + "target_id" : 66 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 564376, + "genome_id" : 0, + "start" : 564207, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TATTAAAACTTTTTTTTCTTTCTGTAAAGTTTGTACATTATGTTTTGATGAGTTTTGATTATCTTCATAAAACTTTATATATTTATAAAAATTATTTTGTATAAAATCATTTAATAAAGGTAACATAATTTTTTTAGCTTGATTCAATTCACTACATGAATGTATAT" + } + ], + "target_id" : 2 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 1038485, + "genome_id" : 0, + "start" : 1038368, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "ATACAACTAATAAAGCTCTACGATAAATTTCTTTTTTATTTGATTTAGAAAAAGGAGAAAACCATTGAAACTTTTTGGCTAGATATTTATGGTCTTTATCAAAAATATATTCTGA" + }, + { + "seq" : "ATACAACTAATAAAGCTCTACGATAAATTTCTTTTTTATTTGATTTAGAAAAAGGAGAAAACCATTGAAACTTTTTGGCTAGATATTTATGGTCTTTATCAAAAATATAATCTGA" + } + ], + "target_id" : 1 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 1956285, + "genome_id" : 0, + "start" : 1956128, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TATATATAAAGTTAAACCTATAAATAATACACTACCTAATAAACTATTCTTATATTTAAAAATAAATATAATACATGTTATTAATCCTTCTATTGTTGCCGGAATAATATACATTAAAACAGAACTCATCAAATTATTAGCACTCTCGGTACCTC" + } + ], + "target_id" : 0 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 1992425, + "genome_id" : 0, + "start" : 1992288, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TAAACACCAGTACCATTTTTTTCTGATAAATTAATATTTTTTTGTATAACATCATATTTATCCCTTTTCGTGGTAAGTGCAGTATCCTGTTTTATTATTATATTATCGAATTCATCATGGTGTATATTTCTTTCT" + } + ], + "target_id" : 50 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 2525088, + "genome_id" : 0, + "start" : 2524961, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "AATGAGGTATAATCATTCATTTCGTTGGGTCGATTTGATCTATTTTTAAGGTCCATATATTGAGATGAATCATTATGCATTTTATAATCATGAGGGATATTAGGTGCATGGTATTTAGGGTCTTT" + }, + { + "seq" : "AAAGAGGTATAATCATCCATTTTGTTGGGTCGATTTGATCTATTTTTAAGGTCCATATATTGAGATGAATCATTATGCATTTTATAATCATGAGGGATATTAGGTGCATGGTATTTAGGGTCTTT" + } + ], + "target_id" : 12 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 3124841, + "genome_id" : 0, + "start" : 3124641, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "ATGGAAAAATGGAATATGAAGTATTAAGTGATGATAAAATAGTGTATGAAAATATACAACATGATTTATTAAAAACAATAGAAGATGGTGAAGAAATGTTAAAAGGAACTGAAAGGAAGGATAATATAGATATACTGAGGACTCCTGGAAGGGGAGAATATGATATGTGGTCTACTTCTGGACTAGGGTTCTATGAAT" + }, + { + "seq" : "ATGGAAAAATGGAATATGAAGTATTAAGTGATGATAAAATAGTGTATGAAAATATACAACATGATTTATTAAAAACAATAGAAGATGATGAAGAAATGTTAAAAGGAACTGAAAGGAAGGATAATATAGATATACTGAGGACTCCTGGAAGGGGAGAATATGATATGTGGTCTACTTCTGGACTAGGGTTCTATGAAT" + } + ], + "target_id" : 31 + } + ] + }, + "sequencing_info" : + [ + { + "library_layout" : "paired-end", + "library_selection" : "RANDOM", + "library_source" : "GENOMIC", + "library_strategy" : "WGS", + "seq_date" : "2020-01-01", + "seq_instrument_model" : "Multiple", + "seq_platform" : "ILLUMINA", + "sequencing_info_name" : "Pf7Plus" + } + ], + "specimen_info" : + [ + { + "collection_country" : "India", + "collection_date" : "2012-08-01", + "geo_admin3" : "NA", + "host_taxon_id" : 9606, + "project_id" : 0, + "specimen_collect_device" : "Dried Blood spot", + "specimen_name" : "5tbx", + "specimen_store_loc" : "Multiple", + "specimen_taxon_id" : + [ + 5833 + ] + }, + { + "collection_country" : "Papua New Guinea", + "collection_date" : "NA", + "geo_admin3" : "NA", + "host_taxon_id" : 9606, + "project_id" : 0, + "specimen_collect_device" : "Dried Blood spot", + "specimen_name" : "XUC009", + "specimen_store_loc" : "Multiple", + "specimen_taxon_id" : + [ + 5833 + ] + } + ], + "target_info" : + [ + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 1956129, + "genome_id" : 0, + "start" : 1956096, + "strand" : "+" + }, + "seq" : "TTTTTCTCCACTTTGTAATTTTTATTGTTGAAT" + }, + "gene_name" : "PF3D7_1447900", + "insert_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 1956286, + "genome_id" : 0, + "ref_seq" : "ATATATATAAAGTTAAACCTATAAATAATACACTACCTAATAAACTATTCTTATATTTAAAAATAAATATAATACATGTTATTAATCCTTCTATTGTTGCCGGAATAATATACATTAAAACAGAACTCATCAAATTATTAGCACTCTCGGTACCTCT", + "start" : 1956129, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 1956129, + "genome_id" : 0, + "start" : 1956096, + "strand" : "+" + }, + "seq" : "CGGGTGGTATCATGAGAATAGTTGAT" + }, + "target_attributes" : + [ + "Included", + "DrugResistance" + ], + "target_name" : "t96" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 1038369, + "genome_id" : 0, + "start" : 1038340, + "strand" : "+" + }, + "seq" : "ACACTTCAACTACACTTTTTAATTTAGCC" + }, + "gene_name" : "PF3D7_1426700", + "insert_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 1038486, + "genome_id" : 0, + "ref_seq" : "CATACAATTAATAAAGCTCTACGATAAATTTCTTTTTTATTTGATTTAGAAAAAGGAGAAAACCATTGAAACTTTTTGGCTAGATATTTATGGTCTTTATCAAAAATATATTCTGAA", + "start" : 1038369, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 1038369, + "genome_id" : 0, + "start" : 1038340, + "strand" : "+" + }, + "seq" : "AGATCTTATGTTAAACTTCTAGAAGATGAAGT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t95" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 564208, + "genome_id" : 0, + "start" : 564177, + "strand" : "+" + }, + "seq" : "AAAATCTTTTGGTATTGTATTTTGACTGCAC" + }, + "gene_name" : "PF3D7_1414200", + "insert_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 564377, + "genome_id" : 0, + "ref_seq" : "TTATTAAAACTTTTTTTTCTTTCTGTAAAGTTTGTACATTATGTTTTGATGAGTTTTGATTATCTTCATAAAACTTTATATATTTATAAAAATTATTTTGTATAAAATCATTTAATAAAGGTAACATAATCTTTTTAGCTTGATTCAATTCACTACATGAATGTATATT", + "start" : 564208, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 564208, + "genome_id" : 0, + "start" : 564177, + "strand" : "+" + }, + "seq" : "AAACGGAATCACTTATGGATACCATTTTATTT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t94" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 933023, + "genome_id" : 0, + "start" : 932995, + "strand" : "+" + }, + "seq" : "TGTAAAAGGAAAATGTCTTACGTGGATT" + }, + "gene_name" : "PF3D7_0820700", + "insert_location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 933143, + "genome_id" : 0, + "ref_seq" : "TTGGTTTTAATGAGGATGATTTAGATAAAGAGTTTTTTTTTGATTTGCCGTCGATTAGTGGTTTTTCAAGTAATGGTATGAAAAAATGTAATTTAAGAAATTTATTAAAAAGATTAGAAG", + "start" : 933023, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 933023, + "genome_id" : 0, + "start" : 932995, + "strand" : "+" + }, + "seq" : "ATTCAAAACCAATAGTACCACAATATGTTT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t50" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_05_v3", + "end" : 1042162, + "genome_id" : 0, + "start" : 1042129, + "strand" : "+" + }, + "seq" : "GGAATATTTGTGATTTAGGATGTAATGCATACA" + }, + "gene_name" : "PF3D7_0525100", + "insert_location" : + { + "chrom" : "Pf3D7_05_v3", + "end" : 1042281, + "genome_id" : 0, + "ref_seq" : "ATATTATTACGGTACCATTATATGATTCTTTAGGTCCTCAATCAAGTAGATTTATATTAGATCAAACACAGATGGAAACTATTGTATGTGACAAGACATGTGCTCGTAATTTATTTAAG", + "start" : 1042162, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_05_v3", + "end" : 1042162, + "genome_id" : 0, + "start" : 1042129, + "strand" : "+" + }, + "seq" : "CAAATATATCTCTTCGCATGTTTCTAAGGA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t36" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 2669135, + "genome_id" : 0, + "start" : 2669104, + "strand" : "+" + }, + "seq" : "ATTTACATGATGTAACTGAATCTCAGCTTTT" + }, + "gene_name" : "PF3D7_1366800", + "insert_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 2669307, + "genome_id" : 0, + "ref_seq" : "AAAAAAAATACATTTAAATCTATAATATTTGTAATAAATGATAAGAATATTAGTATTAATAGGGTACTACTATTTGTAAATACTTTTCTACATAATTTATCAATAGTAGGAAATATGATATTCTTTTTGTTTGGCTTTATTTTATCTGGGATTTTCCAATCATAAAGTTCGA", + "start" : 2669135, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 2669135, + "genome_id" : 0, + "start" : 2669104, + "strand" : "+" + }, + "seq" : "AGCCAGTATTCTTTTTATGAAGTATTTTAACA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t88" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 2479086, + "genome_id" : 0, + "start" : 2479055, + "strand" : "+" + }, + "seq" : "CTTATAAAGAGAAATTTTCATGTTAGCGCTT" + }, + "gene_name" : "PF3D7_1361800", + "insert_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 2479246, + "genome_id" : 0, + "ref_seq" : "TCTATGCTTTATCAAAACAAAGTAATCAAAATGTAATACATTATTCTTGTCGATCTATATGTGCTTTTACAAAAAACCCTAAGGGTTTAGAAGCGGTAAAGGATATCAAGGACTTTGCGAATATTATAAGTAAATCTGTTGGTGATTTGAGTAAAGAGAA", + "start" : 2479086, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 2479086, + "genome_id" : 0, + "start" : 2479055, + "strand" : "+" + }, + "seq" : "AGTCTTCCTTGATTTCTTTATCCAAGGTA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t86" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 2124634, + "genome_id" : 0, + "start" : 2124602, + "strand" : "+" + }, + "seq" : "AATTTGGTTTCAATAAAATTATCAGCTTTCTT" + }, + "gene_name" : "PF3D7_1353100", + "insert_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 2124847, + "genome_id" : 0, + "ref_seq" : "TAACATTTTTTTAACATCTTTACCTTTTTGACTTGGTTCTTTATCATAATTCTGTTGTTCTGCAGAATCAGCATTTACTTCAGTTTCTTCTTTATTTTGAAAAGTGTTTGATTCTACATGAGAATTGGAAGATGAACGTCTATGTTTTACTTCTGTATAACTAGTACGTTCTCCAGTATGATGAGCCTTATGGTTTACATCTTCAGTTTCTTC", + "start" : 2124634, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 2124634, + "genome_id" : 0, + "start" : 2124602, + "strand" : "+" + }, + "seq" : "GAAGAATTTTAACACAAGGAGATCATCAC" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t85" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 1419543, + "genome_id" : 0, + "start" : 1419519, + "strand" : "+" + }, + "seq" : "GAAATGTCGATTCTCCTCCTTGTG" + }, + "gene_name" : "PF3D7_1335100", + "insert_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 1419670, + "genome_id" : 0, + "ref_seq" : "CTGGTTTTTGTACTTCTTGTCCTTGTGTTGATATCTCTTGTTCATTTTTAGATTGAGTATCTGTTTCACTTTGTGCCTTTACCTTTGATAATACGTTTTTACCGAATAATCCTAAATTTTGGAATAA", + "start" : 1419543, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 1419543, + "genome_id" : 0, + "start" : 1419519, + "strand" : "+" + }, + "seq" : "GAAAACAAGGAAAAATCAGAATCATTTCCA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t81" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 1150303, + "genome_id" : 0, + "start" : 1150279, + "strand" : "+" + }, + "seq" : "TAACAACCCCTCCATCAACATCTT" + }, + "gene_name" : "PF3D7_1327300", + "insert_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 1150493, + "genome_id" : 0, + "ref_seq" : "CTAAAAAAAGCAAACAAAAAGAAAAGAGAATGGAAGATTTAAGTATTGAGGAAAATTTGAAAGAGAAATTAATAAACCTAAATATTCAGAAACAGTATAGTGGTTTCCATATGAAAGAAATGGAGGAACAAAATATTCCTGAATTAAATATTCCACAACTTTCAGCTATTCATAATAGAGAAGATATGAA", + "start" : 1150303, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 1150303, + "genome_id" : 0, + "start" : 1150279, + "strand" : "+" + }, + "seq" : "ACACTTCTATATCTTCTTTCTTCATCATTCTTA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t80" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 1725365, + "genome_id" : 0, + "start" : 1725337, + "strand" : "+" + }, + "seq" : "TCGGTATAATAGAAGAGCCATCATATCC" + }, + "gene_name" : "PF3D7_1343700", + "insert_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 1725570, + "genome_id" : 0, + "ref_seq" : "CCCAATACAATAAATTCTACCATTTGACGTAACACCACAATTATTTCTTCTAGGTATATTTAAATTACTTGAAACATACCATACATCTCTTAAACGATCATACACCTCAGTTTCAAATAAAGCCTTATAATCATAGTTATTACCACCAAAAACGTATAAGAAATTATTCAATACAGCACTTCCAAAATAAGCTTTTTTGGTAGAC", + "start" : 1725365, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 1725365, + "genome_id" : 0, + "start" : 1725337, + "strand" : "+" + }, + "seq" : "GCTGGCGTATGTGTACACCTAT" + }, + "target_attributes" : + [ + "Included", + "DrugResistance" + ], + "target_name" : "t82" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 1876352, + "genome_id" : 0, + "start" : 1876325, + "strand" : "+" + }, + "seq" : "CCAGGACAATTTAAACCTACCAAATGA" + }, + "gene_name" : "PF3D7_1346700", + "insert_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 1876534, + "genome_id" : 0, + "ref_seq" : "TTATATTTTGGTTCAGACAAATGTACGTTACATGAAATATGTGCACTATCATCAACTAAAGAAATATCTAAACTATCTGTAAAAGTATGTTTAGAACTAACATTTGAAGAGAAGTTACATCCGTGTATGACTTTTTTTTCATATTTTGGTTTTAAAACTATTTTATAATTATTATTTTTAAA", + "start" : 1876352, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 1876352, + "genome_id" : 0, + "start" : 1876325, + "strand" : "+" + }, + "seq" : "CAAAAGATGTTAATACAGAATGTACATGCAAA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t83" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 2524962, + "genome_id" : 0, + "start" : 2524931, + "strand" : "+" + }, + "seq" : "ATGATCTTCTCTGAAATTTACTTGAATTGTT" + }, + "gene_name" : "PF3D7_1462300", + "insert_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 2525089, + "genome_id" : 0, + "ref_seq" : "AAATGAGGTATAATCATCCATTTCGTTGGGTCGATTTGATCTATTTTTAAGGTCCATATATTGAGATGAATCATTATGCATTTTATAATCATGAGGGATATTAGGTGCATGGTATTTAGGGTCTTTA", + "start" : 2524962, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 2524962, + "genome_id" : 0, + "start" : 2524931, + "strand" : "+" + }, + "seq" : "ACCAAACTTTTGGAGATTTCAAGATTATGA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t98" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 103659, + "genome_id" : 0, + "start" : 103631, + "strand" : "+" + }, + "seq" : "GAAAAGAAGATCCAACTGACAGAGAAAA" + }, + "insert_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 103879, + "genome_id" : 0, + "ref_seq" : "AACTGATGTTAATGAAGGCCAAAATGGAAAACGTTTAACACAAGAAAAAACCCTAAAACAAATTCCTTCGACATCACCAAATAATTTAGAACAAAAATTACAACAAACACATATTTCTTCTTCCCAACAAAAACATTTAATAAAAACTACTCCTACTTCAGATTCAACTACAACTTCATCAAGCTCTTCTGTTCCTCTTACAAAACAATCCCCTCATTCT", + "start" : 103659, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 103659, + "genome_id" : 0, + "start" : 103631, + "strand" : "+" + }, + "seq" : "TGTGTACTAGATAATGCAGGAACTGA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t78" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 684088, + "genome_id" : 0, + "start" : 684059, + "strand" : "+" + }, + "seq" : "GTCTACCATTTTTAATCGACTAACTCGAA" + }, + "gene_name" : "PF3D7_1217300", + "insert_location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 684261, + "genome_id" : 0, + "ref_seq" : "AATATCAAGATGGTAGTATTGTTTTAGATGTTAGTAGTACGAGAGATAAACTTTATGGAGAAGTTGAGTGGGAAGGATATAAATTTGAACTTGTGGATACAGGAGGTTTAGTTTTTGAACAAGAAAAGTTTTCAAAAGAAATAAAGGATCAAATTCTTATGGCTCTAAAAGAA", + "start" : 684088, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 684088, + "genome_id" : 0, + "start" : 684059, + "strand" : "+" + }, + "seq" : "CATCAACGACAAAAATAACAACTGATGA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t74" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 415653, + "genome_id" : 0, + "start" : 415623, + "strand" : "+" + }, + "seq" : "ATGAATTAATAAAAGAACATGGTGGACCTT" + }, + "gene_name" : "PF3D7_0408600", + "insert_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 415826, + "genome_id" : 0, + "ref_seq" : "ATGCTAGTTTTGCTGCTCATGAAAATAAAAGCTACTCATATGAAAGTCGTACATATAAAATGTATCCACCTGAATTTAATACATTAATGTTAAAAGCAGATTATTTTATAAGAGATATAAATACACGAGGATTTAGAGAAGTAAATATGGATTCATGTAAATCATATACAAAT", + "start" : 415653, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 415653, + "genome_id" : 0, + "start" : 415623, + "strand" : "+" + }, + "seq" : "GACTTGAAAACATTTTAAATTTCTTGTATCCAT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t23" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 659891, + "genome_id" : 0, + "start" : 659858, + "strand" : "+" + }, + "seq" : "GTTAATACTGGTACTATTATACCATATGTTGCT" + }, + "gene_name" : "PF3D7_1216600", + "insert_location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 660010, + "genome_id" : 0, + "ref_seq" : "GGGTCGACTTTTGGTGGTTTAACATTTTCAGCTACGAGATTTTCGAATGATGGCAATCCTACTTTGATTAATTCCTTTAACATAGATTTTGCGTGTTTTTTTACTTCTGATTTGATATC", + "start" : 659891, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 659891, + "genome_id" : 0, + "start" : 659858, + "strand" : "+" + }, + "seq" : "TCACCAACCTTTTTAGAATCAAGCTTT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t73" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 156566, + "genome_id" : 0, + "start" : 156535, + "strand" : "+" + }, + "seq" : "AACTGAAAGTATATACAATAGTACACCTCCA" + }, + "gene_name" : "PF3D7_1302900", + "insert_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 156722, + "genome_id" : 0, + "ref_seq" : "TATAGAGTTATTATGTTCGAATTAATGACCAGATTATTTCGATTTTATACAAAACCAATAGACCTTATTATTACTATGAATACACACAGATATGACACACCTATATTGTTAAAACATTCAAACAGCTTACAACTTATCTTATCAAATCAACAAAAT", + "start" : 156566, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 156566, + "genome_id" : 0, + "start" : 156535, + "strand" : "+" + }, + "seq" : "AAAAGGATAAGTTAGAATTGCTCATTAATCT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t79" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1816211, + "genome_id" : 0, + "start" : 1816181, + "strand" : "+" + }, + "seq" : "GGGTAGATATCGTTATAAGGGCTATAATGT" + }, + "gene_name" : "PF3D7_1145800", + "insert_location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1816425, + "genome_id" : 0, + "ref_seq" : "ATTGACTTCTCCGGGTTGGTTACATTATCATTACAACCAATATTATTAAGGTTAATACTATTTTTATCATTATTATTGTTGTTTTCATTTGTGTGGTTATATAATAACAATGATGTGTCGTCTATTGGATCATTTTGCACAAGGTCAATATCATTAGAATTATGTTTCATATTATTTGTATACATTTTTTTGTAATTATCATTTTTTCTTACTT", + "start" : 1816211, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1816211, + "genome_id" : 0, + "start" : 1816181, + "strand" : "+" + }, + "seq" : "GCCAAAAATACGATGTGATGAAGAATG" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t71" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1552430, + "genome_id" : 0, + "start" : 1552397, + "strand" : "+" + }, + "seq" : "AAGGGAAAAATAATGGATAATATAGTTGTGAAT" + }, + "gene_name" : "PF3D7_1139100", + "insert_location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1552640, + "genome_id" : 0, + "ref_seq" : "AATATCGACAATTATAAAGAAAAAATAGAAAATTTTAATGAAAGATATTATGAAGATGATTTAAGTTTCTTAAACTTTCCAGGAACCATAACAAGTTATGATAAAAACCATCAAAGAGATAAAAGAAAAAACTGTTTTGAAGAATATCTAGACAATAATAATTATTTTATTGATAGTAATCTAAAGGAAGTTATAGAAAATAATATATAT", + "start" : 1552430, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1552430, + "genome_id" : 0, + "start" : 1552397, + "strand" : "+" + }, + "seq" : "GTCAATTTGCTCCTTATCCATATTCGA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t69" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1009856, + "genome_id" : 0, + "start" : 1009831, + "strand" : "+" + }, + "seq" : "AAACTGTGAGCATATCTTGGTTCAG" + }, + "gene_name" : "PF3D7_1125800", + "insert_location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1010038, + "genome_id" : 0, + "ref_seq" : "GAATTCTATCTATTTGTTTAATTGGTGTCCATGAATTTTTAGAGAAACACCACATATCAGCTAATAAGGAATTATTAACATCTAATCCTCCATGAATATATAAAAAATCATTAAAACTGAAAGAAGCATGCTTATATCTTGCACGTGGACAAATTTTATTTCCAATAAGTTCCCATTTCTTT", + "start" : 1009856, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1009856, + "genome_id" : 0, + "start" : 1009831, + "strand" : "+" + }, + "seq" : "TGTTGATGAAACATATAAATTTGATTTCCAAGC" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t66" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1750865, + "genome_id" : 0, + "start" : 1750833, + "strand" : "+" + }, + "seq" : "CATCAACATATAGTCGTTATAAAAGAGCACTT" + }, + "gene_name" : "PF3D7_1143800", + "insert_location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1751055, + "genome_id" : 0, + "ref_seq" : "TTATTAAAAACAACAAATAAATTACCAAGGTCATGGAAAAAACTCTTGTTAAATCTATCCATTAGATTTCAAACAATACCTATAGGTGGTTCTATCGAAATCATATCAAAGGATGAGAAAAATATTTCTATGACACGATCCAGTGAATATAATGCAACAACATATGAGCATTACACATTTCCCAAATGGT", + "start" : 1750865, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1750865, + "genome_id" : 0, + "start" : 1750833, + "strand" : "+" + }, + "seq" : "GGCGTTTCCTCATTTTCTTTACTATTGT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t70" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 119486, + "genome_id" : 0, + "start" : 119456, + "strand" : "+" + }, + "seq" : "GCTTCCATCTCCTTTATATTCATCAAGAAA" + }, + "gene_name" : "PF3D7_1102500", + "insert_location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 119693, + "genome_id" : 0, + "ref_seq" : "TTTCATCCAAGAGTAATTATGTTTTTCTTGTTGATATTTTGCTTTATACAAACGAGCAAGATACTTTTTATACGATTCATGCTCTTTAATTTTCTTTTCAAAAGTTTTGGTTATAATGTGTTCAAGTGATTGTAAAGTATTTTTCTTTAATTTTCTCCATATTAATCTACATGCGATTATAAGAATTCTATATTCTTTGATATTCCC", + "start" : 119486, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 119486, + "genome_id" : 0, + "start" : 119456, + "strand" : "+" + }, + "seq" : "GGAATTTTTAATGAATGGATTAAAACTAGTGAA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t65" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_10_v3", + "end" : 1436479, + "genome_id" : 0, + "start" : 1436451, + "strand" : "+" + }, + "seq" : "CTAGGAATCGAATAAATGAGGAAAAGCA" + }, + "gene_name" : "PF3D7_1036400", + "insert_location" : + { + "chrom" : "Pf3D7_10_v3", + "end" : 1436682, + "genome_id" : 0, + "ref_seq" : "CGAGAAGAAACACGTTTTATCTCATAATTCATATGAGAAAACTAAAAATAATGAAAATAATAAATTTTTCGATAAGGATAAAGAGTTAACGATGTCTAATGTAAAAAATGTGTCACAAACAAATTTCAAAAGTCTTTTAAGAAATCTTGGTGTTTCAGAGAATATATTCCTTAAAGAAAATAAATTAAATAAGGAAGGGAAAT", + "start" : 1436479, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_10_v3", + "end" : 1436479, + "genome_id" : 0, + "start" : 1436451, + "strand" : "+" + }, + "seq" : "ATCGTCATCATCATTTATTATGTGTTCAATTA" + }, + "target_attributes" : + [ + "Excluded", + "Microhaplotype" + ], + "target_name" : "t64" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 531682, + "genome_id" : 0, + "start" : 531656, + "strand" : "+" + }, + "seq" : "CTTTTTGGGCTTATTGTTTGGAAGAA" + }, + "gene_name" : "PF3D7_0113800", + "insert_location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 531900, + "genome_id" : 0, + "ref_seq" : "AAAAGAAAGATGTTAAGAAAAAAAAGATCGATATGATAAATATATTACACATTCCTACAAATAATTATAGCATGCCAAATGAAAAAGATATAAACAGTTATGAATTTTTTGGATCTGAACCTATTGAATTATATGATGTAAAATCTAATAAGAATTGTGTTATAACTAGCCAATCTTATATTTGTATTGAAAACCCGCATGCTGCCATAGTATCCGAA", + "start" : 531682, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 531682, + "genome_id" : 0, + "start" : 531656, + "strand" : "+" + }, + "seq" : "ACTGGATTCTTCTAATATTCTTTGCTCTCT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t6" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 596133, + "genome_id" : 0, + "start" : 596101, + "strand" : "+" + }, + "seq" : "ATTTGTTTTTGTTCTACATCAATAATTGGTTT" + }, + "gene_name" : "PF3D7_0913900", + "insert_location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 596334, + "genome_id" : 0, + "ref_seq" : "ATTATTTTCGTTTTTTTTTATATTATCATTATAATTATATGTATTTACAAAGAATTTATTATTATTTGTTTCTTTATAATTATATTCATTTTCTTTATTACTTAAGGAATTTATATTTGATAAAACTTGTTGTCCTCTTTCTTCTTTGTTGATGTGAATATTTGAGAAAATAATAATAAATGTAATGACTAGGGCTATGTT", + "start" : 596133, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 596133, + "genome_id" : 0, + "start" : 596101, + "strand" : "+" + }, + "seq" : "AAATAGAAGTCATATAGGTGACTGGAATCTT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t55" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 516928, + "genome_id" : 0, + "start" : 516904, + "strand" : "+" + }, + "seq" : "TGTGGGCGCAAAAACTATAAATGA" + }, + "gene_name" : "PF3D7_0911300", + "insert_location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 517092, + "genome_id" : 0, + "ref_seq" : "ATGTTTGTGTAATAAAGGATATTTCTATAATGTCAAGAAACAACAATGTGAAGAATGTCCCATAGGTTTTTATTGTCCAAAAATAAGCTCAAAAAATAATATAAAAAAACCTATCAAATGTCCTAAAAATTCCTCAAGTATAAAAAAAGGTATGTATATATCAA", + "start" : 516928, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 516928, + "genome_id" : 0, + "start" : 516904, + "strand" : "+" + }, + "seq" : "ATTTTGTATATCCAAAATTACATTGACAATTGT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t54" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_05_v3", + "end" : 1309609, + "genome_id" : 0, + "start" : 1309581, + "strand" : "+" + }, + "seq" : "ACGACGAAGAAAACGAAAGTATTGATAA" + }, + "gene_name" : "PF3D7_0532300", + "insert_location" : + { + "chrom" : "Pf3D7_05_v3", + "end" : 1309744, + "genome_id" : 0, + "ref_seq" : "TAATGAAGAAAATATGTCTGACAGACCAAACAGTTTATCTCATGATAAGGATCAACACCTCGATGAAACACATAATGAACAATATGGATTATACGTAAAAGAAATGGAATCTAAAGTTGAAAAATTAGCTGAAAA", + "start" : 1309609, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_05_v3", + "end" : 1309609, + "genome_id" : 0, + "start" : 1309581, + "strand" : "+" + }, + "seq" : "ACCTCTTGAAATTCCTTTTCAACTTGA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t37" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 1362891, + "genome_id" : 0, + "start" : 1362863, + "strand" : "+" + }, + "seq" : "CGACTTCTTTAAGAGAACAAACAGAACA" + }, + "gene_name" : "PF3D7_0831600", + "insert_location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 1363087, + "genome_id" : 0, + "ref_seq" : "CGTAAAAAAAAAGGGTTTTCCTAAAAAACCATCGGTTCATGGTTTTACACAGATGGTGTTTTTGCAGCTTACTAATATAGTCATGTATGCCCTTTGTTTTATGAGCCTTTCACAAATATATGCTTATTTCGAAAACGTGAATTTTTATATTATAAGCAATTTTCGTTTCCTTGAGAGATATTTTAATATATTCAAT", + "start" : 1362891, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 1362891, + "genome_id" : 0, + "start" : 1362863, + "strand" : "+" + }, + "seq" : "AAGTTTTCTTCTGAATAGTTCTACAAAGTATTT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t53" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 165235, + "genome_id" : 0, + "start" : 165202, + "strand" : "+" + }, + "seq" : "GGATCCTCTTACAATCTCGAAATAATTATAATT" + }, + "gene_name" : "PF3D7_0703900", + "insert_location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 165422, + "genome_id" : 0, + "ref_seq" : "ATCATTATTATTATTATTATAATTATCATTGTTATTATTATTGTTGTTGTTGTTATTATTATTTCCTTTATTATTTAATATGCATTTTTTAATATCCATTTTATTATTTATCATATCAGTACTTTTATTTTTCTCCTTTTCGTTTATAGCTTTTTCCCTATGCACCCTGAATTTCCCATTTTTTTTT", + "start" : 165235, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 165235, + "genome_id" : 0, + "start" : 165202, + "strand" : "+" + }, + "seq" : "ATGGTTTGGTAAGCGAGTTTATGTTATT" + }, + "target_attributes" : + [ + "Excluded", + "Microhaplotype" + ], + "target_name" : "t40" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 1344686, + "genome_id" : 0, + "start" : 1344653, + "strand" : "+" + }, + "seq" : "TCTTTTCCATATATAATAACGCATGAATTCTTT" + }, + "gene_name" : "PF3D7_0831400", + "insert_location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 1344819, + "genome_id" : 0, + "ref_seq" : "AAATATATCTTTTACTTTATCTGTAAGTTTCATGGAATCTATTATTTCATGTGCATATTTTATTTTTGCCTCGTTTATATATTTACCTGCTTTTAATTTACATAAACATTTTTCTATTAAGTTTTGATCATTT", + "start" : 1344686, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 1344686, + "genome_id" : 0, + "start" : 1344653, + "strand" : "+" + }, + "seq" : "TGAGAACAGATGAAGTAACTACTCGATT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t52" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 3124642, + "genome_id" : 0, + "start" : 3124614, + "strand" : "+" + }, + "seq" : "CAGATTATTTGGTAATGAACAACCAGGA" + }, + "gene_name" : "PF3D7_1475900", + "insert_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 3124842, + "genome_id" : 0, + "ref_seq" : "TATGGAAAAATGGAATATGAAGTATTAAGTGATGATAACATAGTGTATGAAAATATACAACATGATTTATTAAAAACAATAGAAGATGATGAAGAAATGTTAAAAGGAACTGAAAGGAAGGATAATATAGATATACTGAGGACTCCTGGAAGGGGAGAATATAATATGTGGTCTACTTCTGGACTAGGGTTCTATGAATT", + "start" : 3124642, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 3124642, + "genome_id" : 0, + "start" : 3124614, + "strand" : "+" + }, + "seq" : "AGGTCTTCCTAATCTTGAACCATCATAT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t99" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 1269320, + "genome_id" : 0, + "start" : 1269294, + "strand" : "+" + }, + "seq" : "CTCTTATATCAGGAGCAGCTATAGGA" + }, + "gene_name" : "PF3D7_0829600", + "insert_location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 1269456, + "genome_id" : 0, + "ref_seq" : "GCCTTAGCATTAATAACACTTATAGGAGGTATTTATATGACTAAAGGAAGAAAAAGTTCCATATGGCATAATTCAGAAATAAATGATACACTTTATGATGTTGTTCTTGAAACAGTGAATCAAGGAAATACAGATG", + "start" : 1269320, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 1269320, + "genome_id" : 0, + "start" : 1269294, + "strand" : "+" + }, + "seq" : "TTTTACTCCTCTTTGAAAAGCCAACTTTA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t51" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_05_v3", + "end" : 329378, + "genome_id" : 0, + "start" : 329351, + "strand" : "+" + }, + "seq" : "GTGTTAAAACAACAGGAGGAACACTAA" + }, + "gene_name" : "PF3D7_0508000", + "insert_location" : + { + "chrom" : "Pf3D7_05_v3", + "end" : 329550, + "genome_id" : 0, + "ref_seq" : "ATTGTGATGTATATAAATTCCCTTCTTCTTTATGTACCACATTATAAGAACCACGAACATATTCTTTTAAAAATGTTAACTTACTTCCAACAAATATATAATCAAAACAAAATTTTTTATTGTCGAAATGTTCTCGTTCAACCCCATTCATATTTCGGATATCATTATTTAA", + "start" : 329378, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_05_v3", + "end" : 329378, + "genome_id" : 0, + "start" : 329351, + "strand" : "+" + }, + "seq" : "TGTTGTAGAATATTCGTGTCCGTATAGT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t33" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_10_v3", + "end" : 1386700, + "genome_id" : 0, + "start" : 1386672, + "strand" : "+" + }, + "seq" : "TGCTACAGTTATATAGGACGATTTTGGT" + }, + "gene_name" : "PF3D7_1035000", + "insert_location" : + { + "chrom" : "Pf3D7_10_v3", + "end" : 1386869, + "genome_id" : 0, + "ref_seq" : "AGGGAACAGGTTAAATATATTGAAGACGTGGTTTGATAATCAGGTATTTCTTTAATTAAATATTCATGATATTGTTCGTTAGATACATAAATTAATTCGTCCTCCACATTTTGCTGTTCTGTTATAATTTGTGAAGAAGCTTGGTTTGTCTTATTTGGTAATTGCTCTT", + "start" : 1386700, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_10_v3", + "end" : 1386700, + "genome_id" : 0, + "start" : 1386672, + "strand" : "+" + }, + "seq" : "AAAATGAGGACAAGGAAAATAATACATTCATAA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t62" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 1358694, + "genome_id" : 0, + "start" : 1358666, + "strand" : "+" + }, + "seq" : "AAGGATCATTTCATTGAAGCCTCTAAAA" + }, + "gene_name" : "PF3D7_0731500", + "insert_location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 1358911, + "genome_id" : 0, + "ref_seq" : "AAGAATCTCAACTTTTGCTTAAAAAAAATGATAACAAATATAATTCTAAATTTTGTAATGATTTGAAGAATAGTTTTTTAGATTATGGACATCTTGCTATGGGAAATGATATGGATTTTGGAGGTTATTCAACTAAGGCAGAAAACAAAATTCAAGAAGTTTTTAAAGGGGCTCATGGGGAAATAAGTGAACATAAAATTAAAAATTTTAGAAAAAA", + "start" : 1358694, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 1358694, + "genome_id" : 0, + "start" : 1358666, + "strand" : "+" + }, + "seq" : "CAAAGTTTCTCTCTAAATTCATTCCACCAT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t45" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 2050130, + "genome_id" : 0, + "start" : 2050103, + "strand" : "+" + }, + "seq" : "TTGGTTTTGATTATCTCCCATTTTCGT" + }, + "gene_name" : "PF3D7_1250100", + "insert_location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 2050314, + "genome_id" : 0, + "ref_seq" : "TTTTAAACTTTGAATCTGTTCAATTAATAACACTTCATCATTGTCTTCGCCTTTTATAATATCTCCATGATTATGTGCTCCTCTAATTAAGGTATCACTAACCTGTTGTTCATCTGTCGCATGAGAACTAGTAGATATATCTGGTTTATTTTTTTTCTTTCTTTTTGTTATTTCTAATTTTTTT", + "start" : 2050130, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 2050130, + "genome_id" : 0, + "start" : 2050103, + "strand" : "+" + }, + "seq" : "AAAAACATACCTAGACATTTGAATGTCTTAGA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t77" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 141963, + "genome_id" : 0, + "start" : 141936, + "strand" : "+" + }, + "seq" : "AAAGCGAATAATGCCAATATGTTGTTC" + }, + "gene_name" : "PF3D7_0302600", + "insert_location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 142181, + "genome_id" : 0, + "ref_seq" : "AGCATTTATAACAAAATATCAGAAGATGGAAAAACCAAAAATAGCCTACTTAGCGATATATCTAAATTATTTAAAATTGTAAAAGAAAGCAAATTAATATTTGTAACTGGATTTTTATTAACAACCTTGTCAGCAATTGTCGATTCATACATTCCAATTTTTCTATCCAAAACGGTATCTTTTGTAATGGAAAGAAAAAAATTTACATTTCTTAAAAT", + "start" : 141963, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 141963, + "genome_id" : 0, + "start" : 141936, + "strand" : "+" + }, + "seq" : "TTTTTACAACTGACAAATTTGTTTTGTGT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t15" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 512199, + "genome_id" : 0, + "start" : 512168, + "strand" : "+" + }, + "seq" : "CGAATCAAAGGTAGAAAATGATCTTGAAGAA" + }, + "insert_location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 512388, + "genome_id" : 0, + "ref_seq" : "TTAAATAAATTAAGTGAAGATGATTATGAAAAAAATTGTAGACATTTAAATTATTTAATAGATAATATAAGAGAATTATTTTTTAGTTCTAAAAATATTAGAATTCCTGATGTAGCTCGTAAATATTTGTGGGATAATCAAATTGAAGGAAATCTCAAAAAATTAATATCTTCAGAAACAAAATATAAA", + "start" : 512199, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 512199, + "genome_id" : 0, + "start" : 512168, + "strand" : "+" + }, + "seq" : "CTGTGGATTATTTATACGATTCCTTTGACA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t5" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_06_v3", + "end" : 532195, + "genome_id" : 0, + "start" : 532167, + "strand" : "+" + }, + "seq" : "ATCAAGCTGAATCTATCCTATTGGATCA" + }, + "gene_name" : "PF3D7_0612900", + "insert_location" : + { + "chrom" : "Pf3D7_06_v3", + "end" : 532378, + "genome_id" : 0, + "ref_seq" : "AGAACAATTGCTAAACACCAAATTGGGTGAAACAAAAAACCACCTGAACAGAACCCCATTTATACCTGAATCGGTCATACGAGAAAGGAAATTACGCCAAGAAAAAGCTCAATCCACAAACAACATGTTCGATTCAACAAACGCAGATAGTATTACGTCCCCATGTGATCCAACGAATGCCAC", + "start" : 532195, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_06_v3", + "end" : 532195, + "genome_id" : 0, + "start" : 532167, + "strand" : "+" + }, + "seq" : "GTATATTGTTTATTGGGATCCCCTTCC" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t39" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 532690, + "genome_id" : 0, + "start" : 532660, + "strand" : "+" + }, + "seq" : "GGGAAGAATGGTTTAATCGTAAAAATGAAG" + }, + "gene_name" : "PF3D7_0113800", + "insert_location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 532844, + "genome_id" : 0, + "ref_seq" : "ACTTTCTTAATTCTATGAATGAAGAATATACGCATATTAATTTAAATAACTTTATACATAATAATAACCATGATAATGACGAAAATTATACATTAGATCAGGTGGAAGGATATCCTATGACTAGTTATCAAAATAATATATACAAGGATTTTTT", + "start" : 532690, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 532690, + "genome_id" : 0, + "start" : 532660, + "strand" : "+" + }, + "seq" : "GTCTTCGAAATAATGAACTCCCTTTTCT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t7" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 298886, + "genome_id" : 0, + "start" : 298857, + "strand" : "+" + }, + "seq" : "TAGATATATCATTCACAGTCGTCTCATGG" + }, + "gene_name" : "PF3D7_0706100", + "insert_location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 299005, + "genome_id" : 0, + "ref_seq" : "ACATTCAATATGGTTCTGAGCTTAAAGATGTTATCCTTATACATGTTTCTATTCTCATTCGTTATAACATCAATGACATATAAAACATATCGCTCAAATATTTTGTGAACAATATTATA", + "start" : 298886, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 298886, + "genome_id" : 0, + "start" : 298857, + "strand" : "+" + }, + "seq" : "TGTTAAGTTTTCTCTTGTGGAATCGAAT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t42" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_02_v3", + "end" : 278165, + "genome_id" : 0, + "start" : 278144, + "strand" : "+" + }, + "seq" : "CTTACCATTCGCGCTTTCTTG" + }, + "gene_name" : "PF3D7_0207000", + "insert_location" : + { + "chrom" : "Pf3D7_02_v3", + "end" : 278336, + "genome_id" : 0, + "ref_seq" : "GGAATTTTCTTTTTTATGACTTTCTTCTCCTTGTTCAGAAGCTTCTTTTTCATCCTTTTTTTCTGCTGCGTCAGATAAATTGGGGGAAGCACTTGAAGATTCATTTCCTCCAGGAGTATTACTAGTACTTACTCCGTCCACATTTGGTTTTTCTTCCCCTAGAATTCTCAT", + "start" : 278165, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_02_v3", + "end" : 278165, + "genome_id" : 0, + "start" : 278144, + "strand" : "+" + }, + "seq" : "AATATAGTACCAGAAAATGGAAGAATGTTAAAT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t11" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 133491, + "genome_id" : 0, + "start" : 133463, + "strand" : "+" + }, + "seq" : "TTTTGGTTCAGTACTATCTCTTGCATTT" + }, + "insert_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 133701, + "genome_id" : 0, + "ref_seq" : "TTAGATTTTTTCCCTCCAGCAGGTGCACTAACTTTAGGTGTTTTAAATCTAGATGTATGTGGAACCCCATCTTTATTTGGTTTACCTCTATTTAATCTTTTACCAGCAGTAGAAACTACATTCTCTCGATTATCATTACCTACTTCAGTCTTTACAATTGTAGGAGGTGTTTTAACATGATTATCCCCTCCATGAGGAGTAACCCTTAAA", + "start" : 133491, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 133491, + "genome_id" : 0, + "start" : 133463, + "strand" : "+" + }, + "seq" : "CGACACCAAATATTCAAGAAGAACC" + }, + "target_attributes" : + [ + "Excluded", + "Microhaplotype" + ], + "target_name" : "t21" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_06_v3", + "end" : 145343, + "genome_id" : 0, + "start" : 145315, + "strand" : "+" + }, + "seq" : "CAATCAACAAAAGCTGATGAATCATCAT" + }, + "gene_name" : "PF3D7_0603600", + "insert_location" : + { + "chrom" : "Pf3D7_06_v3", + "end" : 145501, + "genome_id" : 0, + "ref_seq" : "AATTTGAATAAAATTTATCATTCACAATATTATATTTTTGTTTCTTCTTTTTTCCCATAATATTATTATTTTGTTCACAATATATGTTCATGTGTCCCCTCTTTTTCTGTAAAATATTAAAATGTTTCTTACTATGCTTCTCTTCATTTTTAATAACA", + "start" : 145343, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_06_v3", + "end" : 145343, + "genome_id" : 0, + "start" : 145315, + "strand" : "+" + }, + "seq" : "AAGGAAGGTAGAATATCAAATACAAGGGA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t38" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 1149415, + "genome_id" : 0, + "start" : 1149387, + "strand" : "+" + }, + "seq" : "TGGACATGTAGATATTTGACTAGTCGAA" + }, + "gene_name" : "PF3D7_0727000", + "insert_location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 1149585, + "genome_id" : 0, + "ref_seq" : "TAATATTTAATATTTTTGTTTAGGAAGTTTTCAAAATTGATGACATTGATAACCGTTTTTATTAAATCGCTTGGGTTGTTTGTGTGTTCCATTGTAGAAGACATAATTTTAAGAATGTGTTTTTGTGTTATTAAACAAAACTTTGTTACTATATGGAATCGTATGTTATA", + "start" : 1149415, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 1149415, + "genome_id" : 0, + "start" : 1149387, + "strand" : "+" + }, + "seq" : "TGTATACTCTCACATATTCCCTTCAGTG" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t44" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_05_v3", + "end" : 958389, + "genome_id" : 0, + "start" : 958362, + "strand" : "+" + }, + "seq" : "TTTAGAACAAGTGAGTTCAGGAATTGG" + }, + "gene_name" : "PF3D7_0523000", + "insert_location" : + { + "chrom" : "Pf3D7_05_v3", + "end" : 958506, + "genome_id" : 0, + "ref_seq" : "TACGAAATTTATAACAATTTTTACATATGCCAGTTCCTTTTTAGGTTTATATATTTGGTCATTAATAAAAAATGCACGTTTGACTTTATGTATTACTTGCGTTTTTCCGTTAATTTA", + "start" : 958389, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_05_v3", + "end" : 958389, + "genome_id" : 0, + "start" : 958362, + "strand" : "+" + }, + "seq" : "TTTACTTTCTTATTACATATGACACCACAAACA" + }, + "target_attributes" : + [ + "Included", + "DrugResistance" + ], + "target_name" : "t35" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 2481106, + "genome_id" : 0, + "start" : 2481079, + "strand" : "+" + }, + "seq" : "AGAAGATAAGCAATTATGGCAAAAGGT" + }, + "gene_name" : "PF3D7_1361800", + "insert_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 2481288, + "genome_id" : 0, + "ref_seq" : "GCAACTTACTTTAGAAGCCATGAATTCGGCCGATGATCCATTGGAAGCATTTAAAAATACTTTATTAATATTTGATTTTAATTTATCTGAATTTGATAAGGATCCATATATAAATGGTGTGCATGATTTAGCATCTAATATAAAGGATTGTTTAAGAAAAGGAGGTCACAGTAAAATATATT", + "start" : 2481106, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 2481106, + "genome_id" : 0, + "start" : 2481079, + "strand" : "+" + }, + "seq" : "TCCATTTAAATAATAACCTTTGATCACTTTGAT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t87" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 850816, + "genome_id" : 0, + "start" : 850788, + "strand" : "+" + }, + "seq" : "CCATTTTTATCTACACGTACTACATGCA" + }, + "gene_name" : "PF3D7_0320400", + "insert_location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 850989, + "genome_id" : 0, + "ref_seq" : "TCATATTCGTTTCAGCGTTTATAGAGCGAATATTATCGATTATGTCTATATTCCCTAAAATATGTACATAATAATCTCCATTTAATAATGTTACTTTCTTAAGAATATTTTTGTATATGACATCAAAGATATTACGAGTTAACAATACATCTACATTTCCGTCTATTATATAT", + "start" : 850816, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 850816, + "genome_id" : 0, + "start" : 850788, + "strand" : "+" + }, + "seq" : "AAATGTCTCTAAGAGTTACAGGAACAGA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t19" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_05_v3", + "end" : 958059, + "genome_id" : 0, + "start" : 958027, + "strand" : "+" + }, + "seq" : "AAATGTTTACCTGCACAACATAGAAAATTATT" + }, + "gene_name" : "PF3D7_0523000", + "insert_location" : + { + "chrom" : "Pf3D7_05_v3", + "end" : 958221, + "genome_id" : 0, + "ref_seq" : "ATTTATATCATTTGTATGTGCTGTATTATCAGGAGGAACATTACCTTTTTTTATATCTGTGTTTGGTGTAATATTAAAGAACATGAATTTAGGTGATGATATTAATCCTATAATATTATCATTAGTATCTATAGGTTTAGTACAATTTATATTATCAATGAT", + "start" : 958059, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_05_v3", + "end" : 958059, + "genome_id" : 0, + "start" : 958027, + "strand" : "+" + }, + "seq" : "TTTGATGTAATTACATCCATACAATAACTTGAT" + }, + "target_attributes" : + [ + "Included", + "DrugResistance" + ], + "target_name" : "t34" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 1992289, + "genome_id" : 0, + "start" : 1992261, + "strand" : "+" + }, + "seq" : "TTTTACTTTTGCTACCATCAGGCATAAT" + }, + "gene_name" : "PF3D7_1448500", + "insert_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 1992426, + "genome_id" : 0, + "ref_seq" : "ATAAACACCAGTACCATTTTTTTCTGATAAATTAATATTTTTTTGTATAACATCATATTTATCCCTTTTCGTGGTAAGTGCAGTATCCTGTTTTATTATTATATTATCGAATTCATCATGGTGTATATTTCTTTCAT", + "start" : 1992289, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 1992289, + "genome_id" : 0, + "start" : 1992261, + "strand" : "+" + }, + "seq" : "ATCTTATTATGAAAGCTGTACATCCGATTTTA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t97" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 1406405, + "genome_id" : 0, + "start" : 1406375, + "strand" : "+" + }, + "seq" : "CAGATTATCATAGTGTTGTGGATGAAGATT" + }, + "gene_name" : "PF3D7_0935600", + "insert_location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 1406541, + "genome_id" : 0, + "ref_seq" : "TAATTAATTTTAATGATGATGTTACTTTAGAAACACAATCCATGATAGCACACGGAGGGTCTTTGTCAGAAATAGAAGAAACTGGAGATTTATCTTCAGATGTTGATAGATTACATTCATCAATCGAAACTACTCC", + "start" : 1406405, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 1406405, + "genome_id" : 0, + "start" : 1406375, + "strand" : "+" + }, + "seq" : "ATCACCTCGTATATATACAACATCATCTCTT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t58" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 1037634, + "genome_id" : 0, + "start" : 1037602, + "strand" : "+" + }, + "seq" : "ATTGAAGTACAATATGAAATCGATCTTGATAA" + }, + "gene_name" : "PF3D7_0422500", + "insert_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 1037844, + "genome_id" : 0, + "ref_seq" : "ATCTTATAAAGTTAATGAAATAGCTCAACTTAATTTAACCATAGAAAGAGATTTAACAGATGATGCTGTGATTTTTGCACACTCACTTTATTTACCATTTGAAAAAGAAGAAATGTGGTGGATCGTTATCGGAATTAAAAAAATGAACTTACTTTTATCTATCAAAAAATTATCTTTATTGAAAAGTGTCAATAATATAAAAATTAATTT", + "start" : 1037634, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 1037634, + "genome_id" : 0, + "start" : 1037602, + "strand" : "+" + }, + "seq" : "GTATTTGGTTTGTCAGGCAATTCG" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t28" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 1237431, + "genome_id" : 0, + "start" : 1237407, + "strand" : "+" + }, + "seq" : "CGAATGCTTGTGTGATCAATGAAA" + }, + "gene_name" : "PF3D7_1230000", + "insert_location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 1237603, + "genome_id" : 0, + "ref_seq" : "AGTATGAACACAAAACCGAAAGAGAGTTTAAAAAAAGATTCGATTTTAATGAAGGAAGAAATAACATAATAAATGTGTCAAATGTAAAGAAAACATGTAATATAGTTAAAAATGATTTAAAGGAATCTAACGAGATAAAAACTAATATAAACACAAGTTCTTATAATTTATA", + "start" : 1237431, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 1237431, + "genome_id" : 0, + "start" : 1237407, + "strand" : "+" + }, + "seq" : "ACCTCTTTCAAAACATTCTCTTTTATTAATACA" + }, + "target_attributes" : + [ + "Excluded", + "Microhaplotype" + ], + "target_name" : "t76" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 1128489, + "genome_id" : 0, + "start" : 1128461, + "strand" : "+" + }, + "seq" : "CTGTCGCAAAAGAAGGTTTTGATAATAT" + }, + "gene_name" : "PF3D7_0424900", + "insert_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 1128673, + "genome_id" : 0, + "ref_seq" : "ATTGAAAGAGTTAAAGGGAAAAATACAAAATTATTTAGATAATGATATTCAATTGAAAAATGGAAAACTCCTATATAAGGATACATGGGATAGAATTGTTTTGAAATTTTGTAGAACTGTAGCAATAGAAGAGGCAGAATACACTAGAAAATTTTATAGCTTAATTAATGATAAACATACAATT", + "start" : 1128489, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 1128489, + "genome_id" : 0, + "start" : 1128461, + "strand" : "+" + }, + "seq" : "ATGAATGAATAAATCAATTTTACCACGTCATT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t32" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 39953, + "genome_id" : 0, + "start" : 39920, + "strand" : "+" + }, + "seq" : "CCAACTATATCTGTTCCATAAATGGTTATATTT" + }, + "gene_name" : "PF3D7_1401100", + "insert_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 40137, + "genome_id" : 0, + "ref_seq" : "ACATAGAAATATGTGCGAAAATTGGGAAAAAAATAAATAACAGGAATTGTTATATAAATTGAATCAAGAATGGCACAAAGAAAATAATACTGGTGACTTTCACACTAGTGATATCACACACAATAGTGGTATTACATACAGTAGTGGTAACATACCTAGTGAAAGTAATAGTAGTTATATCCAA", + "start" : 39953, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 39953, + "genome_id" : 0, + "start" : 39920, + "strand" : "+" + }, + "seq" : "ATTTATTTGGATTGAGATCTTAATGTTCAAAGT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t89" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1018953, + "genome_id" : 0, + "start" : 1018920, + "strand" : "+" + }, + "seq" : "GCTATACTACTACTTATGTTACTTATACCACAT" + }, + "gene_name" : "PF3D7_1126100", + "insert_location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1019085, + "genome_id" : 0, + "ref_seq" : "CTAGTGACTGTACATTTTTCATCTAATGTTCTATAGGATAAAGAATCTGAAGGACAATGCATATCATTACAAAAATAGCATGCACCTTTAAAATATAAATAAGAATGTCTTAACACAACAAAGGAATCAAAA", + "start" : 1018953, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1018953, + "genome_id" : 0, + "start" : 1018920, + "strand" : "+" + }, + "seq" : "CTCCTTTAGGTATTACGGTAGCAATAAG" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t67" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 221363, + "genome_id" : 0, + "start" : 221330, + "strand" : "+" + }, + "seq" : "GGAACAAGAAGGATAATACCATTATTAATCCTA" + }, + "gene_name" : "PF3D7_0304600", + "insert_location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 221495, + "genome_id" : 0, + "ref_seq" : "TTGAACTATTTACGACATTAAACACACTGGAACATTTTTCCATTTTACAAATTTTTTTTTCAATATCATTTGCATAATCTAATTCGTCTTTAGGTTTATTAGCAGAGCCAGGCTTTATTCTAACTTGAATAC", + "start" : 221363, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 221363, + "genome_id" : 0, + "start" : 221330, + "strand" : "+" + }, + "seq" : "CCCATGTAGTGTAACTTGTGGAAATG" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t16" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 748533, + "genome_id" : 0, + "start" : 748500, + "strand" : "+" + }, + "seq" : "AGATGTTTATATCATTAACAAAGTTGAAGATCT" + }, + "gene_name" : "PF3D7_0417200", + "insert_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 748696, + "genome_id" : 0, + "ref_seq" : "AATAGTTTTACTTGGGAAATTAAATTACTATAAATGTTTTATTATAGGAGGTTCCGTTGTTTATCAAGAATTTTTAGAAAAGAAATTAATAAAAAAAATATATTTTACTAGAATAAATAGTACATATGAATGTGATGTATTTTTTCCAGAAATAAATGAAAAT", + "start" : 748533, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 748533, + "genome_id" : 0, + "start" : 748500, + "strand" : "+" + }, + "seq" : "ACATCGCTAACAGAAATAATTTGATACTC" + }, + "target_attributes" : + [ + "Included", + "DrugResistance" + ], + "target_name" : "t26" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 166035, + "genome_id" : 0, + "start" : 166002, + "strand" : "+" + }, + "seq" : "AGGATATGTTCTTTTTAAAGTTCTCTTCATTTT" + }, + "gene_name" : "PF3D7_0703900", + "insert_location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 166167, + "genome_id" : 0, + "ref_seq" : "CTTTTATTTGAACTTTTTTATTTTCTTCATTATCAATATAAAAACAACAATCTTTAAATTTATGAAATAACACCCAACTTAATGTATAAAATATAATTTCTATAAAATCAAAATTAATGTAATAACCTAATT", + "start" : 166035, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 166035, + "genome_id" : 0, + "start" : 166002, + "strand" : "+" + }, + "seq" : "CGTTAAATGTAGAAAAGACGAAATCATCCA" + }, + "target_attributes" : + [ + "Excluded", + "Microhaplotype" + ], + "target_name" : "t41" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1376185, + "genome_id" : 0, + "start" : 1376159, + "strand" : "+" + }, + "seq" : "CTGCAAATTGAGCCATAGAAAAATGA" + }, + "gene_name" : "PF3D7_1135100", + "insert_location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1376372, + "genome_id" : 0, + "ref_seq" : "TTCTCATTCCTTTGAAAATATGAACTATTCAACTCATCAAGTTTTTCATATGTTATTTCATAACTGCCATCATCTGAATCCTCTTCATCACTACTACTTAAAGAATGCTCTTCTACAGTTATATCTTCATAATGATTATTTTTAGGAAAATATTCTTCAGATCTTTCTATAAATTCTGTTCCACTAC", + "start" : 1376185, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1376185, + "genome_id" : 0, + "start" : 1376159, + "strand" : "+" + }, + "seq" : "CGATAACACTAGATGTAAGATATGCATCAT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t68" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 1113450, + "genome_id" : 0, + "start" : 1113422, + "strand" : "+" + }, + "seq" : "GATTCTGCATGCAGTAATGAATCTATTG" + }, + "gene_name" : "PF3D7_0424600", + "insert_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 1113604, + "genome_id" : 0, + "ref_seq" : "AAATCATCTAAGAATAAACTTTTTTGTTTAAACCATTTATTGAACATTTCACTTAAATGTGATTCAATTTTTTTTTCTGAGCTTTCCATAATTTGATTACAACTATTCAATTTGTTTGTATAAGTTTTAGGTCTTATTATTCTTTTACGTTTTA", + "start" : 1113450, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 1113450, + "genome_id" : 0, + "start" : 1113422, + "strand" : "+" + }, + "seq" : "CGTAGCATGCTCAGATATTATGATGATT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t31" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 495971, + "genome_id" : 0, + "start" : 495941, + "strand" : "+" + }, + "seq" : "GCCACCAAAATATTATATACCACAAGACAA" + }, + "gene_name" : "PF3D7_0113100", + "insert_location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 496143, + "genome_id" : 0, + "ref_seq" : "TGAAAGTAGCGAATACCCTGTAGAAATTGTTAGTAAACCTCTGGAATGGTTATTGTTTCATGATTTGACTAAGCCTGATGTTACTGCACTACCTGAAGAATTACCATTAACGAGCTATAAAGTAACACCTACTTCTATTAATGTATTGCATAAAGAGGGCCCCACTTTAAAA", + "start" : 495971, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 495971, + "genome_id" : 0, + "start" : 495941, + "strand" : "+" + }, + "seq" : "AAGGAAAATCTTTGGTGGGAAAAATAGA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t4" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_10_v3", + "end" : 377095, + "genome_id" : 0, + "start" : 377062, + "strand" : "+" + }, + "seq" : "AAACAAATAGCATTCGATAAATTTGAAAATTTC" + }, + "gene_name" : "PF3D7_1009200", + "insert_location" : + { + "chrom" : "Pf3D7_10_v3", + "end" : 377209, + "genome_id" : 0, + "ref_seq" : "AACCAAAAAATGATACCTGTACGTTTTTCTCCAGGAGAAACAAAAAAATTAGAAAGGATTCTCAAAAAAGTAGACGACTTTTTCTGTGCCAATATTAAAGCTCAATATACTTGC", + "start" : 377095, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_10_v3", + "end" : 377095, + "genome_id" : 0, + "start" : 377062, + "strand" : "+" + }, + "seq" : "CTTCATCTATATAGTCCCCGATGAATGA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t60" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 181557, + "genome_id" : 0, + "start" : 181524, + "strand" : "+" + }, + "seq" : "TCTATTAGCTTTTTCAAACCTTTCATTATTGTT" + }, + "gene_name" : "PF3D7_0104100", + "insert_location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 181673, + "genome_id" : 0, + "ref_seq" : "TTCATTCTTTTTTTAACGAAAACTATTCATCTCAAAAATATAAGATATTTTATATGACGAATGCCATTGTATTTTTTGTTACGTAAAACCTGACTTCTTCAAGGAAAACACATGCG", + "start" : 181557, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 181557, + "genome_id" : 0, + "start" : 181524, + "strand" : "+" + }, + "seq" : "AGCTTAGGCAAAAATTGGTGAAAATG" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t3" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_10_v3", + "end" : 992371, + "genome_id" : 0, + "start" : 992338, + "strand" : "+" + }, + "seq" : "TGCCTATCATTAATGGAAAATATCCTCATTATA" + }, + "gene_name" : "PF3D7_1023700", + "insert_location" : + { + "chrom" : "Pf3D7_10_v3", + "end" : 992544, + "genome_id" : 0, + "ref_seq" : "TTTTTAAAAAAAAAAATTATGATATAAAATCTTCAATTAATAAAAGATCTATCCAGTTCTTTAAAGACACTAATATAGATCATTATATAGCATATGAATATTATAAGGAGGACCGTACGGAATTTATATTAACTATTATGAATGAAAAAAATATTACTCATCAAGAAACTCAA", + "start" : 992371, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_10_v3", + "end" : 992371, + "genome_id" : 0, + "start" : 992338, + "strand" : "+" + }, + "seq" : "TCCCTTTCAACTTTTTCATTTCAAGACT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t61" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 407379, + "genome_id" : 0, + "start" : 407346, + "strand" : "+" + }, + "seq" : "TCGTCTTTCTGTTCATTATCCATATAATCTTTT" + }, + "gene_name" : "PF3D7_1410300", + "insert_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 407571, + "genome_id" : 0, + "ref_seq" : "TCTCCTTCCTTTTCATTCTTTACTTTATTTCTATTAATACACAACTCTCCTTGAGTTAAGAGATTTACGATATTATCAATATTGTTTTCTTTCATATACTTCAACTTTTTACTATTCATTTTTAAAAGATAATTAACCAAGTTACTCATGTTTGTATTAGATGGTATGTTCCCAATTTTTTCGTCTTTTCTT", + "start" : 407379, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 407379, + "genome_id" : 0, + "start" : 407346, + "strand" : "+" + }, + "seq" : "TGAACTCTTTAAATTATCCTTTTTGAATATCCA" + }, + "target_attributes" : + [ + "Excluded", + "Microhaplotype" + ], + "target_name" : "t93" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 1102389, + "genome_id" : 0, + "start" : 1102362, + "strand" : "+" + }, + "seq" : "CGTAGAGGTGTTGATGTTAATATGGAG" + }, + "gene_name" : "PF3D7_0424400", + "insert_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 1102578, + "genome_id" : 0, + "ref_seq" : "GAAGAAATAAATAAAATAATTTATACAAACGAATTTAATAATTATGAAGATAAAATATATGAAGATGTCAAATATATTAAAGAACAGGAAAATGAAATGTACTTGAGAGATGGAATTGAAGAGTTACATATGGATGAACCAAGTGGGGATGTATATTTTGATGATCAAGATGATTATATATTTTTAGAT", + "start" : 1102389, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 1102389, + "genome_id" : 0, + "start" : 1102362, + "strand" : "+" + }, + "seq" : "CATCCAAACATACATCCTCTTTTTGTTC" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t30" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 2114975, + "genome_id" : 0, + "start" : 2114942, + "strand" : "+" + }, + "seq" : "TGTATCTATAGTCGATTTTGTTATTCTAAGCAT" + }, + "gene_name" : "PF3D7_1352900", + "insert_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 2115142, + "genome_id" : 0, + "ref_seq" : "ATCATTAAGTAAAAAATTTACGGTATCGACATTAACAGTGTAATAATTTCTTCCTAAATTTAAATGTTCTATATAATTCAAATTTAATACGGTATTTAACCTTTCTTCAAGTATTATCATTGCATTAATTTGAAACATAAGTAAAAAATTATTAGCACTTCTAAAAT", + "start" : 2114975, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 2114975, + "genome_id" : 0, + "start" : 2114942, + "strand" : "+" + }, + "seq" : "ACATTTTATTGTTGTTAGAATACCTCTAGTTT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t84" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 63166, + "genome_id" : 0, + "start" : 63135, + "strand" : "+" + }, + "seq" : "ACATTCTATTAAAAACTTTGGGTACTCCTAA" + }, + "gene_name" : "PF3D7_1200700", + "insert_location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 63280, + "genome_id" : 0, + "ref_seq" : "TATAATTTCACCTTTTGAATTACATATGTCTGTATTCAAAAATTTTATATCTCTACTCCATATATTTATCTTTACACCCAAAAACAAAGCAATGAAAAAAACAACCCTTTCATA", + "start" : 63166, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 63166, + "genome_id" : 0, + "start" : 63135, + "strand" : "+" + }, + "seq" : "ACACATTTATCTTATTTACCCGTATCTCATATA" + }, + "target_attributes" : + [ + "Excluded", + "Microhaplotype" + ], + "target_name" : "t72" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 141778, + "genome_id" : 0, + "start" : 141751, + "strand" : "+" + }, + "seq" : "GATACACGTGATGAATACCATATAGCC" + }, + "gene_name" : "PF3D7_0402300", + "insert_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 141945, + "genome_id" : 0, + "ref_seq" : "CTTTCAAATTATATAAAGACAGAACTAAGAAATATAAACCTGCAAGAAATAAAAAACAATATAATAAAAATATTTAAAGAATTCAAATCTGCACACAAAGAAATTAAAAAAGAATCAGAACAAATTAATAAAGAATTTACCAAAATGGATGTCGTCATAAATCAATT", + "start" : 141778, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 141778, + "genome_id" : 0, + "start" : 141751, + "strand" : "+" + }, + "seq" : "AGATCAAGCATTTGTCTGTCTATATCTCTT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t22" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_10_v3", + "end" : 1399544, + "genome_id" : 0, + "start" : 1399515, + "strand" : "+" + }, + "seq" : "GGTCAAACTCATTCTGAATTAAATCCTGA" + }, + "gene_name" : "PF3D7_1035300", + "insert_location" : + { + "chrom" : "Pf3D7_10_v3", + "end" : 1399711, + "genome_id" : 0, + "ref_seq" : "AACATCAGAACATAGTAAAGATTTAAATAATAATGATTCAAAAAATGAATCTAGTGATATTATTTCAGTAAATAATAAATCAAATAAAGTACAAAATCATTTTGAATCATTATCAGATTTAGAATTACTTGAAAATTCCTCACAAGATAATTTAGACAAAGATACAA", + "start" : 1399544, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_10_v3", + "end" : 1399544, + "genome_id" : 0, + "start" : 1399515, + "strand" : "+" + }, + "seq" : "GTTTTTGATTAGGAAAAGGTTCTGTTGAAA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t63" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 748230, + "genome_id" : 0, + "start" : 748200, + "strand" : "+" + }, + "seq" : "AGGTCTAGGAAATAAAGGAGTATTACCATG" + }, + "gene_name" : "PF3D7_0417200", + "insert_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 748436, + "genome_id" : 0, + "ref_seq" : "GAAATGTAATTCCCTAGATATGAAATATTTTTGTGCAGTTACAACATATGTGAATGAATCAAAATATGAAAAATTGAAATATAAGAGATGTAAATATTTAAACAAAGAAACTGTGGATAATGTAAATGATATGCCTAATTCTAAAAAATTACAAAATGTTGTAGTTATGGGAAGAACAAGCTGGGAAAGCATTCCAAAAAAATTTA", + "start" : 748230, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 748230, + "genome_id" : 0, + "start" : 748200, + "strand" : "+" + }, + "seq" : "ACAATATAACATTTATCCTATTGCTTAAAGGTT" + }, + "target_attributes" : + [ + "Included", + "DrugResistance" + ], + "target_name" : "t25" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 85440, + "genome_id" : 0, + "start" : 85407, + "strand" : "+" + }, + "seq" : "ACCCATAGAAATGTTAAATGATATTTTTCTTCT" + }, + "gene_name" : "PF3D7_0301400", + "insert_location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 85646, + "genome_id" : 0, + "ref_seq" : "AACTTTTTAACACTATCATTATAATTATGTCTTTTATTTTCATATTTTTCTTTATAATAATTTATATCCTTTAATTTTTCTTTCATCAAATTTAACCATTTATCATTTAAATTCTCTTTTTCCACAGCTCCAGCATTTTTATTTATATCATCTACAACTACATCTTCCTTCACATAATTATTTATATAAAAATTATTATCATCTAA", + "start" : 85440, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 85440, + "genome_id" : 0, + "start" : 85407, + "strand" : "+" + }, + "seq" : "GAAGAAGTATTAAATGAAGAATTTTCAGATGCT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t14" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 109912, + "genome_id" : 0, + "start" : 109879, + "strand" : "+" + }, + "seq" : "TTTTAAAACTGGCAAATTATTTATTTCTGTCAT" + }, + "gene_name" : "PF3D7_0401900", + "insert_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 110087, + "genome_id" : 0, + "ref_seq" : "AATATTTGTATATATTCTAGTAAACACTTTAGGTACACCTGCAAGTACCTCAACATCTGAATTATATAAATCTTTAGAAAAACAACTAATATCCTTACTCGATATATTTATTTTTATACCAAGAATAACAGCCATATAAACCAAAACTCTCTCAAATACATGTGATACAGGTAAA", + "start" : 109912, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 109912, + "genome_id" : 0, + "start" : 109879, + "strand" : "+" + }, + "seq" : "CATGAAACCGAAAACCCATTTTTCTTA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t20" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 729975, + "genome_id" : 0, + "start" : 729943, + "strand" : "+" + }, + "seq" : "AATAAGAAATATGTCTTACAAGGAGATGTTTT" + }, + "gene_name" : "PF3D7_0716700", + "insert_location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 730088, + "genome_id" : 0, + "ref_seq" : "TTTTATGTGAAATTTTAAATAAAGAGAAATTGTTTGTGCACACATCTATTTTGGGATATATATCTAATCGTTTATGTTACGATATAAAAAAATATAGATGTTCATTATTGAAG", + "start" : 729975, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 729975, + "genome_id" : 0, + "start" : 729943, + "strand" : "+" + }, + "seq" : "AAACATTATGTAGTCAACATATGAAGGAAA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t43" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 534941, + "genome_id" : 0, + "start" : 534908, + "strand" : "+" + }, + "seq" : "TGTATGTGTGTTGATTGTAATTATAAGAATTGT" + }, + "gene_name" : "PF3D7_0113800", + "insert_location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 535110, + "genome_id" : 0, + "ref_seq" : "AATACTCCGTCAGATATTCAAAATGAATGTATTTGTTCAAAAATAAATGAAGATAGAAATAATGATATGATAAACATATCTGAAATATATTATCGTTTCATTAAATTTATAACAATGATTGAAATATATTTGTGTGTAATAGAGGAAATTAAAAGGGAAGAATGGGAAA", + "start" : 534941, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 534941, + "genome_id" : 0, + "start" : 534908, + "strand" : "+" + }, + "seq" : "CTACAAAAATTATGAAAAAGTTTGGTTCCTTTT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t9" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 685601, + "genome_id" : 0, + "start" : 685583, + "strand" : "+" + }, + "seq" : "CACGCGAACCAAACAACG" + }, + "gene_name" : "PF3D7_0916400", + "insert_location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 685792, + "genome_id" : 0, + "ref_seq" : "ACAAAGGAACAAGATAATTTTTTCCATTTTTATAAAAGTAATATATATGATATGGAAAATAGAACCTGTAATAATAATATATTACAATATTGTGTTATGAATAATAAATCATATTTATTTCATAATATATCATCCAAAAAAAATATATATATAAAAAAAAAGAATCATCAGTTTTCTTTATTCATATATTC", + "start" : 685601, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 685601, + "genome_id" : 0, + "start" : 685583, + "strand" : "+" + }, + "seq" : "GGGCGAAATTCTATGAATGTATTATTAATAGAA" + }, + "target_attributes" : + [ + "Excluded", + "Microhaplotype" + ], + "target_name" : "t56" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_02_v3", + "end" : 470492, + "genome_id" : 0, + "start" : 470459, + "strand" : "+" + }, + "seq" : "TGAACATGAAGAATATTGACATGAAACATTATA" + }, + "gene_name" : "PF3D7_0211700", + "insert_location" : + { + "chrom" : "Pf3D7_02_v3", + "end" : 470676, + "genome_id" : 0, + "ref_seq" : "ATACACATAAGAAAAAAAAAATTTATTTATTCTTACAAAAAGAATATAAAAACAAAATTTTGGGATTTATAAATTTTTATAAACATATAACACACAAAATAAAAAAGAAACAAGAAAATGTTCATGATAAAATCACTTTTTTAAAATGTCTAAAGGAACTCTTTTTTGTCACACATACAAATAA", + "start" : 470492, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_02_v3", + "end" : 470492, + "genome_id" : 0, + "start" : 470459, + "strand" : "+" + }, + "seq" : "GTATGTATTATACCCTCCATTTGATTATTCTCT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t12" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 145449, + "genome_id" : 0, + "start" : 145416, + "strand" : "+" + }, + "seq" : "TGTTCGATATGTTTAAATATATGATTCTCGAAA" + }, + "gene_name" : "PF3D7_0103300", + "insert_location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 145622, + "genome_id" : 0, + "ref_seq" : "AAACTTTTTTTATTTTTTTTGTCAATAGATAAATGATCAATATTTTCTATATTTAATCTATCAAGTATTTTTATATATCTATTATTTCTTTCTTCGATGGATAAATTATAAGAATCAATATCCTTTCTTTCATCAACAAACTTTTTTATTGTTAACTCCATTTTTTTATTTAA", + "start" : 145449, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 145449, + "genome_id" : 0, + "start" : 145416, + "strand" : "+" + }, + "seq" : "CCAATATGTCAAGGTATATTAAAGTATGGTATC" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t1" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 339168, + "genome_id" : 0, + "start" : 339139, + "strand" : "+" + }, + "seq" : "TGAGATAATCCTCCTGGAATATTTGTCAT" + }, + "gene_name" : "PF3D7_0806300", + "insert_location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 339357, + "genome_id" : 0, + "ref_seq" : "ATCATTACTATTCTTTATCCATATATATGTTGTTATATCAGTTGCACCTGAGGGTGGATTCAAACCTCTTGCTTGTATAATATATGCACGTACTACTAAATTACGTGTTAATCTATATTCTCTTACTAAATCATCACATTTCTTTATCATTTCTTTTTTTAAATACATTGTCTTTTCATCATACACATT", + "start" : 339168, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 339168, + "genome_id" : 0, + "start" : 339139, + "strand" : "+" + }, + "seq" : "CTGAAGCGGTTGGATATTTGAAATATATATGT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t48" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 1100656, + "genome_id" : 0, + "start" : 1100629, + "strand" : "+" + }, + "seq" : "CCCAAAACGGTTAATACTGAAGTTAGA" + }, + "gene_name" : "PF3D7_0424400", + "insert_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 1100831, + "genome_id" : 0, + "ref_seq" : "AATGTTCTAAGATCTGATGGAAAAATATCTGATCAAGGTTCTCAGAAAAGTCCTCCTAAGGAACTTTCTAATAAACAAATGACTCCTGCTCAACGTAAGAATGTGCCACATTTTGTTGAAAGAAGAGGCTATGGAAATAGTCATGTTAGGGGTAACGCACTTAAAAAAATTAGTA", + "start" : 1100656, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 1100656, + "genome_id" : 0, + "start" : 1100629, + "strand" : "+" + }, + "seq" : "AGAAGAAGGACTTTTATAATTATCATCACCAT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t29" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 179903, + "genome_id" : 0, + "start" : 179874, + "strand" : "+" + }, + "seq" : "AACAACAAGCTTTGTCGCTAAAATTAATT" + }, + "gene_name" : "PF3D7_0104100", + "insert_location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 180115, + "genome_id" : 0, + "ref_seq" : "CTTTCGATACAGGACATATAGATCATAATATAAACGAATATGAAAAACATTTTACAATTTTAAAAGAATCTTTTTTTCATAAGTCATTAAAATTTATGGATTATATATGGATTGTTATAATGAAACGAGAAAATAATACATTTTTAAATAGAATAAGAACTGAACAAGTCAAAAAATCGTTATTAATAACAGGTATTATAAACGAAAATATT", + "start" : 179903, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 179903, + "genome_id" : 0, + "start" : 179874, + "strand" : "+" + }, + "seq" : "TCTGATACCTATAGCTTCCATATTTTCATATTT" + }, + "target_attributes" : + [ + "Excluded", + "Microhaplotype" + ], + "target_name" : "t2" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 120215, + "genome_id" : 0, + "start" : 120188, + "strand" : "+" + }, + "seq" : "GTCCTTATCACATCCTCCATTGTTTAC" + }, + "gene_name" : "PF3D7_1403200", + "insert_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 120351, + "genome_id" : 0, + "ref_seq" : "CTTACAATGTTCTTCGCATTCGAAATTTTTTTCAGGATTACTTGAAAAGCCTTCTGGACAATTACAATATTCATATCCATGAGTATTCTTACAAACACCTTTTCCACAATTTAAAAAACATTTTTCTTCATTTAAA", + "start" : 120215, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 120215, + "genome_id" : 0, + "start" : 120188, + "strand" : "+" + }, + "seq" : "ACAGAAAGAATGGTTTAGAAATGTACGAAT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t90" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 534215, + "genome_id" : 0, + "start" : 534182, + "strand" : "+" + }, + "seq" : "TTCAGATGTGATAAATATATGTGACATTTGTAA" + }, + "gene_name" : "PF3D7_0113800", + "insert_location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 534368, + "genome_id" : 0, + "ref_seq" : "TGATAAAAAAAGAAAATGTAACAATCTACCTTGTGATTGTATCTTATGTAAAAAAAAGCACAATGTTTGTTATTGTAATATGTGTAAAAAGAAAGAAAAAAATATGAGAGAAGATTTATCGGTTGTAAAATATAATGAATATCCGATTAGTGT", + "start" : 534215, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 534215, + "genome_id" : 0, + "start" : 534182, + "strand" : "+" + }, + "seq" : "AAAAATATAAGAGATTCAAAGGGTCAGAC" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t8" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 336468, + "genome_id" : 0, + "start" : 336438, + "strand" : "+" + }, + "seq" : "AATACATGAATATGATTAACAACGAACCCA" + }, + "gene_name" : "PF3D7_0806200", + "insert_location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 336647, + "genome_id" : 0, + "ref_seq" : "TAAATTTACAGAAAAATTTAGATTTAATCATATGGCTAAAAAAGAATATAAAAGAAGGAGAAGCTTTAATTTCTGATATACCCACATCAAGTTTTTTAAGGTGTACTACAAATTATAAATTTGTATTGCATCCACAATATGAAGATAGTAACTTGAGAAAGAGGGTTCAAGATTATTAT", + "start" : 336468, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 336468, + "genome_id" : 0, + "start" : 336438, + "strand" : "+" + }, + "seq" : "ACTAAAAGGAAGACAAGCTGAAAACAT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t47" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 102326, + "genome_id" : 0, + "start" : 102298, + "strand" : "+" + }, + "seq" : "ACTTGTCGCTATACCTTCATCTATTGAA" + }, + "gene_name" : "PF3D7_0801300", + "insert_location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 102500, + "genome_id" : 0, + "ref_seq" : "TTAATTTTCTCAAGTAACATATTTTTGTCTTGACTACTTTCATCTGTAAATGGAACGACTACTCTTTGCTTACCTGCAAAAAGGACAACTGACATATGAGCCTTATCCTTACTTACATTCGAATTAAAGACCATAGATTCTAAAAATGGTATAGTTCCTTTTAACCAATAATCC", + "start" : 102326, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 102326, + "genome_id" : 0, + "start" : 102298, + "strand" : "+" + }, + "seq" : "TGTTGAAGAGTCAAGTTTTGTTCAGAA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t46" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 1437114, + "genome_id" : 0, + "start" : 1437081, + "strand" : "+" + }, + "seq" : "CATCATAATCATCTAATGATGTTAATCCTTGTA" + }, + "gene_name" : "PF3D7_0936300", + "insert_location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 1437303, + "genome_id" : 0, + "ref_seq" : "CTAAAACCTGACAGCTTTGTACAGTTATATTTACCCAATTAGAATGTTCAAACATATTTAAGTGTTGCCATTCTTCAAATAATTTTTTTTCATATTCAGTTTTTGGTTGGTTTTTAAATTCTTTTGATACTGTACCTTCTGCGGATGGTATAGGGAAGTTAAAAATTTTATTACGTACTTTGTTTGATT", + "start" : 1437114, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 1437114, + "genome_id" : 0, + "start" : 1437081, + "strand" : "+" + }, + "seq" : "GCACCATCATTAAATTTAGAAGAAACCC" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t59" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 279663, + "genome_id" : 0, + "start" : 279635, + "strand" : "+" + }, + "seq" : "CGGATAAATGTTTAGTTATTAGCCAGGT" + }, + "gene_name" : "PF3D7_1407700", + "insert_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 279786, + "genome_id" : 0, + "ref_seq" : "GAGTAATAGTGATTCATATAAGGTAAATTGTATTAATTTCTCTGAAGGATTTTGTTGCTGTCATCCAATAAATAATTTAGCACTATTATATGGAGAGTATCAACAAAATCAAGAATCAAAAAT", + "start" : 279663, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 279663, + "genome_id" : 0, + "start" : 279635, + "strand" : "+" + }, + "seq" : "CATTACTTATGGGAAGTTTCGGTAATTTCATA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t92" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 1178894, + "genome_id" : 0, + "start" : 1178862, + "strand" : "+" + }, + "seq" : "GAACGTTGAGAAATTACCTTTAGAAGATTACT" + }, + "gene_name" : "PF3D7_0929400", + "insert_location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 1179078, + "genome_id" : 0, + "ref_seq" : "ACAAATTATCCTTAGCCCCAGATATGGTAAAGACATATCACTGTTATAAATTAGGAAAGCAAGCAGCTGAATTATTAGAATCTATCATTTTAAAGAAAAAGTTCGTAAGATTTAGAGTTACTGATGCTATTGATGTATATGATTTCTTTTATATAAAGAAAGTTTTATCCAGTCGTATTAAGAA", + "start" : 1178894, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 1178894, + "genome_id" : 0, + "start" : 1178862, + "strand" : "+" + }, + "seq" : "GCTCTTTTGTCTTGTAAAAATTCATTATATTCT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t57" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 654002, + "genome_id" : 0, + "start" : 653972, + "strand" : "+" + }, + "seq" : "TCACCTAACGGTATATTTTTATCTCGTACA" + }, + "gene_name" : "PF3D7_0316200", + "insert_location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 654175, + "genome_id" : 0, + "ref_seq" : "ATATTTTTATAATTTCCTTTCATCTTATTTTTTTCTTTATATTTTTTTTTTTCATATGTAAGATTTATATAATCACTTTCGCTTTTTCTAACCCTTTTGAACTTTTTAAATGTACTTCGTTCATTATTTCTAATTCTCGTAAACACAAGAATAAATATTTTGATATATCTTAT", + "start" : 654002, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 654002, + "genome_id" : 0, + "start" : 653972, + "strand" : "+" + }, + "seq" : "TTATGTATTTTTCAAAAATCGGCACGTTT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t18" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 943258, + "genome_id" : 0, + "start" : 943227, + "strand" : "+" + }, + "seq" : "ACCCTACTTATACAAAGAGATAAAGAAGTAG" + }, + "gene_name" : "PF3D7_1223400", + "insert_location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 943428, + "genome_id" : 0, + "ref_seq" : "AATCAACTATAATTAAAAATAGTGGAATTATTGAAAACTTTGGAGATATTGATTATATCTTTACGGATAAAACAGGAACACTAACAGAAAATGTCATGGTGCTTAAAGTTATACATATAGGTTTTGATGTTATACATGCAGAAAATGAAAAAAATTCCATACAAGGTAAT", + "start" : 943258, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 943258, + "genome_id" : 0, + "start" : 943227, + "strand" : "+" + }, + "seq" : "AATTCCCTTTTTGTTTGGTTTCCATATT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t75" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 802525, + "genome_id" : 0, + "start" : 802494, + "strand" : "+" + }, + "seq" : "AAGCATCTGAACATTAAAGTTCAAACAAATA" + }, + "gene_name" : "PF3D7_0418000", + "insert_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 802713, + "genome_id" : 0, + "ref_seq" : "TAAATTATTATAGAAAGATAGAAGTTATTTTATATGAATGGTTATATTTTCATTATAATAATGTATATAACACCAAAGTAAAAAAACAAAAATTTATATTTACCCAACAAAAAAAAGACATATCAAAACATAACAAGTTATATCTTCAGTATGATCAAAATAAAAGAAACTCTGAAATAGAACATACA", + "start" : 802525, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 802525, + "genome_id" : 0, + "start" : 802494, + "strand" : "+" + }, + "seq" : "GCACATCGAATAATCTTCTTTGTGATT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t27" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 549993, + "genome_id" : 0, + "start" : 549962, + "strand" : "+" + }, + "seq" : "CATAAAAGAGGAAATCCACATACAATGGATA" + }, + "gene_name" : "PF3D7_0810800", + "insert_location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 550218, + "genome_id" : 0, + "ref_seq" : "AACTAACAAATTATGATAATCTAGTTTATGATATAAAAAATTATTTAGAACAAAGATTAAATTTTCTTGTATTAAATGGAATACCTCGTTATAGGATACTATTTGATATTGGATTAGGATTTGCGAAGAAACATGATCAATCTATTAAACTCTTACAAAATATACATGTATATGATGAGTATCCACTTTTTATTGGATATTCAAGAAAAAGATTTATTGCCCATT", + "start" : 549993, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 549993, + "genome_id" : 0, + "start" : 549962, + "strand" : "+" + }, + "seq" : "GTGTATTTATTACAACATTTTGATCATTCATGC" + }, + "target_attributes" : + [ + "Included", + "DrugResistance" + ], + "target_name" : "t49" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 618396, + "genome_id" : 0, + "start" : 618367, + "strand" : "+" + }, + "seq" : "GGGACACTACAGACAAAAATAAATGATCT" + }, + "gene_name" : "PF3D7_0315200", + "insert_location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 618581, + "genome_id" : 0, + "ref_seq" : "AAAAAGAGATTATAGAAGTGGAAAGAAGACATATATAATACAAGCTCTACAATATGCATTAACATATTATAGCAAACTTTCAAATAGAAAGGAAGCACCTAAAGTAACCATGTTATTTACAGATGGAAATGATTCCTATGAATCAGAAAAGGGATTACAGGATATTGCATTATTATATAGAAAAG", + "start" : 618396, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 618396, + "genome_id" : 0, + "start" : 618367, + "strand" : "+" + }, + "seq" : "AGAAACTCCTACTACCAATAATTTGACATTTT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t17" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_02_v3", + "end" : 805822, + "genome_id" : 0, + "start" : 805795, + "strand" : "+" + }, + "seq" : "TTGGAAAATTTGAGAATCCTATGTGCT" + }, + "gene_name" : "PF3D7_0220100", + "insert_location" : + { + "chrom" : "Pf3D7_02_v3", + "end" : 805942, + "genome_id" : 0, + "ref_seq" : "TTAATTATGAAGACAGTCTCACGACTTCATGTTATATTGATGAAAACAAATCCGATTCATCCTATGAAACTGAAGAAAATGTAAACTATAATAATAAAATGGGTAAACGCAAAAATTTAG", + "start" : 805822, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_02_v3", + "end" : 805822, + "genome_id" : 0, + "start" : 805795, + "strand" : "+" + }, + "seq" : "TTCGATTTGCCTACAATTTGTGATTCTA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t13" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 544718, + "genome_id" : 0, + "start" : 544686, + "strand" : "+" + }, + "seq" : "AACCCAGATAATCATTTATTAAATACAGACAC" + }, + "gene_name" : "PF3D7_0412300", + "insert_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 544861, + "genome_id" : 0, + "ref_seq" : "ATATATTTTACATAATAACAATCCTTCATGTAATGATTATAATTTAAATAATCTTTCATTTAATATAAATAAATATATTAATGAAGAAAAAGGCAAAAATAAAAAAACAAATCAACATATATCAGAACAATTTTTATTTCCTA", + "start" : 544718, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 544718, + "genome_id" : 0, + "start" : 544686, + "strand" : "+" + }, + "seq" : "CTGCAGCACACATTATAACTAAATGTG" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t24" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 150105, + "genome_id" : 0, + "start" : 150075, + "strand" : "+" + }, + "seq" : "CCGAAAATAGAACTCCATATGTTCATTACC" + }, + "gene_name" : "PF3D7_1404300", + "insert_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 150294, + "genome_id" : 0, + "ref_seq" : "ATAATAATAGTAATATAAAGAATTATTCAGCTGTAGATATATTCTCACCCAAAAAAACTGGAAAGGAATGTATTAAATGTCTCCCAGATAATTTTTGTGAATGCGAATGTAGTTGTAAAAATAAAACAGGTTTTTCAATGAAATATAGACATGCCAGTAAGGGATCTAAAGGATATAGTAAAAAAATGA", + "start" : 150105, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 150105, + "genome_id" : 0, + "start" : 150075, + "strand" : "+" + }, + "seq" : "GTCTGGAACGAGAAGATGTCTTTG" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t91" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_02_v3", + "end" : 109807, + "genome_id" : 0, + "start" : 109776, + "strand" : "+" + }, + "seq" : "CCACCATTTCTTCATTTTAATTTTGAATGGT" + }, + "gene_name" : "PF3D7_0202100", + "insert_location" : + { + "chrom" : "Pf3D7_02_v3", + "end" : 109982, + "genome_id" : 0, + "ref_seq" : "AACTTATGTTCATGAGCTAATTTCCCACAAATACTCCATAACGAACTTTTCATTTTATTAAATTTATCTCTCAAAAGAGAATGACTATAATGCCATATTAAATACATATCTTTCCTTTCTAATTTTCCTGGTAATTCTATTATCATTCTTTCTAAATCTTCTTCTGTAACTTTTC", + "start" : 109807, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_02_v3", + "end" : 109807, + "genome_id" : 0, + "start" : 109776, + "strand" : "+" + }, + "seq" : "ACCATTTGGATTAAAACCTTCAGATTTAAATA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t10" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 3214351, + "genome_id" : 0, + "start" : 3214318, + "strand" : "+" + }, + "seq" : "TGTTAAAATATTTTCCAAAGAATTCAATTAGCG" + }, + "gene_name" : "PF3D7_1478000", + "insert_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 3214478, + "genome_id" : 0, + "ref_seq" : "ATCGTTTTGAATTGTTAGAATTTAAAATGACGGAGGATTGTTATACAAAAATGTGGTTTGATTTTATGAGTGATTTTGGAATAGCTACAATGAATGAAACCGAACATACTAGATCTTTTTATGGATT", + "start" : 3214351, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 3214351, + "genome_id" : 0, + "start" : 3214318, + "strand" : "+" + }, + "seq" : "TCAATTGATGGTTGCCTTTCGATT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t100" + } + ], + "targeted_genomes" : + [ + { + "chromosomes" : + [ + "Pf3D7_01_v3", + "Pf3D7_02_v3", + "Pf3D7_03_v3", + "Pf3D7_04_v3", + "Pf3D7_05_v3", + "Pf3D7_06_v3", + "Pf3D7_07_v3", + "Pf3D7_08_v3", + "Pf3D7_09_v3", + "Pf3D7_10_v3", + "Pf3D7_11_v3", + "Pf3D7_12_v3", + "Pf3D7_13_v3", + "Pf3D7_14_v3", + "Pf3D7_API_v3", + "Pf3D7_MIT_v3" + ], + "genome_version" : "2020-09-01", + "gff_url" : "https://plasmodb.org/common/downloads/release-65/Pfalciparum3D7/gff/data/PlasmoDB-65_Pfalciparum3D7.gff", + "name" : "3D7", + "taxon_id" : + [ + 5833 + ], + "url" : "https://plasmodb.org/common/downloads/release-65/Pfalciparum3D7/fasta/data/PlasmoDB-65_Pfalciparum3D7_Genome.fasta" + } + ] +} diff --git a/tests/data/minimum_pmo_example_2_for_spec_dup_testing.json b/tests/data/minimum_pmo_example_2_for_spec_dup_testing.json new file mode 100644 index 0000000..090cdbd --- /dev/null +++ b/tests/data/minimum_pmo_example_2_for_spec_dup_testing.json @@ -0,0 +1,8495 @@ +{ + "bioinformatics_methods_info" : + [ + { + "methods" : + [ + { + "additional_argument" : + [ + "--bamExtractTrimToRegion", + "--bed /tank/data/plasmodium/falciparum/beds/targeted_panels/heome1/heome1_Pf3D7_withPrimers.bed", + "--genomeDir /tank/data/genomes/plasmodium/genomes/pf/genomes/", + "--primaryGenome Pf3D7", + "--bam bams/{SAMPLE}.sorted.bam" + ], + "program" : "PathWeaver BamExtractPathwaysFromRegion", + "program_description" : "Extract reads from a bam file for a specific genomic locatioon and then assembles local haplotypes for that region", + "program_version" : "1.0.0-dev" + }, + { + "additional_argument" : + [ + "--overWriteDir", + "--fracCutOff 0.005", + "--dout popClusteringTrimmedParagon", + "--replicateMinTotalReadCutOff 10", + "--clusterCutOff 5", + "--pat _heome1", + "--numThreads 10", + "--groupingsFile /tank/data/plasmodium/falciparum/pfdata/metadata/meta.tab.txt", + "--genome2bit /tank/data/genomes/plasmodium/genomes/pf/genomes/Pf3D7.2bit", + "--trimBedFnp /tank/data/plasmodium/falciparum/beds/targeted_panels/heome1/heome1_Pf3D7_inserts_trimmed1.bed" + ], + "program" : "PathWeaver runProcessClustersOnRecon", + "program_description" : "Compare across samples for each target to create population level identifiers and do post artifact cleanup", + "program_version" : "1.0.0-dev" + } + ] + } + ], + "bioinformatics_run_info" : + [ + { + "bioinformatics_methods_id" : 0, + "bioinformatics_run_name" : "PathWeaver-Heome1", + "run_date" : "2024-09-03" + } + ], + "detected_microhaplotypes" : + [ + { + "bioinformatics_run_id" : 0, + "library_samples" : + [ + { + "library_sample_id" : 1, + "target_results" : + [ + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 289 + } + ], + "mhaps_target_id" : 2 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 333 + } + ], + "mhaps_target_id" : 47 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 480 + } + ], + "mhaps_target_id" : 99 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 427 + } + ], + "mhaps_target_id" : 76 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 181 + } + ], + "mhaps_target_id" : 98 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 352 + } + ], + "mhaps_target_id" : 21 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 333 + } + ], + "mhaps_target_id" : 74 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 302 + } + ], + "mhaps_target_id" : 97 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 299 + } + ], + "mhaps_target_id" : 96 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 230 + } + ], + "mhaps_target_id" : 95 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 268 + } + ], + "mhaps_target_id" : 94 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 301 + } + ], + "mhaps_target_id" : 30 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 271 + } + ], + "mhaps_target_id" : 46 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 260 + } + ], + "mhaps_target_id" : 87 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 358 + } + ], + "mhaps_target_id" : 85 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 329 + } + ], + "mhaps_target_id" : 84 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 305 + } + ], + "mhaps_target_id" : 80 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 208 + } + ], + "mhaps_target_id" : 79 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 360 + } + ], + "mhaps_target_id" : 81 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 311 + } + ], + "mhaps_target_id" : 82 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 377 + } + ], + "mhaps_target_id" : 72 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 446 + } + ], + "mhaps_target_id" : 16 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 361 + } + ], + "mhaps_target_id" : 71 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 324 + } + ], + "mhaps_target_id" : 77 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 282 + } + ], + "mhaps_target_id" : 69 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 208 + } + ], + "mhaps_target_id" : 66 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 408 + } + ], + "mhaps_target_id" : 63 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 286 + } + ], + "mhaps_target_id" : 68 + }, + { + "mhaps" : + [ + { + "mhap_id" : 2, + "reads" : 363 + } + ], + "mhaps_target_id" : 62 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 387 + } + ], + "mhaps_target_id" : 61 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 362 + } + ], + "mhaps_target_id" : 51 + }, + { + "mhaps" : + [ + { + "mhap_id" : 2, + "reads" : 316 + } + ], + "mhaps_target_id" : 50 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 356 + } + ], + "mhaps_target_id" : 31 + }, + { + "mhaps" : + [ + { + "mhap_id" : 2, + "reads" : 374 + } + ], + "mhaps_target_id" : 49 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 317 + } + ], + "mhaps_target_id" : 35 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 288 + } + ], + "mhaps_target_id" : 48 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 354 + } + ], + "mhaps_target_id" : 43 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 441 + } + ], + "mhaps_target_id" : 33 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 385 + } + ], + "mhaps_target_id" : 67 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 156 + } + ], + "mhaps_target_id" : 37 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 391 + } + ], + "mhaps_target_id" : 3 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 469 + } + ], + "mhaps_target_id" : 14 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 276 + } + ], + "mhaps_target_id" : 32 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 441 + } + ], + "mhaps_target_id" : 86 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 395 + } + ], + "mhaps_target_id" : 11 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 305 + } + ], + "mhaps_target_id" : 28 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 346 + } + ], + "mhaps_target_id" : 26 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 326 + } + ], + "mhaps_target_id" : 59 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 382 + } + ], + "mhaps_target_id" : 27 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 433 + } + ], + "mhaps_target_id" : 88 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 310 + } + ], + "mhaps_target_id" : 64 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 333 + } + ], + "mhaps_target_id" : 8 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 350 + } + ], + "mhaps_target_id" : 19 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 257 + } + ], + "mhaps_target_id" : 36 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 235 + } + ], + "mhaps_target_id" : 65 + }, + { + "mhaps" : + [ + { + "mhap_id" : 2, + "reads" : 348 + } + ], + "mhaps_target_id" : 25 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 335 + } + ], + "mhaps_target_id" : 58 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 262 + } + ], + "mhaps_target_id" : 73 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 385 + } + ], + "mhaps_target_id" : 20 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 289 + } + ], + "mhaps_target_id" : 93 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 366 + } + ], + "mhaps_target_id" : 24 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 270 + } + ], + "mhaps_target_id" : 83 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 346 + } + ], + "mhaps_target_id" : 70 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 293 + } + ], + "mhaps_target_id" : 23 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 356 + } + ], + "mhaps_target_id" : 57 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 316 + } + ], + "mhaps_target_id" : 17 + }, + { + "mhaps" : + [ + { + "mhap_id" : 2, + "reads" : 358 + } + ], + "mhaps_target_id" : 15 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 366 + } + ], + "mhaps_target_id" : 60 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 420 + } + ], + "mhaps_target_id" : 18 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 341 + } + ], + "mhaps_target_id" : 6 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 392 + } + ], + "mhaps_target_id" : 13 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 327 + } + ], + "mhaps_target_id" : 9 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 351 + } + ], + "mhaps_target_id" : 53 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 287 + } + ], + "mhaps_target_id" : 92 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 420 + } + ], + "mhaps_target_id" : 12 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 405 + } + ], + "mhaps_target_id" : 22 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 399 + } + ], + "mhaps_target_id" : 45 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 395 + } + ], + "mhaps_target_id" : 75 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 370 + } + ], + "mhaps_target_id" : 7 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 418 + } + ], + "mhaps_target_id" : 40 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 261 + } + ], + "mhaps_target_id" : 5 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 439 + } + ], + "mhaps_target_id" : 41 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 251 + } + ], + "mhaps_target_id" : 52 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 308 + } + ], + "mhaps_target_id" : 38 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 398 + } + ], + "mhaps_target_id" : 89 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 300 + } + ], + "mhaps_target_id" : 4 + }, + { + "mhaps" : + [ + { + "mhap_id" : 2, + "reads" : 329 + } + ], + "mhaps_target_id" : 0 + }, + { + "mhaps" : + [ + { + "mhap_id" : 2, + "reads" : 250 + } + ], + "mhaps_target_id" : 90 + }, + { + "mhaps" : + [ + { + "mhap_id" : 2, + "reads" : 340 + } + ], + "mhaps_target_id" : 78 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 303 + } + ], + "mhaps_target_id" : 42 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 389 + } + ], + "mhaps_target_id" : 34 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 302 + } + ], + "mhaps_target_id" : 91 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 338 + } + ], + "mhaps_target_id" : 1 + }, + { + "mhaps" : + [ + { + "mhap_id" : 2, + "reads" : 357 + } + ], + "mhaps_target_id" : 39 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 300 + } + ], + "mhaps_target_id" : 29 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 293 + } + ], + "mhaps_target_id" : 44 + }, + { + "mhaps" : + [ + { + "mhap_id" : 2, + "reads" : 358 + } + ], + "mhaps_target_id" : 56 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 290 + } + ], + "mhaps_target_id" : 10 + } + ] + }, + { + "library_sample_id" : 0, + "target_results" : + [ + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1191 + } + ], + "mhaps_target_id" : 2 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1129 + } + ], + "mhaps_target_id" : 54 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 920 + }, + { + "mhap_id" : 0, + "reads" : 291 + } + ], + "mhaps_target_id" : 21 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1039 + } + ], + "mhaps_target_id" : 74 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1151 + } + ], + "mhaps_target_id" : 97 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1177 + } + ], + "mhaps_target_id" : 96 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1221 + } + ], + "mhaps_target_id" : 95 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1076 + } + ], + "mhaps_target_id" : 94 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1090 + } + ], + "mhaps_target_id" : 30 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1137 + } + ], + "mhaps_target_id" : 46 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 884 + } + ], + "mhaps_target_id" : 87 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1417 + } + ], + "mhaps_target_id" : 85 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1282 + } + ], + "mhaps_target_id" : 84 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1295 + } + ], + "mhaps_target_id" : 80 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1488 + } + ], + "mhaps_target_id" : 79 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1455 + } + ], + "mhaps_target_id" : 81 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1375 + } + ], + "mhaps_target_id" : 82 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 928 + } + ], + "mhaps_target_id" : 98 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1439 + } + ], + "mhaps_target_id" : 76 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1315 + } + ], + "mhaps_target_id" : 72 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1434 + } + ], + "mhaps_target_id" : 16 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 997 + } + ], + "mhaps_target_id" : 71 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1208 + } + ], + "mhaps_target_id" : 77 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 788 + }, + { + "mhap_id" : 0, + "reads" : 321 + } + ], + "mhaps_target_id" : 69 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1354 + } + ], + "mhaps_target_id" : 66 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1234 + } + ], + "mhaps_target_id" : 63 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1117 + } + ], + "mhaps_target_id" : 68 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 833 + }, + { + "mhap_id" : 1, + "reads" : 336 + } + ], + "mhaps_target_id" : 62 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1451 + } + ], + "mhaps_target_id" : 61 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1283 + } + ], + "mhaps_target_id" : 51 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 915 + }, + { + "mhap_id" : 1, + "reads" : 267 + } + ], + "mhaps_target_id" : 50 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1209 + } + ], + "mhaps_target_id" : 31 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 2063 + }, + { + "mhap_id" : 1, + "reads" : 450 + } + ], + "mhaps_target_id" : 49 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1319 + } + ], + "mhaps_target_id" : 35 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1196 + } + ], + "mhaps_target_id" : 48 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1507 + } + ], + "mhaps_target_id" : 99 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 843 + }, + { + "mhap_id" : 1, + "reads" : 269 + } + ], + "mhaps_target_id" : 47 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1411 + } + ], + "mhaps_target_id" : 43 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1334 + } + ], + "mhaps_target_id" : 33 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 937 + }, + { + "mhap_id" : 1, + "reads" : 318 + } + ], + "mhaps_target_id" : 67 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1066 + } + ], + "mhaps_target_id" : 37 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1128 + } + ], + "mhaps_target_id" : 3 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1500 + } + ], + "mhaps_target_id" : 14 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1276 + } + ], + "mhaps_target_id" : 32 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1370 + } + ], + "mhaps_target_id" : 86 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 1011 + }, + { + "mhap_id" : 0, + "reads" : 347 + } + ], + "mhaps_target_id" : 11 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1288 + } + ], + "mhaps_target_id" : 28 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 955 + }, + { + "mhap_id" : 0, + "reads" : 313 + } + ], + "mhaps_target_id" : 26 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1171 + } + ], + "mhaps_target_id" : 59 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1197 + } + ], + "mhaps_target_id" : 27 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 952 + }, + { + "mhap_id" : 0, + "reads" : 403 + } + ], + "mhaps_target_id" : 88 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1100 + } + ], + "mhaps_target_id" : 64 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1133 + } + ], + "mhaps_target_id" : 8 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1293 + } + ], + "mhaps_target_id" : 19 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1257 + } + ], + "mhaps_target_id" : 36 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1338 + } + ], + "mhaps_target_id" : 65 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 934 + }, + { + "mhap_id" : 1, + "reads" : 318 + } + ], + "mhaps_target_id" : 25 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1371 + } + ], + "mhaps_target_id" : 58 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 933 + }, + { + "mhap_id" : 1, + "reads" : 338 + } + ], + "mhaps_target_id" : 73 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 712 + }, + { + "mhap_id" : 0, + "reads" : 289 + } + ], + "mhaps_target_id" : 20 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1413 + } + ], + "mhaps_target_id" : 93 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1196 + } + ], + "mhaps_target_id" : 24 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1348 + } + ], + "mhaps_target_id" : 83 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1207 + } + ], + "mhaps_target_id" : 70 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 909 + } + ], + "mhaps_target_id" : 23 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1135 + } + ], + "mhaps_target_id" : 57 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 951 + }, + { + "mhap_id" : 0, + "reads" : 318 + } + ], + "mhaps_target_id" : 17 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 964 + }, + { + "mhap_id" : 1, + "reads" : 294 + } + ], + "mhaps_target_id" : 15 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1397 + } + ], + "mhaps_target_id" : 60 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1251 + } + ], + "mhaps_target_id" : 18 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 910 + }, + { + "mhap_id" : 0, + "reads" : 337 + } + ], + "mhaps_target_id" : 6 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1039 + }, + { + "mhap_id" : 1, + "reads" : 325 + } + ], + "mhaps_target_id" : 13 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1489 + } + ], + "mhaps_target_id" : 9 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 814 + }, + { + "mhap_id" : 0, + "reads" : 267 + } + ], + "mhaps_target_id" : 53 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1186 + } + ], + "mhaps_target_id" : 92 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1496 + } + ], + "mhaps_target_id" : 12 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1454 + } + ], + "mhaps_target_id" : 22 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1224 + } + ], + "mhaps_target_id" : 45 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1429 + } + ], + "mhaps_target_id" : 75 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1097 + }, + { + "mhap_id" : 1, + "reads" : 350 + } + ], + "mhaps_target_id" : 7 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1493 + } + ], + "mhaps_target_id" : 40 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1024 + } + ], + "mhaps_target_id" : 5 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1365 + } + ], + "mhaps_target_id" : 41 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1097 + } + ], + "mhaps_target_id" : 52 + }, + { + "mhaps" : + [ + { + "mhap_id" : 1, + "reads" : 819 + }, + { + "mhap_id" : 0, + "reads" : 273 + } + ], + "mhaps_target_id" : 38 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1121 + } + ], + "mhaps_target_id" : 89 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1227 + } + ], + "mhaps_target_id" : 4 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1058 + }, + { + "mhap_id" : 1, + "reads" : 245 + } + ], + "mhaps_target_id" : 0 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 732 + }, + { + "mhap_id" : 1, + "reads" : 253 + } + ], + "mhaps_target_id" : 90 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 883 + }, + { + "mhap_id" : 1, + "reads" : 299 + } + ], + "mhaps_target_id" : 78 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1076 + } + ], + "mhaps_target_id" : 42 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 991 + } + ], + "mhaps_target_id" : 34 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1158 + } + ], + "mhaps_target_id" : 91 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1341 + } + ], + "mhaps_target_id" : 1 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 992 + }, + { + "mhap_id" : 1, + "reads" : 302 + } + ], + "mhaps_target_id" : 39 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1184 + } + ], + "mhaps_target_id" : 29 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1304 + } + ], + "mhaps_target_id" : 44 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 810 + }, + { + "mhap_id" : 1, + "reads" : 364 + } + ], + "mhaps_target_id" : 56 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1356 + } + ], + "mhaps_target_id" : 55 + }, + { + "mhaps" : + [ + { + "mhap_id" : 0, + "reads" : 1109 + } + ], + "mhaps_target_id" : 10 + } + ] + } + ] + } + ], + "library_sample_info" : + [ + { + "library_sample_name" : "5tbx_lib_name2", + "panel_id" : 0, + "sequencing_info_id" : 0, + "specimen_id" : 0 + }, + { + "library_sample_name" : "XUC009_lib_name2", + "panel_id" : 0, + "sequencing_info_id" : 0, + "specimen_id" : 1 + } + ], + "panel_info" : + [ + { + "panel_name" : "heomev1", + "reactions" : + [ + { + "panel_targets" : + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99 + ], + "reaction_name" : "full" + } + ] + } + ], + "pmo_header" : + { + "creation_date" : "2025-11-03", + "generation_method" : + { + "program_name" : "elucidator combingallintopmojson", + "program_version" : "1.1.1" + }, + "pmo_version" : "v1.0.0" + }, + "project_info" : + [ + { + "project_description" : "PathWeaver assemblies of Heome1 from large collection of global samples", + "project_name" : "PathWeaverHeome1" + } + ], + "representative_microhaplotypes" : + { + "targets" : + [ + { + "mhap_location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 145621, + "genome_id" : 0, + "start" : 145448, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "AACTTTTTTTATTTTTTTTGTCAATAGATAAATGATCAATATTTTCTATATTTAATCTATCAAGAATTTTTATATATCTATTATTTCTTTCTTCGATGGATAAATTATATGAATCAATATCCTTTCTTTCATCAACAAACTTTTTTATTGTTAACTCCATTTTTTTATTTA" + }, + { + "seq" : "AACTTTTTTTATTTTTTTTGTCAATAGATAAATGATCAATATTTTCTATATTTAATCTATCAAGAATTTTTATATATCTATTATTTCTTTCTTCGATGGATAAATTATAAGAATCAATATCCTTTCTTTCATCAACAAACTTTTTTATTGTTAACTCCATTTTTTTATTTA" + }, + { + "seq" : "AACTTTTTTTATTTTTTTTGTCAATAGATAAATGATCAATATTTTCTATATTTAATCTATCAAGTATTTTTATATATCTATTATTTCTTTCTTCGATGGATAAATTATAAGAATCAATATCCTTTCTTTCATCAACAAACTTTTTTATTGTTAACTCCATTTTTTTATTTA" + } + ], + "target_id" : 79 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_02_v3", + "end" : 109981, + "genome_id" : 0, + "start" : 109806, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "ACTCATGTTCATGAGCTAATTTCCCACAAATACTCCATAACGAACTTTTCATTTTATTAAATTTATCTCTCAAAAGAGAATGACTATAATGCCATATTAAATACATATCTTTCCTTTCTAATGTTCCTGGTAATTCTATTATCATTCTTTCTAAATCTTCTTCTGTAAGTTTT" + }, + { + "seq" : "ACTTATGTTCATGAGCTAATTTCCCACAAATACTCCATAACGAACTTTTCATTTTATTAAATTTATCTCTCAAAAGAGAATGACTATAATGCCATATTAAATACATATCTTTCCTTTCTAATTTTCCTGGTAATTCTATTATCATTCTTTCTAAATCTTCTTCTGTAAGTTTT" + } + ], + "target_id" : 98 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 3214477, + "genome_id" : 0, + "start" : 3214350, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TCGTTTTGAATTGTCAGAATTTAAAATGACGGAGGATTGTTATACAAAAATGTGGTTTGATTTTATGAGTGATTTTGGAATAGCTACAATGAATGAAACCGAACATACTAGATCTTTTTATGGCT" + }, + { + "seq" : "TCGTTTTGCATTGTCAGAATTTAAAATGACGGAGGATTGTTATACAAAAATGTGGTTTGATTTTATGAGTGATTTTGGAATAGCTACAATGAATGAAAGCGAACATACTAGATCTTTTTATGGCT" + } + ], + "target_id" : 99 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_02_v3", + "end" : 278335, + "genome_id" : 0, + "start" : 278164, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "GAATTTTCTTTTTTATGACTTTCTTCTCCTTGTTCAGAAGCTTCTTTTTCATCCTTTTTTTCTGCTGCGTCAGATAAATTGGGGGAAGCACTTGAAGATTCATTTCCTCCAGGAGTATCACTAGTACTTACTCCGTCCATATTTGGTTTTTCTTCCCTTAGAATTCTCA" + }, + { + "seq" : "GAATTTTCTTTTTTATGACTTTCTTCTCCTTGTTCAGAAGCTTCTTTTTCATCCTTTTTTTCTGCTGCGTCAGATAAATTGGGGGAAGCACTTGAAGATTCATTTCCTCCAGGAGTATTACTAGTACTTACTCCGTCCACATTTGGTTTTTCTTCCCCTAGAATTCTCA" + } + ], + "target_id" : 42 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_02_v3", + "end" : 470675, + "genome_id" : 0, + "start" : 470491, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TACACATAAGAAAAAAAAAATTTATTTATTCTTACAAAAAGAATATAAAAACAAAATTTTGGGATTTATAAATTTTTATAAACGTATAACACACAAAATAAAAAAGAAACAAGAAAATGTTCATGATAAAATCACTTTTTTAAAATGTCTAAAGGAACTCTTTTTTGTCACACATACAAATA" + }, + { + "seq" : "TACACATAAGAAAAAAAAAATTTATTTATTCTTACAAAAAGAATATAAAAACAAAATTTTGGGATTTATAAATTTTTATAAACATATAACACACAAAATAAAAAAGAAACAAGAAAATGTTCATGATAAAATCACTTTTTTAAAATGTCTAAAGGAACTCTTTTTTGTCACACATACAAATG" + } + ], + "target_id" : 78 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_02_v3", + "end" : 805941, + "genome_id" : 0, + "start" : 805821, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TAATTATGAAGACAGTCTCACGACTTCATGTTATATTGATGAAAACAAATCCGATTCATCCTATGAAACTGAAGAAAATGTAAACTATAATAATAAAATGGGTAAACGCAAAAATTTA" + } + ], + "target_id" : 95 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 85645, + "genome_id" : 0, + "start" : 85439, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "ACTTTTTAACACTATCATTATAATTATGTCTTTTATTTTCATATTTTTCTTTATAATAATTTATATCCTTTAATTTTTCTTTCATCAAATTTAACCATTTATCATTTAAATTCTCTTTTTCCACAGCTCCAGCATTTTTATTTATATCATCTACAACTACATCTTCCTTCACATAATTATTTATATAAAAATTATTATCATCTA" + }, + { + "seq" : "ACTTTTTAACACTATCATTATAATTATGTCTTTTATTTTCATATTTTTCTTTATAATAATTTATATCCTTTAATTTTTCTTTCATCAAATTTAACCATTTATCATTTAAATTCTCTTTTTCCACAGCTCCAGCATTTTTATTTATATCATCTACAACTACATCTTCCTTCACATAATTATTTATATAAAAACTATTATCATCTA" + } + ], + "target_id" : 73 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 142180, + "genome_id" : 0, + "start" : 141962, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "GCATTTATAACAAAATATCAGAAGATGGAAAAACCAAAAATAGCCTACTTAGCGATATATCAAAATTATTTAAAATTGTAAAAGAAAGCAAATTAATATTTGTAACTGGATTTTTATTAACAACCTTGTCAGCAATTGTAGATTCATACATTCCAATTTTTCTATCCAAAACGGTATCTTTTGTAATGGAAAGAAAAAAATTTACATTTCTTAAAA" + }, + { + "seq" : "GCATTTATAACAAAATATCAGAAGATGGAAAAACCAAAAATAGCCTACTTAGCGATATATCAAAATTATTTAAAATTGTAAAAGAAAGCAAATTAATATTTGTAACTGGATTTTTATTAACAACCTTGTCAGCAATTGTCGATTCATACATTCCAATTTTTTTATCCAAAACGGTATCTTTTGTAATGGAAAGAAAAAGTTTTACATTTCTTAAAA" + } + ], + "target_id" : 37 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 221494, + "genome_id" : 0, + "start" : 221362, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TGAACTATTTACGACATTAAACACACTGGAACATTTTTCCATTTTACAAATTTTTTTTTCAATATCATTTTCATAATCTAATTCGTCTTTAGGTTTATTAGCAGAGCCAGGCTTTATTCTAACTTGAATA" + }, + { + "seq" : "TGAACTATTTACGACATTAAACACACTGGAACATTTTTCCATTTTACAAATTTTTTTTTCAATATCATTTTCATAATCTAATTGGTCTTTAGGTTTATCAGCAGAGCCAGGCTTTATTCTAACTTGAATA" + } + ], + "target_id" : 57 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 618580, + "genome_id" : 0, + "start" : 618395, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "AAAAGAGATTATAGAAGTGGAAAGAAGACATATATAATACAAGCTCTACGATATGCATTAACATATTATAGCAAACTTTCAAATAGAAAGGAAGCACCTAAAGTAACCATGTTATTTACAGATGGAAATGATCCCTATGAATCAGAAAAGGGATTACAGGATATTGCATTATTATATAGAAAA" + }, + { + "seq" : "AAAAGAGATTATAGAAGTGGAAAGAAGACATATATAATACAAGCTCTACGATATGCATTAACATATTATAGCAAACTTTCAAATAGAAAGGAAGCACCTAAAGTAACCATGTTATTTACAGATGGAAATGATTCCTATGAATCAGAAAAGGGATTACAGGATATTGCATTATTATATAGAAAA" + } + ], + "target_id" : 94 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 654174, + "genome_id" : 0, + "start" : 654001, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TATTTTTATAATTTCCTTTCATCTTATTTTTTTCTTTATATTTTTTTTTTTCATATGTAAGATTTATATAATCACTTTCGCTTTTTCTAACGCTTTTGAACTTTTTAAATGTACTTCCTTCATTATTTCTAATTCTCGTAAACACAAGAATAAATATTTTGATATATCTTA" + }, + { + "seq" : "TATTTTTATAATTTCCTTTCATCTTATTTTTTTCTTTATATTTTTTTTTTTCATATGTAAGATTTATATAATCACTTTCGCTTTTTCTAACGCTTTTGAACTTTTTAAATGTACTTCGTTCATTATTTCTAATTCTCGTAAACACAAGAATAAATATTTTGATATATCTTA" + } + ], + "target_id" : 90 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 850988, + "genome_id" : 0, + "start" : 850815, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "CATATTCGTTTCAGCGTTTATAGAGCGAATATTATCGATTATGTCTATATTCCCTAAAATATGTACATAATAATCTCCATTTAATAATGTTACTTTCTTAAGAATATTTTTGTATATGACATCAAAGATATTACGAGTTAACAATACATCTACATTTCGGTCTATTATATA" + }, + { + "seq" : "CATATTCGTTTCAGCGTTTATAGAGCGAAAATTATCGATTATGTCTATATTCCCTAAAATATGTACATAATAATCTCCATTTAATAATGTTACTTTCTTAAGAATATTTTTGTATATGACATCAAAGATATTACGAGTTAACAATACATCTACATTTCGGTCTATTATATA" + } + ], + "target_id" : 48 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 180114, + "genome_id" : 0, + "start" : 179902, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TTTCGATATAGGACATATAGATCATAATATAAACGAATATGAAAAACGTTTTACAATTTTAAAAGAATCTTTTTTTCATAAGTCATTAAAATTTATGGATTATATATGGATTGTTATAATGAAACGAGAAAATAATACATTTTTAAATAGATTAAGAAATGAACAAGTGAGGGCATCGTTATTAATAACAGGTATTATAAACGAAAATAT" + }, + { + "seq" : "TTTCGATACAGGACATATAGATCATAATATAAACGAATATGAAAAACATTTTACAATTTTAAAAAAATCTTTTTTTCATAAGTCATTAAAATTTATGGATTATATATGGATTGTTATAATGAAACGAGATAATAATACATTTTTAAATAGATTAAGAAATGAACAAGTGAGGGCATCGTTATTAATAACAGGTATTATAAACGAAAATAT" + } + ], + "target_id" : 82 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 110086, + "genome_id" : 0, + "start" : 109911, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "ATATTTGTATATATTCTAGTAAACACTTTAGGTACACCTGCAAGTACCTCAACATCTGAATTATATAAATCTTTAGAAAAACAACTAATATCCTTACTCCATATATTTATTTTTATACCAAGAATAACAGCCATATAAACCAAAACTCTCTCAAATGCATGTGATACAGGTAA" + }, + { + "seq" : "ATATTTGTATATATTCTAGTAAACACTTTAGGTACACCTGCAAGTACCTCAACATCTGAATTATATAAATCTTTAGAAAAACAACTAATATCCTTACTCCATATATTTATTTTTATACCAAGAATAACAGCCATATAAACCAAAACTCTCTCAAATACATGTGATACAGGTAA" + } + ], + "target_id" : 74 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 133700, + "genome_id" : 0, + "start" : 133490, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TAGATTTTTTCCCTCCAACAGATGCACTCACTTTAGGTGTTTTAAACTTAGTTGTATGTTGACCCCCCTCATTATTTAGTTTACCTTTATTTAATCTTTTACCAGCAGTAGAAACTACATTCTCTCGATTATCATTACCTACTTCAGTCTTTACAATTGTAGGAGGTGTTTTAACATGATCATCCCCTCCATGAGGAGTAACCCTTAA" + }, + { + "seq" : "TAGATTTTTTCCCTTCAGCAGGTGCCCTCACTTTAGGTGTTTTAAACTTAGTTGTATGTGGAACCCCATCTTTATTTGCTTTACCTCTATTTAATCTTTTACCAGCAGTAGAAACTACATTCTCTCGATTATCATTACCTACTTCAGTCTTTACAATTGTAGGAGGTGTTTTAACATGATTATCCCCTCCATGAGGAGTAACCCTTAA" + } + ], + "target_id" : 43 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 141944, + "genome_id" : 0, + "start" : 141777, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TTTCAAATTATATAAAGACAGAACTAAGAAATATAAACCTGCAAGAAATAAAAAACAATATAATAAAAATATTTAAAGAATTCAAATCTGCACACAAAGAAATTAAAAAAGAATCAAAACAAATTAATAAAGAATTTACCAAAATGGATGTCGTCATAAATCAAT" + }, + { + "seq" : "TTTCAAATTATATAAAGACAGAACTAAGAAATATAAACCTGCAAGAAATAAAAAACAATATAATAAAAATATTTAAAGAATTCGAATCTGCACACAAAGAAATTAAAAAAGAATCAAAACAAATTAATAAAGAATTTACCAAAATGGATGTCGTCATAAATCAAT" + }, + { + "seq" : "TTTCAAATTATATAAAGACAGAACTAAGAAATATAAACCTGCAAGAAATAAAAAACAATATAATAAAAATATTTAAAGAATTCGAATCTGCACACAAAGAAATTAAAAAAGAATCAGAACAAATTAATAAAGAATTTACCAAAATGGATGTCGTCATAAATCAAT" + } + ], + "target_id" : 70 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 415825, + "genome_id" : 0, + "start" : 415652, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TGCTAGTTTTGCTGCTCATGAAAATAAAAGCTACTCATATGAAGGTCGTACATATAAAATGTATCCACCTGAATTTAATACATTAATGTTAAAAGCAGATTATTTTATAAGAGATATAAATACACGAGGATTTAGAGAAGTAAATATGGATTCATGTAAATCATATACAAA" + } + ], + "target_id" : 15 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 544860, + "genome_id" : 0, + "start" : 544717, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TATATTTTACATAATAACAATCTTTCATGTAATGATTATAATTTAAATAATCTTTCATTTAATATAAATAAATATATAAATGAAGAAAAAGGCAAAAATAAAAAAACAAATCAACATATATCAGAACAATTTTTATTTCCT" + }, + { + "seq" : "TATATTTTACATAATAACAATCCTTCATGTAATGATTATAATTTAAATAATCTTTCATTTAATATAAATAAATATATAAATGAAGAAAAAGGCAAAAATAAAAAAACAAATCAACATATATCAGAACAATTTTTATTTCCT" + } + ], + "target_id" : 96 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 748435, + "genome_id" : 0, + "start" : 748229, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "AAATGTAATTCCCTAGATATGAAATATTTTCGTGCAGTTACAACATATGTGAATGAATCAAAATATGAAAAATTGAAATATAAGAGATGTAAATATTTAAACAAAGAAACTGTGGATAATGTAAATGATATGCCTAATTCTAAAAAATTACAAAATGTTGTAGTTATGGGAAGAACAAACTGGGAAAGCATTCCAAAAAAATTT" + } + ], + "target_id" : 72 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 748695, + "genome_id" : 0, + "start" : 748532, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "ATAGTTTTACTTGGGAAATTAAATTACTATAAATGTTTTATTATAGGAGGTTCCGTTGTTTATCAAGAATTTTTAGAAAAGAAATTAATAAAAAAAATATATTTTACTAGAATAAATAGTACATATGAATGTGATGTATTTTTTCCAGAAATAAATGAAAA" + } + ], + "target_id" : 58 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 802712, + "genome_id" : 0, + "start" : 802524, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "AAATTATTATAGAAAGATAGAAGTTATTTTATATGAATGGTTATATTTTCATTATAATAATGTATATAACACCAAAGTAAAAAAACAAAAATTTATATTTACCCAACAAAAAAAAGACATATCAAAACATAACAAGTTATATCTTCAGTATGATCAAAATAAAAGAAATTCTGAAATAGAACATAC" + }, + { + "seq" : "AAATTATTATAGAAAGATAGAAGTTATTTTATATGAATGGTTATATTTTCATTATAATAATGTATATAACACCAAAGTAAAAAAACAAAAATTTATATTTACCCAACAAAAAAAAGACATATCAAAACATAACAAGTTATATCTTCAGTATGATCAAAATAAAAGAAATTCTGAAATAGAACGTAC" + } + ], + "target_id" : 92 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 1037843, + "genome_id" : 0, + "start" : 1037633, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TCTTATAAAGTTAATGAAATTGCTCAACTTAATTTAACCATAGAAAGAGATTTAACAGATGATGCTGTGATTTTTGCACACTCACTTTATTTACCATTTGAAAAAGAAGAAATGTGGTGGATCGTTATCGGAATTAAAAAAATGAACTTACTTTTATCTATCAAAAAATTATCTTTATTGAAAAGTATCAATAATATAAAAATTAATT" + }, + { + "seq" : "TCTTATAAAGTTAATGAAATAGCTCAACTTAATTTAACCATAGAAAGAGATTTAACAGATGATGCTGTGATTTTTGCACACTCACTTTATTTACCATTTGAAAAAGAAGAAATGTGGTGGATCGTTATCGGAATTAAAAAAATGAACTTACTTTTATCTATCAAAAAATTATCTTTATTGAAAAGTGTCAATAATATAAAAATTAATT" + } + ], + "target_id" : 52 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 1100830, + "genome_id" : 0, + "start" : 1100655, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "ATGTTCTAAGATCTGATGGAAAAATATCTGATCAAGGTTCTCAGAAAAGTCCTCCTAAGGAACTTTCTAATAAACAAATGACTCCTGCTCAACGTAAGAATGTGCCACATTTTGTTGAAAGAAGAGGCTATGGAAATAGTCATGTTAGGGGTAACGCACTTAAAAAAATTAGT" + }, + { + "seq" : "ATGTTCTAAGATCTGGTGGAAAAATATCTGATCAAGGTTCTCAGAAAAGTCCTCCTAAGGAACTTTCTAATAAACAAATGACTCCTGCTCAACGTAAGAATGTGCCACATTTTGTTGAAAGAAGAGGCTATGGAAATAGTCATGTTAGGGGTAACTCACTTAAAAAAATTAGT" + } + ], + "target_id" : 81 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 181672, + "genome_id" : 0, + "start" : 181556, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TCATTCTTTTTTTAACTAAAACTATTCATCTCAAAAATATAAGATATTTTATATGACGAATGCCATTGTATTTTTTGTTACGTAAAACCTGACTTCTTCAAGGAAAACACATGC" + }, + { + "seq" : "TCATTCTTTTTTTAACGAAAACTATTCATCTCAAAAATATAAGATATTTTATATGACGAATGCCATTGTATTTTTTGTTACGTAAAACCTGACTTCTTCAAGGAAAACACATGC" + } + ], + "target_id" : 64 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 1102577, + "genome_id" : 0, + "start" : 1102388, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "AAGAAATAAATAAAATAATTTATACAAACGAATTTAATAATTATGAAGATAAAATATATGAAGATGTCAAATATATTAAAGAACAGGAAAATGAAATATACTTGAGAGATGGAATTGAAGAGTTACATATGGATGAACCAAGTCGGGATGTATATGTTGATGATGAAAATGATTATATATTTTTAGA" + }, + { + "seq" : "AAGAAATAAATAAAATAATTTATACAAACGAATTTAATAATTATGAAGATAAAATATATGAAGATGTCAAATATATTAAAGAACAGGAAAATGAAATGTACTTGAGAGATGGAATTGAAGAGTTACATATGGATGAACCAAGTGGGGATGTATATTTTGATGATCAAGATGATTATATATTTTTAGA" + } + ], + "target_id" : 67 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 1113603, + "genome_id" : 0, + "start" : 1113449, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "AATCATCTAAGAATAAACTTTTTTGTTTAAACCATTTATTGAACATTTCACTTAAATGTGATTCAATTTTTTTTTCTGAGCTTTCCATAATTTGATTACATCTATTCAATTTGTTTGTATAAGTATTAGGTCTTATTATTCTTTTACGTTTT" + }, + { + "seq" : "AATCATCTAAGAATAAACTTTTTTGTTTAAACCATTTATTGAACATTTCACTTAAATGTGATTCAATTTTTTTTTCTGAGATTTCCATAATTTGATTACATCTATTCAATTTGTTTGTATAATTATTAGGTCTTATTATTCTTTTACGTTTT" + }, + { + "seq" : "AATCATCTAAGAATAAACTTTTTTGTTTAAACCATTTATTGAACATTTCACTTAAATGTGATTCAATTTTTTTTTCTGAGCTTTCCATAATTTGATTACATCTATTCAATTTGTTTGTATAATTATTAGGTCTTATTATTCTTTTACGTTTT" + } + ], + "target_id" : 61 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 1128672, + "genome_id" : 0, + "start" : 1128488, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TTGAAAGAGTTAAAGGGAAAAATACAAAATTATTTAGATAATGATATTCAATTGAGTAATGGAAAACTCCTATATAAGGATACATGGGATAGAATTGATTTGAAGTTTTGTAGAACGGTAGCAATAGAAGAGGCAGAATACACTAGAAAATTTTATAGCTTAATTAATGATAAACATACAAT" + }, + { + "seq" : "TTGAAAGAATTAAAGGGAAAAATACAAAATTATTTAGATAATGATATTCAATTGAGTAATGGAAAACTCCTATATAAGGATACATGGGATAGAATTGATTTGAAGTTTTGTAGAACGATAGCAATAGAAGAGGCAGAATACACTAGAAAATTTTATAGCTTAATTAATGATAAACATACAAT" + } + ], + "target_id" : 54 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_05_v3", + "end" : 329549, + "genome_id" : 0, + "start" : 329377, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TTGTGATGTATATAAATTCCCTTCTTCTTTATGTACCACATTATAAGAACCACGAACATATTCTTTTAAAAATGTTAACTTACTTCCAACAAATATATAATCAAAACAAAATTTTTTATTGTCGAAATGTTCTCGTTCAACCCCATTCATATTTCGGATATCATTATTTA" + } + ], + "target_id" : 33 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_05_v3", + "end" : 958220, + "genome_id" : 0, + "start" : 958058, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TTTATATCATTTGTATGTGCTGTATTATCAGGAGGAACATTACCTTTTTTTATATCTGTGTTTGGTGTAATATTAAAGAACATGAATTTAGGTGATGATATTAATCCTATAATATTATCATTAGTATCTATAGGTTTAGTACAATTTATATTATCAATGA" + }, + { + "seq" : "TTTATATCATTTGTATGTGCTGTATTATCAGGAGGAACATTACCTTTTTTTATATCTGTGTTTGGTGTAATATTAAAGAACATGTATTTAGGTGATGATATTAATCCTATAATATTATCATTAGTATCTATAGGTTTAGTACAATTTATATTATCAATGA" + } + ], + "target_id" : 49 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_05_v3", + "end" : 958505, + "genome_id" : 0, + "start" : 958388, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "ACGAAATTTATAACAATTTTTACATATGCCAGTTCCTTTTTAGGGTTATTTATTTGGTCATTAATAAAAAATGCACGTTTGACTTTATGTATTACTTGCGTTTTTCCGTTAATTT" + }, + { + "seq" : "ACGAAATTTATAACAATTTTTACATATGCCAGTTCCTTTTTAGGTTTATATATTTGGTCATTAATAAAAAATGCACGTTTGACTTTATGTATTACTTGCGTTTTTCCGTTAATTT" + } + ], + "target_id" : 46 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_05_v3", + "end" : 1042280, + "genome_id" : 0, + "start" : 1042161, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TATTATTACGGTACCATTATATGATTCTTTAGGTCCTCAATCAAGTAGATTTATATTAGATCAAACACAGATGGAAACTATTGTATGTAACAAGACATGTGCTCGTAATTTATTTAA" + } + ], + "target_id" : 4 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_05_v3", + "end" : 1309743, + "genome_id" : 0, + "start" : 1309608, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "AATGAAGAAAATATGTCTGACAGACCAAACAGTTTATCTCATGATAAGGATCAACACCACGATGAAACACATAATGAACAATATGGATTATACGTAAAAGAAATGGAATCTAAAGTTGAAAAATTAGCTGAAA" + } + ], + "target_id" : 27 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_06_v3", + "end" : 145500, + "genome_id" : 0, + "start" : 145342, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "ATTTGAATAAAATTTATCATTCACAATATTATATTTTTGTTTCTTCTTTTTTCCCATAATATTATTATTTTGTTCACAATATATGTTCATGTGTCCCCTCTTTTTCTGTAAAATATTAAAATGTTTCTTACTATGCTTTTCTTCATTTTTAATAAC" + } + ], + "target_id" : 44 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_06_v3", + "end" : 532377, + "genome_id" : 0, + "start" : 532194, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "GAACAATTGTTAAACACCAAATTGGGTGAAACAAAAAACCACCTGAACAGAACCCCATTTATACCTGAATCGGTCATACGAGAAAGGAAATTACGCCAAGAAAAAGCGCAATCCACAAACAACATGTTCGATTCAACAAACGCAGATAGTATTACTTCCCCATGTGATCCAACGAATGCCA" + }, + { + "seq" : "GAACAATTGCTAAACACCAAATTGGGTGAAACAAAAAACCACCTGAACAGAACCCCATTTATACCTGAATCGGTCATACGAGAAAGGAAATTACGCCAAGAAAAAGCGCAATCCACAAACAACATGTTCGATTCAACAAACGCAGATAGTATTACTTCCCCATGTGATCCAACGAATGCCA" + } + ], + "target_id" : 39 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 496142, + "genome_id" : 0, + "start" : 495970, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "GAAAGTAGCGAATACCCTGTAGAAATTGTTAGTAAACCTCTGGAATGGTTATTGTTTCATGATTTTACTACGCCTGGTGTTACTGCACTACCTGAAGAATTACCATTAACGAGCTATAAAGTAACACCTACTTCTATTAATGTATTGCATAAAGAGGGCCCCACTTTAAA" + }, + { + "seq" : "GAAAGTAGCGAATACCCTGTAGAAATTGTTAGTAAACCTCTGGAATGGTTATTGTTTCATGATTTTACTACGCCTGATGTTACTGCACTACCTGAAGAATTACCATTAACGAGCTATAAAGTAACACCTACTTCTATTAATGTATTGCATAAAGAGGGCCCCACTTTAAA" + } + ], + "target_id" : 62 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 165421, + "genome_id" : 0, + "start" : 165234, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TAATTATCATTATTATTATAATTATCATTGTTATTATTATTGTTGTTGTTGTTATTATTATTTCCTTTATTATTTAATATGCATTTTTTAATATCCATTTTATTATTTATCATATCAGTACTTTTATTTTTCTCCTTTTCGTTTATAGCTTTTTCCCTATGCACCCTGAATTTCCCATTTTTTTT" + }, + { + "seq" : "TCATTATTATTATTATTATAATTATCATTTTTATTATTATTGTTGTTATTATTATTTCCTTTATTATTTAATATGCATTTTTTAATATCCATTTTATTATTTATCATATCAGTACTTTTATTTTTCTCCTTTTCGTTTATAGCTTTTTCCCTATGCACCCTGAATTTCCCATTTTTTTT" + } + ], + "target_id" : 29 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 166166, + "genome_id" : 0, + "start" : 166034, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TTTTATTTGAACTTTTTTATTTTCTTCATTATCAATATAAAAACAACAATCTTTAAATTTATGAAATAACACCCAACTTAATGTATAAAATATAATTTCTATAAAATCAAAATTAATGTAATAACCTAAT" + } + ], + "target_id" : 59 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 299004, + "genome_id" : 0, + "start" : 298885, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "CATTCAATATGGTTCTGAGCTTAAAGATGTTATCCTTATACATGTTTCTATTCTCATTCGTTATAACATCAATGACATATAAAACATATCTCTCAAATATTTTGTGAACAATATTAT" + } + ], + "target_id" : 41 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 730087, + "genome_id" : 0, + "start" : 729974, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TTTATGTGAAATTTTAAATAAAGAGAAATTGTTTGTGCACACATCTATTTTGGGATATATATCTAATCGTTTATGTTACGATATAAAAAAATATAGATGTTCATTATTGAA" + }, + { + "seq" : "TTTATGTGAAATTTTAAATAAAGAGAAATTGTTTGTGCACACATCTATTTTGGGATATATATCTAATCGTTTATGTTACGATATAGAAAAATATAGATGTTCATTATTGAA" + } + ], + "target_id" : 75 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 1149584, + "genome_id" : 0, + "start" : 1149414, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "AATATTTAATATTTTTGTTTAGGAAGTTTTCAAAATTGATGACATTGATAACCGTTTTTATTAAATCGCTTGGGTTGTTTGTGTGTTCCATTGTAGAAGACATAATTTTAAGAATGTGTTTTTGTGTTATTAAACAAAACTTTGTTACTATATGGAATCGTATGTTAT" + }, + { + "seq" : "AATATTTAATATTTTTGTTTAGGAAGTTTTCAAAATTGATGACATTGATAACCGTTTTTATTAAATCGCTTGGGTTGTTTGTGTGTTCTATAGTAGAAGACATAATTTTAAGAATGTGTTTTTGTGTTATTAAACAAAACTTTGTTACTATATGGAATCGTATGTTAT" + }, + { + "seq" : "AATATTTAATATTTTTGTTTAGGAAGTTTTCAAAATTGATGACATTGATAACCGTTTTTATTAAATCGCTTGGGTTGTTTGTGTGTTCTATTGTAGAAGACATAATTTTAAGAATGTGTTTTTGTGTTATTAAACAAAACTTTGTTACTATATGGAATCGTATGTTAT" + } + ], + "target_id" : 45 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 1358910, + "genome_id" : 0, + "start" : 1358693, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "AGAATCTCAACTTTTGCTTAAAAAAAATGATAACAAATATAATTCTAAATTTTGTAATGATTTGAAGAATAGTTTTTTAGATTATGGACATCTTGCTATGGGAAATGATATGGATTTTGGAGGTTATTCAACTAAGGCAGAAAACAAAATTCAAGAAGTTTTTAAAGGGGCTCATGGGAAAATAAGTGAACATGAAATTAAAAATTTTAGAAAAG" + } + ], + "target_id" : 35 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 102499, + "genome_id" : 0, + "start" : 102325, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TAATTTTCTCAAGTAACATATTTTTGTCTTGACTACTTTCATCTGTAAATGGAACGAATACTCTTTGCTTACCTGCAAAAAGGACAACTGACATATGAGCCTTATCCTTACTTACATTCGAATTAAGGACCATAGATTCTAAAAATGGTATAGTTCCTTTTAACCAATAATC" + } + ], + "target_id" : 86 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 336646, + "genome_id" : 0, + "start" : 336467, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "AAATTTACAGAAAAATTTAGATTTAATCATATGGCTAAAAAAGAATATAAAAGAAGGAGAAGCTTTAATTTCTGATATACCCACATCAAGTTTTTTAAGGTGTACTACAAATTATAAATTTGTATTGCATCCACAATATGAAGATAGTAACTTGAGAAAGAGGGTTCAAGATTATTA" + }, + { + "seq" : "AAATTTACAGAAAAATTTAGATTTAATCATATGGCTAAAAAAGAATATAAAAGAAGGAGAAGCTTTAATTTCTGATATACCTACATCAAGTTTTTTAAGGTGTACTACAAATTATAAATTTGTATTGCATCCCCAATATGAAGATAGTAACTTGAGAAAGAGGGTTCAAGATTATTA" + } + ], + "target_id" : 85 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 339356, + "genome_id" : 0, + "start" : 339167, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TCATTACTATTCTTTATCCATATATATGTTGTTATATCAGTTGCACCTGAGGGTGGATTCAAACCTCTTGCTTGTATAATATATGCACGTACTACTAAATTACGTGTTAATCTATATTCTCTTACTAAATCATCACATTTCTTTATCATTTCTTTTTTTAAATACATTGTCTTTTCATCATACACAT" + }, + { + "seq" : "TCATTACTATTCTTTATCCATATATATGTTGTTATATCAGTTGCACCGGATGGTGGATTCAAACCTCTTGCTTGTATAATATATGCACGTACTACTAAATTACGTGTTAATCTATATTCTCTTACTAAATCACCACATTTCTTTATCATTTCTTTTTTTAAATACATTGTCTTTTCATCATACACAT" + } + ], + "target_id" : 80 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 550217, + "genome_id" : 0, + "start" : 549992, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "ACTAACAAATTATGATAATCTAGTTTATGATATAAAAAATTATTTAGAACAAAGATTAAATTTTCTTGTATTAAATGGAATACCTCGTTATAGGATACTATTTGATATTGGATTAGGATTTGCGAAGAAACATGATCAATCTATTAAACTCTTACAAAATATACATGTATATGATGAGTATCCACTTTTTATTGGATATTCAAGAAAAAGATTTATTGCCCAT" + } + ], + "target_id" : 93 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 512387, + "genome_id" : 0, + "start" : 512198, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TAAAGAAATTAAGTGAAGATGATTATGAAAAAAATTGTAGACATTTAAATTATTTAATAGATAATATAAGAGAATTATTTTTTAGTTCTAAAAATATTAGAATTCCTGATTTAGCTCGTAAATATTTGTGGGATAATCAAATTGAAGGAAATCTCAAAAAATTAATATCTTCAGCAACAAAATATAA" + }, + { + "seq" : "TAAAGAAATTAAGTGAAGATGATTATGAAAAAAATTGTAGACATTTAAATTATTTAATAGATAATATAAGAGAATTATTTTTTAGTTCTAAAAATATTAGAATTCTTGATGTAGCTCGTAAATATTTGTGGGATAATCAAATTGAAGGAAATCTCAAAAAATTAATATCTTCAGAAACAAAAAATAA" + } + ], + "target_id" : 38 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 933142, + "genome_id" : 0, + "start" : 933022, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TGGTTTTAATGAGGATGATTTAGATAAAGAGTTTTTTTTTGATTTGCCGTCGATTAGTGGTTTTTCAAGTAATGGTATGAAAAAATGTAATTTAAGAAATTTATTAAAAAGATTAGAA" + } + ], + "target_id" : 3 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 1269455, + "genome_id" : 0, + "start" : 1269319, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "CCTTAGCATTAATAACACTTATAGGAGGTATTTATATGACTAAAGGAAGAAAAAGTTCCATATGGCATAATTCAGAAATAAATGATACACTTTATGATGTTGTTCTTGAAACAGTGAATCAAGGAAATACAGAT" + }, + { + "seq" : "CCTTAGCATTAATAACACTTATAGGAGGTATTTATATGACTAAAGGAAGAAAAAGTTCCATATGGCATAATTCAGAAATAAATGATACACTTTATGATATTGTTCTTGAAACAGTGAATCAAGGAAATACAGAT" + } + ], + "target_id" : 32 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 1344818, + "genome_id" : 0, + "start" : 1344685, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "AATATATCTTTTACTTTATCTGTAAGTTTCATGGAATCTATTATTTCATCTGCATATTTTATTTTTGCCTCGTTTATATATTTACCTGCTTTTAATTTACATAAACATTTTTCTATTAAGTTTTGATCATT" + } + ], + "target_id" : 30 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 1363086, + "genome_id" : 0, + "start" : 1362890, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "GTAAAAAAAAAGGGTTTTCCTAAAAAACCATCGGTTCATGGTTTTACACAGATGGTGTTTTTGCAGCTTACTAATATAGTCATGTATGCCCTTTGTTTTATGAGCCTTTCACAAATATATGCTTATTTCGAAAACGTGAATTTTTATATTATAAGCAATTTTCGTTTCCTTGAGAGATATTTTAATATATTCAA" + }, + { + "seq" : "GTAAAAAAAAAGGGTTTTCCTAAAAAACCATCGGTTCATGGTTTTACACAGATGGTGTTTTTGAAGATTACTAATATAGTCATGTATGCCCTTTGTTTTATGAGCCTTTCACAAATATATGCTTATTTCGAAAACGTGAATTTTTATATTATAAGCAATTTTCGTTTCCTTGAGAGATATTTTAATATATTCAA" + }, + { + "seq" : "GTAAACAAAAAGGGTTTTCCTAAAAAACCATTGGTTCATGGTTTTACACAGATGGTGTTTTTGCAGCTTACTAATATAGTCATGTATGCCCTTTGTTTTATGGACCTTTCACAAATATATGCTTATTTCGAAAACGTGAATTTTTATATTATAAGCAATTTTCGTTTCCTTGAGAGATATTTTAATATATTCAA" + } + ], + "target_id" : 28 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 517091, + "genome_id" : 0, + "start" : 516927, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TGTTTGTGTAATAAAGGATATTTCTATAATGTCAAGAAACAACAATGTGAAGAATGTCCCATAGGTTTTTATTGTCCAGAAATAAGCTCAAAAAATAATATAAAAAAACCTATCAAATGTCCTAAAAATTCCTCAAGTATAAAAAAAGGTATGTATATATCA" + }, + { + "seq" : "TGTTTGTGTAATAAAGGATATTTCTATAATGTCAAGAAACAACAATGTAAAGAATGTCCCATAGGTTTTTATTGTCCAGAAATAAGCTCAAAAAATAATATAAAAAAACCTATCAAATGTCCTAAAAATTCCTCAAGTATAAAAAAAGGTATGTATATATCA" + }, + { + "seq" : "TGTTTGTGTAATAAAGGATATTTCTATAATGTCAAGAAACAACAATGTAAAGAATGTCCCATAGGTTTTTATTGTCCAAAAATAAGCTCAAAAAATAATATAAAAAAACCTATCAAATGTCCTAAAAATTCCTCAAGTATAAAAAAAGGTATGTATATATCA" + } + ], + "target_id" : 26 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 596333, + "genome_id" : 0, + "start" : 596132, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TTATTTTCGTTTTTTTTTATATTATCATTATAATTATATGTATTTACAAAGAATTTATTATTATTTGTTTCTTTATAATTATATTCATTTTCTTTATTACTTAAGGAATTTATATTTGATAAAACTTGTTGTACTCTTTCTTCTTTGTTGATGTGAATATTTGAGAAAATAATAATAAATGTAATGACTAGGGCTATGT" + } + ], + "target_id" : 25 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 685791, + "genome_id" : 0, + "start" : 685600, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "CAAAGGAACAAGATAATTTTTTCAATTTTTATAAAAGTAATATATATGATATGGAAAATAGAACATGTAATAATAATATATTACAATATTGTGTTATGAATAATAAATCATATTTATTTCATAATATATCATCCAAAAAAAATATATATATAAAAAAAAAGAATCATCAGTTTTCTTTATTCATATATT" + } + ], + "target_id" : 77 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 1179077, + "genome_id" : 0, + "start" : 1178893, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "CAAATTACCCTTAGCCCCAGATATGGTAAAGACATATCACTGTTATAAATTAGGAAAGCAAGCAGCTAAATTATTAGAATCTATCATTTTAAAGAAAAAGTTCGTAAGATTTAGAGTTACTGATGCTATTGATGTATATGATTTCTTTTATATAAAGAAAGTTTTATCCAGTCGTATTAAGA" + }, + { + "seq" : "CAAATTATCCTTAGCCCCAGATATGGTAAAGACATATCACTGTTATAAATTAGGAAAGCAAGCAGCTGAATTATTAGAATCTATCATTTTAAAGAAAAAGTTCGTAAGATTTAGAGTTACTGATGCTATTGATGTATATGATTTCTTTTATATAAAGAAAGTTTTATCCAGTCGTATTAAGA" + } + ], + "target_id" : 89 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 1406540, + "genome_id" : 0, + "start" : 1406404, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "AATTAATTTTAATGATGATGTTACTTTAGAAACACAATCCATGATAGCACACGGAGGGTCTTTGTCAGAAATAGAAGAAACTGGAGATTTATCTTCAGATGTTGATAGATTACTTTCATCAATCGAAACTACTC" + } + ], + "target_id" : 51 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 1437302, + "genome_id" : 0, + "start" : 1437113, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TAAAACCTGACAGCTTTGTACAGTTATATTTACCCAATTAGAATGTTCAAACATATTTAAGTGTTGCCATTCTTCAAATAATTTTTTTTCATATTCAGTTTTTGGTTGGTTTTTAAATTCTTTTGATAATGTACCTTCTGCGGATGGTATAGGGAAGTTAAAAATTTTATTACTTACTTTGTTTGAT" + } + ], + "target_id" : 87 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 531899, + "genome_id" : 0, + "start" : 531681, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "AAAGAAAGATGTTAAGAAAAAAAAGATCGATATGATAAATATATTACACATTCCTACAAATAATTATAGCATGCCAAATGAAAAAGATATAAACAGTTATGAATTTTTTGGATCTGAACCTATTGAATTATATGATGGAAAATCTAATAAGAATTGTGTTATAACTAGCCAATCTTATATTTGTATTGAAAACCCGCATGCTGCCATATTATCCGA" + }, + { + "seq" : "AAAGAAAGATGTTAAGAAAAAAAAGATCGATATGATAAATATATTACACATACCTACAAATAATTATAACATGCCAAATGAAAAAGATATAAACAGTTATGAATTTTTTGGATCTGAACCTATTGAATTATATGATGTAAAATCTAATAAGAATTGTGTTATAACTAGCCAATCTTATATTTGTATTGAAAACCCGCATGCTGCCATATTATCCGA" + }, + { + "seq" : "AAAGAAAGATGTTAAGAAAAAAAAGATCGATATGATAAATATATTACACATACCTACAAATAATTATAACATGCCAAATAAAAAAGATATAAACAGTTATGAATTTTTTGGATCTGAACCTATTGAATTATATGATGTAAAATCTAATAAGAATTGTGTTATAACTAGCCAATCTTATATTTGTATTGAAAACCCGCATGCTGCCATATTATCCGA" + } + ], + "target_id" : 24 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_10_v3", + "end" : 377208, + "genome_id" : 0, + "start" : 377094, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "ACCAAAAAATGATACCTGTACGTTTTTCTCCAGGAGAAACAAAAAAATTAGAAAGGATTCTCAAAAAAGTAGACGACTTTTTCTGTGCCAATATTAAAGCGCAATATACCTG" + } + ], + "target_id" : 63 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_10_v3", + "end" : 992543, + "genome_id" : 0, + "start" : 992370, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TTTTAAAAAAAAAAATTATGATATAAAATCTTCAATTAATAAAAGATCTATCCAGTTCTTTACAGACACTAATATAGATCATTATATAGCATATGAATATTATAAGGAGGACCGTACAGAATTTATATTAACTATTATGAATGAAAAAAATATTACTCATCAAGAAACTCA" + } + ], + "target_id" : 65 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_10_v3", + "end" : 1386868, + "genome_id" : 0, + "start" : 1386699, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "GAGAACAGGTTAAATATATTGAAGACGTGGTTTGATAATCAGGTATTTCTTTAATTAAATATTCATGATATTGTTCGTTAGATACATAAATTAATTCGTCCTCCACATTTTGCTGTTCTGTTATAATTTGTGAAGAAGCTTGGTTTGTCTTATTTGGTAATTGCTCT" + }, + { + "seq" : "GGGAACAGGTTAAATATATTGAAGACGTGGTTTGATAATCAGGTATTTCTTTAATTAAATATTCATGATATTGTTCGTTAGATACATAAATTAATTCGTCCTCCACATTTTGCTGTTCTGTTATAATTTGTGAAGAAGCTTGGTTTGTCTTATTTGGTAATTGCTCT" + } + ], + "target_id" : 34 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_10_v3", + "end" : 1399710, + "genome_id" : 0, + "start" : 1399543, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "ACATCAGAACATAGTAAAGATTTAAATAATAATGATTCAAAAAATGAATCTAGTGATATTATTTCAGAAAATAATAAATCAAATAAAGTAGAAAATCATTTTGAATCATTATCAGATTTAGAATTACTTGAAAATTCCTCACAAGATAATTTAGACAAAGATACA" + }, + { + "seq" : "ACATCAGAACATAGTAAAGATTTAAATAATAATGATTCAAAAAATGAATCTAGTGATATTATTTCAGAAAATAATAAATCAAATAAAGTACAAAATCATTTTGAATCATTATCAGATTTAGAATTACTTGAAAATTCCTCACAAGATAATTTAGACAAAGATACA" + } + ], + "target_id" : 71 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_10_v3", + "end" : 1436681, + "genome_id" : 0, + "start" : 1436478, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "GAGGAGAAACACGTTTTATCTCATAATTCATATGAGAAAACTAAAAATAATGAAAATAATAAATTTTTCGATAAGGATAAAGAGTTATCGATGTCTAATGTAAAAAATGTGTCACAAACAAATTTCAAAAGTCTTTTAAGAAATCTTGGTGTTTCAGAGAATATATTCCTTAAAGAAAATAAATTAAATAAGGAAGGGAAA" + }, + { + "seq" : "GAGAAGAAACACGTTTTATCTCATAATTCATATGAGAAAACTAAAAATAATGAAAATAATAAATTTTTCGATAAGGATAAAGAGTTAACGATGTCTAATGTAAAAAATGTGTCACAAACAAATTTCAAAAGTCTTTTAAGAAATCTTGGTGTTTCAGAGAATATATTCCTTAAAGAAAATAAATTAAATAAGGAAGGGAAA" + } + ], + "target_id" : 23 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 119692, + "genome_id" : 0, + "start" : 119485, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TTCATCCAAAAGTAATTATGTTTTTCTTGTTGATATTTTGCTTTATACAAACGAGCAAGATACTTATTATACGATTCATGCTCTTTAATTTTCTTTTCAAAAGTTTTGGTTATAATGTGTTCAAGTGATTGTAAAGTATTTTTCTTTAATTTTCTCCATATTAATCTACATGCGATTATAAGAATTCTATATTCTTTGATATTCC" + }, + { + "seq" : "TTCATCCAAGAGTAATTATGTTTTTCTTGTTGATATTTTGCTTTATACAAACGAGCAAGATACTTATTATACGATTCATGCTCTTTAATTTTCTTTTCAAAAGTTTTGGTTATAATGTGTTGAAGTGATTGTAAAGTATTTTTCTTTAATTTTCTCCATATTAATCTACATGCGATTATAAGAATTCTATATTCTTTGATATTCC" + }, + { + "seq" : "TTCATCCAAAAGTAATTATGTTTTTCTTGTTGATATTTTGCTTTATACAAACGAGCAAGATACTTATTATACGATTCATGCTCTTTAATTTTCTTTTCAAAAGTTTTGGTTATAATGTGTTGAAGTGATTGTAAAGTATTTTTCTTTAATTTTCTCCATATTAATCTACATGCGATTATAAGAATTCTATATTCTTTGATATTCC" + } + ], + "target_id" : 22 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1010037, + "genome_id" : 0, + "start" : 1009855, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "AGTTCTATCTATTTGTTTAATTGGTGTCCATGAATTTTTAGAGAAACACCACATATCAGCTAATAAGGAATTATTAACATCTAATCCTCCATGAATATATAAAAAATCATTAAAACTGAAAGAAGCATGCTTATATCTTGCACGTGGACAAATTTTATTTCCAATAAGTTCCCATTTCTT" + }, + { + "seq" : "AATTCTATCTATTTGTTTAATTGGTGTCCATGAATTTTTAGAGAAACACCACATATCAGCTAATAAGGAATTATTAACATCTAATCCTCCATGAATATATAAAAAATCATTAAAACTGAAAGAAGCATGCTTATATCTTGCACGTGGACAAATTTTATTTCCAATAAGTTCCCATTTCTT" + } + ], + "target_id" : 20 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1019084, + "genome_id" : 0, + "start" : 1018952, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TAGTGACTGTACATTTTTCATCTAATGTTCTATAGGATAAAGAATCTGAAGGACAATGCATATCATTACAAAAATAGCATGCACCTTTAAAATATAAATAAGAATGTCTTAACACAACAAAGGAATCAAA" + } + ], + "target_id" : 56 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1376371, + "genome_id" : 0, + "start" : 1376184, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TCTCATTCCTTTGAAAATATGAACTATTCAACTCATCAAGGTTTTCATATGTTATTTCATAACTGCCATCATCTGAATCCTCTTCATCACTACTACTTAAAGAATGCTCTTCTACAGTTATATCTTCATAATGATTATTTTTAGGAAAATATTCTTCAGATCTTTCTATAAATTCTGTTCCATTA" + } + ], + "target_id" : 60 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1552639, + "genome_id" : 0, + "start" : 1552429, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "ATATCGACAATTATAAAGAAAAAATAGAAAATTTTAATGAAAGATATTATGAAGATGATTTAAGTTTCTTAAACTTTCCAGGAACCATAACAAGTTATGATAAAAACCATCAAAGAGATAAAAGAAAAAACTGTTTTGAAGAATATCTAGACAATAATAATTATTTTATTGATAGTAATCTAAAGGAAGTTATAGAAAATAATATATA" + } + ], + "target_id" : 19 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 532843, + "genome_id" : 0, + "start" : 532689, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "CTTTCTTAATTCTATGAATGAAGAATATACGCATATTAATTTAAATAACTTTATACATAATGATAACAATGATAAAGACGAAAATTATACATTAGATCAGGTGGAAGAATATCCTATGACTAGTTATCAAAATAATATATACAAGGATTTTT" + }, + { + "seq" : "CTTTCTTAATTCTATGAATGAAGAATATACGCATATTAATTTAAATAACTTTATACATAATAATAACCATGATAATGACGAAAATTATACATTAGATCAGGTGGAAGGATATCCTATGACTAGTTATCAAAATAATATATACAAGGATTTTT" + } + ], + "target_id" : 40 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1751054, + "genome_id" : 0, + "start" : 1750864, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TATTAAAAACAACAAATAAATTACCAAGGTCATGGAAAAAACTCTTGTTAAATCTATCCATTAGATTTCAAACAATACCTATAGGTGGTTCTATCGAAATCATATCAAAGGATGAGAAAAATATTTCTGTGACACGATCCAGTGAATATAATGCAACAACATATGAGCATTACACATTTCCCAAATGG" + }, + { + "seq" : "TATTAAAAACAACAGATAAATTACCAAGGTCATGGAAAAAACTCTTGTTAAATCTATCCATTAGATTTCAAACAATACCTATAGGTGGTTCTATCGAAATCATATCAAAGGATGAGAAAAATATTTCTATGACACGATCCAGTGAATATAATGCAACAACATATGAGCATTACACATTTCCCAAATGG" + } + ], + "target_id" : 21 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1816424, + "genome_id" : 0, + "start" : 1816210, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TTGACTTCTCCGGGTTTGTTACATTATCATTACAACCAATATTATTAAGGTTAATATTATTTTTATCATTATTATTGTTGTTTTCATTTGTGTGGTTATATAATAACAATGATGTGTCGTCTATTGGATCATTTTGCACAAGGTCAATATCATTAGAATTATGTTTCATATTATTTGTATACATTTTTTTGTAATTATCATTTTTTCTTACT" + }, + { + "seq" : "TTGACTTCTCCGGGTTTGTTACATTATCATTACAACCAATATTATTAAGGTTAATATTATTTTTATCATTATTATTGTTGTTTTCATTTGTGTGGTTATATAATAACAATGATGTGTCGTCTATTGGATCATTTTGCACAAGGTCAATATCATTAGAATTATGTTTCCTATTATTTGTATACATTTTTTTGTAATTATCATTTTTTCTTACT" + } + ], + "target_id" : 18 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 63279, + "genome_id" : 0, + "start" : 63165, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "ATAATTTCACCTTTTGAATTACATATGTCTGTATTCAAAAATTTTATATCTCTACTCCATATATTTATCTTTACACCCAAAAACAAAGCAATGAAAAAAACAACCCTTTCAT" + }, + { + "seq" : "ATAATTTCACCTTTTGAATTACATATGTCTGTATTCAAAAATTTTATATCTCTACTCCATATATTTATCTTTACACCCAAAAACAAAGTAATGAAAAAAATAACCCTTTCAT" + } + ], + "target_id" : 69 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 660009, + "genome_id" : 0, + "start" : 659890, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "GGTCGACTTTTGGTGGTTTAACATTTTCAGCTATGAGTTTTTCGACTGATGGCAATCCTACTTTGATTAATTCCTTTAACATAAGTTTTGCGTGTTTTTTTACTTCTGATTTGATAT" + }, + { + "seq" : "GGTCGACTTTTGGTGGTTTAACATTTTCAGCTACGAGTTTTTCGACTGATGGCAATCCTACTTTGATTAATTCCTTTAACATAAGTTTTGCGTGTCTTTTTACTTCTGATTTGATAT" + } + ], + "target_id" : 16 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 684260, + "genome_id" : 0, + "start" : 684087, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "ATATCAAGATGGTAGTATTGTTTTAGATGTTAGTAGTACGAGAGATAAACTTTATGGAGAAGTTGAGTGGGAAGGATATAAATTTGAACTTGTGGATACAGGAGGTTTAGTTTTTGAACAAGAAAAGTTTTCAAAAGAAATAAAGGATCAAATTCTTATGGCTCTAAAAGA" + }, + { + "seq" : "ATATCAAGATGGTAGTATTGTTTTAGATGTTAGTAGTACGAGAGATAAACTTTATGGAGAAGTTGAGTGGGAAGGATATAAATTTGAACTTGTGGATACAGGAGGTTTAGTTTTTGAACAAGAAAAGTTTTCAAAAGAAATAAAGGATCAAATTTTTATGGCTCTAAAAGA" + } + ], + "target_id" : 14 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 943427, + "genome_id" : 0, + "start" : 943257, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "ATCAACTATAATTAAAAATAGTGGAATTATTGAAAACTTTGGAGATATTGATTATATCTTTACGGATAAAACAGGAACACTAACAGAAAATGTTATGGTGCTTAAAGTTATACATATAGGTTTTGATGTTATACATGCAGAAAATGAAAAAAATTCCATACAAGGTAA" + }, + { + "seq" : "ATCAACTATAATTAAAAATAGTGGAATTATTGAAAACTTTGGAGATATTGATTATATCTTTACGGATAAAACAGGAACATTAACAGAAAATGTTATGGTGCTTAAAGTTATACATATAGGTTTTGATGTTATACATGCAGAAAATGAAAAAAATTCCATACAAGGTAA" + } + ], + "target_id" : 91 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 1237602, + "genome_id" : 0, + "start" : 1237430, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "GTATGAACACAAAACCGAAAGAGAGTTTAAAAAAAGATCCGATTTTAATGAAGGAAGAAATAACATAATAAATGTGTCAAATGTAAAGAAAACATGTAATATAGTTAAAAATGATTTAAAGGAATCTAACGAGATAAAAACTAATATAAACACAAGTTCTTATAATTTAT" + } + ], + "target_id" : 53 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 2050313, + "genome_id" : 0, + "start" : 2050129, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TTTAAACTTTGAATCTGTTCAATTAATAACACTTCATCATTGTCTTCGCCTTTTATAATATCTCCATGATTATGTGCTCCTCTAATTAAGGTATCACTAACCTGTTGTTCATCTGTCGCATGAGAACTAGTAGATATATCTGGTTTATTTTTTTTCTTTCTTTTTGTTATTTCTAATTTTTT" + }, + { + "seq" : "TTTAAACTTTGAATCTGTTCAATTAATAACACTTCATCATTGTCTTCTCCTTTTATAATATCCCCATGATTATGTGCTCCTCTAATTAAGGTATCACTAACCTGTTGTTCATCTGTCGCATGAGAACTAGTAGATATATCTGGTTTATTTTTTTTCTTTCTTTTTGTTATTTCTAATTTTTT" + } + ], + "target_id" : 36 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 103878, + "genome_id" : 0, + "start" : 103658, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "ACTGATGTTAATGAAGGCCAAAATGGAAAAAGTTTAACACAAGAAAAAACCCTAAAACAAATTCCTTCGACATCACCAAATAATTTAGAACAAAAATTACAACAAACACATATTTCTTCTTCCCAACAAAAACATTTAATAAAAACTACTCCTACTTCAGATTCAACTACAACTTCATCAAGCTCTTCTGTTCCTCTTACAAAACAATCCCTTCATTC" + }, + { + "seq" : "ACTGATGTTAATGAAGGCCAAAATGGAAAACGTTTAACACAAGAAAAAACCCTAAAACAAATTCCTTCGACATCACCAAATAATTTAGAACAAAAATTACAACAAACACATATTTCTTCTTCCCAACAAAAACATTTAATAAAAACTACTCCTACTTCAGATTCAACTACAACTTCATCAAGCTCTTCTGTTCCTCTTACAAAACAATCCCTTCATTC" + } + ], + "target_id" : 13 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 156721, + "genome_id" : 0, + "start" : 156565, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "ATAGAGTTATTATGTTCGAATTAATGACCAGATTGTTTCGATTTTATACAAAACCAATAGACCTTATTATTACTATGAATACACACAGATATGACACACCTATATTGTTAAAACATTCAAACAGCTTACAACTTATCTTATCAAATCAACAAAA" + } + ], + "target_id" : 17 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 534367, + "genome_id" : 0, + "start" : 534214, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "GATAAAAAAAGAAAATGTAACAATCTACCTTGTGATTGTATCTTATGTAAAAAAAAGCACAATGTTTGTTATTGTAATATGTGTAAAAAGAAAGAAAAAAATATGAGAGAAGATTTATCGGTTGTAAAATATAATGAATATCCGATTAGTG" + }, + { + "seq" : "GATAAAAAAAGAAAATGTAATAATCTACTTTGTGATTGTATCTTATGTAAAAAAAAGCACAATGTTTGTTATTGTAATATGTGTAAAAAGAAAGAGAAAAATATGAGAGAAGATTTATCGGTTGTAAAATATAATGAATATCCGATTAGTG" + }, + { + "seq" : "GATAAAAAAAGAAAATGTAATAATCTACCTTGTGATTGTATCTTATGTAAAAAAAAGCACAATGTTTGTTATTGTAATATGTGTAAAAAGAAAGAAAAAAATATGAGAGAAGATTTATCGGTTGTAAAATATAATGAATATCCGATTAGTG" + } + ], + "target_id" : 84 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 1150492, + "genome_id" : 0, + "start" : 1150302, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TAAAAAAAGCAAACAAAAAGAAAAGAGAATGGAAGATTTAAGTATTGAGGAAAATTTGAAAGAGAAATTAATAAACCTAAATATTCAGAAACAGTATAGTGGTTTCCATATGAAAGAAATGGAGGAACAAAATATTCCTGAATTAAATATTCCACAACTTTCAGCTATTCATAATAGAGAAGATATGA" + }, + { + "seq" : "TAAAAAAAGCAAACAAAAAGAAAAGAGAATGGAAGATTTAAGTATTGAGGAAAATTTGAAAGAGAAATTAATAAACCTAAATATTCAGAAACAGTATAGTGGTTTCCATATGAAAGAAATGGAGGAACAAAATATTCCTGAATTAAATATTCCACAACTTTCAGCTACTCATAATAGAGAAGATATGA" + } + ], + "target_id" : 9 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 1419669, + "genome_id" : 0, + "start" : 1419542, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TGGTTTTTGTACTTTTTGTCCTTGTGTTGATATCTCTTGTTCATTTTTAGATTGAGTATCTGTTTCACTTTGTGCCTTTACCTTTGATAATACGTTTTTACCGAATAATCCTAAATTTTGGAATA" + }, + { + "seq" : "TGGTTTTTGTACTTCTTTTCCTTGTGTTGATATCTCTTGTTCATTTTTAGATTGAGTATCTGTTTCACTTTGTGCCTTTACCTTTGATAATACGTTTTTACCGAATAATCCTAAATTTTGGAATA" + } + ], + "target_id" : 8 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 1725569, + "genome_id" : 0, + "start" : 1725364, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "CCAATACAATAAATTCTACCATTTGACGTAACACCACAATTATTTCTTCTAGGTATATTTAAATTACTTGAAACATACCATACATCTCTTAAACGATCATACACCTCAGTTTCAAATAAAGCCTTATAATCATAGTTATTACCACCAAAAACGTATAAGAAATTATTCAATACAGCACTTCCAAAATAAGCTTTTTTGGTAGA" + } + ], + "target_id" : 10 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 1876533, + "genome_id" : 0, + "start" : 1876351, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TATATTTTGGTTCAGACAAATGTACGTTACATGAAATATGTGCATTATCATCAACTAAAGAAATATCTAAACTATCTGTAAAAGTATGTTTAGAACTATCATTTGAAGAGAAGTTACATCCGTGTATGACTTTTTTTTCATATTTTGGTTTTAAAACTATTTTATAATTATTATTTTTAA" + } + ], + "target_id" : 11 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 2115141, + "genome_id" : 0, + "start" : 2114974, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TCATTAAGTAAAAAATTTACGGTATCGACATTAACAGTGTAATAATTTCTTCCTAAATTTAAATGTTCTAAATAATTCAAATTTAATACGGTATTTAACCTTTCTTCAAGTATTATCATTGCATTAATTTGAAACATAAGTAAAAAATTATTAGCACTTCTAAAA" + }, + { + "seq" : "TCATTAAGTAAAAAATTTACGGTATCGACATTAACAGTGTAATAATGTCTTCCTAAATTTAAATGTTCTAAATAATTCAAATTTAATACGGTATTTAACCTTTCTTCAAGTATTATCATTGCATTAATTTGAAACATAAGTAAAAAATTATTAGCACTTCTAAAA" + } + ], + "target_id" : 68 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 2124846, + "genome_id" : 0, + "start" : 2124633, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "AACATTTTTTTAACATCTTTACCTTTTTGACTTGGTTCTTCATCATAATTCTGTTGTTCTGCAGAATCAGCATTTACTTCAGTTTCTTCTTTATTTTGAAAAGTGTTTGATTCTACATGAGAATTGGAAGATGAACGTCTATGTTTTACTTCTGTATAACTAGTACGTTCTCCAGTATGATGAGCCTTAAGGTTTACATCTTCAGTTTCTT" + } + ], + "target_id" : 7 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 2479245, + "genome_id" : 0, + "start" : 2479085, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "CCATGCTTTATCAAAACAAAGTAATGAAAATGTAATACATTATTCTTGTCGATCTATATGTGCTTTTACAAAAAACCCTAAGGGTTTAGAAGCGGTAAAGGATATCAAGGACTTTGCGAATATTATAAGTAAATCTGTTGGTGATTTGAGTAAAGAGA" + } + ], + "target_id" : 6 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 2481287, + "genome_id" : 0, + "start" : 2481105, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "GAACTTACTTTAGAAGCCATGAATTCGGCCGATGATCCATTGGAAGCATTTAAAAATACTTTATTAATATTTGATTTTAATTTATCTGAATTTGATAAGGATCCATATGTAAATGGTGTGCATGATTTAGCATCTAATATAAAGGATTGTTTAAGAAAAGGAGGTCACAGTAAAATATAT" + } + ], + "target_id" : 47 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 2669306, + "genome_id" : 0, + "start" : 2669134, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "AAAAAAATACATTTAAATCTATAATATTTGTAATAAATGATAAGAATATTAGTAATAATAGGGTACTACTATTTGTAAATACTTTTCTACATAATTTATCAATAGTAGGAAATATGATATTCTTTTTGTTTGGCTTTATTTTATCTGGGATTTTCCAATCATAAAGTTCG" + } + ], + "target_id" : 5 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 40136, + "genome_id" : 0, + "start" : 39952, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "CATAGAAATATGTGCGAAAATTGGGAAAAAAATAAATAACAGGAATTGTTATATAAATTGAATCAAGAATGGCACAAAGAAAATAATACTGGTGACTTTCACACTAGTGATATCACACACAATAGTGGTATTACATACACTAGTGGTAACATACCTAGTGAAAGTAATAGTAGTTATATCCA" + }, + { + "seq" : "CATAGAAATATGTGCGAAAATTGGGAAAAAAATAAATAACAGGAATTGTTATATAAATTGAATCAAGAATGGCACAAAGAAAATAATACTGGTGACTTTCACACTAGTGATATCACACACAATAGTGGTATTACATACAGTAGTGGTAACATACCTAGTGAAAGTAATAGTAGTTATATCCA" + } + ], + "target_id" : 55 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 535109, + "genome_id" : 0, + "start" : 534940, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "ATACTCCGTCAGATATTCAAAATGAATGTATTTGTTCAAAAATAAATGAAGATAGAAATAATGATATGATAAACATATCTGAAATATATTATCGTTTCATTAAATTTATAACAATGATTGAAATATATTTGTGTGTAATAGAGGAAATTAAAAGGGAAGAATGGGAA" + } + ], + "target_id" : 76 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 120350, + "genome_id" : 0, + "start" : 120214, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TTACAATGTTCTTCGCATTCGAAATTTTTTTCAGGATTACTTGAAAAGCCTTCTGGACAATTACAATATTCATATCCATGAGCATTGTTACAAACACCTTTTCCACAATTTAAAAAACATTTTTCTTCATTTAA" + }, + { + "seq" : "TTACAATGTTCTTCGCATTCGAAATTTTTTTCAGGATTACTTGAAAAGCCTTGTGGACAATTACAATATTCATATCCATGAGCATTCTTACAAACACCTTTTCCACAATTTAAAAAACATTTTTCTTCATTTAA" + }, + { + "seq" : "TTACAATGTTCTTCGCATTCGAAATTTTTTTCAGGATTACTTGAAAAGCCTTCTGGACAATTACAATATTCATATCCATGAGCATTCTTACAAACACCTTTTCCACAATTTAAAAAACATTTTTCTTCATTTAA" + } + ], + "target_id" : 83 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 150293, + "genome_id" : 0, + "start" : 150104, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TAATAATAGTAATATAAAGAATTATTCAGCTGTAGATATATTCTCACCCAAAAAAACTGGAAAGGAATGTATTAAATGTCTCCCAGATAATTTTTGTGAATGCGAATGTAGTTGTAAAAATAAAACAGGTTTTTCAATGAAATATAGACATGCCAGTAAGGGATCTAAAAGATATCGTAAAAAAATG" + }, + { + "seq" : "TAATAATAGTAATATAAAGAATTATTCAGCTGTAGATATATTCTCACCCAAAAAAACTGGAAAGGAATGTATTAAATGTCTCCCAGATAATTTTTGTGAATGCGAATGTAGTTGTAAAAATAAAACAGGTTTTTCAATGAAATATAGACATGCCAGTAAGGGATCTAAAAGATATAGTAAAAAAATG" + } + ], + "target_id" : 97 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 279785, + "genome_id" : 0, + "start" : 279662, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "AGTTATAGTGATTCATATAAGGTAAATTGTATTAATTTCTCTGAAGGATTTTGTTGCTGTCATCCAATAAATAATTTAGCACTATTATATGGAGAGTATCAACAAAATCAAGAATCAAAAA" + } + ], + "target_id" : 88 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 407570, + "genome_id" : 0, + "start" : 407378, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "CTCCTTCCTTTTCATTCTTTACTTTATTTCTATTAATACACAACTCTCCTTGAGTTAAGAGATTTACGATATTATCAATATTGTTTTCTTTCATATACTTCAACTTTTTACTATTCATTTTTAAAAGATAATTAACCAAGTTACTCATGTTTGTATTAGATGGTATGTTCCCAATTTTTTCGTCTTTTCT" + } + ], + "target_id" : 66 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 564376, + "genome_id" : 0, + "start" : 564207, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TATTAAAACTTTTTTTTCTTTCTGTAAAGTTTGTACATTATGTTTTGATGAGTTTTGATTATCTTCATAAAACTTTATATATTTATAAAAATTATTTTGTATAAAATCATTTAATAAAGGTAACATAATTTTTTTAGCTTGATTCAATTCACTACATGAATGTATAT" + } + ], + "target_id" : 2 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 1038485, + "genome_id" : 0, + "start" : 1038368, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "ATACAACTAATAAAGCTCTACGATAAATTTCTTTTTTATTTGATTTAGAAAAAGGAGAAAACCATTGAAACTTTTTGGCTAGATATTTATGGTCTTTATCAAAAATATATTCTGA" + }, + { + "seq" : "ATACAACTAATAAAGCTCTACGATAAATTTCTTTTTTATTTGATTTAGAAAAAGGAGAAAACCATTGAAACTTTTTGGCTAGATATTTATGGTCTTTATCAAAAATATAATCTGA" + } + ], + "target_id" : 1 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 1956285, + "genome_id" : 0, + "start" : 1956128, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TATATATAAAGTTAAACCTATAAATAATACACTACCTAATAAACTATTCTTATATTTAAAAATAAATATAATACATGTTATTAATCCTTCTATTGTTGCCGGAATAATATACATTAAAACAGAACTCATCAAATTATTAGCACTCTCGGTACCTC" + } + ], + "target_id" : 0 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 1992425, + "genome_id" : 0, + "start" : 1992288, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "TAAACACCAGTACCATTTTTTTCTGATAAATTAATATTTTTTTGTATAACATCATATTTATCCCTTTTCGTGGTAAGTGCAGTATCCTGTTTTATTATTATATTATCGAATTCATCATGGTGTATATTTCTTTCT" + } + ], + "target_id" : 50 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 2525088, + "genome_id" : 0, + "start" : 2524961, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "AATGAGGTATAATCATTCATTTCGTTGGGTCGATTTGATCTATTTTTAAGGTCCATATATTGAGATGAATCATTATGCATTTTATAATCATGAGGGATATTAGGTGCATGGTATTTAGGGTCTTT" + }, + { + "seq" : "AAAGAGGTATAATCATCCATTTTGTTGGGTCGATTTGATCTATTTTTAAGGTCCATATATTGAGATGAATCATTATGCATTTTATAATCATGAGGGATATTAGGTGCATGGTATTTAGGGTCTTT" + } + ], + "target_id" : 12 + }, + { + "mhap_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 3124841, + "genome_id" : 0, + "start" : 3124641, + "strand" : "+" + }, + "microhaplotypes" : + [ + { + "seq" : "ATGGAAAAATGGAATATGAAGTATTAAGTGATGATAAAATAGTGTATGAAAATATACAACATGATTTATTAAAAACAATAGAAGATGGTGAAGAAATGTTAAAAGGAACTGAAAGGAAGGATAATATAGATATACTGAGGACTCCTGGAAGGGGAGAATATGATATGTGGTCTACTTCTGGACTAGGGTTCTATGAAT" + }, + { + "seq" : "ATGGAAAAATGGAATATGAAGTATTAAGTGATGATAAAATAGTGTATGAAAATATACAACATGATTTATTAAAAACAATAGAAGATGATGAAGAAATGTTAAAAGGAACTGAAAGGAAGGATAATATAGATATACTGAGGACTCCTGGAAGGGGAGAATATGATATGTGGTCTACTTCTGGACTAGGGTTCTATGAAT" + } + ], + "target_id" : 31 + } + ] + }, + "sequencing_info" : + [ + { + "library_layout" : "paired-end", + "library_selection" : "RANDOM", + "library_source" : "GENOMIC", + "library_strategy" : "WGS", + "seq_date" : "2020-01-01", + "seq_instrument_model" : "Multiple", + "seq_platform" : "ILLUMINA", + "sequencing_info_name" : "Pf7Plus" + } + ], + "specimen_info" : + [ + { + "collection_country" : "India", + "collection_date" : "2012-08-25", + "geo_admin3" : "NA", + "host_taxon_id" : 9606, + "project_id" : 0, + "specimen_collect_device" : "Dried Blood spot", + "specimen_name" : "5tbx", + "specimen_store_loc" : "Multiple", + "specimen_taxon_id" : + [ + 5833 + ] + }, + { + "collection_country" : "Papua New Guinea", + "collection_date" : "2015", + "geo_admin3" : "NA", + "host_taxon_id" : 9606, + "project_id" : 0, + "specimen_collect_device" : "Dried Blood spot", + "specimen_name" : "XUC009", + "specimen_store_loc" : "Multiple", + "specimen_taxon_id" : + [ + 5833 + ] + } + ], + "target_info" : + [ + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 1956129, + "genome_id" : 0, + "start" : 1956096, + "strand" : "+" + }, + "seq" : "TTTTTCTCCACTTTGTAATTTTTATTGTTGAAT" + }, + "gene_name" : "PF3D7_1447900", + "insert_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 1956286, + "genome_id" : 0, + "ref_seq" : "ATATATATAAAGTTAAACCTATAAATAATACACTACCTAATAAACTATTCTTATATTTAAAAATAAATATAATACATGTTATTAATCCTTCTATTGTTGCCGGAATAATATACATTAAAACAGAACTCATCAAATTATTAGCACTCTCGGTACCTCT", + "start" : 1956129, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 1956129, + "genome_id" : 0, + "start" : 1956096, + "strand" : "+" + }, + "seq" : "CGGGTGGTATCATGAGAATAGTTGAT" + }, + "target_attributes" : + [ + "Included", + "DrugResistance" + ], + "target_name" : "t96" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 1038369, + "genome_id" : 0, + "start" : 1038340, + "strand" : "+" + }, + "seq" : "ACACTTCAACTACACTTTTTAATTTAGCC" + }, + "gene_name" : "PF3D7_1426700", + "insert_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 1038486, + "genome_id" : 0, + "ref_seq" : "CATACAATTAATAAAGCTCTACGATAAATTTCTTTTTTATTTGATTTAGAAAAAGGAGAAAACCATTGAAACTTTTTGGCTAGATATTTATGGTCTTTATCAAAAATATATTCTGAA", + "start" : 1038369, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 1038369, + "genome_id" : 0, + "start" : 1038340, + "strand" : "+" + }, + "seq" : "AGATCTTATGTTAAACTTCTAGAAGATGAAGT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t95" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 564208, + "genome_id" : 0, + "start" : 564177, + "strand" : "+" + }, + "seq" : "AAAATCTTTTGGTATTGTATTTTGACTGCAC" + }, + "gene_name" : "PF3D7_1414200", + "insert_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 564377, + "genome_id" : 0, + "ref_seq" : "TTATTAAAACTTTTTTTTCTTTCTGTAAAGTTTGTACATTATGTTTTGATGAGTTTTGATTATCTTCATAAAACTTTATATATTTATAAAAATTATTTTGTATAAAATCATTTAATAAAGGTAACATAATCTTTTTAGCTTGATTCAATTCACTACATGAATGTATATT", + "start" : 564208, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 564208, + "genome_id" : 0, + "start" : 564177, + "strand" : "+" + }, + "seq" : "AAACGGAATCACTTATGGATACCATTTTATTT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t94" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 933023, + "genome_id" : 0, + "start" : 932995, + "strand" : "+" + }, + "seq" : "TGTAAAAGGAAAATGTCTTACGTGGATT" + }, + "gene_name" : "PF3D7_0820700", + "insert_location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 933143, + "genome_id" : 0, + "ref_seq" : "TTGGTTTTAATGAGGATGATTTAGATAAAGAGTTTTTTTTTGATTTGCCGTCGATTAGTGGTTTTTCAAGTAATGGTATGAAAAAATGTAATTTAAGAAATTTATTAAAAAGATTAGAAG", + "start" : 933023, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 933023, + "genome_id" : 0, + "start" : 932995, + "strand" : "+" + }, + "seq" : "ATTCAAAACCAATAGTACCACAATATGTTT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t50" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_05_v3", + "end" : 1042162, + "genome_id" : 0, + "start" : 1042129, + "strand" : "+" + }, + "seq" : "GGAATATTTGTGATTTAGGATGTAATGCATACA" + }, + "gene_name" : "PF3D7_0525100", + "insert_location" : + { + "chrom" : "Pf3D7_05_v3", + "end" : 1042281, + "genome_id" : 0, + "ref_seq" : "ATATTATTACGGTACCATTATATGATTCTTTAGGTCCTCAATCAAGTAGATTTATATTAGATCAAACACAGATGGAAACTATTGTATGTGACAAGACATGTGCTCGTAATTTATTTAAG", + "start" : 1042162, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_05_v3", + "end" : 1042162, + "genome_id" : 0, + "start" : 1042129, + "strand" : "+" + }, + "seq" : "CAAATATATCTCTTCGCATGTTTCTAAGGA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t36" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 2669135, + "genome_id" : 0, + "start" : 2669104, + "strand" : "+" + }, + "seq" : "ATTTACATGATGTAACTGAATCTCAGCTTTT" + }, + "gene_name" : "PF3D7_1366800", + "insert_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 2669307, + "genome_id" : 0, + "ref_seq" : "AAAAAAAATACATTTAAATCTATAATATTTGTAATAAATGATAAGAATATTAGTATTAATAGGGTACTACTATTTGTAAATACTTTTCTACATAATTTATCAATAGTAGGAAATATGATATTCTTTTTGTTTGGCTTTATTTTATCTGGGATTTTCCAATCATAAAGTTCGA", + "start" : 2669135, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 2669135, + "genome_id" : 0, + "start" : 2669104, + "strand" : "+" + }, + "seq" : "AGCCAGTATTCTTTTTATGAAGTATTTTAACA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t88" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 2479086, + "genome_id" : 0, + "start" : 2479055, + "strand" : "+" + }, + "seq" : "CTTATAAAGAGAAATTTTCATGTTAGCGCTT" + }, + "gene_name" : "PF3D7_1361800", + "insert_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 2479246, + "genome_id" : 0, + "ref_seq" : "TCTATGCTTTATCAAAACAAAGTAATCAAAATGTAATACATTATTCTTGTCGATCTATATGTGCTTTTACAAAAAACCCTAAGGGTTTAGAAGCGGTAAAGGATATCAAGGACTTTGCGAATATTATAAGTAAATCTGTTGGTGATTTGAGTAAAGAGAA", + "start" : 2479086, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 2479086, + "genome_id" : 0, + "start" : 2479055, + "strand" : "+" + }, + "seq" : "AGTCTTCCTTGATTTCTTTATCCAAGGTA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t86" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 2124634, + "genome_id" : 0, + "start" : 2124602, + "strand" : "+" + }, + "seq" : "AATTTGGTTTCAATAAAATTATCAGCTTTCTT" + }, + "gene_name" : "PF3D7_1353100", + "insert_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 2124847, + "genome_id" : 0, + "ref_seq" : "TAACATTTTTTTAACATCTTTACCTTTTTGACTTGGTTCTTTATCATAATTCTGTTGTTCTGCAGAATCAGCATTTACTTCAGTTTCTTCTTTATTTTGAAAAGTGTTTGATTCTACATGAGAATTGGAAGATGAACGTCTATGTTTTACTTCTGTATAACTAGTACGTTCTCCAGTATGATGAGCCTTATGGTTTACATCTTCAGTTTCTTC", + "start" : 2124634, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 2124634, + "genome_id" : 0, + "start" : 2124602, + "strand" : "+" + }, + "seq" : "GAAGAATTTTAACACAAGGAGATCATCAC" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t85" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 1419543, + "genome_id" : 0, + "start" : 1419519, + "strand" : "+" + }, + "seq" : "GAAATGTCGATTCTCCTCCTTGTG" + }, + "gene_name" : "PF3D7_1335100", + "insert_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 1419670, + "genome_id" : 0, + "ref_seq" : "CTGGTTTTTGTACTTCTTGTCCTTGTGTTGATATCTCTTGTTCATTTTTAGATTGAGTATCTGTTTCACTTTGTGCCTTTACCTTTGATAATACGTTTTTACCGAATAATCCTAAATTTTGGAATAA", + "start" : 1419543, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 1419543, + "genome_id" : 0, + "start" : 1419519, + "strand" : "+" + }, + "seq" : "GAAAACAAGGAAAAATCAGAATCATTTCCA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t81" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 1150303, + "genome_id" : 0, + "start" : 1150279, + "strand" : "+" + }, + "seq" : "TAACAACCCCTCCATCAACATCTT" + }, + "gene_name" : "PF3D7_1327300", + "insert_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 1150493, + "genome_id" : 0, + "ref_seq" : "CTAAAAAAAGCAAACAAAAAGAAAAGAGAATGGAAGATTTAAGTATTGAGGAAAATTTGAAAGAGAAATTAATAAACCTAAATATTCAGAAACAGTATAGTGGTTTCCATATGAAAGAAATGGAGGAACAAAATATTCCTGAATTAAATATTCCACAACTTTCAGCTATTCATAATAGAGAAGATATGAA", + "start" : 1150303, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 1150303, + "genome_id" : 0, + "start" : 1150279, + "strand" : "+" + }, + "seq" : "ACACTTCTATATCTTCTTTCTTCATCATTCTTA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t80" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 1725365, + "genome_id" : 0, + "start" : 1725337, + "strand" : "+" + }, + "seq" : "TCGGTATAATAGAAGAGCCATCATATCC" + }, + "gene_name" : "PF3D7_1343700", + "insert_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 1725570, + "genome_id" : 0, + "ref_seq" : "CCCAATACAATAAATTCTACCATTTGACGTAACACCACAATTATTTCTTCTAGGTATATTTAAATTACTTGAAACATACCATACATCTCTTAAACGATCATACACCTCAGTTTCAAATAAAGCCTTATAATCATAGTTATTACCACCAAAAACGTATAAGAAATTATTCAATACAGCACTTCCAAAATAAGCTTTTTTGGTAGAC", + "start" : 1725365, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 1725365, + "genome_id" : 0, + "start" : 1725337, + "strand" : "+" + }, + "seq" : "GCTGGCGTATGTGTACACCTAT" + }, + "target_attributes" : + [ + "Included", + "DrugResistance" + ], + "target_name" : "t82" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 1876352, + "genome_id" : 0, + "start" : 1876325, + "strand" : "+" + }, + "seq" : "CCAGGACAATTTAAACCTACCAAATGA" + }, + "gene_name" : "PF3D7_1346700", + "insert_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 1876534, + "genome_id" : 0, + "ref_seq" : "TTATATTTTGGTTCAGACAAATGTACGTTACATGAAATATGTGCACTATCATCAACTAAAGAAATATCTAAACTATCTGTAAAAGTATGTTTAGAACTAACATTTGAAGAGAAGTTACATCCGTGTATGACTTTTTTTTCATATTTTGGTTTTAAAACTATTTTATAATTATTATTTTTAAA", + "start" : 1876352, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 1876352, + "genome_id" : 0, + "start" : 1876325, + "strand" : "+" + }, + "seq" : "CAAAAGATGTTAATACAGAATGTACATGCAAA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t83" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 2524962, + "genome_id" : 0, + "start" : 2524931, + "strand" : "+" + }, + "seq" : "ATGATCTTCTCTGAAATTTACTTGAATTGTT" + }, + "gene_name" : "PF3D7_1462300", + "insert_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 2525089, + "genome_id" : 0, + "ref_seq" : "AAATGAGGTATAATCATCCATTTCGTTGGGTCGATTTGATCTATTTTTAAGGTCCATATATTGAGATGAATCATTATGCATTTTATAATCATGAGGGATATTAGGTGCATGGTATTTAGGGTCTTTA", + "start" : 2524962, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 2524962, + "genome_id" : 0, + "start" : 2524931, + "strand" : "+" + }, + "seq" : "ACCAAACTTTTGGAGATTTCAAGATTATGA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t98" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 103659, + "genome_id" : 0, + "start" : 103631, + "strand" : "+" + }, + "seq" : "GAAAAGAAGATCCAACTGACAGAGAAAA" + }, + "insert_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 103879, + "genome_id" : 0, + "ref_seq" : "AACTGATGTTAATGAAGGCCAAAATGGAAAACGTTTAACACAAGAAAAAACCCTAAAACAAATTCCTTCGACATCACCAAATAATTTAGAACAAAAATTACAACAAACACATATTTCTTCTTCCCAACAAAAACATTTAATAAAAACTACTCCTACTTCAGATTCAACTACAACTTCATCAAGCTCTTCTGTTCCTCTTACAAAACAATCCCCTCATTCT", + "start" : 103659, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 103659, + "genome_id" : 0, + "start" : 103631, + "strand" : "+" + }, + "seq" : "TGTGTACTAGATAATGCAGGAACTGA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t78" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 684088, + "genome_id" : 0, + "start" : 684059, + "strand" : "+" + }, + "seq" : "GTCTACCATTTTTAATCGACTAACTCGAA" + }, + "gene_name" : "PF3D7_1217300", + "insert_location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 684261, + "genome_id" : 0, + "ref_seq" : "AATATCAAGATGGTAGTATTGTTTTAGATGTTAGTAGTACGAGAGATAAACTTTATGGAGAAGTTGAGTGGGAAGGATATAAATTTGAACTTGTGGATACAGGAGGTTTAGTTTTTGAACAAGAAAAGTTTTCAAAAGAAATAAAGGATCAAATTCTTATGGCTCTAAAAGAA", + "start" : 684088, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 684088, + "genome_id" : 0, + "start" : 684059, + "strand" : "+" + }, + "seq" : "CATCAACGACAAAAATAACAACTGATGA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t74" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 415653, + "genome_id" : 0, + "start" : 415623, + "strand" : "+" + }, + "seq" : "ATGAATTAATAAAAGAACATGGTGGACCTT" + }, + "gene_name" : "PF3D7_0408600", + "insert_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 415826, + "genome_id" : 0, + "ref_seq" : "ATGCTAGTTTTGCTGCTCATGAAAATAAAAGCTACTCATATGAAAGTCGTACATATAAAATGTATCCACCTGAATTTAATACATTAATGTTAAAAGCAGATTATTTTATAAGAGATATAAATACACGAGGATTTAGAGAAGTAAATATGGATTCATGTAAATCATATACAAAT", + "start" : 415653, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 415653, + "genome_id" : 0, + "start" : 415623, + "strand" : "+" + }, + "seq" : "GACTTGAAAACATTTTAAATTTCTTGTATCCAT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t23" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 659891, + "genome_id" : 0, + "start" : 659858, + "strand" : "+" + }, + "seq" : "GTTAATACTGGTACTATTATACCATATGTTGCT" + }, + "gene_name" : "PF3D7_1216600", + "insert_location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 660010, + "genome_id" : 0, + "ref_seq" : "GGGTCGACTTTTGGTGGTTTAACATTTTCAGCTACGAGATTTTCGAATGATGGCAATCCTACTTTGATTAATTCCTTTAACATAGATTTTGCGTGTTTTTTTACTTCTGATTTGATATC", + "start" : 659891, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 659891, + "genome_id" : 0, + "start" : 659858, + "strand" : "+" + }, + "seq" : "TCACCAACCTTTTTAGAATCAAGCTTT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t73" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 156566, + "genome_id" : 0, + "start" : 156535, + "strand" : "+" + }, + "seq" : "AACTGAAAGTATATACAATAGTACACCTCCA" + }, + "gene_name" : "PF3D7_1302900", + "insert_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 156722, + "genome_id" : 0, + "ref_seq" : "TATAGAGTTATTATGTTCGAATTAATGACCAGATTATTTCGATTTTATACAAAACCAATAGACCTTATTATTACTATGAATACACACAGATATGACACACCTATATTGTTAAAACATTCAAACAGCTTACAACTTATCTTATCAAATCAACAAAAT", + "start" : 156566, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 156566, + "genome_id" : 0, + "start" : 156535, + "strand" : "+" + }, + "seq" : "AAAAGGATAAGTTAGAATTGCTCATTAATCT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t79" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1816211, + "genome_id" : 0, + "start" : 1816181, + "strand" : "+" + }, + "seq" : "GGGTAGATATCGTTATAAGGGCTATAATGT" + }, + "gene_name" : "PF3D7_1145800", + "insert_location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1816425, + "genome_id" : 0, + "ref_seq" : "ATTGACTTCTCCGGGTTGGTTACATTATCATTACAACCAATATTATTAAGGTTAATACTATTTTTATCATTATTATTGTTGTTTTCATTTGTGTGGTTATATAATAACAATGATGTGTCGTCTATTGGATCATTTTGCACAAGGTCAATATCATTAGAATTATGTTTCATATTATTTGTATACATTTTTTTGTAATTATCATTTTTTCTTACTT", + "start" : 1816211, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1816211, + "genome_id" : 0, + "start" : 1816181, + "strand" : "+" + }, + "seq" : "GCCAAAAATACGATGTGATGAAGAATG" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t71" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1552430, + "genome_id" : 0, + "start" : 1552397, + "strand" : "+" + }, + "seq" : "AAGGGAAAAATAATGGATAATATAGTTGTGAAT" + }, + "gene_name" : "PF3D7_1139100", + "insert_location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1552640, + "genome_id" : 0, + "ref_seq" : "AATATCGACAATTATAAAGAAAAAATAGAAAATTTTAATGAAAGATATTATGAAGATGATTTAAGTTTCTTAAACTTTCCAGGAACCATAACAAGTTATGATAAAAACCATCAAAGAGATAAAAGAAAAAACTGTTTTGAAGAATATCTAGACAATAATAATTATTTTATTGATAGTAATCTAAAGGAAGTTATAGAAAATAATATATAT", + "start" : 1552430, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1552430, + "genome_id" : 0, + "start" : 1552397, + "strand" : "+" + }, + "seq" : "GTCAATTTGCTCCTTATCCATATTCGA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t69" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1009856, + "genome_id" : 0, + "start" : 1009831, + "strand" : "+" + }, + "seq" : "AAACTGTGAGCATATCTTGGTTCAG" + }, + "gene_name" : "PF3D7_1125800", + "insert_location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1010038, + "genome_id" : 0, + "ref_seq" : "GAATTCTATCTATTTGTTTAATTGGTGTCCATGAATTTTTAGAGAAACACCACATATCAGCTAATAAGGAATTATTAACATCTAATCCTCCATGAATATATAAAAAATCATTAAAACTGAAAGAAGCATGCTTATATCTTGCACGTGGACAAATTTTATTTCCAATAAGTTCCCATTTCTTT", + "start" : 1009856, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1009856, + "genome_id" : 0, + "start" : 1009831, + "strand" : "+" + }, + "seq" : "TGTTGATGAAACATATAAATTTGATTTCCAAGC" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t66" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1750865, + "genome_id" : 0, + "start" : 1750833, + "strand" : "+" + }, + "seq" : "CATCAACATATAGTCGTTATAAAAGAGCACTT" + }, + "gene_name" : "PF3D7_1143800", + "insert_location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1751055, + "genome_id" : 0, + "ref_seq" : "TTATTAAAAACAACAAATAAATTACCAAGGTCATGGAAAAAACTCTTGTTAAATCTATCCATTAGATTTCAAACAATACCTATAGGTGGTTCTATCGAAATCATATCAAAGGATGAGAAAAATATTTCTATGACACGATCCAGTGAATATAATGCAACAACATATGAGCATTACACATTTCCCAAATGGT", + "start" : 1750865, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1750865, + "genome_id" : 0, + "start" : 1750833, + "strand" : "+" + }, + "seq" : "GGCGTTTCCTCATTTTCTTTACTATTGT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t70" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 119486, + "genome_id" : 0, + "start" : 119456, + "strand" : "+" + }, + "seq" : "GCTTCCATCTCCTTTATATTCATCAAGAAA" + }, + "gene_name" : "PF3D7_1102500", + "insert_location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 119693, + "genome_id" : 0, + "ref_seq" : "TTTCATCCAAGAGTAATTATGTTTTTCTTGTTGATATTTTGCTTTATACAAACGAGCAAGATACTTTTTATACGATTCATGCTCTTTAATTTTCTTTTCAAAAGTTTTGGTTATAATGTGTTCAAGTGATTGTAAAGTATTTTTCTTTAATTTTCTCCATATTAATCTACATGCGATTATAAGAATTCTATATTCTTTGATATTCCC", + "start" : 119486, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 119486, + "genome_id" : 0, + "start" : 119456, + "strand" : "+" + }, + "seq" : "GGAATTTTTAATGAATGGATTAAAACTAGTGAA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t65" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_10_v3", + "end" : 1436479, + "genome_id" : 0, + "start" : 1436451, + "strand" : "+" + }, + "seq" : "CTAGGAATCGAATAAATGAGGAAAAGCA" + }, + "gene_name" : "PF3D7_1036400", + "insert_location" : + { + "chrom" : "Pf3D7_10_v3", + "end" : 1436682, + "genome_id" : 0, + "ref_seq" : "CGAGAAGAAACACGTTTTATCTCATAATTCATATGAGAAAACTAAAAATAATGAAAATAATAAATTTTTCGATAAGGATAAAGAGTTAACGATGTCTAATGTAAAAAATGTGTCACAAACAAATTTCAAAAGTCTTTTAAGAAATCTTGGTGTTTCAGAGAATATATTCCTTAAAGAAAATAAATTAAATAAGGAAGGGAAAT", + "start" : 1436479, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_10_v3", + "end" : 1436479, + "genome_id" : 0, + "start" : 1436451, + "strand" : "+" + }, + "seq" : "ATCGTCATCATCATTTATTATGTGTTCAATTA" + }, + "target_attributes" : + [ + "Excluded", + "Microhaplotype" + ], + "target_name" : "t64" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 531682, + "genome_id" : 0, + "start" : 531656, + "strand" : "+" + }, + "seq" : "CTTTTTGGGCTTATTGTTTGGAAGAA" + }, + "gene_name" : "PF3D7_0113800", + "insert_location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 531900, + "genome_id" : 0, + "ref_seq" : "AAAAGAAAGATGTTAAGAAAAAAAAGATCGATATGATAAATATATTACACATTCCTACAAATAATTATAGCATGCCAAATGAAAAAGATATAAACAGTTATGAATTTTTTGGATCTGAACCTATTGAATTATATGATGTAAAATCTAATAAGAATTGTGTTATAACTAGCCAATCTTATATTTGTATTGAAAACCCGCATGCTGCCATAGTATCCGAA", + "start" : 531682, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 531682, + "genome_id" : 0, + "start" : 531656, + "strand" : "+" + }, + "seq" : "ACTGGATTCTTCTAATATTCTTTGCTCTCT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t6" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 596133, + "genome_id" : 0, + "start" : 596101, + "strand" : "+" + }, + "seq" : "ATTTGTTTTTGTTCTACATCAATAATTGGTTT" + }, + "gene_name" : "PF3D7_0913900", + "insert_location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 596334, + "genome_id" : 0, + "ref_seq" : "ATTATTTTCGTTTTTTTTTATATTATCATTATAATTATATGTATTTACAAAGAATTTATTATTATTTGTTTCTTTATAATTATATTCATTTTCTTTATTACTTAAGGAATTTATATTTGATAAAACTTGTTGTCCTCTTTCTTCTTTGTTGATGTGAATATTTGAGAAAATAATAATAAATGTAATGACTAGGGCTATGTT", + "start" : 596133, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 596133, + "genome_id" : 0, + "start" : 596101, + "strand" : "+" + }, + "seq" : "AAATAGAAGTCATATAGGTGACTGGAATCTT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t55" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 516928, + "genome_id" : 0, + "start" : 516904, + "strand" : "+" + }, + "seq" : "TGTGGGCGCAAAAACTATAAATGA" + }, + "gene_name" : "PF3D7_0911300", + "insert_location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 517092, + "genome_id" : 0, + "ref_seq" : "ATGTTTGTGTAATAAAGGATATTTCTATAATGTCAAGAAACAACAATGTGAAGAATGTCCCATAGGTTTTTATTGTCCAAAAATAAGCTCAAAAAATAATATAAAAAAACCTATCAAATGTCCTAAAAATTCCTCAAGTATAAAAAAAGGTATGTATATATCAA", + "start" : 516928, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 516928, + "genome_id" : 0, + "start" : 516904, + "strand" : "+" + }, + "seq" : "ATTTTGTATATCCAAAATTACATTGACAATTGT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t54" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_05_v3", + "end" : 1309609, + "genome_id" : 0, + "start" : 1309581, + "strand" : "+" + }, + "seq" : "ACGACGAAGAAAACGAAAGTATTGATAA" + }, + "gene_name" : "PF3D7_0532300", + "insert_location" : + { + "chrom" : "Pf3D7_05_v3", + "end" : 1309744, + "genome_id" : 0, + "ref_seq" : "TAATGAAGAAAATATGTCTGACAGACCAAACAGTTTATCTCATGATAAGGATCAACACCTCGATGAAACACATAATGAACAATATGGATTATACGTAAAAGAAATGGAATCTAAAGTTGAAAAATTAGCTGAAAA", + "start" : 1309609, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_05_v3", + "end" : 1309609, + "genome_id" : 0, + "start" : 1309581, + "strand" : "+" + }, + "seq" : "ACCTCTTGAAATTCCTTTTCAACTTGA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t37" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 1362891, + "genome_id" : 0, + "start" : 1362863, + "strand" : "+" + }, + "seq" : "CGACTTCTTTAAGAGAACAAACAGAACA" + }, + "gene_name" : "PF3D7_0831600", + "insert_location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 1363087, + "genome_id" : 0, + "ref_seq" : "CGTAAAAAAAAAGGGTTTTCCTAAAAAACCATCGGTTCATGGTTTTACACAGATGGTGTTTTTGCAGCTTACTAATATAGTCATGTATGCCCTTTGTTTTATGAGCCTTTCACAAATATATGCTTATTTCGAAAACGTGAATTTTTATATTATAAGCAATTTTCGTTTCCTTGAGAGATATTTTAATATATTCAAT", + "start" : 1362891, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 1362891, + "genome_id" : 0, + "start" : 1362863, + "strand" : "+" + }, + "seq" : "AAGTTTTCTTCTGAATAGTTCTACAAAGTATTT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t53" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 165235, + "genome_id" : 0, + "start" : 165202, + "strand" : "+" + }, + "seq" : "GGATCCTCTTACAATCTCGAAATAATTATAATT" + }, + "gene_name" : "PF3D7_0703900", + "insert_location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 165422, + "genome_id" : 0, + "ref_seq" : "ATCATTATTATTATTATTATAATTATCATTGTTATTATTATTGTTGTTGTTGTTATTATTATTTCCTTTATTATTTAATATGCATTTTTTAATATCCATTTTATTATTTATCATATCAGTACTTTTATTTTTCTCCTTTTCGTTTATAGCTTTTTCCCTATGCACCCTGAATTTCCCATTTTTTTTT", + "start" : 165235, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 165235, + "genome_id" : 0, + "start" : 165202, + "strand" : "+" + }, + "seq" : "ATGGTTTGGTAAGCGAGTTTATGTTATT" + }, + "target_attributes" : + [ + "Excluded", + "Microhaplotype" + ], + "target_name" : "t40" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 1344686, + "genome_id" : 0, + "start" : 1344653, + "strand" : "+" + }, + "seq" : "TCTTTTCCATATATAATAACGCATGAATTCTTT" + }, + "gene_name" : "PF3D7_0831400", + "insert_location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 1344819, + "genome_id" : 0, + "ref_seq" : "AAATATATCTTTTACTTTATCTGTAAGTTTCATGGAATCTATTATTTCATGTGCATATTTTATTTTTGCCTCGTTTATATATTTACCTGCTTTTAATTTACATAAACATTTTTCTATTAAGTTTTGATCATTT", + "start" : 1344686, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 1344686, + "genome_id" : 0, + "start" : 1344653, + "strand" : "+" + }, + "seq" : "TGAGAACAGATGAAGTAACTACTCGATT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t52" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 3124642, + "genome_id" : 0, + "start" : 3124614, + "strand" : "+" + }, + "seq" : "CAGATTATTTGGTAATGAACAACCAGGA" + }, + "gene_name" : "PF3D7_1475900", + "insert_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 3124842, + "genome_id" : 0, + "ref_seq" : "TATGGAAAAATGGAATATGAAGTATTAAGTGATGATAACATAGTGTATGAAAATATACAACATGATTTATTAAAAACAATAGAAGATGATGAAGAAATGTTAAAAGGAACTGAAAGGAAGGATAATATAGATATACTGAGGACTCCTGGAAGGGGAGAATATAATATGTGGTCTACTTCTGGACTAGGGTTCTATGAATT", + "start" : 3124642, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 3124642, + "genome_id" : 0, + "start" : 3124614, + "strand" : "+" + }, + "seq" : "AGGTCTTCCTAATCTTGAACCATCATAT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t99" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 1269320, + "genome_id" : 0, + "start" : 1269294, + "strand" : "+" + }, + "seq" : "CTCTTATATCAGGAGCAGCTATAGGA" + }, + "gene_name" : "PF3D7_0829600", + "insert_location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 1269456, + "genome_id" : 0, + "ref_seq" : "GCCTTAGCATTAATAACACTTATAGGAGGTATTTATATGACTAAAGGAAGAAAAAGTTCCATATGGCATAATTCAGAAATAAATGATACACTTTATGATGTTGTTCTTGAAACAGTGAATCAAGGAAATACAGATG", + "start" : 1269320, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 1269320, + "genome_id" : 0, + "start" : 1269294, + "strand" : "+" + }, + "seq" : "TTTTACTCCTCTTTGAAAAGCCAACTTTA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t51" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_05_v3", + "end" : 329378, + "genome_id" : 0, + "start" : 329351, + "strand" : "+" + }, + "seq" : "GTGTTAAAACAACAGGAGGAACACTAA" + }, + "gene_name" : "PF3D7_0508000", + "insert_location" : + { + "chrom" : "Pf3D7_05_v3", + "end" : 329550, + "genome_id" : 0, + "ref_seq" : "ATTGTGATGTATATAAATTCCCTTCTTCTTTATGTACCACATTATAAGAACCACGAACATATTCTTTTAAAAATGTTAACTTACTTCCAACAAATATATAATCAAAACAAAATTTTTTATTGTCGAAATGTTCTCGTTCAACCCCATTCATATTTCGGATATCATTATTTAA", + "start" : 329378, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_05_v3", + "end" : 329378, + "genome_id" : 0, + "start" : 329351, + "strand" : "+" + }, + "seq" : "TGTTGTAGAATATTCGTGTCCGTATAGT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t33" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_10_v3", + "end" : 1386700, + "genome_id" : 0, + "start" : 1386672, + "strand" : "+" + }, + "seq" : "TGCTACAGTTATATAGGACGATTTTGGT" + }, + "gene_name" : "PF3D7_1035000", + "insert_location" : + { + "chrom" : "Pf3D7_10_v3", + "end" : 1386869, + "genome_id" : 0, + "ref_seq" : "AGGGAACAGGTTAAATATATTGAAGACGTGGTTTGATAATCAGGTATTTCTTTAATTAAATATTCATGATATTGTTCGTTAGATACATAAATTAATTCGTCCTCCACATTTTGCTGTTCTGTTATAATTTGTGAAGAAGCTTGGTTTGTCTTATTTGGTAATTGCTCTT", + "start" : 1386700, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_10_v3", + "end" : 1386700, + "genome_id" : 0, + "start" : 1386672, + "strand" : "+" + }, + "seq" : "AAAATGAGGACAAGGAAAATAATACATTCATAA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t62" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 1358694, + "genome_id" : 0, + "start" : 1358666, + "strand" : "+" + }, + "seq" : "AAGGATCATTTCATTGAAGCCTCTAAAA" + }, + "gene_name" : "PF3D7_0731500", + "insert_location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 1358911, + "genome_id" : 0, + "ref_seq" : "AAGAATCTCAACTTTTGCTTAAAAAAAATGATAACAAATATAATTCTAAATTTTGTAATGATTTGAAGAATAGTTTTTTAGATTATGGACATCTTGCTATGGGAAATGATATGGATTTTGGAGGTTATTCAACTAAGGCAGAAAACAAAATTCAAGAAGTTTTTAAAGGGGCTCATGGGGAAATAAGTGAACATAAAATTAAAAATTTTAGAAAAAA", + "start" : 1358694, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 1358694, + "genome_id" : 0, + "start" : 1358666, + "strand" : "+" + }, + "seq" : "CAAAGTTTCTCTCTAAATTCATTCCACCAT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t45" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 2050130, + "genome_id" : 0, + "start" : 2050103, + "strand" : "+" + }, + "seq" : "TTGGTTTTGATTATCTCCCATTTTCGT" + }, + "gene_name" : "PF3D7_1250100", + "insert_location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 2050314, + "genome_id" : 0, + "ref_seq" : "TTTTAAACTTTGAATCTGTTCAATTAATAACACTTCATCATTGTCTTCGCCTTTTATAATATCTCCATGATTATGTGCTCCTCTAATTAAGGTATCACTAACCTGTTGTTCATCTGTCGCATGAGAACTAGTAGATATATCTGGTTTATTTTTTTTCTTTCTTTTTGTTATTTCTAATTTTTTT", + "start" : 2050130, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 2050130, + "genome_id" : 0, + "start" : 2050103, + "strand" : "+" + }, + "seq" : "AAAAACATACCTAGACATTTGAATGTCTTAGA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t77" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 141963, + "genome_id" : 0, + "start" : 141936, + "strand" : "+" + }, + "seq" : "AAAGCGAATAATGCCAATATGTTGTTC" + }, + "gene_name" : "PF3D7_0302600", + "insert_location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 142181, + "genome_id" : 0, + "ref_seq" : "AGCATTTATAACAAAATATCAGAAGATGGAAAAACCAAAAATAGCCTACTTAGCGATATATCTAAATTATTTAAAATTGTAAAAGAAAGCAAATTAATATTTGTAACTGGATTTTTATTAACAACCTTGTCAGCAATTGTCGATTCATACATTCCAATTTTTCTATCCAAAACGGTATCTTTTGTAATGGAAAGAAAAAAATTTACATTTCTTAAAAT", + "start" : 141963, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 141963, + "genome_id" : 0, + "start" : 141936, + "strand" : "+" + }, + "seq" : "TTTTTACAACTGACAAATTTGTTTTGTGT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t15" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 512199, + "genome_id" : 0, + "start" : 512168, + "strand" : "+" + }, + "seq" : "CGAATCAAAGGTAGAAAATGATCTTGAAGAA" + }, + "insert_location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 512388, + "genome_id" : 0, + "ref_seq" : "TTAAATAAATTAAGTGAAGATGATTATGAAAAAAATTGTAGACATTTAAATTATTTAATAGATAATATAAGAGAATTATTTTTTAGTTCTAAAAATATTAGAATTCCTGATGTAGCTCGTAAATATTTGTGGGATAATCAAATTGAAGGAAATCTCAAAAAATTAATATCTTCAGAAACAAAATATAAA", + "start" : 512199, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 512199, + "genome_id" : 0, + "start" : 512168, + "strand" : "+" + }, + "seq" : "CTGTGGATTATTTATACGATTCCTTTGACA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t5" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_06_v3", + "end" : 532195, + "genome_id" : 0, + "start" : 532167, + "strand" : "+" + }, + "seq" : "ATCAAGCTGAATCTATCCTATTGGATCA" + }, + "gene_name" : "PF3D7_0612900", + "insert_location" : + { + "chrom" : "Pf3D7_06_v3", + "end" : 532378, + "genome_id" : 0, + "ref_seq" : "AGAACAATTGCTAAACACCAAATTGGGTGAAACAAAAAACCACCTGAACAGAACCCCATTTATACCTGAATCGGTCATACGAGAAAGGAAATTACGCCAAGAAAAAGCTCAATCCACAAACAACATGTTCGATTCAACAAACGCAGATAGTATTACGTCCCCATGTGATCCAACGAATGCCAC", + "start" : 532195, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_06_v3", + "end" : 532195, + "genome_id" : 0, + "start" : 532167, + "strand" : "+" + }, + "seq" : "GTATATTGTTTATTGGGATCCCCTTCC" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t39" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 532690, + "genome_id" : 0, + "start" : 532660, + "strand" : "+" + }, + "seq" : "GGGAAGAATGGTTTAATCGTAAAAATGAAG" + }, + "gene_name" : "PF3D7_0113800", + "insert_location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 532844, + "genome_id" : 0, + "ref_seq" : "ACTTTCTTAATTCTATGAATGAAGAATATACGCATATTAATTTAAATAACTTTATACATAATAATAACCATGATAATGACGAAAATTATACATTAGATCAGGTGGAAGGATATCCTATGACTAGTTATCAAAATAATATATACAAGGATTTTTT", + "start" : 532690, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 532690, + "genome_id" : 0, + "start" : 532660, + "strand" : "+" + }, + "seq" : "GTCTTCGAAATAATGAACTCCCTTTTCT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t7" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 298886, + "genome_id" : 0, + "start" : 298857, + "strand" : "+" + }, + "seq" : "TAGATATATCATTCACAGTCGTCTCATGG" + }, + "gene_name" : "PF3D7_0706100", + "insert_location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 299005, + "genome_id" : 0, + "ref_seq" : "ACATTCAATATGGTTCTGAGCTTAAAGATGTTATCCTTATACATGTTTCTATTCTCATTCGTTATAACATCAATGACATATAAAACATATCGCTCAAATATTTTGTGAACAATATTATA", + "start" : 298886, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 298886, + "genome_id" : 0, + "start" : 298857, + "strand" : "+" + }, + "seq" : "TGTTAAGTTTTCTCTTGTGGAATCGAAT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t42" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_02_v3", + "end" : 278165, + "genome_id" : 0, + "start" : 278144, + "strand" : "+" + }, + "seq" : "CTTACCATTCGCGCTTTCTTG" + }, + "gene_name" : "PF3D7_0207000", + "insert_location" : + { + "chrom" : "Pf3D7_02_v3", + "end" : 278336, + "genome_id" : 0, + "ref_seq" : "GGAATTTTCTTTTTTATGACTTTCTTCTCCTTGTTCAGAAGCTTCTTTTTCATCCTTTTTTTCTGCTGCGTCAGATAAATTGGGGGAAGCACTTGAAGATTCATTTCCTCCAGGAGTATTACTAGTACTTACTCCGTCCACATTTGGTTTTTCTTCCCCTAGAATTCTCAT", + "start" : 278165, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_02_v3", + "end" : 278165, + "genome_id" : 0, + "start" : 278144, + "strand" : "+" + }, + "seq" : "AATATAGTACCAGAAAATGGAAGAATGTTAAAT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t11" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 133491, + "genome_id" : 0, + "start" : 133463, + "strand" : "+" + }, + "seq" : "TTTTGGTTCAGTACTATCTCTTGCATTT" + }, + "insert_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 133701, + "genome_id" : 0, + "ref_seq" : "TTAGATTTTTTCCCTCCAGCAGGTGCACTAACTTTAGGTGTTTTAAATCTAGATGTATGTGGAACCCCATCTTTATTTGGTTTACCTCTATTTAATCTTTTACCAGCAGTAGAAACTACATTCTCTCGATTATCATTACCTACTTCAGTCTTTACAATTGTAGGAGGTGTTTTAACATGATTATCCCCTCCATGAGGAGTAACCCTTAAA", + "start" : 133491, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 133491, + "genome_id" : 0, + "start" : 133463, + "strand" : "+" + }, + "seq" : "CGACACCAAATATTCAAGAAGAACC" + }, + "target_attributes" : + [ + "Excluded", + "Microhaplotype" + ], + "target_name" : "t21" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_06_v3", + "end" : 145343, + "genome_id" : 0, + "start" : 145315, + "strand" : "+" + }, + "seq" : "CAATCAACAAAAGCTGATGAATCATCAT" + }, + "gene_name" : "PF3D7_0603600", + "insert_location" : + { + "chrom" : "Pf3D7_06_v3", + "end" : 145501, + "genome_id" : 0, + "ref_seq" : "AATTTGAATAAAATTTATCATTCACAATATTATATTTTTGTTTCTTCTTTTTTCCCATAATATTATTATTTTGTTCACAATATATGTTCATGTGTCCCCTCTTTTTCTGTAAAATATTAAAATGTTTCTTACTATGCTTCTCTTCATTTTTAATAACA", + "start" : 145343, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_06_v3", + "end" : 145343, + "genome_id" : 0, + "start" : 145315, + "strand" : "+" + }, + "seq" : "AAGGAAGGTAGAATATCAAATACAAGGGA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t38" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 1149415, + "genome_id" : 0, + "start" : 1149387, + "strand" : "+" + }, + "seq" : "TGGACATGTAGATATTTGACTAGTCGAA" + }, + "gene_name" : "PF3D7_0727000", + "insert_location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 1149585, + "genome_id" : 0, + "ref_seq" : "TAATATTTAATATTTTTGTTTAGGAAGTTTTCAAAATTGATGACATTGATAACCGTTTTTATTAAATCGCTTGGGTTGTTTGTGTGTTCCATTGTAGAAGACATAATTTTAAGAATGTGTTTTTGTGTTATTAAACAAAACTTTGTTACTATATGGAATCGTATGTTATA", + "start" : 1149415, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 1149415, + "genome_id" : 0, + "start" : 1149387, + "strand" : "+" + }, + "seq" : "TGTATACTCTCACATATTCCCTTCAGTG" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t44" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_05_v3", + "end" : 958389, + "genome_id" : 0, + "start" : 958362, + "strand" : "+" + }, + "seq" : "TTTAGAACAAGTGAGTTCAGGAATTGG" + }, + "gene_name" : "PF3D7_0523000", + "insert_location" : + { + "chrom" : "Pf3D7_05_v3", + "end" : 958506, + "genome_id" : 0, + "ref_seq" : "TACGAAATTTATAACAATTTTTACATATGCCAGTTCCTTTTTAGGTTTATATATTTGGTCATTAATAAAAAATGCACGTTTGACTTTATGTATTACTTGCGTTTTTCCGTTAATTTA", + "start" : 958389, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_05_v3", + "end" : 958389, + "genome_id" : 0, + "start" : 958362, + "strand" : "+" + }, + "seq" : "TTTACTTTCTTATTACATATGACACCACAAACA" + }, + "target_attributes" : + [ + "Included", + "DrugResistance" + ], + "target_name" : "t35" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 2481106, + "genome_id" : 0, + "start" : 2481079, + "strand" : "+" + }, + "seq" : "AGAAGATAAGCAATTATGGCAAAAGGT" + }, + "gene_name" : "PF3D7_1361800", + "insert_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 2481288, + "genome_id" : 0, + "ref_seq" : "GCAACTTACTTTAGAAGCCATGAATTCGGCCGATGATCCATTGGAAGCATTTAAAAATACTTTATTAATATTTGATTTTAATTTATCTGAATTTGATAAGGATCCATATATAAATGGTGTGCATGATTTAGCATCTAATATAAAGGATTGTTTAAGAAAAGGAGGTCACAGTAAAATATATT", + "start" : 2481106, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 2481106, + "genome_id" : 0, + "start" : 2481079, + "strand" : "+" + }, + "seq" : "TCCATTTAAATAATAACCTTTGATCACTTTGAT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t87" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 850816, + "genome_id" : 0, + "start" : 850788, + "strand" : "+" + }, + "seq" : "CCATTTTTATCTACACGTACTACATGCA" + }, + "gene_name" : "PF3D7_0320400", + "insert_location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 850989, + "genome_id" : 0, + "ref_seq" : "TCATATTCGTTTCAGCGTTTATAGAGCGAATATTATCGATTATGTCTATATTCCCTAAAATATGTACATAATAATCTCCATTTAATAATGTTACTTTCTTAAGAATATTTTTGTATATGACATCAAAGATATTACGAGTTAACAATACATCTACATTTCCGTCTATTATATAT", + "start" : 850816, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 850816, + "genome_id" : 0, + "start" : 850788, + "strand" : "+" + }, + "seq" : "AAATGTCTCTAAGAGTTACAGGAACAGA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t19" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_05_v3", + "end" : 958059, + "genome_id" : 0, + "start" : 958027, + "strand" : "+" + }, + "seq" : "AAATGTTTACCTGCACAACATAGAAAATTATT" + }, + "gene_name" : "PF3D7_0523000", + "insert_location" : + { + "chrom" : "Pf3D7_05_v3", + "end" : 958221, + "genome_id" : 0, + "ref_seq" : "ATTTATATCATTTGTATGTGCTGTATTATCAGGAGGAACATTACCTTTTTTTATATCTGTGTTTGGTGTAATATTAAAGAACATGAATTTAGGTGATGATATTAATCCTATAATATTATCATTAGTATCTATAGGTTTAGTACAATTTATATTATCAATGAT", + "start" : 958059, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_05_v3", + "end" : 958059, + "genome_id" : 0, + "start" : 958027, + "strand" : "+" + }, + "seq" : "TTTGATGTAATTACATCCATACAATAACTTGAT" + }, + "target_attributes" : + [ + "Included", + "DrugResistance" + ], + "target_name" : "t34" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 1992289, + "genome_id" : 0, + "start" : 1992261, + "strand" : "+" + }, + "seq" : "TTTTACTTTTGCTACCATCAGGCATAAT" + }, + "gene_name" : "PF3D7_1448500", + "insert_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 1992426, + "genome_id" : 0, + "ref_seq" : "ATAAACACCAGTACCATTTTTTTCTGATAAATTAATATTTTTTTGTATAACATCATATTTATCCCTTTTCGTGGTAAGTGCAGTATCCTGTTTTATTATTATATTATCGAATTCATCATGGTGTATATTTCTTTCAT", + "start" : 1992289, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 1992289, + "genome_id" : 0, + "start" : 1992261, + "strand" : "+" + }, + "seq" : "ATCTTATTATGAAAGCTGTACATCCGATTTTA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t97" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 1406405, + "genome_id" : 0, + "start" : 1406375, + "strand" : "+" + }, + "seq" : "CAGATTATCATAGTGTTGTGGATGAAGATT" + }, + "gene_name" : "PF3D7_0935600", + "insert_location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 1406541, + "genome_id" : 0, + "ref_seq" : "TAATTAATTTTAATGATGATGTTACTTTAGAAACACAATCCATGATAGCACACGGAGGGTCTTTGTCAGAAATAGAAGAAACTGGAGATTTATCTTCAGATGTTGATAGATTACATTCATCAATCGAAACTACTCC", + "start" : 1406405, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 1406405, + "genome_id" : 0, + "start" : 1406375, + "strand" : "+" + }, + "seq" : "ATCACCTCGTATATATACAACATCATCTCTT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t58" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 1037634, + "genome_id" : 0, + "start" : 1037602, + "strand" : "+" + }, + "seq" : "ATTGAAGTACAATATGAAATCGATCTTGATAA" + }, + "gene_name" : "PF3D7_0422500", + "insert_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 1037844, + "genome_id" : 0, + "ref_seq" : "ATCTTATAAAGTTAATGAAATAGCTCAACTTAATTTAACCATAGAAAGAGATTTAACAGATGATGCTGTGATTTTTGCACACTCACTTTATTTACCATTTGAAAAAGAAGAAATGTGGTGGATCGTTATCGGAATTAAAAAAATGAACTTACTTTTATCTATCAAAAAATTATCTTTATTGAAAAGTGTCAATAATATAAAAATTAATTT", + "start" : 1037634, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 1037634, + "genome_id" : 0, + "start" : 1037602, + "strand" : "+" + }, + "seq" : "GTATTTGGTTTGTCAGGCAATTCG" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t28" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 1237431, + "genome_id" : 0, + "start" : 1237407, + "strand" : "+" + }, + "seq" : "CGAATGCTTGTGTGATCAATGAAA" + }, + "gene_name" : "PF3D7_1230000", + "insert_location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 1237603, + "genome_id" : 0, + "ref_seq" : "AGTATGAACACAAAACCGAAAGAGAGTTTAAAAAAAGATTCGATTTTAATGAAGGAAGAAATAACATAATAAATGTGTCAAATGTAAAGAAAACATGTAATATAGTTAAAAATGATTTAAAGGAATCTAACGAGATAAAAACTAATATAAACACAAGTTCTTATAATTTATA", + "start" : 1237431, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 1237431, + "genome_id" : 0, + "start" : 1237407, + "strand" : "+" + }, + "seq" : "ACCTCTTTCAAAACATTCTCTTTTATTAATACA" + }, + "target_attributes" : + [ + "Excluded", + "Microhaplotype" + ], + "target_name" : "t76" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 1128489, + "genome_id" : 0, + "start" : 1128461, + "strand" : "+" + }, + "seq" : "CTGTCGCAAAAGAAGGTTTTGATAATAT" + }, + "gene_name" : "PF3D7_0424900", + "insert_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 1128673, + "genome_id" : 0, + "ref_seq" : "ATTGAAAGAGTTAAAGGGAAAAATACAAAATTATTTAGATAATGATATTCAATTGAAAAATGGAAAACTCCTATATAAGGATACATGGGATAGAATTGTTTTGAAATTTTGTAGAACTGTAGCAATAGAAGAGGCAGAATACACTAGAAAATTTTATAGCTTAATTAATGATAAACATACAATT", + "start" : 1128489, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 1128489, + "genome_id" : 0, + "start" : 1128461, + "strand" : "+" + }, + "seq" : "ATGAATGAATAAATCAATTTTACCACGTCATT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t32" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 39953, + "genome_id" : 0, + "start" : 39920, + "strand" : "+" + }, + "seq" : "CCAACTATATCTGTTCCATAAATGGTTATATTT" + }, + "gene_name" : "PF3D7_1401100", + "insert_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 40137, + "genome_id" : 0, + "ref_seq" : "ACATAGAAATATGTGCGAAAATTGGGAAAAAAATAAATAACAGGAATTGTTATATAAATTGAATCAAGAATGGCACAAAGAAAATAATACTGGTGACTTTCACACTAGTGATATCACACACAATAGTGGTATTACATACAGTAGTGGTAACATACCTAGTGAAAGTAATAGTAGTTATATCCAA", + "start" : 39953, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 39953, + "genome_id" : 0, + "start" : 39920, + "strand" : "+" + }, + "seq" : "ATTTATTTGGATTGAGATCTTAATGTTCAAAGT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t89" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1018953, + "genome_id" : 0, + "start" : 1018920, + "strand" : "+" + }, + "seq" : "GCTATACTACTACTTATGTTACTTATACCACAT" + }, + "gene_name" : "PF3D7_1126100", + "insert_location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1019085, + "genome_id" : 0, + "ref_seq" : "CTAGTGACTGTACATTTTTCATCTAATGTTCTATAGGATAAAGAATCTGAAGGACAATGCATATCATTACAAAAATAGCATGCACCTTTAAAATATAAATAAGAATGTCTTAACACAACAAAGGAATCAAAA", + "start" : 1018953, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1018953, + "genome_id" : 0, + "start" : 1018920, + "strand" : "+" + }, + "seq" : "CTCCTTTAGGTATTACGGTAGCAATAAG" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t67" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 221363, + "genome_id" : 0, + "start" : 221330, + "strand" : "+" + }, + "seq" : "GGAACAAGAAGGATAATACCATTATTAATCCTA" + }, + "gene_name" : "PF3D7_0304600", + "insert_location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 221495, + "genome_id" : 0, + "ref_seq" : "TTGAACTATTTACGACATTAAACACACTGGAACATTTTTCCATTTTACAAATTTTTTTTTCAATATCATTTGCATAATCTAATTCGTCTTTAGGTTTATTAGCAGAGCCAGGCTTTATTCTAACTTGAATAC", + "start" : 221363, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 221363, + "genome_id" : 0, + "start" : 221330, + "strand" : "+" + }, + "seq" : "CCCATGTAGTGTAACTTGTGGAAATG" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t16" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 748533, + "genome_id" : 0, + "start" : 748500, + "strand" : "+" + }, + "seq" : "AGATGTTTATATCATTAACAAAGTTGAAGATCT" + }, + "gene_name" : "PF3D7_0417200", + "insert_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 748696, + "genome_id" : 0, + "ref_seq" : "AATAGTTTTACTTGGGAAATTAAATTACTATAAATGTTTTATTATAGGAGGTTCCGTTGTTTATCAAGAATTTTTAGAAAAGAAATTAATAAAAAAAATATATTTTACTAGAATAAATAGTACATATGAATGTGATGTATTTTTTCCAGAAATAAATGAAAAT", + "start" : 748533, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 748533, + "genome_id" : 0, + "start" : 748500, + "strand" : "+" + }, + "seq" : "ACATCGCTAACAGAAATAATTTGATACTC" + }, + "target_attributes" : + [ + "Included", + "DrugResistance" + ], + "target_name" : "t26" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 166035, + "genome_id" : 0, + "start" : 166002, + "strand" : "+" + }, + "seq" : "AGGATATGTTCTTTTTAAAGTTCTCTTCATTTT" + }, + "gene_name" : "PF3D7_0703900", + "insert_location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 166167, + "genome_id" : 0, + "ref_seq" : "CTTTTATTTGAACTTTTTTATTTTCTTCATTATCAATATAAAAACAACAATCTTTAAATTTATGAAATAACACCCAACTTAATGTATAAAATATAATTTCTATAAAATCAAAATTAATGTAATAACCTAATT", + "start" : 166035, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 166035, + "genome_id" : 0, + "start" : 166002, + "strand" : "+" + }, + "seq" : "CGTTAAATGTAGAAAAGACGAAATCATCCA" + }, + "target_attributes" : + [ + "Excluded", + "Microhaplotype" + ], + "target_name" : "t41" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1376185, + "genome_id" : 0, + "start" : 1376159, + "strand" : "+" + }, + "seq" : "CTGCAAATTGAGCCATAGAAAAATGA" + }, + "gene_name" : "PF3D7_1135100", + "insert_location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1376372, + "genome_id" : 0, + "ref_seq" : "TTCTCATTCCTTTGAAAATATGAACTATTCAACTCATCAAGTTTTTCATATGTTATTTCATAACTGCCATCATCTGAATCCTCTTCATCACTACTACTTAAAGAATGCTCTTCTACAGTTATATCTTCATAATGATTATTTTTAGGAAAATATTCTTCAGATCTTTCTATAAATTCTGTTCCACTAC", + "start" : 1376185, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_11_v3", + "end" : 1376185, + "genome_id" : 0, + "start" : 1376159, + "strand" : "+" + }, + "seq" : "CGATAACACTAGATGTAAGATATGCATCAT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t68" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 1113450, + "genome_id" : 0, + "start" : 1113422, + "strand" : "+" + }, + "seq" : "GATTCTGCATGCAGTAATGAATCTATTG" + }, + "gene_name" : "PF3D7_0424600", + "insert_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 1113604, + "genome_id" : 0, + "ref_seq" : "AAATCATCTAAGAATAAACTTTTTTGTTTAAACCATTTATTGAACATTTCACTTAAATGTGATTCAATTTTTTTTTCTGAGCTTTCCATAATTTGATTACAACTATTCAATTTGTTTGTATAAGTTTTAGGTCTTATTATTCTTTTACGTTTTA", + "start" : 1113450, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 1113450, + "genome_id" : 0, + "start" : 1113422, + "strand" : "+" + }, + "seq" : "CGTAGCATGCTCAGATATTATGATGATT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t31" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 495971, + "genome_id" : 0, + "start" : 495941, + "strand" : "+" + }, + "seq" : "GCCACCAAAATATTATATACCACAAGACAA" + }, + "gene_name" : "PF3D7_0113100", + "insert_location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 496143, + "genome_id" : 0, + "ref_seq" : "TGAAAGTAGCGAATACCCTGTAGAAATTGTTAGTAAACCTCTGGAATGGTTATTGTTTCATGATTTGACTAAGCCTGATGTTACTGCACTACCTGAAGAATTACCATTAACGAGCTATAAAGTAACACCTACTTCTATTAATGTATTGCATAAAGAGGGCCCCACTTTAAAA", + "start" : 495971, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 495971, + "genome_id" : 0, + "start" : 495941, + "strand" : "+" + }, + "seq" : "AAGGAAAATCTTTGGTGGGAAAAATAGA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t4" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_10_v3", + "end" : 377095, + "genome_id" : 0, + "start" : 377062, + "strand" : "+" + }, + "seq" : "AAACAAATAGCATTCGATAAATTTGAAAATTTC" + }, + "gene_name" : "PF3D7_1009200", + "insert_location" : + { + "chrom" : "Pf3D7_10_v3", + "end" : 377209, + "genome_id" : 0, + "ref_seq" : "AACCAAAAAATGATACCTGTACGTTTTTCTCCAGGAGAAACAAAAAAATTAGAAAGGATTCTCAAAAAAGTAGACGACTTTTTCTGTGCCAATATTAAAGCTCAATATACTTGC", + "start" : 377095, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_10_v3", + "end" : 377095, + "genome_id" : 0, + "start" : 377062, + "strand" : "+" + }, + "seq" : "CTTCATCTATATAGTCCCCGATGAATGA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t60" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 181557, + "genome_id" : 0, + "start" : 181524, + "strand" : "+" + }, + "seq" : "TCTATTAGCTTTTTCAAACCTTTCATTATTGTT" + }, + "gene_name" : "PF3D7_0104100", + "insert_location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 181673, + "genome_id" : 0, + "ref_seq" : "TTCATTCTTTTTTTAACGAAAACTATTCATCTCAAAAATATAAGATATTTTATATGACGAATGCCATTGTATTTTTTGTTACGTAAAACCTGACTTCTTCAAGGAAAACACATGCG", + "start" : 181557, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 181557, + "genome_id" : 0, + "start" : 181524, + "strand" : "+" + }, + "seq" : "AGCTTAGGCAAAAATTGGTGAAAATG" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t3" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_10_v3", + "end" : 992371, + "genome_id" : 0, + "start" : 992338, + "strand" : "+" + }, + "seq" : "TGCCTATCATTAATGGAAAATATCCTCATTATA" + }, + "gene_name" : "PF3D7_1023700", + "insert_location" : + { + "chrom" : "Pf3D7_10_v3", + "end" : 992544, + "genome_id" : 0, + "ref_seq" : "TTTTTAAAAAAAAAAATTATGATATAAAATCTTCAATTAATAAAAGATCTATCCAGTTCTTTAAAGACACTAATATAGATCATTATATAGCATATGAATATTATAAGGAGGACCGTACGGAATTTATATTAACTATTATGAATGAAAAAAATATTACTCATCAAGAAACTCAA", + "start" : 992371, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_10_v3", + "end" : 992371, + "genome_id" : 0, + "start" : 992338, + "strand" : "+" + }, + "seq" : "TCCCTTTCAACTTTTTCATTTCAAGACT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t61" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 407379, + "genome_id" : 0, + "start" : 407346, + "strand" : "+" + }, + "seq" : "TCGTCTTTCTGTTCATTATCCATATAATCTTTT" + }, + "gene_name" : "PF3D7_1410300", + "insert_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 407571, + "genome_id" : 0, + "ref_seq" : "TCTCCTTCCTTTTCATTCTTTACTTTATTTCTATTAATACACAACTCTCCTTGAGTTAAGAGATTTACGATATTATCAATATTGTTTTCTTTCATATACTTCAACTTTTTACTATTCATTTTTAAAAGATAATTAACCAAGTTACTCATGTTTGTATTAGATGGTATGTTCCCAATTTTTTCGTCTTTTCTT", + "start" : 407379, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 407379, + "genome_id" : 0, + "start" : 407346, + "strand" : "+" + }, + "seq" : "TGAACTCTTTAAATTATCCTTTTTGAATATCCA" + }, + "target_attributes" : + [ + "Excluded", + "Microhaplotype" + ], + "target_name" : "t93" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 1102389, + "genome_id" : 0, + "start" : 1102362, + "strand" : "+" + }, + "seq" : "CGTAGAGGTGTTGATGTTAATATGGAG" + }, + "gene_name" : "PF3D7_0424400", + "insert_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 1102578, + "genome_id" : 0, + "ref_seq" : "GAAGAAATAAATAAAATAATTTATACAAACGAATTTAATAATTATGAAGATAAAATATATGAAGATGTCAAATATATTAAAGAACAGGAAAATGAAATGTACTTGAGAGATGGAATTGAAGAGTTACATATGGATGAACCAAGTGGGGATGTATATTTTGATGATCAAGATGATTATATATTTTTAGAT", + "start" : 1102389, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 1102389, + "genome_id" : 0, + "start" : 1102362, + "strand" : "+" + }, + "seq" : "CATCCAAACATACATCCTCTTTTTGTTC" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t30" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 2114975, + "genome_id" : 0, + "start" : 2114942, + "strand" : "+" + }, + "seq" : "TGTATCTATAGTCGATTTTGTTATTCTAAGCAT" + }, + "gene_name" : "PF3D7_1352900", + "insert_location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 2115142, + "genome_id" : 0, + "ref_seq" : "ATCATTAAGTAAAAAATTTACGGTATCGACATTAACAGTGTAATAATTTCTTCCTAAATTTAAATGTTCTATATAATTCAAATTTAATACGGTATTTAACCTTTCTTCAAGTATTATCATTGCATTAATTTGAAACATAAGTAAAAAATTATTAGCACTTCTAAAAT", + "start" : 2114975, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_13_v3", + "end" : 2114975, + "genome_id" : 0, + "start" : 2114942, + "strand" : "+" + }, + "seq" : "ACATTTTATTGTTGTTAGAATACCTCTAGTTT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t84" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 63166, + "genome_id" : 0, + "start" : 63135, + "strand" : "+" + }, + "seq" : "ACATTCTATTAAAAACTTTGGGTACTCCTAA" + }, + "gene_name" : "PF3D7_1200700", + "insert_location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 63280, + "genome_id" : 0, + "ref_seq" : "TATAATTTCACCTTTTGAATTACATATGTCTGTATTCAAAAATTTTATATCTCTACTCCATATATTTATCTTTACACCCAAAAACAAAGCAATGAAAAAAACAACCCTTTCATA", + "start" : 63166, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 63166, + "genome_id" : 0, + "start" : 63135, + "strand" : "+" + }, + "seq" : "ACACATTTATCTTATTTACCCGTATCTCATATA" + }, + "target_attributes" : + [ + "Excluded", + "Microhaplotype" + ], + "target_name" : "t72" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 141778, + "genome_id" : 0, + "start" : 141751, + "strand" : "+" + }, + "seq" : "GATACACGTGATGAATACCATATAGCC" + }, + "gene_name" : "PF3D7_0402300", + "insert_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 141945, + "genome_id" : 0, + "ref_seq" : "CTTTCAAATTATATAAAGACAGAACTAAGAAATATAAACCTGCAAGAAATAAAAAACAATATAATAAAAATATTTAAAGAATTCAAATCTGCACACAAAGAAATTAAAAAAGAATCAGAACAAATTAATAAAGAATTTACCAAAATGGATGTCGTCATAAATCAATT", + "start" : 141778, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 141778, + "genome_id" : 0, + "start" : 141751, + "strand" : "+" + }, + "seq" : "AGATCAAGCATTTGTCTGTCTATATCTCTT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t22" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_10_v3", + "end" : 1399544, + "genome_id" : 0, + "start" : 1399515, + "strand" : "+" + }, + "seq" : "GGTCAAACTCATTCTGAATTAAATCCTGA" + }, + "gene_name" : "PF3D7_1035300", + "insert_location" : + { + "chrom" : "Pf3D7_10_v3", + "end" : 1399711, + "genome_id" : 0, + "ref_seq" : "AACATCAGAACATAGTAAAGATTTAAATAATAATGATTCAAAAAATGAATCTAGTGATATTATTTCAGTAAATAATAAATCAAATAAAGTACAAAATCATTTTGAATCATTATCAGATTTAGAATTACTTGAAAATTCCTCACAAGATAATTTAGACAAAGATACAA", + "start" : 1399544, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_10_v3", + "end" : 1399544, + "genome_id" : 0, + "start" : 1399515, + "strand" : "+" + }, + "seq" : "GTTTTTGATTAGGAAAAGGTTCTGTTGAAA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t63" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 748230, + "genome_id" : 0, + "start" : 748200, + "strand" : "+" + }, + "seq" : "AGGTCTAGGAAATAAAGGAGTATTACCATG" + }, + "gene_name" : "PF3D7_0417200", + "insert_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 748436, + "genome_id" : 0, + "ref_seq" : "GAAATGTAATTCCCTAGATATGAAATATTTTTGTGCAGTTACAACATATGTGAATGAATCAAAATATGAAAAATTGAAATATAAGAGATGTAAATATTTAAACAAAGAAACTGTGGATAATGTAAATGATATGCCTAATTCTAAAAAATTACAAAATGTTGTAGTTATGGGAAGAACAAGCTGGGAAAGCATTCCAAAAAAATTTA", + "start" : 748230, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 748230, + "genome_id" : 0, + "start" : 748200, + "strand" : "+" + }, + "seq" : "ACAATATAACATTTATCCTATTGCTTAAAGGTT" + }, + "target_attributes" : + [ + "Included", + "DrugResistance" + ], + "target_name" : "t25" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 85440, + "genome_id" : 0, + "start" : 85407, + "strand" : "+" + }, + "seq" : "ACCCATAGAAATGTTAAATGATATTTTTCTTCT" + }, + "gene_name" : "PF3D7_0301400", + "insert_location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 85646, + "genome_id" : 0, + "ref_seq" : "AACTTTTTAACACTATCATTATAATTATGTCTTTTATTTTCATATTTTTCTTTATAATAATTTATATCCTTTAATTTTTCTTTCATCAAATTTAACCATTTATCATTTAAATTCTCTTTTTCCACAGCTCCAGCATTTTTATTTATATCATCTACAACTACATCTTCCTTCACATAATTATTTATATAAAAATTATTATCATCTAA", + "start" : 85440, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 85440, + "genome_id" : 0, + "start" : 85407, + "strand" : "+" + }, + "seq" : "GAAGAAGTATTAAATGAAGAATTTTCAGATGCT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t14" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 109912, + "genome_id" : 0, + "start" : 109879, + "strand" : "+" + }, + "seq" : "TTTTAAAACTGGCAAATTATTTATTTCTGTCAT" + }, + "gene_name" : "PF3D7_0401900", + "insert_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 110087, + "genome_id" : 0, + "ref_seq" : "AATATTTGTATATATTCTAGTAAACACTTTAGGTACACCTGCAAGTACCTCAACATCTGAATTATATAAATCTTTAGAAAAACAACTAATATCCTTACTCGATATATTTATTTTTATACCAAGAATAACAGCCATATAAACCAAAACTCTCTCAAATACATGTGATACAGGTAAA", + "start" : 109912, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 109912, + "genome_id" : 0, + "start" : 109879, + "strand" : "+" + }, + "seq" : "CATGAAACCGAAAACCCATTTTTCTTA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t20" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 729975, + "genome_id" : 0, + "start" : 729943, + "strand" : "+" + }, + "seq" : "AATAAGAAATATGTCTTACAAGGAGATGTTTT" + }, + "gene_name" : "PF3D7_0716700", + "insert_location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 730088, + "genome_id" : 0, + "ref_seq" : "TTTTATGTGAAATTTTAAATAAAGAGAAATTGTTTGTGCACACATCTATTTTGGGATATATATCTAATCGTTTATGTTACGATATAAAAAAATATAGATGTTCATTATTGAAG", + "start" : 729975, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_07_v3", + "end" : 729975, + "genome_id" : 0, + "start" : 729943, + "strand" : "+" + }, + "seq" : "AAACATTATGTAGTCAACATATGAAGGAAA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t43" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 534941, + "genome_id" : 0, + "start" : 534908, + "strand" : "+" + }, + "seq" : "TGTATGTGTGTTGATTGTAATTATAAGAATTGT" + }, + "gene_name" : "PF3D7_0113800", + "insert_location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 535110, + "genome_id" : 0, + "ref_seq" : "AATACTCCGTCAGATATTCAAAATGAATGTATTTGTTCAAAAATAAATGAAGATAGAAATAATGATATGATAAACATATCTGAAATATATTATCGTTTCATTAAATTTATAACAATGATTGAAATATATTTGTGTGTAATAGAGGAAATTAAAAGGGAAGAATGGGAAA", + "start" : 534941, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 534941, + "genome_id" : 0, + "start" : 534908, + "strand" : "+" + }, + "seq" : "CTACAAAAATTATGAAAAAGTTTGGTTCCTTTT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t9" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 685601, + "genome_id" : 0, + "start" : 685583, + "strand" : "+" + }, + "seq" : "CACGCGAACCAAACAACG" + }, + "gene_name" : "PF3D7_0916400", + "insert_location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 685792, + "genome_id" : 0, + "ref_seq" : "ACAAAGGAACAAGATAATTTTTTCCATTTTTATAAAAGTAATATATATGATATGGAAAATAGAACCTGTAATAATAATATATTACAATATTGTGTTATGAATAATAAATCATATTTATTTCATAATATATCATCCAAAAAAAATATATATATAAAAAAAAAGAATCATCAGTTTTCTTTATTCATATATTC", + "start" : 685601, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 685601, + "genome_id" : 0, + "start" : 685583, + "strand" : "+" + }, + "seq" : "GGGCGAAATTCTATGAATGTATTATTAATAGAA" + }, + "target_attributes" : + [ + "Excluded", + "Microhaplotype" + ], + "target_name" : "t56" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_02_v3", + "end" : 470492, + "genome_id" : 0, + "start" : 470459, + "strand" : "+" + }, + "seq" : "TGAACATGAAGAATATTGACATGAAACATTATA" + }, + "gene_name" : "PF3D7_0211700", + "insert_location" : + { + "chrom" : "Pf3D7_02_v3", + "end" : 470676, + "genome_id" : 0, + "ref_seq" : "ATACACATAAGAAAAAAAAAATTTATTTATTCTTACAAAAAGAATATAAAAACAAAATTTTGGGATTTATAAATTTTTATAAACATATAACACACAAAATAAAAAAGAAACAAGAAAATGTTCATGATAAAATCACTTTTTTAAAATGTCTAAAGGAACTCTTTTTTGTCACACATACAAATAA", + "start" : 470492, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_02_v3", + "end" : 470492, + "genome_id" : 0, + "start" : 470459, + "strand" : "+" + }, + "seq" : "GTATGTATTATACCCTCCATTTGATTATTCTCT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t12" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 145449, + "genome_id" : 0, + "start" : 145416, + "strand" : "+" + }, + "seq" : "TGTTCGATATGTTTAAATATATGATTCTCGAAA" + }, + "gene_name" : "PF3D7_0103300", + "insert_location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 145622, + "genome_id" : 0, + "ref_seq" : "AAACTTTTTTTATTTTTTTTGTCAATAGATAAATGATCAATATTTTCTATATTTAATCTATCAAGTATTTTTATATATCTATTATTTCTTTCTTCGATGGATAAATTATAAGAATCAATATCCTTTCTTTCATCAACAAACTTTTTTATTGTTAACTCCATTTTTTTATTTAA", + "start" : 145449, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 145449, + "genome_id" : 0, + "start" : 145416, + "strand" : "+" + }, + "seq" : "CCAATATGTCAAGGTATATTAAAGTATGGTATC" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t1" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 339168, + "genome_id" : 0, + "start" : 339139, + "strand" : "+" + }, + "seq" : "TGAGATAATCCTCCTGGAATATTTGTCAT" + }, + "gene_name" : "PF3D7_0806300", + "insert_location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 339357, + "genome_id" : 0, + "ref_seq" : "ATCATTACTATTCTTTATCCATATATATGTTGTTATATCAGTTGCACCTGAGGGTGGATTCAAACCTCTTGCTTGTATAATATATGCACGTACTACTAAATTACGTGTTAATCTATATTCTCTTACTAAATCATCACATTTCTTTATCATTTCTTTTTTTAAATACATTGTCTTTTCATCATACACATT", + "start" : 339168, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 339168, + "genome_id" : 0, + "start" : 339139, + "strand" : "+" + }, + "seq" : "CTGAAGCGGTTGGATATTTGAAATATATATGT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t48" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 1100656, + "genome_id" : 0, + "start" : 1100629, + "strand" : "+" + }, + "seq" : "CCCAAAACGGTTAATACTGAAGTTAGA" + }, + "gene_name" : "PF3D7_0424400", + "insert_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 1100831, + "genome_id" : 0, + "ref_seq" : "AATGTTCTAAGATCTGATGGAAAAATATCTGATCAAGGTTCTCAGAAAAGTCCTCCTAAGGAACTTTCTAATAAACAAATGACTCCTGCTCAACGTAAGAATGTGCCACATTTTGTTGAAAGAAGAGGCTATGGAAATAGTCATGTTAGGGGTAACGCACTTAAAAAAATTAGTA", + "start" : 1100656, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 1100656, + "genome_id" : 0, + "start" : 1100629, + "strand" : "+" + }, + "seq" : "AGAAGAAGGACTTTTATAATTATCATCACCAT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t29" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 179903, + "genome_id" : 0, + "start" : 179874, + "strand" : "+" + }, + "seq" : "AACAACAAGCTTTGTCGCTAAAATTAATT" + }, + "gene_name" : "PF3D7_0104100", + "insert_location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 180115, + "genome_id" : 0, + "ref_seq" : "CTTTCGATACAGGACATATAGATCATAATATAAACGAATATGAAAAACATTTTACAATTTTAAAAGAATCTTTTTTTCATAAGTCATTAAAATTTATGGATTATATATGGATTGTTATAATGAAACGAGAAAATAATACATTTTTAAATAGAATAAGAACTGAACAAGTCAAAAAATCGTTATTAATAACAGGTATTATAAACGAAAATATT", + "start" : 179903, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 179903, + "genome_id" : 0, + "start" : 179874, + "strand" : "+" + }, + "seq" : "TCTGATACCTATAGCTTCCATATTTTCATATTT" + }, + "target_attributes" : + [ + "Excluded", + "Microhaplotype" + ], + "target_name" : "t2" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 120215, + "genome_id" : 0, + "start" : 120188, + "strand" : "+" + }, + "seq" : "GTCCTTATCACATCCTCCATTGTTTAC" + }, + "gene_name" : "PF3D7_1403200", + "insert_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 120351, + "genome_id" : 0, + "ref_seq" : "CTTACAATGTTCTTCGCATTCGAAATTTTTTTCAGGATTACTTGAAAAGCCTTCTGGACAATTACAATATTCATATCCATGAGTATTCTTACAAACACCTTTTCCACAATTTAAAAAACATTTTTCTTCATTTAAA", + "start" : 120215, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 120215, + "genome_id" : 0, + "start" : 120188, + "strand" : "+" + }, + "seq" : "ACAGAAAGAATGGTTTAGAAATGTACGAAT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t90" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 534215, + "genome_id" : 0, + "start" : 534182, + "strand" : "+" + }, + "seq" : "TTCAGATGTGATAAATATATGTGACATTTGTAA" + }, + "gene_name" : "PF3D7_0113800", + "insert_location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 534368, + "genome_id" : 0, + "ref_seq" : "TGATAAAAAAAGAAAATGTAACAATCTACCTTGTGATTGTATCTTATGTAAAAAAAAGCACAATGTTTGTTATTGTAATATGTGTAAAAAGAAAGAAAAAAATATGAGAGAAGATTTATCGGTTGTAAAATATAATGAATATCCGATTAGTGT", + "start" : 534215, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_01_v3", + "end" : 534215, + "genome_id" : 0, + "start" : 534182, + "strand" : "+" + }, + "seq" : "AAAAATATAAGAGATTCAAAGGGTCAGAC" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t8" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 336468, + "genome_id" : 0, + "start" : 336438, + "strand" : "+" + }, + "seq" : "AATACATGAATATGATTAACAACGAACCCA" + }, + "gene_name" : "PF3D7_0806200", + "insert_location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 336647, + "genome_id" : 0, + "ref_seq" : "TAAATTTACAGAAAAATTTAGATTTAATCATATGGCTAAAAAAGAATATAAAAGAAGGAGAAGCTTTAATTTCTGATATACCCACATCAAGTTTTTTAAGGTGTACTACAAATTATAAATTTGTATTGCATCCACAATATGAAGATAGTAACTTGAGAAAGAGGGTTCAAGATTATTAT", + "start" : 336468, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 336468, + "genome_id" : 0, + "start" : 336438, + "strand" : "+" + }, + "seq" : "ACTAAAAGGAAGACAAGCTGAAAACAT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t47" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 102326, + "genome_id" : 0, + "start" : 102298, + "strand" : "+" + }, + "seq" : "ACTTGTCGCTATACCTTCATCTATTGAA" + }, + "gene_name" : "PF3D7_0801300", + "insert_location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 102500, + "genome_id" : 0, + "ref_seq" : "TTAATTTTCTCAAGTAACATATTTTTGTCTTGACTACTTTCATCTGTAAATGGAACGACTACTCTTTGCTTACCTGCAAAAAGGACAACTGACATATGAGCCTTATCCTTACTTACATTCGAATTAAAGACCATAGATTCTAAAAATGGTATAGTTCCTTTTAACCAATAATCC", + "start" : 102326, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 102326, + "genome_id" : 0, + "start" : 102298, + "strand" : "+" + }, + "seq" : "TGTTGAAGAGTCAAGTTTTGTTCAGAA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t46" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 1437114, + "genome_id" : 0, + "start" : 1437081, + "strand" : "+" + }, + "seq" : "CATCATAATCATCTAATGATGTTAATCCTTGTA" + }, + "gene_name" : "PF3D7_0936300", + "insert_location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 1437303, + "genome_id" : 0, + "ref_seq" : "CTAAAACCTGACAGCTTTGTACAGTTATATTTACCCAATTAGAATGTTCAAACATATTTAAGTGTTGCCATTCTTCAAATAATTTTTTTTCATATTCAGTTTTTGGTTGGTTTTTAAATTCTTTTGATACTGTACCTTCTGCGGATGGTATAGGGAAGTTAAAAATTTTATTACGTACTTTGTTTGATT", + "start" : 1437114, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 1437114, + "genome_id" : 0, + "start" : 1437081, + "strand" : "+" + }, + "seq" : "GCACCATCATTAAATTTAGAAGAAACCC" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t59" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 279663, + "genome_id" : 0, + "start" : 279635, + "strand" : "+" + }, + "seq" : "CGGATAAATGTTTAGTTATTAGCCAGGT" + }, + "gene_name" : "PF3D7_1407700", + "insert_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 279786, + "genome_id" : 0, + "ref_seq" : "GAGTAATAGTGATTCATATAAGGTAAATTGTATTAATTTCTCTGAAGGATTTTGTTGCTGTCATCCAATAAATAATTTAGCACTATTATATGGAGAGTATCAACAAAATCAAGAATCAAAAAT", + "start" : 279663, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 279663, + "genome_id" : 0, + "start" : 279635, + "strand" : "+" + }, + "seq" : "CATTACTTATGGGAAGTTTCGGTAATTTCATA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t92" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 1178894, + "genome_id" : 0, + "start" : 1178862, + "strand" : "+" + }, + "seq" : "GAACGTTGAGAAATTACCTTTAGAAGATTACT" + }, + "gene_name" : "PF3D7_0929400", + "insert_location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 1179078, + "genome_id" : 0, + "ref_seq" : "ACAAATTATCCTTAGCCCCAGATATGGTAAAGACATATCACTGTTATAAATTAGGAAAGCAAGCAGCTGAATTATTAGAATCTATCATTTTAAAGAAAAAGTTCGTAAGATTTAGAGTTACTGATGCTATTGATGTATATGATTTCTTTTATATAAAGAAAGTTTTATCCAGTCGTATTAAGAA", + "start" : 1178894, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_09_v3", + "end" : 1178894, + "genome_id" : 0, + "start" : 1178862, + "strand" : "+" + }, + "seq" : "GCTCTTTTGTCTTGTAAAAATTCATTATATTCT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t57" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 654002, + "genome_id" : 0, + "start" : 653972, + "strand" : "+" + }, + "seq" : "TCACCTAACGGTATATTTTTATCTCGTACA" + }, + "gene_name" : "PF3D7_0316200", + "insert_location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 654175, + "genome_id" : 0, + "ref_seq" : "ATATTTTTATAATTTCCTTTCATCTTATTTTTTTCTTTATATTTTTTTTTTTCATATGTAAGATTTATATAATCACTTTCGCTTTTTCTAACCCTTTTGAACTTTTTAAATGTACTTCGTTCATTATTTCTAATTCTCGTAAACACAAGAATAAATATTTTGATATATCTTAT", + "start" : 654002, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 654002, + "genome_id" : 0, + "start" : 653972, + "strand" : "+" + }, + "seq" : "TTATGTATTTTTCAAAAATCGGCACGTTT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t18" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 943258, + "genome_id" : 0, + "start" : 943227, + "strand" : "+" + }, + "seq" : "ACCCTACTTATACAAAGAGATAAAGAAGTAG" + }, + "gene_name" : "PF3D7_1223400", + "insert_location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 943428, + "genome_id" : 0, + "ref_seq" : "AATCAACTATAATTAAAAATAGTGGAATTATTGAAAACTTTGGAGATATTGATTATATCTTTACGGATAAAACAGGAACACTAACAGAAAATGTCATGGTGCTTAAAGTTATACATATAGGTTTTGATGTTATACATGCAGAAAATGAAAAAAATTCCATACAAGGTAAT", + "start" : 943258, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_12_v3", + "end" : 943258, + "genome_id" : 0, + "start" : 943227, + "strand" : "+" + }, + "seq" : "AATTCCCTTTTTGTTTGGTTTCCATATT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t75" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 802525, + "genome_id" : 0, + "start" : 802494, + "strand" : "+" + }, + "seq" : "AAGCATCTGAACATTAAAGTTCAAACAAATA" + }, + "gene_name" : "PF3D7_0418000", + "insert_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 802713, + "genome_id" : 0, + "ref_seq" : "TAAATTATTATAGAAAGATAGAAGTTATTTTATATGAATGGTTATATTTTCATTATAATAATGTATATAACACCAAAGTAAAAAAACAAAAATTTATATTTACCCAACAAAAAAAAGACATATCAAAACATAACAAGTTATATCTTCAGTATGATCAAAATAAAAGAAACTCTGAAATAGAACATACA", + "start" : 802525, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 802525, + "genome_id" : 0, + "start" : 802494, + "strand" : "+" + }, + "seq" : "GCACATCGAATAATCTTCTTTGTGATT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t27" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 549993, + "genome_id" : 0, + "start" : 549962, + "strand" : "+" + }, + "seq" : "CATAAAAGAGGAAATCCACATACAATGGATA" + }, + "gene_name" : "PF3D7_0810800", + "insert_location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 550218, + "genome_id" : 0, + "ref_seq" : "AACTAACAAATTATGATAATCTAGTTTATGATATAAAAAATTATTTAGAACAAAGATTAAATTTTCTTGTATTAAATGGAATACCTCGTTATAGGATACTATTTGATATTGGATTAGGATTTGCGAAGAAACATGATCAATCTATTAAACTCTTACAAAATATACATGTATATGATGAGTATCCACTTTTTATTGGATATTCAAGAAAAAGATTTATTGCCCATT", + "start" : 549993, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_08_v3", + "end" : 549993, + "genome_id" : 0, + "start" : 549962, + "strand" : "+" + }, + "seq" : "GTGTATTTATTACAACATTTTGATCATTCATGC" + }, + "target_attributes" : + [ + "Included", + "DrugResistance" + ], + "target_name" : "t49" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 618396, + "genome_id" : 0, + "start" : 618367, + "strand" : "+" + }, + "seq" : "GGGACACTACAGACAAAAATAAATGATCT" + }, + "gene_name" : "PF3D7_0315200", + "insert_location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 618581, + "genome_id" : 0, + "ref_seq" : "AAAAAGAGATTATAGAAGTGGAAAGAAGACATATATAATACAAGCTCTACAATATGCATTAACATATTATAGCAAACTTTCAAATAGAAAGGAAGCACCTAAAGTAACCATGTTATTTACAGATGGAAATGATTCCTATGAATCAGAAAAGGGATTACAGGATATTGCATTATTATATAGAAAAG", + "start" : 618396, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_03_v3", + "end" : 618396, + "genome_id" : 0, + "start" : 618367, + "strand" : "+" + }, + "seq" : "AGAAACTCCTACTACCAATAATTTGACATTTT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t17" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_02_v3", + "end" : 805822, + "genome_id" : 0, + "start" : 805795, + "strand" : "+" + }, + "seq" : "TTGGAAAATTTGAGAATCCTATGTGCT" + }, + "gene_name" : "PF3D7_0220100", + "insert_location" : + { + "chrom" : "Pf3D7_02_v3", + "end" : 805942, + "genome_id" : 0, + "ref_seq" : "TTAATTATGAAGACAGTCTCACGACTTCATGTTATATTGATGAAAACAAATCCGATTCATCCTATGAAACTGAAGAAAATGTAAACTATAATAATAAAATGGGTAAACGCAAAAATTTAG", + "start" : 805822, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_02_v3", + "end" : 805822, + "genome_id" : 0, + "start" : 805795, + "strand" : "+" + }, + "seq" : "TTCGATTTGCCTACAATTTGTGATTCTA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t13" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 544718, + "genome_id" : 0, + "start" : 544686, + "strand" : "+" + }, + "seq" : "AACCCAGATAATCATTTATTAAATACAGACAC" + }, + "gene_name" : "PF3D7_0412300", + "insert_location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 544861, + "genome_id" : 0, + "ref_seq" : "ATATATTTTACATAATAACAATCCTTCATGTAATGATTATAATTTAAATAATCTTTCATTTAATATAAATAAATATATTAATGAAGAAAAAGGCAAAAATAAAAAAACAAATCAACATATATCAGAACAATTTTTATTTCCTA", + "start" : 544718, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_04_v3", + "end" : 544718, + "genome_id" : 0, + "start" : 544686, + "strand" : "+" + }, + "seq" : "CTGCAGCACACATTATAACTAAATGTG" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t24" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 150105, + "genome_id" : 0, + "start" : 150075, + "strand" : "+" + }, + "seq" : "CCGAAAATAGAACTCCATATGTTCATTACC" + }, + "gene_name" : "PF3D7_1404300", + "insert_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 150294, + "genome_id" : 0, + "ref_seq" : "ATAATAATAGTAATATAAAGAATTATTCAGCTGTAGATATATTCTCACCCAAAAAAACTGGAAAGGAATGTATTAAATGTCTCCCAGATAATTTTTGTGAATGCGAATGTAGTTGTAAAAATAAAACAGGTTTTTCAATGAAATATAGACATGCCAGTAAGGGATCTAAAGGATATAGTAAAAAAATGA", + "start" : 150105, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 150105, + "genome_id" : 0, + "start" : 150075, + "strand" : "+" + }, + "seq" : "GTCTGGAACGAGAAGATGTCTTTG" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t91" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_02_v3", + "end" : 109807, + "genome_id" : 0, + "start" : 109776, + "strand" : "+" + }, + "seq" : "CCACCATTTCTTCATTTTAATTTTGAATGGT" + }, + "gene_name" : "PF3D7_0202100", + "insert_location" : + { + "chrom" : "Pf3D7_02_v3", + "end" : 109982, + "genome_id" : 0, + "ref_seq" : "AACTTATGTTCATGAGCTAATTTCCCACAAATACTCCATAACGAACTTTTCATTTTATTAAATTTATCTCTCAAAAGAGAATGACTATAATGCCATATTAAATACATATCTTTCCTTTCTAATTTTCCTGGTAATTCTATTATCATTCTTTCTAAATCTTCTTCTGTAACTTTTC", + "start" : 109807, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_02_v3", + "end" : 109807, + "genome_id" : 0, + "start" : 109776, + "strand" : "+" + }, + "seq" : "ACCATTTGGATTAAAACCTTCAGATTTAAATA" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t10" + }, + { + "forward_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 3214351, + "genome_id" : 0, + "start" : 3214318, + "strand" : "+" + }, + "seq" : "TGTTAAAATATTTTCCAAAGAATTCAATTAGCG" + }, + "gene_name" : "PF3D7_1478000", + "insert_location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 3214478, + "genome_id" : 0, + "ref_seq" : "ATCGTTTTGAATTGTTAGAATTTAAAATGACGGAGGATTGTTATACAAAAATGTGGTTTGATTTTATGAGTGATTTTGGAATAGCTACAATGAATGAAACCGAACATACTAGATCTTTTTATGGATT", + "start" : 3214351, + "strand" : "+" + }, + "reverse_primer" : + { + "location" : + { + "chrom" : "Pf3D7_14_v3", + "end" : 3214351, + "genome_id" : 0, + "start" : 3214318, + "strand" : "+" + }, + "seq" : "TCAATTGATGGTTGCCTTTCGATT" + }, + "target_attributes" : + [ + "Included", + "Microhaplotype" + ], + "target_name" : "t100" + } + ], + "targeted_genomes" : + [ + { + "chromosomes" : + [ + "Pf3D7_01_v3", + "Pf3D7_02_v3", + "Pf3D7_03_v3", + "Pf3D7_04_v3", + "Pf3D7_05_v3", + "Pf3D7_06_v3", + "Pf3D7_07_v3", + "Pf3D7_08_v3", + "Pf3D7_09_v3", + "Pf3D7_10_v3", + "Pf3D7_11_v3", + "Pf3D7_12_v3", + "Pf3D7_13_v3", + "Pf3D7_14_v3", + "Pf3D7_API_v3", + "Pf3D7_MIT_v3" + ], + "genome_version" : "2020-09-01", + "gff_url" : "https://plasmodb.org/common/downloads/release-65/Pfalciparum3D7/gff/data/PlasmoDB-65_Pfalciparum3D7.gff", + "name" : "3D7", + "taxon_id" : + [ + 5833 + ], + "url" : "https://plasmodb.org/common/downloads/release-65/Pfalciparum3D7/fasta/data/PlasmoDB-65_Pfalciparum3D7_Genome.fasta" + } + ] +} diff --git a/tests/test_pmo_builder/test_merge_to_pmo.py b/tests/test_pmo_builder/test_merge_to_pmo.py index 776dc79..b70017e 100644 --- a/tests/test_pmo_builder/test_merge_to_pmo.py +++ b/tests/test_pmo_builder/test_merge_to_pmo.py @@ -16,11 +16,11 @@ class TestMergeToPMO(unittest.TestCase): def setUp(self): self.ref_list = [{"name": "name1"}, {"name": "name2"}, {"name": "name3"}] self.pmo_header = { - "pmo_version": "1.0.0", + "pmo_version": "0.1.0", "creation_date": "2025-07-22", "generation_method": { "program_name": "pmotools-python", - "program_version": "1.0.0", + "program_version": "0.1.0", }, } @@ -33,6 +33,9 @@ def test_report_missing_IDs_passes(self): [], [], [], + [], + [], + [], ) def test_report_missing_IDs_fails_correctly(self): @@ -45,12 +48,89 @@ def test_report_missing_IDs_fails_correctly(self): ["something else", "something else2"], [], [], + [], + [], + [], ) self.assertEqual( "The following fields were found in one table and not another:\nProject names in Specimen Info not in Project Info: ['something']\nTarget names in Representative Microhaplotypes not in Target Info: ['something else', 'something else2']\n", str(context.exception), ) + def test_merge_to_pmo_with_read_counts_by_stage(self): + """Test merge_to_pmo with read_counts_by_stage_info.""" + # Sample data + specimen_info = [{"specimen_name": "spec1", "project_name": "proj1"}] + library_sample_info = [ + { + "library_sample_name": "lib1", + "specimen_name": "spec1", + "sequencing_info_name": "seq1", + "panel_name": "panel1", + } + ] + sequencing_info = [{"sequencing_info_name": "seq1"}] + panel_info = { + "panel_info": [{"panel_name": "panel1"}], + "target_info": [{"target_name": "target1"}], + } + mhap_info = { + "representative_microhaplotypes": { + "targets": [{"target_name": "target1", "microhaplotypes": []}] + }, + "detected_microhaplotypes": [], + } + bioinfo_method_info = [] + bioinfo_run_info = [{"bioinformatics_run_name": "run1"}] + project_info = [{"project_name": "proj1"}] + + # Read counts by stage data + read_counts_by_stage_info = [ + { + "bioinformatics_run_name": "run1", + "read_counts_by_library_sample_by_stage": [ + { + "library_sample_name": "lib1", + "total_raw_count": 1000, + "read_counts_for_targets": [ + { + "target_name": "target1", + "stages": [ + {"stage": "demultiplexed", "read_count": 100} + ], + } + ], + } + ], + } + ] + + result = merge_to_pmo( + specimen_info=specimen_info, + library_sample_info=library_sample_info, + sequencing_info=sequencing_info, + panel_info=panel_info, + mhap_info=mhap_info, + bioinfo_method_info=bioinfo_method_info, + bioinfo_run_info=bioinfo_run_info, + project_info=project_info, + read_counts_by_stage_info=read_counts_by_stage_info, + ) + + # Check that read_counts_by_stage is included + self.assertIn("read_counts_by_stage", result) + self.assertEqual(len(result["read_counts_by_stage"]), 1) + + # Check that names have been replaced with IDs + read_counts_run = result["read_counts_by_stage"][0] + self.assertIn("bioinformatics_run_id", read_counts_run) + self.assertNotIn("bioinformatics_run_name", read_counts_run) + + # Check library sample names have been replaced + library_sample = read_counts_run["read_counts_by_library_sample_by_stage"][0] + self.assertIn("library_sample_id", library_sample) + self.assertNotIn("library_sample_name", library_sample) + @patch("pmotools.pmo_builder.merge_to_pmo.date") def test_generate_pmo_header(self, mock_date): mock_date.today.return_value = date(2025, 7, 22) diff --git a/tests/test_pmo_builder/test_metatable_to_pmo.py b/tests/test_pmo_builder/test_metatable_to_pmo.py index 2eefaa4..39d5b6e 100644 --- a/tests/test_pmo_builder/test_metatable_to_pmo.py +++ b/tests/test_pmo_builder/test_metatable_to_pmo.py @@ -592,6 +592,470 @@ def test_specimen_info_table_to_pmo_fails_without_df(self): specimen_info_table_to_pmo("test") self.assertEqual("contents must be a pandas DataFrame.", str(context.exception)) + def test_specimen_info_table_to_pmo_fails_with_null_in_required_columns(self): + """Test that function raises error when required columns contain null values""" + # Test with null in specimen_name + df1 = pd.DataFrame( + { + "specimen_name": ["sample1", None], + "specimen_taxon_id": [5833, 5833], + "host_taxon_id": [9606, 9606], + "collection_date": ["01/02/2023", "01/02/2023"], + "collection_country": ["Mozambique", "Ghana"], + "project_name": ["project1", "project2"], + } + ) + with self.assertRaises(ValueError) as context: + specimen_info_table_to_pmo(df1) + self.assertIn( + "The following columns contain null values", + str(context.exception), + ) + self.assertIn("specimen_name", str(context.exception)) + + # Test with null in specimen_taxon_id + df2 = pd.DataFrame( + { + "specimen_name": ["sample1", "sample2"], + "specimen_taxon_id": [5833, None], + "host_taxon_id": [9606, 9606], + "collection_date": ["01/02/2023", "01/02/2023"], + "collection_country": ["Mozambique", "Ghana"], + "project_name": ["project1", "project2"], + } + ) + with self.assertRaises(ValueError) as context: + specimen_info_table_to_pmo(df2) + self.assertIn( + "The following columns contain null values", + str(context.exception), + ) + self.assertIn("specimen_taxon_id", str(context.exception)) + + # Test with null in host_taxon_id + df3 = pd.DataFrame( + { + "specimen_name": ["sample1", "sample2"], + "specimen_taxon_id": [5833, 5833], + "host_taxon_id": [None, 9606], + "collection_date": ["01/02/2023", "01/02/2023"], + "collection_country": ["Mozambique", "Ghana"], + "project_name": ["project1", "project2"], + } + ) + with self.assertRaises(ValueError) as context: + specimen_info_table_to_pmo(df3) + self.assertIn( + "The following columns contain null values", + str(context.exception), + ) + self.assertIn("host_taxon_id", str(context.exception)) + + # Test with null in collection_date + df4 = pd.DataFrame( + { + "specimen_name": ["sample1", "sample2"], + "specimen_taxon_id": [5833, 5833], + "host_taxon_id": [9606, 9606], + "collection_date": ["01/02/2023", None], + "collection_country": ["Mozambique", "Ghana"], + "project_name": ["project1", "project2"], + } + ) + with self.assertRaises(ValueError) as context: + specimen_info_table_to_pmo(df4) + self.assertIn( + "The following columns contain null values", + str(context.exception), + ) + self.assertIn("collection_date", str(context.exception)) + + # Test with null in collection_country + df5 = pd.DataFrame( + { + "specimen_name": ["sample1", "sample2"], + "specimen_taxon_id": [5833, 5833], + "host_taxon_id": [9606, 9606], + "collection_date": ["01/02/2023", "01/02/2023"], + "collection_country": [None, "Ghana"], + "project_name": ["project1", "project2"], + } + ) + with self.assertRaises(ValueError) as context: + specimen_info_table_to_pmo(df5) + self.assertIn( + "The following columns contain null values", + str(context.exception), + ) + self.assertIn("collection_country", str(context.exception)) + + # Test with null in project_name + df6 = pd.DataFrame( + { + "specimen_name": ["sample1", "sample2"], + "specimen_taxon_id": [5833, 5833], + "host_taxon_id": [9606, 9606], + "collection_date": ["01/02/2023", "01/02/2023"], + "collection_country": ["Mozambique", "Ghana"], + "project_name": ["project1", None], + } + ) + with self.assertRaises(ValueError) as context: + specimen_info_table_to_pmo(df6) + self.assertIn( + "The following columns contain null values", + str(context.exception), + ) + self.assertIn("project_name", str(context.exception)) + + # Test with nulls in multiple required columns + df7 = pd.DataFrame( + { + "specimen_name": ["sample1", None], + "specimen_taxon_id": [5833, None], + "host_taxon_id": [9606, 9606], + "collection_date": ["01/02/2023", "01/02/2023"], + "collection_country": ["Mozambique", "Ghana"], + "project_name": ["project1", "project2"], + } + ) + with self.assertRaises(ValueError) as context: + specimen_info_table_to_pmo(df7) + self.assertIn( + "The following columns contain null values", + str(context.exception), + ) + # Both columns with nulls should be mentioned + error_msg = str(context.exception) + self.assertTrue( + "specimen_name" in error_msg and "specimen_taxon_id" in error_msg + ) + + def test_specimen_info_table_to_pmo_removes_empty_optional_fields(self): + """Test that empty optional fields (None, empty string, empty dict, empty list) are removed""" + df = pd.DataFrame( + { + "specimen_name": ["sample1", "sample2", "sample3", "sample4"], + "specimen_taxon_id": [5833, 5833, 5833, 5833], + "host_taxon_id": [9606, 9606, 9606, 9606], + "collection_date": [ + "01/02/2023", + "01/02/2023", + "01/02/2023", + "01/02/2023", + ], + "collection_country": ["Mozambique", "Ghana", "Kenya", "Tanzania"], + "project_name": ["project1", "project2", "project3", "project4"], + "lat_lon": ["", "-25.123,31.456", None, "-1.234,36.789"], + "host_age": [None, 25, None, 30], + "host_sex": ["M", "", None, "F"], + "geo_admin1": [None, "Province1", "", "Province2"], + } + ) + + result = specimen_info_table_to_pmo( + df, + lat_lon_col="lat_lon", + host_age_col="host_age", + host_sex_col="host_sex", + geo_admin1_col="geo_admin1", + ) + + # sample1: lat_lon is empty string, host_age is None, host_sex is "M", geo_admin1 is None + # Should remove: lat_lon, host_age, geo_admin1 + # Should keep: host_sex + self.assertNotIn("lat_lon", result[0]) + self.assertNotIn("host_age", result[0]) + self.assertNotIn("geo_admin1", result[0]) + self.assertEqual(result[0]["host_sex"], "M") + + # sample2: lat_lon has value, host_age has value, host_sex is empty string, geo_admin1 has value + # Should remove: host_sex + # Should keep: lat_lon, host_age, geo_admin1 + self.assertEqual(result[1]["lat_lon"], "-25.123,31.456") + self.assertEqual(result[1]["host_age"], 25) + self.assertNotIn("host_sex", result[1]) + self.assertEqual(result[1]["geo_admin1"], "Province1") + + # sample3: lat_lon is None, host_age is None, host_sex is None, geo_admin1 is empty string + # Should remove all optional fields + self.assertNotIn("lat_lon", result[2]) + self.assertNotIn("host_age", result[2]) + self.assertNotIn("host_sex", result[2]) + self.assertNotIn("geo_admin1", result[2]) + + # sample4: all optional fields have values + # Should keep all + self.assertEqual(result[3]["lat_lon"], "-1.234,36.789") + self.assertEqual(result[3]["host_age"], 30) + self.assertEqual(result[3]["host_sex"], "F") + self.assertEqual(result[3]["geo_admin1"], "Province2") + + def test_specimen_info_table_to_pmo_with_geo_fields(self): + """Test geographic administrative fields""" + df = pd.DataFrame( + { + "specimen_name": ["sample1", "sample2"], + "specimen_taxon_id": [5833, 5833], + "host_taxon_id": [9606, 9606], + "collection_date": ["2023-03-29", "2023-03-20"], + "collection_country": ["Eswatini", "Eswatini"], + "project_name": ["RegGenE8", "RegGenE8"], + "geo_admin1": ["Lubombo", "Lubombo"], + "geo_admin2": ["Sithobela", "Sithobela"], + "geo_admin3": [ + "CABRINI MINISTRIES HEALTH CARE", + "SITHOBELA RURAL HEALTH CENTER", + ], + "lat_lon": ["", ""], + } + ) + + result = specimen_info_table_to_pmo( + df, + geo_admin1_col="geo_admin1", + geo_admin2_col="geo_admin2", + geo_admin3_col="geo_admin3", + lat_lon_col="lat_lon", + ) + + self.assertEqual(result[0]["geo_admin1"], "Lubombo") + self.assertEqual(result[0]["geo_admin2"], "Sithobela") + self.assertEqual(result[0]["geo_admin3"], "CABRINI MINISTRIES HEALTH CARE") + self.assertNotIn("lat_lon", result[0]) # Empty string should be removed + + self.assertEqual(result[1]["geo_admin1"], "Lubombo") + self.assertEqual(result[1]["geo_admin2"], "Sithobela") + self.assertEqual(result[1]["geo_admin3"], "SITHOBELA RURAL HEALTH CENTER") + self.assertNotIn("lat_lon", result[1]) # Empty string should be removed + + def test_specimen_info_table_to_pmo_removes_empty_dict_list(self): + """Test that empty dicts and lists are removed from optional fields via additional_specimen_cols""" + # Note: This tests the remove_optional_null_values function indirectly + # Since add_plate_info and add_parasite_density_info don't add empty structures, + # we test with additional_specimen_cols that might contain empty dicts/lists + + # First test: verify empty storage_plate_info and parasite_density_info are not added + df = pd.DataFrame( + { + "specimen_name": ["sample1", "sample2"], + "specimen_taxon_id": [5833, 5833], + "host_taxon_id": [9606, 9606], + "collection_date": ["01/02/2023", "01/02/2023"], + "collection_country": ["Mozambique", "Ghana"], + "project_name": ["project1", "project2"], + } + ) + + result_with_empty_info = specimen_info_table_to_pmo( + df, + storage_plate_col_col=None, + storage_plate_name_col=None, + storage_plate_row_col=None, + storage_plate_position_col=None, + parasite_density_col=None, + parasite_density_method_col=None, + ) + + # Storage plate info and parasite density info should not be added if all params are None + self.assertNotIn("storage_plate_info", result_with_empty_info[0]) + self.assertNotIn("parasite_density_info", result_with_empty_info[0]) + + # Test with parasite density that results in no valid densities (all None) + df2 = pd.DataFrame( + { + "specimen_name": ["sample1"], + "specimen_taxon_id": [5833], + "host_taxon_id": [9606], + "collection_date": ["01/02/2023"], + "collection_country": ["Mozambique"], + "project_name": ["project1"], + "parasite_density": [None], + } + ) + + result2 = specimen_info_table_to_pmo( + df2, + parasite_density_col="parasite_density", + parasite_density_method_col=None, + ) + + # Since all density values are None, parasite_density_info should not be added + self.assertNotIn("parasite_density_info", result2[0]) + + def test_specimen_info_table_to_pmo_with_host_fields(self): + """Test host-related optional fields""" + df = pd.DataFrame( + { + "specimen_name": ["sample1", "sample2", "sample3"], + "specimen_taxon_id": [5833, 5833, 5833], + "host_taxon_id": [9606, 9606, 9606], + "collection_date": ["01/02/2023", "01/02/2023", "01/02/2023"], + "collection_country": ["Mozambique", "Ghana", "Kenya"], + "project_name": ["project1", "project2", "project3"], + "host_age": [25, None, 30], + "host_sex": ["M", "F", ""], + "host_subject_id": ["SUB001", "", "SUB003"], + "gravid": [True, None, False], + "gravidity": [2, None, 0], + } + ) + + result = specimen_info_table_to_pmo( + df, + host_age_col="host_age", + host_sex_col="host_sex", + host_subject_id="host_subject_id", + gravid_col="gravid", + gravidity_col="gravidity", + ) + + # sample1: all fields have values + self.assertEqual(result[0]["host_age"], 25) + self.assertEqual(result[0]["host_sex"], "M") + self.assertEqual(result[0]["host_subject_id"], "SUB001") + self.assertEqual(result[0]["gravid"], True) + self.assertEqual(result[0]["gravidity"], 2) + + # sample2: host_age is None, host_subject_id is empty string, gravid is None, gravidity is None + # Should remove: host_age, host_subject_id, gravid, gravidity + # Should keep: host_sex + self.assertNotIn("host_age", result[1]) + self.assertEqual(result[1]["host_sex"], "F") + self.assertNotIn("host_subject_id", result[1]) + self.assertNotIn("gravid", result[1]) + self.assertNotIn("gravidity", result[1]) + + # sample3: host_sex is empty string + # Should remove: host_sex + # Should keep: host_age, host_subject_id, gravid, gravidity + self.assertEqual(result[2]["host_age"], 30) + self.assertNotIn("host_sex", result[2]) + self.assertEqual(result[2]["host_subject_id"], "SUB003") + self.assertEqual(result[2]["gravid"], False) + self.assertEqual(result[2]["gravidity"], 0) + + def test_specimen_info_table_to_pmo_with_specimen_fields(self): + """Test specimen-specific optional fields""" + df = pd.DataFrame( + { + "specimen_name": ["sample1", "sample2"], + "specimen_taxon_id": [5833, 5833], + "host_taxon_id": [9606, 9606], + "collection_date": ["01/02/2023", "01/02/2023"], + "collection_country": ["Mozambique", "Ghana"], + "project_name": ["project1", "project2"], + "specimen_accession": ["ACC001", ""], + "specimen_type": ["field_sample", None], + "specimen_collect_device": ["needle", ""], + "specimen_store_loc": [None, "freezer1"], + "specimen_comments": ["", "Some comment"], + } + ) + + result = specimen_info_table_to_pmo( + df, + specimen_accession_col="specimen_accession", + specimen_type_col="specimen_type", + specimen_collect_device_col="specimen_collect_device", + specimen_store_loc_col="specimen_store_loc", + specimen_comments_col="specimen_comments", + ) + + # sample1: specimen_accession has value, specimen_type has value, specimen_collect_device has value + # specimen_store_loc is None, specimen_comments is empty string + # Should remove: specimen_store_loc, specimen_comments + self.assertEqual(result[0]["specimen_accession"], "ACC001") + self.assertEqual(result[0]["specimen_type"], "field_sample") + self.assertEqual(result[0]["specimen_collect_device"], "needle") + self.assertNotIn("specimen_store_loc", result[0]) + self.assertNotIn("specimen_comments", result[0]) + + # sample2: specimen_accession is empty string, specimen_type is None, specimen_collect_device is empty string + # specimen_store_loc has value, specimen_comments has value + # Should remove: specimen_accession, specimen_type, specimen_collect_device + self.assertNotIn("specimen_accession", result[1]) + self.assertNotIn("specimen_type", result[1]) + self.assertNotIn("specimen_collect_device", result[1]) + self.assertEqual(result[1]["specimen_store_loc"], "freezer1") + self.assertEqual(result[1]["specimen_comments"], "Some comment") + + def test_specimen_info_table_to_pmo_with_environment_fields(self): + """Test environment-related optional fields""" + df = pd.DataFrame( + { + "specimen_name": ["sample1", "sample2"], + "specimen_taxon_id": [5833, 5833], + "host_taxon_id": [9606, 9606], + "collection_date": ["01/02/2023", "01/02/2023"], + "collection_country": ["Mozambique", "Ghana"], + "project_name": ["project1", "project2"], + "env_broad_scale": ["terrestrial", ""], + "env_local_scale": [None, "forest"], + "env_medium": ["soil", None], + } + ) + + result = specimen_info_table_to_pmo( + df, + env_broad_scale_col="env_broad_scale", + env_local_scale_col="env_local_scale", + env_medium_col="env_medium", + ) + + # sample1: env_broad_scale has value, env_local_scale is None, env_medium has value + self.assertEqual(result[0]["env_broad_scale"], "terrestrial") + self.assertNotIn("env_local_scale", result[0]) + self.assertEqual(result[0]["env_medium"], "soil") + + # sample2: env_broad_scale is empty string, env_local_scale has value, env_medium is None + self.assertNotIn("env_broad_scale", result[1]) + self.assertEqual(result[1]["env_local_scale"], "forest") + self.assertNotIn("env_medium", result[1]) + + def test_specimen_info_table_to_pmo_with_other_optional_fields(self): + """Test other optional fields like blood_meal, has_travel_out_six_month, treatment_status, etc.""" + df = pd.DataFrame( + { + "specimen_name": ["sample1", "sample2", "sample3"], + "specimen_taxon_id": [5833, 5833, 5833], + "host_taxon_id": [9606, 9606, 9606], + "collection_date": ["01/02/2023", "01/02/2023", "01/02/2023"], + "collection_country": ["Mozambique", "Ghana", "Kenya"], + "project_name": ["project1", "project2", "project3"], + "blood_meal": [True, None, False], + "has_travel_out_six_month": [None, True, ""], + "treatment_status": ["cured", "", None], + "specimen_accession": ["ACC001", None, "ACC003"], + } + ) + + result = specimen_info_table_to_pmo( + df, + blood_meal_col="blood_meal", + has_travel_out_six_month_col="has_travel_out_six_month", + treatment_status_col="treatment_status", + specimen_accession_col="specimen_accession", + ) + + # sample1: blood_meal has value (True), has_travel_out_six_month is None, treatment_status has value, specimen_accession has value + self.assertEqual(result[0]["blood_meal"], True) + self.assertNotIn("has_travel_out_six_month", result[0]) + self.assertEqual(result[0]["treatment_status"], "cured") + self.assertEqual(result[0]["specimen_accession"], "ACC001") + + # sample2: blood_meal is None, has_travel_out_six_month has value (True), treatment_status is empty string, specimen_accession is None + self.assertNotIn("blood_meal", result[1]) + self.assertEqual(result[1]["has_travel_out_six_month"], True) + self.assertNotIn("treatment_status", result[1]) + self.assertNotIn("specimen_accession", result[1]) + + # sample3: blood_meal has value (False), has_travel_out_six_month is empty string, treatment_status is None, specimen_accession has value + self.assertEqual(result[2]["blood_meal"], False) + self.assertNotIn("has_travel_out_six_month", result[2]) + self.assertNotIn("treatment_status", result[2]) + self.assertEqual(result[2]["specimen_accession"], "ACC003") + def test_library_sample_info_table_to_pmo_default(self): df = pd.DataFrame( { @@ -736,9 +1200,281 @@ def test_library_sample_info_table_to_pmo_fails_with_missing_cols(self): def test_library_sample_info_table_to_pmo_fails_without_df(self): with self.assertRaises(ValueError) as context: - specimen_info_table_to_pmo("test") + library_sample_info_table_to_pmo("test") self.assertEqual("contents must be a pandas DataFrame.", str(context.exception)) + def test_library_sample_info_table_to_pmo_fails_with_null_in_required_columns(self): + """Test that function raises error when required columns contain null values""" + # Test with null in library_sample_name + df1 = pd.DataFrame( + { + "library_sample_name": ["sample1_MH_run1", None], + "sequencing_info_name": ["run1", "run1"], + "specimen_name": ["sample1", "sample2"], + "panel_name": ["MH", "MH"], + } + ) + with self.assertRaises(ValueError) as context: + library_sample_info_table_to_pmo(df1) + self.assertIn( + "The following columns contain null values", + str(context.exception), + ) + self.assertIn("library_sample_name", str(context.exception)) + + # Test with null in sequencing_info_name + df2 = pd.DataFrame( + { + "library_sample_name": ["sample1_MH_run1", "sample2_MH_run1"], + "sequencing_info_name": [None, "run1"], + "specimen_name": ["sample1", "sample2"], + "panel_name": ["MH", "MH"], + } + ) + with self.assertRaises(ValueError) as context: + library_sample_info_table_to_pmo(df2) + self.assertIn( + "The following columns contain null values", + str(context.exception), + ) + self.assertIn("sequencing_info_name", str(context.exception)) + + # Test with null in specimen_name + df3 = pd.DataFrame( + { + "library_sample_name": ["sample1_MH_run1", "sample2_MH_run1"], + "sequencing_info_name": ["run1", "run1"], + "specimen_name": ["sample1", None], + "panel_name": ["MH", "MH"], + } + ) + with self.assertRaises(ValueError) as context: + library_sample_info_table_to_pmo(df3) + self.assertIn( + "The following columns contain null values", + str(context.exception), + ) + self.assertIn("specimen_name", str(context.exception)) + + # Test with null in panel_name + df4 = pd.DataFrame( + { + "library_sample_name": ["sample1_MH_run1", "sample2_MH_run1"], + "sequencing_info_name": ["run1", "run1"], + "specimen_name": ["sample1", "sample2"], + "panel_name": [None, "MH"], + } + ) + with self.assertRaises(ValueError) as context: + library_sample_info_table_to_pmo(df4) + self.assertIn( + "The following columns contain null values", + str(context.exception), + ) + self.assertIn("panel_name", str(context.exception)) + + # Test with nulls in multiple required columns + df5 = pd.DataFrame( + { + "library_sample_name": ["sample1_MH_run1", None], + "sequencing_info_name": [None, "run1"], + "specimen_name": ["sample1", "sample2"], + "panel_name": ["MH", "MH"], + } + ) + with self.assertRaises(ValueError) as context: + library_sample_info_table_to_pmo(df5) + self.assertIn( + "The following columns contain null values", + str(context.exception), + ) + error_msg = str(context.exception) + self.assertTrue( + "library_sample_name" in error_msg and "sequencing_info_name" in error_msg + ) + + def test_library_sample_info_table_to_pmo_with_new_optional_fields(self): + """Test new optional fields: alternate_identifiers, experiment_accession, fastqs_loc, run_accession""" + df = pd.DataFrame( + { + "library_sample_name": ["sample1_MH_run1", "sample2_MH_run1"], + "sequencing_info_name": ["run1", "run1"], + "specimen_name": ["sample1", "sample2"], + "panel_name": ["MH", "MH"], + "alternate_identifiers": ["ID1,ID2", ""], + "experiment_accession": ["EXP001", None], + "fastqs_loc": [None, "/path/to/fastqs"], + "run_accession": ["RUN001", ""], + } + ) + + result = library_sample_info_table_to_pmo( + df, + alternate_identifiers_col="alternate_identifiers", + experiment_accession_col="experiment_accession", + fastqs_loc_col="fastqs_loc", + run_accession_col="run_accession", + ) + + # sample1: alternate_identifiers has value, experiment_accession has value, fastqs_loc is None, run_accession has value + # Should remove: fastqs_loc + self.assertEqual(result[0]["alternate_identifiers"], "ID1,ID2") + self.assertEqual(result[0]["experiment_accession"], "EXP001") + self.assertNotIn("fastqs_loc", result[0]) + self.assertEqual(result[0]["run_accession"], "RUN001") + + # sample2: alternate_identifiers is empty string, experiment_accession is None, fastqs_loc has value, run_accession is empty string + # Should remove: alternate_identifiers, experiment_accession, run_accession + self.assertNotIn("alternate_identifiers", result[1]) + self.assertNotIn("experiment_accession", result[1]) + self.assertEqual(result[1]["fastqs_loc"], "/path/to/fastqs") + self.assertNotIn("run_accession", result[1]) + + def test_library_sample_info_table_to_pmo_removes_empty_optional_fields(self): + """Test that empty optional fields are removed""" + df = pd.DataFrame( + { + "library_sample_name": [ + "sample1_MH_run1", + "sample2_MH_run1", + "sample3_MH_run1", + ], + "sequencing_info_name": ["run1", "run1", "run1"], + "specimen_name": ["sample1", "sample2", "sample3"], + "panel_name": ["MH", "MH", "MH"], + "alternate_identifiers": ["ID1", "", None], + "experiment_accession": ["EXP001", None, "EXP003"], + "fastqs_loc": [None, "/path/to/fastqs", ""], + } + ) + + result = library_sample_info_table_to_pmo( + df, + alternate_identifiers_col="alternate_identifiers", + experiment_accession_col="experiment_accession", + fastqs_loc_col="fastqs_loc", + ) + + # sample1: all optional fields have values + self.assertEqual(result[0]["alternate_identifiers"], "ID1") + self.assertEqual(result[0]["experiment_accession"], "EXP001") + self.assertNotIn("fastqs_loc", result[0]) # None should be removed + + # sample2: alternate_identifiers is empty string, experiment_accession is None, fastqs_loc has value + self.assertNotIn("alternate_identifiers", result[1]) + self.assertNotIn("experiment_accession", result[1]) + self.assertEqual(result[1]["fastqs_loc"], "/path/to/fastqs") + + # sample3: alternate_identifiers is None, experiment_accession has value, fastqs_loc is empty string + self.assertNotIn("alternate_identifiers", result[2]) + self.assertEqual(result[2]["experiment_accession"], "EXP003") + self.assertNotIn("fastqs_loc", result[2]) + + def test_library_sample_info_table_to_pmo_with_parasite_density(self): + """Test parasite density info in library sample info""" + df = pd.DataFrame( + { + "library_sample_name": ["sample1_MH_run1", "sample2_MH_run1"], + "sequencing_info_name": ["run1", "run1"], + "specimen_name": ["sample1", "sample2"], + "panel_name": ["MH", "MH"], + "parasite_density": [10, 100], + "parasite_density_method": ["qPCR", "microscopy"], + } + ) + + result = library_sample_info_table_to_pmo( + df, + parasite_density_col="parasite_density", + parasite_density_method_col="parasite_density_method", + ) + + self.assertEqual(result[0]["parasite_density_info"][0]["parasite_density"], 10) + self.assertEqual( + result[0]["parasite_density_info"][0]["parasite_density_method"], "qPCR" + ) + self.assertEqual(result[1]["parasite_density_info"][0]["parasite_density"], 100) + self.assertEqual( + result[1]["parasite_density_info"][0]["parasite_density_method"], + "microscopy", + ) + + def test_library_sample_info_table_to_pmo_with_parasite_density_multiple(self): + """Test multiple parasite density measurements""" + df = pd.DataFrame( + { + "library_sample_name": ["sample1_MH_run1", "sample2_MH_run1"], + "sequencing_info_name": ["run1", "run1"], + "specimen_name": ["sample1", "sample2"], + "panel_name": ["MH", "MH"], + "density1": [15, 107], + "method1": ["qPCR", "qPCR"], + "density2": [10, 100], + "method2": ["microscopy", "microscopy"], + } + ) + + result = library_sample_info_table_to_pmo( + df, + parasite_density_col=["density1", "density2"], + parasite_density_method_col=["method1", "method2"], + ) + + self.assertEqual(result[0]["parasite_density_info"][0]["parasite_density"], 15) + self.assertEqual(result[0]["parasite_density_info"][1]["parasite_density"], 10) + self.assertEqual(result[1]["parasite_density_info"][0]["parasite_density"], 107) + self.assertEqual(result[1]["parasite_density_info"][1]["parasite_density"], 100) + + def test_library_sample_info_table_to_pmo_with_all_new_fields(self): + """Test all new optional fields together""" + df = pd.DataFrame( + { + "library_sample_name": ["sample1_MH_run1", "sample2_MH_run1"], + "sequencing_info_name": ["run1", "run1"], + "specimen_name": ["sample1", "sample2"], + "panel_name": ["MH", "MH"], + "alternate_identifiers": ["ID1", "ID2"], + "experiment_accession": ["EXP001", "EXP002"], + "fastqs_loc": ["/path/to/fastqs1", "/path/to/fastqs2"], + "run_accession": ["RUN001", "RUN002"], + "parasite_density": [10, 100], + "parasite_density_method": ["qPCR", "microscopy"], + "library_prep_plate_col": [1, 2], + "library_prep_plate_name": ["plate1", "plate1"], + "library_prep_plate_row": ["A", "B"], + } + ) + + result = library_sample_info_table_to_pmo( + df, + alternate_identifiers_col="alternate_identifiers", + experiment_accession_col="experiment_accession", + fastqs_loc_col="fastqs_loc", + run_accession_col="run_accession", + parasite_density_col="parasite_density", + parasite_density_method_col="parasite_density_method", + library_prep_plate_col_col="library_prep_plate_col", + library_prep_plate_name_col="library_prep_plate_name", + library_prep_plate_row_col="library_prep_plate_row", + ) + + # Check all fields are present + self.assertEqual(result[0]["alternate_identifiers"], "ID1") + self.assertEqual(result[0]["experiment_accession"], "EXP001") + self.assertEqual(result[0]["fastqs_loc"], "/path/to/fastqs1") + self.assertEqual(result[0]["run_accession"], "RUN001") + self.assertEqual(result[0]["parasite_density_info"][0]["parasite_density"], 10) + self.assertIn("library_prep_plate_info", result[0]) + self.assertEqual(result[0]["library_prep_plate_info"]["plate_col"], 1) + + self.assertEqual(result[1]["alternate_identifiers"], "ID2") + self.assertEqual(result[1]["experiment_accession"], "EXP002") + self.assertEqual(result[1]["fastqs_loc"], "/path/to/fastqs2") + self.assertEqual(result[1]["run_accession"], "RUN002") + self.assertEqual(result[1]["parasite_density_info"][0]["parasite_density"], 100) + self.assertIn("library_prep_plate_info", result[1]) + self.assertEqual(result[1]["library_prep_plate_info"]["plate_col"], 2) + if __name__ == "__main__": unittest.main() diff --git a/tests/test_pmo_builder/test_panel_information_to_pmo.py b/tests/test_pmo_builder/test_panel_information_to_pmo.py index 8c87fbd..13a85fe 100644 --- a/tests/test_pmo_builder/test_panel_information_to_pmo.py +++ b/tests/test_pmo_builder/test_panel_information_to_pmo.py @@ -5,6 +5,8 @@ from pmotools.pmo_builder.panel_information_to_pmo import ( PMOPanelBuilder, check_genome_info, + merge_panel_info_dicts, + panel_info_table_to_pmo, ) @@ -166,17 +168,55 @@ def test_summarise_targets_missing_optional_info_with_missing(self): def test_check_genome_info_passes(self): check_genome_info(self.genome_info) + def test_check_genome_info_passes_with_list(self): + genome_info_list = [ + { + "name": "3D7", + "url": "somthing.com", + "genome_version": 1, + "taxon_id": 1, + }, + { + "name": "DD2", + "url": "somthingelse.com", + "genome_version": 2, + "taxon_id": 2, + }, + ] + check_genome_info(genome_info_list) + def test_check_genome_info_fails_with_string(self): with self.assertRaises(TypeError) as context: check_genome_info("genome_info") - self.assertEqual( - str(context.exception), "genome_info must be a dict, but got str" + self.assertIn( + "genome_info must be a dict or list", + str(context.exception), ) def test_check_genome_info_fails_with_missing_key(self): with self.assertRaises(ValueError): check_genome_info({"name": "3D7", "taxon_id": 1}) + def test_check_genome_info_fails_with_empty_list(self): + with self.assertRaises(ValueError) as context: + check_genome_info([]) + self.assertEqual(str(context.exception), "genome_info list cannot be empty") + + def test_check_genome_info_fails_with_list_containing_non_dict(self): + with self.assertRaises(TypeError) as context: + check_genome_info([self.genome_info, "not_a_dict"]) + self.assertIn("genome_info[1] must be a dict", str(context.exception)) + + def test_check_genome_info_fails_with_list_containing_invalid_dict(self): + with self.assertRaises(ValueError) as context: + check_genome_info( + [ + self.genome_info, + {"name": "3D7", "taxon_id": 1}, # missing required keys + ] + ) + self.assertIn("genome_info[1] missing required keys", str(context.exception)) + def test_build_panel_info(self): panel_info = self.min_builder.build_panel_info(self.min_target_json) expected_panel_info = { @@ -185,6 +225,122 @@ def test_build_panel_info(self): } self.assertEqual(panel_info, expected_panel_info) + def test_merge_panel_info_dicts_no_overlap(self): + target_info_b = [ + { + "target_name": "target4", + "forward_primer": {"seq": "CTA"}, + "reverse_primer": {"seq": "TGG"}, + }, + { + "target_name": "target5", + "forward_primer": {"seq": "TTG"}, + "reverse_primer": {"seq": "ATT"}, + }, + ] + + panel_info_dict_a = { + "panel_info": [ + { + "panel_name": "test_panel1", + "reactions": [{"reaction_name": "1", "panel_targets": [0, 1, 2]}], + } + ], + "targeted_genomes": [self.genome_info], + "target_info": self.min_target_json, + } + + panel_info_dict_b = { + "panel_info": [ + { + "panel_name": "test_panel2", + "reactions": [{"reaction_name": "1", "panel_targets": [0, 1]}], + } + ], + "targeted_genomes": [self.genome_info], + "target_info": target_info_b, + } + + merged = merge_panel_info_dicts([panel_info_dict_a, panel_info_dict_b]) + + expected_merged = { + "panel_info": [ + { + "panel_name": "test_panel1", + "reactions": [{"reaction_name": "1", "panel_targets": [0, 1, 2]}], + }, + { + "panel_name": "test_panel2", + "reactions": [{"reaction_name": "1", "panel_targets": [3, 4]}], + }, + ], + "targeted_genomes": [self.genome_info], + "target_info": self.min_target_json + target_info_b, + } + + self.assertEqual(merged, expected_merged) + + def test_merge_panel_info_dicts_with_overlap(self): + target_info_b = [ + { + "target_name": "target2", + "forward_primer": {"seq": "CTA"}, + "reverse_primer": {"seq": "TGG"}, + }, + { + "target_name": "target5", + "forward_primer": {"seq": "TTG"}, + "reverse_primer": {"seq": "ATT"}, + }, + ] + + panel_info_dict_a = { + "panel_info": [ + { + "panel_name": "test_panel1", + "reactions": [{"reaction_name": "1", "panel_targets": [0, 1, 2]}], + } + ], + "targeted_genomes": [self.genome_info], + "target_info": self.min_target_json, + } + panel_info_dict_b = { + "panel_info": [ + { + "panel_name": "test_panel2", + "reactions": [{"reaction_name": "1", "panel_targets": [0, 1]}], + } + ], + "targeted_genomes": [self.genome_info], + "target_info": target_info_b, + } + + merged = merge_panel_info_dicts([panel_info_dict_a, panel_info_dict_b]) + + expected_merged = { + "panel_info": [ + { + "panel_name": "test_panel1", + "reactions": [{"reaction_name": "1", "panel_targets": [0, 1, 2]}], + }, + { + "panel_name": "test_panel2", + "reactions": [{"reaction_name": "1", "panel_targets": [1, 3]}], + }, + ], + "targeted_genomes": [self.genome_info], + "target_info": self.min_target_json + + [ + { + "target_name": "target5", + "forward_primer": {"seq": "TTG"}, + "reverse_primer": {"seq": "ATT"}, + }, + ], + } + + self.assertEqual(merged, expected_merged) + def test_build_panel_info_multi_reaction(self): target_table_with_reactions = self.min_target_table target_table_with_reactions["reaction"] = [ @@ -441,6 +597,232 @@ def test_create_targets_dict_additional_info( ] self.assertEqual(expected_json, target_info) + @patch( + "pmotools.pmo_builder.panel_information_to_pmo.PMOPanelBuilder.check_targets_are_unique" + ) + @patch( + "pmotools.pmo_builder.panel_information_to_pmo.PMOPanelBuilder.check_unique_target_info" + ) + @patch( + "pmotools.pmo_builder.panel_information_to_pmo.PMOPanelBuilder.summarise_targets_missing_optional_info" + ) + def test_panel_info_table_to_pmo_with_dict_genome_info( + self, + mock_summarise_targets_missing_optional_info, + mock_check_unique_target_info, + mock_check_targets_are_unique, + ): + """Test panel_info_table_to_pmo with dict genome_info (should be converted to list)""" + mock_summarise_targets_missing_optional_info.return_value = [], [], [] + result = panel_info_table_to_pmo( + self.min_target_table, "test_panel", self.genome_info + ) + + # Check that genome_info dict was converted to list + self.assertIsInstance(result["targeted_genomes"], list) + self.assertEqual(len(result["targeted_genomes"]), 1) + self.assertEqual(result["targeted_genomes"][0], self.genome_info) + self.assertIn("panel_info", result) + self.assertIn("target_info", result) + + @patch( + "pmotools.pmo_builder.panel_information_to_pmo.PMOPanelBuilder.check_targets_are_unique" + ) + @patch( + "pmotools.pmo_builder.panel_information_to_pmo.PMOPanelBuilder.check_unique_target_info" + ) + @patch( + "pmotools.pmo_builder.panel_information_to_pmo.PMOPanelBuilder.summarise_targets_missing_optional_info" + ) + def test_panel_info_table_to_pmo_with_list_genome_info( + self, + mock_summarise_targets_missing_optional_info, + mock_check_unique_target_info, + mock_check_targets_are_unique, + ): + """Test panel_info_table_to_pmo with list genome_info""" + mock_summarise_targets_missing_optional_info.return_value = [], [], [] + genome_info_list = [ + { + "name": "3D7", + "url": "somthing.com", + "genome_version": 1, + "taxon_id": 1, + }, + { + "name": "DD2", + "url": "somthingelse.com", + "genome_version": 2, + "taxon_id": 2, + }, + ] + result = panel_info_table_to_pmo( + self.min_target_table, "test_panel", genome_info_list + ) + + # Check that genome_info list is used directly + self.assertIsInstance(result["targeted_genomes"], list) + self.assertEqual(len(result["targeted_genomes"]), 2) + self.assertEqual(result["targeted_genomes"], genome_info_list) + self.assertIn("panel_info", result) + self.assertIn("target_info", result) + + @patch( + "pmotools.pmo_builder.panel_information_to_pmo.PMOPanelBuilder.check_targets_are_unique" + ) + @patch( + "pmotools.pmo_builder.panel_information_to_pmo.PMOPanelBuilder.check_unique_target_info" + ) + @patch( + "pmotools.pmo_builder.panel_information_to_pmo.PMOPanelBuilder.summarise_targets_missing_optional_info" + ) + def test_create_targets_dict_with_genome_id_col( + self, + mock_summarise_targets_missing_optional_info, + mock_check_unique_target_info, + mock_check_targets_are_unique, + ): + """Test create_targets_dict with genome_id_col parameter""" + mock_summarise_targets_missing_optional_info.return_value = [], [], [] + target_table = self.min_target_table.copy() + target_table["target_start"] = [1, 2, 3] + target_table["target_end"] = [5, 6, 7] + target_table["insert_start"] = [2, 3, 4] + target_table["insert_end"] = [3, 4, 5] + target_table["chrom"] = "chrom1" + target_table["genome_id"] = [ + 0, + 1, + 0, + ] # Different genome_ids for different targets + + builder = PMOPanelBuilder( + target_table, + "test_panel", + self.genome_info, + "target_name", + "fwd_primer", + "rev_primer", + forward_primers_start_col="target_start", + forward_primers_end_col="insert_start", + reverse_primers_start_col="insert_end", + reverse_primers_end_col="target_end", + insert_start_col="insert_start", + insert_end_col="insert_end", + chrom_col="chrom", + ) + + target_info = builder.create_targets_dict(genome_id_col="genome_id") + + # Check that genome_id values come from the column + self.assertEqual(target_info[0]["insert_location"]["genome_id"], 0) + self.assertEqual(target_info[0]["forward_primer"]["location"]["genome_id"], 0) + self.assertEqual(target_info[0]["reverse_primer"]["location"]["genome_id"], 0) + + self.assertEqual(target_info[1]["insert_location"]["genome_id"], 1) + self.assertEqual(target_info[1]["forward_primer"]["location"]["genome_id"], 1) + self.assertEqual(target_info[1]["reverse_primer"]["location"]["genome_id"], 1) + + self.assertEqual(target_info[2]["insert_location"]["genome_id"], 0) + self.assertEqual(target_info[2]["forward_primer"]["location"]["genome_id"], 0) + self.assertEqual(target_info[2]["reverse_primer"]["location"]["genome_id"], 0) + + @patch( + "pmotools.pmo_builder.panel_information_to_pmo.PMOPanelBuilder.check_targets_are_unique" + ) + @patch( + "pmotools.pmo_builder.panel_information_to_pmo.PMOPanelBuilder.check_unique_target_info" + ) + @patch( + "pmotools.pmo_builder.panel_information_to_pmo.PMOPanelBuilder.summarise_targets_missing_optional_info" + ) + def test_create_targets_dict_without_genome_id_col( + self, + mock_summarise_targets_missing_optional_info, + mock_check_unique_target_info, + mock_check_targets_are_unique, + ): + """Test create_targets_dict without genome_id_col (should default to 0)""" + mock_summarise_targets_missing_optional_info.return_value = [], [], [] + target_table = self.min_target_table.copy() + target_table["target_start"] = [1, 2, 3] + target_table["target_end"] = [5, 6, 7] + target_table["insert_start"] = [2, 3, 4] + target_table["insert_end"] = [3, 4, 5] + target_table["chrom"] = "chrom1" + + builder = PMOPanelBuilder( + target_table, + "test_panel", + self.genome_info, + "target_name", + "fwd_primer", + "rev_primer", + forward_primers_start_col="target_start", + forward_primers_end_col="insert_start", + reverse_primers_start_col="insert_end", + reverse_primers_end_col="target_end", + insert_start_col="insert_start", + insert_end_col="insert_end", + chrom_col="chrom", + ) + + target_info = builder.create_targets_dict() + + # Check that genome_id defaults to 0 when genome_id_col is not provided + for target in target_info: + self.assertEqual(target["insert_location"]["genome_id"], 0) + self.assertEqual(target["forward_primer"]["location"]["genome_id"], 0) + self.assertEqual(target["reverse_primer"]["location"]["genome_id"], 0) + + @patch( + "pmotools.pmo_builder.panel_information_to_pmo.PMOPanelBuilder.check_targets_are_unique" + ) + @patch( + "pmotools.pmo_builder.panel_information_to_pmo.PMOPanelBuilder.check_unique_target_info" + ) + @patch( + "pmotools.pmo_builder.panel_information_to_pmo.PMOPanelBuilder.summarise_targets_missing_optional_info" + ) + def test_panel_info_table_to_pmo_with_genome_id_col( + self, + mock_summarise_targets_missing_optional_info, + mock_check_unique_target_info, + mock_check_targets_are_unique, + ): + """Test panel_info_table_to_pmo with genome_id_col parameter""" + mock_summarise_targets_missing_optional_info.return_value = [], [], [] + target_table = self.min_target_table.copy() + target_table["target_start"] = [1, 2, 3] + target_table["target_end"] = [5, 6, 7] + target_table["insert_start"] = [2, 3, 4] + target_table["insert_end"] = [3, 4, 5] + target_table["chrom"] = "chrom1" + target_table["genome_id"] = [0, 1, 0] + + result = panel_info_table_to_pmo( + target_table, + "test_panel", + self.genome_info, + forward_primers_start_col="target_start", + forward_primers_end_col="insert_start", + reverse_primers_start_col="insert_end", + reverse_primers_end_col="target_end", + insert_start_col="insert_start", + insert_end_col="insert_end", + chrom_col="chrom", + genome_id_col="genome_id", + ) + + # Check that genome_id values come from the column in the result + target_info = result["target_info"] + self.assertEqual(target_info[0]["insert_location"]["genome_id"], 0) + self.assertEqual(target_info[1]["insert_location"]["genome_id"], 1) + self.assertEqual(target_info[2]["insert_location"]["genome_id"], 0) + self.assertEqual(target_info[0]["forward_primer"]["location"]["genome_id"], 0) + self.assertEqual(target_info[1]["forward_primer"]["location"]["genome_id"], 1) + self.assertEqual(target_info[2]["forward_primer"]["location"]["genome_id"], 0) + if __name__ == "__main__": unittest.main() diff --git a/tests/test_pmo_builder/test_pmo_updater.py b/tests/test_pmo_builder/test_pmo_updater.py new file mode 100755 index 0000000..e707187 --- /dev/null +++ b/tests/test_pmo_builder/test_pmo_updater.py @@ -0,0 +1,228 @@ +#!/usr/bin/env python3 + +import os +import unittest +import pandas as pd +from pmotools.pmo_builder.pmo_updater import PMOUpdater + + +class TestPMOUpdater(unittest.TestCase): + def setUp(self): + self.working_dir = os.path.dirname(os.path.abspath(__file__)) + + def test_check_if_date_yyyy_mm_or_yyyy_mm_dd(self): + self.assertFalse(PMOUpdater.check_if_date_yyyy_mm_or_yyyy_mm_dd("2023/11/24")) + self.assertFalse(PMOUpdater.check_if_date_yyyy_mm_or_yyyy_mm_dd("11-24-2023")) + self.assertFalse(PMOUpdater.check_if_date_yyyy_mm_or_yyyy_mm_dd("invalid-date")) + + self.assertTrue(PMOUpdater.check_if_date_yyyy_mm_or_yyyy_mm_dd("2023-11-24")) + self.assertTrue(PMOUpdater.check_if_date_yyyy_mm_or_yyyy_mm_dd("2023-11")) + + def test_update_specimen_meta_with_traveler_info(self): + test_pmo = { + "specimen_info": [{"specimen_name": "spec1"}, {"specimen_name": "spec2"}], + } + traveler_info = pd.DataFrame( + { + "specimen_name": ["spec1", "spec1", "spec2"], + "travel_country": ["Kenya", "Kenya", "Tanzania"], + "travel_start_date": ["2024-01", "2024-04", "2024-02-15"], + "travel_end_date": ["2024-02", "2024-06", "2024-02-27"], + } + ) + + PMOUpdater.update_specimen_meta_with_traveler_info(test_pmo, traveler_info) + test_out_pmo = { + "specimen_info": [ + { + "specimen_name": "spec1", + "travel_out_six_month": [ + { + "travel_country": "Kenya", + "travel_start_date": "2024-01", + "travel_end_date": "2024-02", + }, + { + "travel_country": "Kenya", + "travel_start_date": "2024-04", + "travel_end_date": "2024-06", + }, + ], + }, + { + "specimen_name": "spec2", + "travel_out_six_month": [ + { + "travel_country": "Tanzania", + "travel_start_date": "2024-02-15", + "travel_end_date": "2024-02-27", + } + ], + }, + ] + } + self.assertEqual(test_out_pmo, test_pmo) + + def test_update_specimen_meta_with_traveler_info_raises(self): + test_pmo = { + "specimen_info": [{"specimen_name": "spec1"}, {"specimen_name": "spec2"}], + } + traveler_info = pd.DataFrame( + { + "specimen_name": ["spec1", "spec2"], + "travel_country": ["Kenya", "Tanzania"], + "travel_start_date": ["24-01", "2024-02"], # BAD: "24-01" + "travel_end_date": ["2024-02-05", "2024-03"], + } + ) + + with self.assertRaises(ValueError): + PMOUpdater.update_specimen_meta_with_traveler_info(test_pmo, traveler_info) + + def test_update_specimen_meta_with_traveler_info_with_optional(self): + test_pmo = { + "specimen_info": [{"specimen_name": "spec1"}, {"specimen_name": "spec2"}], + } + traveler_info = pd.DataFrame( + { + "specimen_name": ["spec1", "spec2"], + "travel_country": ["Kenya", "Tanzania"], + "travel_start_date": ["2024-01", "2024-02"], + "travel_end_date": ["2024-01-20", "2024-02-15"], + "bed_net": [0.50, 0.0], + "admin1": ["Nairobi", "Dar es Salaam"], + "admin2": ["SubCounty1", "SubCounty2"], + "admin3": ["Ward1", "Ward2"], + "latlon": ["-1.2921,36.8219", "-6.7924,39.2083"], + } + ) + + PMOUpdater.update_specimen_meta_with_traveler_info( + test_pmo, + traveler_info, + bed_net_usage_col="bed_net", + geo_admin1_col="admin1", + geo_admin2_col="admin2", + geo_admin3_col="admin3", + lat_lon_col="latlon", + ) + test_out_pmo = { + "specimen_info": [ + { + "specimen_name": "spec1", + "travel_out_six_month": [ + { + "travel_country": "Kenya", + "travel_start_date": "2024-01", + "travel_end_date": "2024-01-20", + "bed_net": 0.5, + "admin1": "Nairobi", + "admin2": "SubCounty1", + "admin3": "Ward1", + "latlon": "-1.2921,36.8219", + } + ], + }, + { + "specimen_name": "spec2", + "travel_out_six_month": [ + { + "travel_country": "Tanzania", + "travel_start_date": "2024-02", + "travel_end_date": "2024-02-15", + "bed_net": 0.0, + "admin1": "Dar es Salaam", + "admin2": "SubCounty2", + "admin3": "Ward2", + "latlon": "-6.7924,39.2083", + } + ], + }, + ] + } + self.assertEqual(test_out_pmo, test_pmo) + + def test_update_specimen_meta_with_traveler_info_with_optional_replace_old(self): + test_pmo = { + "specimen_info": [ + { + "specimen_name": "spec1", + "travel_out_six_month": [ + { + "travel_country": "Kenya", + "travel_start_date": "2024-01", + "travel_end_date": "2024-02", + }, + { + "travel_country": "Kenya", + "travel_start_date": "2024-04", + "travel_end_date": "2024-06", + }, + ], + }, + {"specimen_name": "spec2"}, + ], + } + traveler_info = pd.DataFrame( + { + "specimen_name": ["spec1", "spec2"], + "travel_country": ["Kenya", "Tanzania"], + "travel_start_date": ["2024-01", "2024-02"], + "travel_end_date": ["2024-01-20", "2024-02-15"], + "bed_net": [0.50, 0.0], + "admin1": ["Nairobi", "Dar es Salaam"], + "admin2": ["SubCounty1", "SubCounty2"], + "admin3": ["Ward1", "Ward2"], + "latlon": ["-1.2921,36.8219", "-6.7924,39.2083"], + } + ) + + PMOUpdater.update_specimen_meta_with_traveler_info( + test_pmo, + traveler_info, + bed_net_usage_col="bed_net", + geo_admin1_col="admin1", + geo_admin2_col="admin2", + geo_admin3_col="admin3", + lat_lon_col="latlon", + replace_current_traveler_info=True, + ) + test_out_pmo = { + "specimen_info": [ + { + "specimen_name": "spec1", + "travel_out_six_month": [ + { + "travel_country": "Kenya", + "travel_start_date": "2024-01", + "travel_end_date": "2024-01-20", + "bed_net": 0.5, + "admin1": "Nairobi", + "admin2": "SubCounty1", + "admin3": "Ward1", + "latlon": "-1.2921,36.8219", + } + ], + }, + { + "specimen_name": "spec2", + "travel_out_six_month": [ + { + "travel_country": "Tanzania", + "travel_start_date": "2024-02", + "travel_end_date": "2024-02-15", + "bed_net": 0.0, + "admin1": "Dar es Salaam", + "admin2": "SubCounty2", + "admin3": "Ward2", + "latlon": "-6.7924,39.2083", + } + ], + }, + ] + } + self.assertEqual(test_out_pmo, test_pmo) + + +if __name__ == "__main__": + unittest.main() diff --git a/tests/test_pmo_builder/test_read_count_by_stage_table_to_pmo.py b/tests/test_pmo_builder/test_read_count_by_stage_table_to_pmo.py new file mode 100644 index 0000000..4bf01e1 --- /dev/null +++ b/tests/test_pmo_builder/test_read_count_by_stage_table_to_pmo.py @@ -0,0 +1,627 @@ +import unittest +import pandas as pd +import numpy as np + +from pmotools.pmo_builder.read_count_by_stage_table_to_pmo import ( + read_count_by_stage_table_to_pmo, + _process_total_raw_count_table, + _process_reads_by_stage_table, + _build_read_counts_by_stage_output, +) + + +class TestReadCountByStageTableToPMO(unittest.TestCase): + def setUp(self): + self.maxDiff = None + + # Sample total raw count table + self.total_raw_count_table = pd.DataFrame( + { + "library_sample_name": ["sample1", "sample2", "sample3"], + "total_raw_count": [1000, 2000, 1500], + "additional_info": ["info1", "info2", "info3"], + } + ) + + # Sample reads by stage table (long format) + self.reads_by_stage_table_long = pd.DataFrame( + { + "library_sample_name": [ + "sample1", + "sample1", + "sample1", + "sample2", + "sample2", + "sample2", + ], + "target_name": [ + "target1", + "target1", + "target2", + "target1", + "target1", + "target2", + ], + "stage": [ + "demultiplexed", + "denoised", + "demultiplexed", + "demultiplexed", + "denoised", + "demultiplexed", + ], + "reads": [100, 80, 50, 200, 150, 75], + } + ) + + # Sample reads by stage table (wide format) + self.reads_by_stage_table_wide = pd.DataFrame( + { + "library_sample_name": ["sample1", "sample2"], + "target_name": ["target1", "target1"], + "demultiplexed": [100, 200], + "denoised": [80, 150], + "filtered": [60, 120], + } + ) + + # Expected output structure + self.expected_output_structure = { + "bioinformatics_run_name": "test_run", + "read_counts_by_library_sample_by_stage": [ + { + "library_sample_name": "sample1", + "total_raw_count": 1000, + "read_counts_for_targets": [ + { + "target_name": "target1", + "stages": [ + {"stage": "demultiplexed", "reads": 100}, + {"stage": "denoised", "reads": 80}, + ], + } + ], + } + ], + } + + def test_basic_functionality_long_format(self): + """Test basic functionality with long format reads by stage table.""" + result = read_count_by_stage_table_to_pmo( + total_raw_count_table=self.total_raw_count_table, + bioinformatics_run_name="test_run", + read_count_col="reads", + reads_by_stage_table=self.reads_by_stage_table_long, + ) + + # Should return a list with one entry + self.assertIsInstance(result, list) + self.assertEqual(len(result), 1) + + run_data = result[0] + self.assertIn("bioinformatics_run_name", run_data) + self.assertIn("read_counts_by_library_sample_by_stage", run_data) + self.assertEqual(run_data["bioinformatics_run_name"], "test_run") + self.assertEqual(len(run_data["read_counts_by_library_sample_by_stage"]), 3) + + def test_basic_functionality_wide_format(self): + """Test basic functionality with wide format reads by stage table.""" + result = read_count_by_stage_table_to_pmo( + total_raw_count_table=self.total_raw_count_table, + bioinformatics_run_name="test_run", + reads_by_stage_table=self.reads_by_stage_table_wide, + stage_col=["demultiplexed", "denoised", "filtered"], + ) + + # Should return a list with one entry + self.assertIsInstance(result, list) + self.assertEqual(len(result), 1) + + run_data = result[0] + self.assertIn("bioinformatics_run_name", run_data) + self.assertIn("read_counts_by_library_sample_by_stage", run_data) + self.assertEqual(run_data["bioinformatics_run_name"], "test_run") + + def test_only_total_raw_count_table(self): + """Test functionality with only total raw count table (no reads by stage).""" + result = read_count_by_stage_table_to_pmo( + total_raw_count_table=self.total_raw_count_table, + bioinformatics_run_name="test_run", + ) + + # Should return a list with one entry + self.assertIsInstance(result, list) + self.assertEqual(len(result), 1) + + run_data = result[0] + self.assertEqual(run_data["bioinformatics_run_name"], "test_run") + self.assertEqual(len(run_data["read_counts_by_library_sample_by_stage"]), 3) + + # Check that each sample has total_raw_count but no read_counts_for_targets + for sample in run_data["read_counts_by_library_sample_by_stage"]: + self.assertIn("total_raw_count", sample) + self.assertNotIn("read_counts_for_targets", sample) + + def test_custom_column_names(self): + """Test with custom column names.""" + custom_total_table = pd.DataFrame( + {"sample_id": ["sample1", "sample2"], "raw_count": [1000, 2000]} + ) + + custom_reads_table = pd.DataFrame( + { + "sample_id": ["sample1", "sample1"], + "locus": ["target1", "target1"], + "pipeline_stage": ["demultiplexed", "denoised"], + "counts": [100, 80], + } + ) + + result = read_count_by_stage_table_to_pmo( + total_raw_count_table=custom_total_table, + bioinformatics_run_name="test_run", + reads_by_stage_table=custom_reads_table, + library_sample_name_col="sample_id", + target_name_col="locus", + total_raw_count_col="raw_count", + stage_col="pipeline_stage", + read_count_col="counts", + ) + + # Should return a list with one entry + self.assertIsInstance(result, list) + self.assertEqual(len(result), 1) + self.assertEqual(result[0]["bioinformatics_run_name"], "test_run") + + def test_additional_columns(self): + """Test with additional columns.""" + result = read_count_by_stage_table_to_pmo( + total_raw_count_table=self.total_raw_count_table, + bioinformatics_run_name="test_run", + additional_library_sample_cols=["additional_info"], + ) + + # Should return a list with one entry + self.assertIsInstance(result, list) + self.assertEqual(len(result), 1) + + run_data = result[0] + # Check that additional columns are included + for sample in run_data["read_counts_by_library_sample_by_stage"]: + if sample["library_sample_name"] == "sample1": + self.assertIn("additional_info", sample) + self.assertEqual(sample["additional_info"], "info1") + + def test_additional_target_columns(self): + """Test with additional target columns in reads by stage table.""" + # Create reads table with additional columns + reads_table_with_additional = pd.DataFrame( + { + "library_sample_name": ["sample1", "sample1", "sample2"], + "target_name": ["target1", "target1", "target1"], + "stage": ["demultiplexed", "denoised", "demultiplexed"], + "read_count": [100, 80, 200], + "quality_score": [0.95, 0.98, 0.92], + "coverage_depth": [50, 40, 100], + } + ) + + result = read_count_by_stage_table_to_pmo( + total_raw_count_table=self.total_raw_count_table, + bioinformatics_run_name="test_run", + reads_by_stage_table=reads_table_with_additional, + additional_target_cols=["quality_score", "coverage_depth"], + ) + + # Should return a list with one entry + self.assertIsInstance(result, list) + self.assertEqual(len(result), 1) + + run_data = result[0] + + # Check that additional columns are included in stages + sample1_data = next( + s + for s in run_data["read_counts_by_library_sample_by_stage"] + if s["library_sample_name"] == "sample1" + ) + + self.assertIn("read_counts_for_targets", sample1_data) + target1_data = sample1_data["read_counts_for_targets"][0] + self.assertEqual(target1_data["target_name"], "target1") + + # Check that stages contain additional columns + stages = target1_data["stages"] + demultiplexed_stage = next(s for s in stages if s["stage"] == "demultiplexed") + denoised_stage = next(s for s in stages if s["stage"] == "denoised") + + # Check demultiplexed stage has additional columns + self.assertIn("quality_score", demultiplexed_stage) + self.assertIn("coverage_depth", demultiplexed_stage) + self.assertEqual(demultiplexed_stage["quality_score"], 0.95) + self.assertEqual(demultiplexed_stage["coverage_depth"], 50) + + # Check denoised stage has additional columns + self.assertIn("quality_score", denoised_stage) + self.assertIn("coverage_depth", denoised_stage) + self.assertEqual(denoised_stage["quality_score"], 0.98) + self.assertEqual(denoised_stage["coverage_depth"], 40) + + def test_wide_format_melt_conversion(self): + """Test that wide format is properly converted using pd.melt.""" + result = read_count_by_stage_table_to_pmo( + total_raw_count_table=self.total_raw_count_table, + bioinformatics_run_name="test_run", + reads_by_stage_table=self.reads_by_stage_table_wide, + stage_col=["demultiplexed", "denoised", "filtered"], + ) + + # Should return a list with one entry + self.assertIsInstance(result, list) + self.assertEqual(len(result), 1) + + run_data = result[0] + # Check that the wide format was converted properly + sample1_data = next( + s + for s in run_data["read_counts_by_library_sample_by_stage"] + if s["library_sample_name"] == "sample1" + ) + + self.assertIn("read_counts_for_targets", sample1_data) + target1_data = sample1_data["read_counts_for_targets"][0] + self.assertEqual(target1_data["target_name"], "target1") + + # Check that all stages are present + stage_names = [stage["stage"] for stage in target1_data["stages"]] + self.assertIn("demultiplexed", stage_names) + self.assertIn("denoised", stage_names) + self.assertIn("filtered", stage_names) + + def test_input_validation(self): + """Test input validation.""" + # Test non-DataFrame input for total_raw_count_table + with self.assertRaises(ValueError): + read_count_by_stage_table_to_pmo( + total_raw_count_table="not_a_dataframe", + bioinformatics_run_name="test_run", + ) + + # Test non-DataFrame input for reads_by_stage_table + with self.assertRaises(ValueError): + read_count_by_stage_table_to_pmo( + total_raw_count_table=self.total_raw_count_table, + bioinformatics_run_name="test_run", + reads_by_stage_table="not_a_dataframe", + ) + + def test_missing_columns(self): + """Test error handling for missing columns.""" + # Test missing required columns in total_raw_count_table + bad_table = pd.DataFrame( + {"wrong_col": ["sample1", "sample2"], "total_raw_count": [1000, 2000]} + ) + + with self.assertRaises(ValueError): + read_count_by_stage_table_to_pmo( + total_raw_count_table=bad_table, bioinformatics_run_name="test_run" + ) + + # Test missing required columns in reads_by_stage_table + bad_reads_table = pd.DataFrame( + { + "library_sample_name": ["sample1"], + "wrong_col": ["target1"], + "stage": ["demultiplexed"], + "read_count": [100], + } + ) + + with self.assertRaises(ValueError): + read_count_by_stage_table_to_pmo( + total_raw_count_table=self.total_raw_count_table, + bioinformatics_run_name="test_run", + reads_by_stage_table=bad_reads_table, + ) + + def test_duplicate_library_samples(self): + """Test error handling for duplicate library sample names.""" + duplicate_table = pd.DataFrame( + { + "library_sample_name": ["sample1", "sample1"], + "total_raw_count": [1000, 2000], + } + ) + + with self.assertRaises(ValueError): + read_count_by_stage_table_to_pmo( + total_raw_count_table=duplicate_table, + bioinformatics_run_name="test_run", + ) + + def test_additional_columns_validation(self): + """Test validation of additional columns.""" + with self.assertRaises(ValueError): + read_count_by_stage_table_to_pmo( + total_raw_count_table=self.total_raw_count_table, + bioinformatics_run_name="test_run", + additional_library_sample_cols=["nonexistent_column"], + ) + + def test_process_total_raw_count_table(self): + """Test the _process_total_raw_count_table helper function.""" + result = _process_total_raw_count_table( + self.total_raw_count_table, + "library_sample_name", + "total_raw_count", + ["additional_info"], + ) + + self.assertIn("sample1", result) + self.assertEqual(result["sample1"]["total_raw_count"], 1000) + self.assertEqual(result["sample1"]["additional_info"], "info1") + + def test_process_reads_by_stage_table_long(self): + """Test the _process_reads_by_stage_table helper function with long format.""" + result = _process_reads_by_stage_table( + self.reads_by_stage_table_long, + "library_sample_name", + "target_name", + "stage", + "reads", + ) + + self.assertIn("sample1", result) + self.assertIn("target1", result["sample1"]) + self.assertIn("demultiplexed", result["sample1"]["target1"]) + # Now stages are dictionaries with stage and read_count + demultiplexed_data = result["sample1"]["target1"]["demultiplexed"] + self.assertEqual(demultiplexed_data["stage"], "demultiplexed") + self.assertEqual(demultiplexed_data["reads"], 100) + + def test_process_reads_by_stage_table_wide(self): + """Test the _process_reads_by_stage_table helper function with wide format.""" + result = _process_reads_by_stage_table( + self.reads_by_stage_table_wide, + "library_sample_name", + "target_name", + ["demultiplexed", "denoised", "filtered"], + "reads", + ) + + self.assertIn("sample1", result) + self.assertIn("target1", result["sample1"]) + self.assertIn("demultiplexed", result["sample1"]["target1"]) + # Now stages are dictionaries with stage and read_count + demultiplexed_data = result["sample1"]["target1"]["demultiplexed"] + self.assertEqual(demultiplexed_data["stage"], "demultiplexed") + self.assertEqual(demultiplexed_data["reads"], 100) + + def test_build_read_counts_by_stage_output(self): + """Test the _build_read_counts_by_stage_output helper function.""" + library_sample_data = { + "sample1": {"total_raw_count": 1000}, + "sample2": {"total_raw_count": 2000}, + } + + reads_by_stage_data = { + "sample1": {"target1": {"demultiplexed": 100, "denoised": 80}} + } + + result = _build_read_counts_by_stage_output( + library_sample_data, reads_by_stage_data, "test_run" + ) + + self.assertEqual(result["bioinformatics_run_name"], "test_run") + self.assertEqual(len(result["read_counts_by_library_sample_by_stage"]), 2) + + # Check sample1 has read_counts_for_targets + sample1 = next( + s + for s in result["read_counts_by_library_sample_by_stage"] + if s["library_sample_name"] == "sample1" + ) + self.assertIn("read_counts_for_targets", sample1) + + # Check sample2 does not have read_counts_for_targets + sample2 = next( + s + for s in result["read_counts_by_library_sample_by_stage"] + if s["library_sample_name"] == "sample2" + ) + self.assertNotIn("read_counts_for_targets", sample2) + + def test_empty_reads_by_stage_data(self): + """Test behavior when reads_by_stage_data is None.""" + library_sample_data = {"sample1": {"total_raw_count": 1000}} + + result = _build_read_counts_by_stage_output( + library_sample_data, None, "test_run" + ) + + sample1 = result["read_counts_by_library_sample_by_stage"][0] + self.assertNotIn("read_counts_for_targets", sample1) + + def test_numeric_read_counts(self): + """Test that read counts are properly converted to integers.""" + table_with_float_counts = pd.DataFrame( + { + "library_sample_name": ["sample1"], + "target_name": ["target1"], + "stage": ["demultiplexed"], + "read_count": [100.5], # Float value + } + ) + + result = _process_reads_by_stage_table( + table_with_float_counts, + "library_sample_name", + "target_name", + "stage", + "read_count", + ) + + # Should be converted to int + demultiplexed_data = result["sample1"]["target1"]["demultiplexed"] + self.assertEqual(demultiplexed_data["reads"], 100) + + def test_missing_values_handling(self): + """Test handling of missing values in additional columns.""" + table_with_nan = pd.DataFrame( + { + "library_sample_name": ["sample1", "sample2"], + "total_raw_count": [1000, 2000], + "optional_info": ["info1", np.nan], + } + ) + + result = _process_total_raw_count_table( + table_with_nan, "library_sample_name", "total_raw_count", ["optional_info"] + ) + + # sample1 should have optional_info, sample2 should not + self.assertIn("optional_info", result["sample1"]) + self.assertNotIn("optional_info", result["sample2"]) + + def test_multiple_runs_from_column(self): + """Test functionality when bioinformatics_run_name is a column in total_raw_count_table.""" + # Create table with multiple runs + multi_run_table = pd.DataFrame( + { + "library_sample_name": ["sample1", "sample2", "sample1", "sample2"], + "total_raw_count": [1000, 2000, 1500, 2500], + "bioinformatics_run_name": ["run1", "run1", "run2", "run2"], + } + ) + + # Create reads table with multiple runs + multi_run_reads = pd.DataFrame( + { + "library_sample_name": ["sample1", "sample1", "sample2", "sample2"], + "target_name": ["target1", "target1", "target1", "target1"], + "stage": ["demultiplexed", "denoised", "demultiplexed", "denoised"], + "read_count": [100, 80, 200, 150], + "bioinformatics_run_name": ["run1", "run1", "run1", "run2"], + } + ) + + result = read_count_by_stage_table_to_pmo( + total_raw_count_table=multi_run_table, + bioinformatics_run_name="bioinformatics_run_name", + reads_by_stage_table=multi_run_reads, + ) + + # Should return a list of dictionaries + self.assertIsInstance(result, list) + self.assertEqual(len(result), 2) # Two runs + + # Check run1 + run1_data = next(r for r in result if r["bioinformatics_run_name"] == "run1") + self.assertEqual( + len(run1_data["read_counts_by_library_sample_by_stage"]), 2 + ) # sample1 and sample2 + + # Check run2 + run2_data = next(r for r in result if r["bioinformatics_run_name"] == "run2") + self.assertEqual( + len(run2_data["read_counts_by_library_sample_by_stage"]), 2 + ) # sample1 and sample2 + + # Verify that samples are filtered correctly for each run + run1_samples = [ + s["library_sample_name"] + for s in run1_data["read_counts_by_library_sample_by_stage"] + ] + run2_samples = [ + s["library_sample_name"] + for s in run2_data["read_counts_by_library_sample_by_stage"] + ] + + self.assertIn("sample1", run1_samples) + self.assertIn("sample2", run1_samples) + self.assertIn("sample1", run2_samples) + self.assertIn("sample2", run2_samples) + + def test_multiple_runs_without_reads_table(self): + """Test multiple runs functionality without reads by stage table.""" + multi_run_table = pd.DataFrame( + { + "library_sample_name": ["sample1", "sample2", "sample1", "sample2"], + "total_raw_count": [1000, 2000, 1500, 2500], + "bioinformatics_run_name": ["run1", "run1", "run2", "run2"], + } + ) + + result = read_count_by_stage_table_to_pmo( + total_raw_count_table=multi_run_table, + bioinformatics_run_name="bioinformatics_run_name", + ) + + # Should return a list of dictionaries + self.assertIsInstance(result, list) + self.assertEqual(len(result), 2) # Two runs + + # Check that each run has the correct samples + run1_data = next(r for r in result if r["bioinformatics_run_name"] == "run1") + run2_data = next(r for r in result if r["bioinformatics_run_name"] == "run2") + + self.assertEqual(len(run1_data["read_counts_by_library_sample_by_stage"]), 2) + self.assertEqual(len(run2_data["read_counts_by_library_sample_by_stage"]), 2) + + def test_multiple_runs_reads_table_without_run_column(self): + """Test multiple runs when reads table doesn't have bioinformatics_run_name column.""" + multi_run_table = pd.DataFrame( + { + "library_sample_name": ["sample1", "sample2", "sample1", "sample2"], + "total_raw_count": [1000, 2000, 1500, 2500], + "bioinformatics_run_name": ["run1", "run1", "run2", "run2"], + } + ) + + # Reads table without bioinformatics_run_name column + reads_table = pd.DataFrame( + { + "library_sample_name": ["sample1", "sample2"], + "target_name": ["target1", "target1"], + "stage": ["demultiplexed", "demultiplexed"], + "read_count": [100, 200], + } + ) + + result = read_count_by_stage_table_to_pmo( + total_raw_count_table=multi_run_table, + bioinformatics_run_name="bioinformatics_run_name", + reads_by_stage_table=reads_table, + ) + + # Should return a list of dictionaries + self.assertIsInstance(result, list) + self.assertEqual(len(result), 2) # Two runs + + # Both runs should have the same reads data (since reads table doesn't have run column) + run1_data = next(r for r in result if r["bioinformatics_run_name"] == "run1") + run2_data = next(r for r in result if r["bioinformatics_run_name"] == "run2") + + # Both should have read_counts_for_targets since reads table applies to all runs + for run_data in [run1_data, run2_data]: + for sample in run_data["read_counts_by_library_sample_by_stage"]: + if sample["library_sample_name"] in ["sample1", "sample2"]: + self.assertIn("read_counts_for_targets", sample) + + def test_single_run_behavior_unchanged(self): + """Test that single run behavior returns a list with one entry.""" + result = read_count_by_stage_table_to_pmo( + total_raw_count_table=self.total_raw_count_table, + bioinformatics_run_name="test_run", + reads_by_stage_table=self.reads_by_stage_table_long, + read_count_col="reads", + ) + + # Should return a list with one entry + self.assertIsInstance(result, list) + self.assertEqual(len(result), 1) + self.assertEqual(result[0]["bioinformatics_run_name"], "test_run") + + +if __name__ == "__main__": + unittest.main() diff --git a/tests/test_pmo_builder/test_schema_validation_integration.py b/tests/test_pmo_builder/test_schema_validation_integration.py new file mode 100644 index 0000000..3ac2627 --- /dev/null +++ b/tests/test_pmo_builder/test_schema_validation_integration.py @@ -0,0 +1,350 @@ +#!/usr/bin/env python3 +import json +from pathlib import Path + +import pandas as pd + +from pmotools import __version__ +from pmotools.pmo_builder.metatable_to_pmo import ( + library_sample_info_table_to_pmo, + specimen_info_table_to_pmo, +) +from pmotools.pmo_builder.panel_information_to_pmo import panel_info_table_to_pmo +from pmotools.pmo_builder.mhap_table_to_pmo import mhap_table_to_pmo +from pmotools.pmo_builder.read_count_by_stage_table_to_pmo import ( + read_count_by_stage_table_to_pmo, +) +from pmotools.pmo_builder.merge_to_pmo import merge_to_pmo +from pmotools.pmo_engine.pmo_checker import PMOChecker + + +def test_toy_pmo_validates_against_schema(): + """Build a toy PMO with builder functions and validate against the schema.""" + # Specimen information with optional fields + specimen_df = pd.DataFrame( + { + "specimen_name": ["specimen1"], + "specimen_taxon_id": [[5900]], + "host_taxon_id": [9606], + "collection_date": ["2024-01-01"], + "collection_country": ["Wonderland"], + "project_name": ["Test Project"], + "host_age": [35], + "host_sex": ["female"], + "lat_lon": ["37.77,-122.42"], + "specimen_collect_device": ["venipuncture"], + "specimen_comments": [["no issues"]], + "specimen_store_loc": ["Freezer 1"], + "drug_usage": [["DrugX"]], + "env_broad_scale": ["Urban"], + "env_local_scale": ["Clinic"], + "env_medium": ["Blood"], + "alternate_ids": [["ALT1", "ALT2"]], + "custom_note": ["Important specimen"], + "parasite_density": [1200], + "parasite_density_method": ["microscopy"], + } + ) + specimen_info = specimen_info_table_to_pmo( + specimen_df, + alternate_identifiers_col="alternate_ids", + drug_usage_col="drug_usage", + env_broad_scale_col="env_broad_scale", + env_local_scale_col="env_local_scale", + env_medium_col="env_medium", + host_age_col="host_age", + host_sex_col="host_sex", + specimen_collect_device_col="specimen_collect_device", + specimen_comments_col="specimen_comments", + specimen_store_loc_col="specimen_store_loc", + lat_lon_col="lat_lon", + parasite_density_col="parasite_density", + parasite_density_method_col="parasite_density_method", + additional_specimen_cols=["custom_note"], + ) + + # Sequencing information (manually constructed to satisfy schema requirements) + sequencing_info = [ + { + "sequencing_info_name": "seq_run1", + "seq_platform": "ILLUMINA", + "seq_instrument_model": "NextSeq 2000", + "library_layout": "PAIRED", + "library_strategy": "AMPLICON", + "library_source": "GENOMIC", + "library_selection": "PCR", + "library_kit": "MiSeq Reagent Kit v3", + "seq_center": "UCSF Core", + "seq_date": "2024-01-15", + "nucl_acid_amp": "https://example.org/amp", + "nucl_acid_ext": "https://example.org/ext", + } + ] + + # Library sample information with optional fields + library_df = pd.DataFrame( + { + "library_sample_name": ["lib1"], + "sequencing_info_name": ["seq_run1"], + "specimen_name": ["specimen1"], + "panel_name": ["panel1"], + "accession": ["ACC123"], + "prep_plate_name": ["PlateA"], + "prep_plate_row": ["B"], + "prep_plate_col": [3], + "library_note": ["High quality"], + } + ) + library_sample_info = library_sample_info_table_to_pmo( + library_df, + run_accession_col="accession", + library_prep_plate_name_col="prep_plate_name", + library_prep_plate_row_col="prep_plate_row", + library_prep_plate_col_col="prep_plate_col", + additional_library_sample_info_cols=["library_note"], + ) + + # Panel and target information with optional fields + target_df = pd.DataFrame( + { + "target_name": ["target1"], + "fwd_primer": ["ATGCATGC"], + "rev_primer": ["GCATGCAT"], + "reaction": ["rxn1"], + "forward_start": [100], + "forward_end": [107], + "reverse_start": [150], + "reverse_end": [157], + "insert_start": [110], + "insert_end": [149], + "chrom": ["chr1"], + "strand": ["+"], + "ref_seq": ["ATGCGCTA"], + "gene_name": ["geneA"], + "target_attributes": [["marker"]], + "amplicon_length": [250], + } + ) + genome_info = { + "name": "TestGenome", + "genome_version": "v1.0", + "taxon_id": [9999], + "url": "https://example.org/genome", + "chromosomes": ["chr1"], + "gff_url": "https://example.org/genome.gff", + } + panel_info = panel_info_table_to_pmo( + target_table=target_df, + panel_name="panel1", + genome_info=genome_info, + reaction_name_col="reaction", + forward_primers_start_col="forward_start", + forward_primers_end_col="forward_end", + reverse_primers_start_col="reverse_start", + reverse_primers_end_col="reverse_end", + insert_start_col="insert_start", + insert_end_col="insert_end", + chrom_col="chrom", + strand_col="strand", + ref_seq_col="ref_seq", + gene_name_col="gene_name", + target_attributes_col="target_attributes", + additional_target_info_cols=["amplicon_length"], + ) + + # Microhaplotype information with optional details + mhap_df = pd.DataFrame( + { + "library_sample_name": ["lib1"], + "target_name": ["target1"], + "seq": ["ATGCATGC"], + "reads": [42], + "bioinformatics_run_name": ["run1"], + "umis": [10], + "microhap_name": ["mh1"], + "pseudocigar": ["8M"], + "quality": ["ABCD"], + "mask_start": ["1"], + "mask_segment": ["2"], + "mask_replacement": ["2"], + "chrom": ["chr1"], + "start": [120], + "end": [127], + "ref_seq": ["ATGC"], + "strand": ["+"], + "custom_annotation": ["custom"], + "custom_detected": ["det-note"], + } + ) + mhap_info = mhap_table_to_pmo( + microhaplotype_table=mhap_df, + bioinformatics_run_name="bioinformatics_run_name", + umis_col="umis", + microhaplotype_name_col="microhap_name", + pseudocigar_col="pseudocigar", + quality_col="quality", + masking_seq_start_col="mask_start", + masking_seq_segment_size_col="mask_segment", + masking_replacement_size_col="mask_replacement", + chrom_col="chrom", + start_col="start", + end_col="end", + ref_seq_col="ref_seq", + strand_col="strand", + additional_representative_mhap_cols=["custom_annotation"], + additional_mhap_detected_cols=["custom_detected"], + ) + + # Read counts by stage with additional columns + total_raw_counts_df = pd.DataFrame( + { + "library_sample_name": ["lib1"], + "total_raw_count": [1000], + "bioinformatics_run_name": ["run1"], + "library_comment": ["primary run"], + } + ) + reads_by_stage_df = pd.DataFrame( + { + "library_sample_name": ["lib1"], + "target_name": ["target1"], + "stage": ["RawReads"], + "read_count": [800], + "bioinformatics_run_name": ["run1"], + "quality_score": [0.98], + "coverage_depth": [150], + } + ) + read_counts_by_stage_info = read_count_by_stage_table_to_pmo( + bioinformatics_run_name="bioinformatics_run_name", + total_raw_count_table=total_raw_counts_df, + reads_by_stage_table=reads_by_stage_df, + additional_library_sample_cols=["library_comment"], + additional_target_cols=["quality_score", "coverage_depth"], + ) + + # Bioinformatics method and run information + bioinfo_methods_info = [ + { + "methods": [ + { + "program": "Cutadapt", + "program_version": "v1.0.0", + }, + { + "program": "DADA2", + "program_version": "v1.0.0", + }, + { + "program": "CustomFilter", + "program_version": "v2.0.0", + }, + ] + } + ] + bioinfo_run_info = [ + { + "bioinformatics_run_name": "run1", + "bioinformatics_methods_id": 0, + "run_date": "2024-02-01", + "run_comments": "First batch", + } + ] + + # Project info with optional metadata + project_info = [ + { + "project_name": "Test Project", + "project_description": "Toy project for schema validation.", + "project_type": "Surveillance", + "project_contributors": ["Alice", "Bob"], + "BioProject_accession": "PRJNA12345", + } + ] + + # Merge into PMO structure + pmo = merge_to_pmo( + specimen_info=specimen_info, + library_sample_info=library_sample_info, + sequencing_info=sequencing_info, + panel_info=panel_info, + mhap_info=mhap_info, + bioinfo_method_info=bioinfo_methods_info, + bioinfo_run_info=bioinfo_run_info, + project_info=project_info, + read_counts_by_stage_info=read_counts_by_stage_info, + ) + + # Load the schema and validate using PMOChecker + schemas_dir = Path(__file__).resolve().parents[2] / "src" / "pmotools" / "schemas" + schema_filename = f"portable_microhaplotype_object_v{__version__}.schema.json" + schema_path = schemas_dir / schema_filename + if not schema_path.exists(): + available_schemas = sorted( + schemas_dir.glob("portable_microhaplotype_object_*.schema.json") + ) + if not available_schemas: + raise FileNotFoundError( + f"No schema files found in {schemas_dir} matching " + "'portable_microhaplotype_object_*.schema.json'" + ) + schema_path = available_schemas[-1] + with schema_path.open(encoding="utf-8") as schema_file: + schema = json.load(schema_file) + + checker = PMOChecker(schema) + checker.check_for_required_base_fields(pmo) + checker.validate_pmo_json(pmo) + + # Validate optional fields propagated through builders + specimen_entry = pmo["specimen_info"][0] + assert specimen_entry["host_age"] == 35 + assert specimen_entry["specimen_store_loc"] == "Freezer 1" + assert specimen_entry["custom_note"] == "Important specimen" + assert specimen_entry["parasite_density_info"][0]["parasite_density"] == 1200 + assert ( + specimen_entry["parasite_density_info"][0]["parasite_density_method"] + == "microscopy" + ) + + sequencing_entry = pmo["sequencing_info"][0] + assert sequencing_entry["seq_center"] == "UCSF Core" + assert sequencing_entry["library_kit"] == "MiSeq Reagent Kit v3" + + library_entry = pmo["library_sample_info"][0] + assert library_entry["run_accession"] == "ACC123" + assert library_entry["library_note"] == "High quality" + + genome_entry = pmo["targeted_genomes"][0] + assert genome_entry["chromosomes"] == ["chr1"] + assert genome_entry["gff_url"] == "https://example.org/genome.gff" + + target_entry = pmo["target_info"][0] + assert target_entry["gene_name"] == "geneA" + assert target_entry["amplicon_length"] == 250 + assert target_entry["insert_location"]["chrom"] == "chr1" + + representative_mhap = pmo["representative_microhaplotypes"]["targets"][0][ + "microhaplotypes" + ][0] + assert representative_mhap["microhaplotype_name"] == "mh1" + assert representative_mhap["masking"][0]["seq_segment_size"] == 2 + assert representative_mhap["custom_annotation"] == "custom" + + detected_mhap = pmo["detected_microhaplotypes"][0]["library_samples"][0][ + "target_results" + ][0]["mhaps"][0] + assert detected_mhap["umis"] == 10 + assert detected_mhap["custom_detected"] == "det-note" + + read_counts_run = pmo["read_counts_by_stage"][0] + assert read_counts_run["bioinformatics_run_id"] == 0 + library_counts = read_counts_run["read_counts_by_library_sample_by_stage"][0] + assert library_counts["library_sample_id"] == 0 + target_counts = library_counts["read_counts_for_targets"][0] + assert target_counts["target_id"] == 0 + stage_entry = target_counts["stages"][0] + assert stage_entry["quality_score"] == 0.98 + assert stage_entry["coverage_depth"] == 150 + + assert pmo["project_info"][0]["project_type"] == "Surveillance" diff --git a/tests/test_pmo_engine/test_pmo_checker.py b/tests/test_pmo_engine/test_pmo_checker.py index d6645c6..6332167 100755 --- a/tests/test_pmo_engine/test_pmo_checker.py +++ b/tests/test_pmo_engine/test_pmo_checker.py @@ -12,7 +12,7 @@ class TestPMOChecker(unittest.TestCase): def setUp(self): self.working_dir = os.path.dirname(os.path.abspath(__file__)) self.pmo_jsonschema_data = load_schema( - "portable_microhaplotype_object_v0.1.0.schema.json" + "portable_microhaplotype_object_v1.0.0.schema.json" ) self.checker = PMOChecker(self.pmo_jsonschema_data) diff --git a/tests/test_pmo_engine/test_pmo_exporter.py b/tests/test_pmo_engine/test_pmo_exporter.py new file mode 100755 index 0000000..84acb43 --- /dev/null +++ b/tests/test_pmo_engine/test_pmo_exporter.py @@ -0,0 +1,277 @@ +#!/usr/bin/env python3 +import hashlib +import os +import tempfile +import unittest +import json +import pandas as pd +from pmotools.pmo_engine.pmo_exporter import PMOExporter + + +def md5sum_of_fnp(filename): + with open(filename, "rb") as f: + return hashlib.md5(f.read()).hexdigest() + + +class TestPMOExporter(unittest.TestCase): + def setUp(self): + self.working_dir = os.path.dirname(os.path.abspath(__file__)) + self.test_dir = tempfile.TemporaryDirectory() + with open( + os.path.join( + os.path.dirname(self.working_dir), "data/combined_pmo_example.json" + ) + ) as f: + self.combined_pmo_data = json.load(f) + with open( + os.path.join( + os.path.dirname(self.working_dir), "data/minimum_pmo_example.json" + ) + ) as f: + self.minimum_pmo_data = json.load(f) + + def tearDown(self): + self.test_dir.cleanup() + + def test_list_library_sample_names_per_specimen_name(self): + id_counts = PMOExporter.list_library_sample_names_per_specimen_name( + self.minimum_pmo_data + ) + id_counts_check_data = { + "specimen_name": ["8025874217", "8025874266"], + "library_sample_name": ["8025874217_lib_name", "8025874266_lib_name"], + "library_sample_count": [1, 1], + } + id_counts_check_df = pd.DataFrame(id_counts_check_data) + pd.testing.assert_frame_equal(id_counts, id_counts_check_df) + + with open( + os.path.join( + os.path.dirname(self.working_dir), "data/minimum_pmo_example_2.json" + ) + ) as f: + pmo_data_2 = json.load(f) + id_counts_2 = PMOExporter.list_library_sample_names_per_specimen_name( + pmo_data_2 + ) + id_counts_check_data_2 = { + "specimen_name": ["5tbx", "XUC009"], + "library_sample_name": ["5tbx_lib_name", "XUC009_lib_name"], + "library_sample_count": [1, 1], + } + id_counts_check_df_2 = pd.DataFrame(id_counts_check_data_2) + pd.testing.assert_frame_equal(id_counts_check_df_2, id_counts_2) + + def test_extract_targets_insert_bed_loc(self): + all_target_inserts = PMOExporter.extract_targets_insert_bed_loc( + self.combined_pmo_data, sort_output=True + ) + output1_fnp = os.path.join(self.test_dir.name, "all_target_inserts_test1.bed") + PMOExporter.write_bed_locs(all_target_inserts, output1_fnp) + self.assertEqual("b7e477fe327ad7ae85f78ddaa66c313c", md5sum_of_fnp(output1_fnp)) + + all_target_inserts_8_6_10 = PMOExporter.extract_targets_insert_bed_loc( + self.combined_pmo_data, [8, 6, 10, 20], sort_output=False + ) + output2_fnp = os.path.join( + self.test_dir.name, "all_target_inserts_test2_8_6_10.bed" + ) + PMOExporter.write_bed_locs(all_target_inserts_8_6_10, output2_fnp) + self.assertEqual("9be1da64a4794489e08eca11c240d879", md5sum_of_fnp(output2_fnp)) + + all_target_inserts_8_6_10_sorted = PMOExporter.extract_targets_insert_bed_loc( + self.combined_pmo_data, [8, 6, 10, 20], sort_output=True + ) + output3_fnp = os.path.join( + self.test_dir.name, "all_target_inserts_test2_8_6_10_sorted.bed" + ) + PMOExporter.write_bed_locs(all_target_inserts_8_6_10_sorted, output3_fnp) + self.assertEqual("1831cc6a6f9f2bc4036d1dfad90771a1", md5sum_of_fnp(output3_fnp)) + + def test_extract_panels_insert_bed_loc(self): + all_target_inserts = PMOExporter.extract_panels_insert_bed_loc( + self.combined_pmo_data, sort_output=True + ) + output_fnp = os.path.join(self.test_dir.name, "all_panel_inserts_test1.bed") + PMOExporter.write_bed_locs(all_target_inserts, output_fnp) + self.assertEqual("52b1f79a3a89f8265573fa54b5a7ce57", md5sum_of_fnp(output_fnp)) + + def test_extract_alleles_per_sample_table(self): + allele_data = PMOExporter.extract_alleles_per_sample_table( + self.combined_pmo_data + ).sort_values( + by=[ + "bioinformatics_run_name", + "library_sample_name", + "target_name", + "mhap_id", + ] + ) + output_fnp = os.path.join( + self.test_dir.name, "extracted_alleles_per_sample_table_no_extra_args.csv" + ) + allele_data.to_csv(output_fnp, index=False) + self.assertEqual("2898d87133e2e381612f3c0dea70122f", md5sum_of_fnp(output_fnp)) + + allele_data_with_seq_reads = PMOExporter.extract_alleles_per_sample_table( + self.combined_pmo_data, + additional_microhap_fields=["reads"], + additional_representative_info_fields=["seq"], + ).sort_values( + by=[ + "bioinformatics_run_name", + "library_sample_name", + "target_name", + "mhap_id", + ] + ) + output_fnp = os.path.join( + self.test_dir.name, + "extracted_alleles_per_sample_table_no_extra_args_with_seq_reads.csv", + ) + allele_data_with_seq_reads.to_csv(output_fnp, index=False) + self.assertEqual("744c1c0233066f030881c8b595b9ad5c", md5sum_of_fnp(output_fnp)) + + allele_data_with_seq_reads_panel_id_collection_country = ( + PMOExporter.extract_alleles_per_sample_table( + self.combined_pmo_data, + additional_microhap_fields=["reads"], + additional_representative_info_fields=["seq"], + additional_library_sample_info_fields=["panel_id"], + additional_specimen_info_fields=["collection_country"], + ).sort_values( + by=[ + "bioinformatics_run_name", + "library_sample_name", + "target_name", + "mhap_id", + ] + ) + ) + output_fnp = os.path.join( + self.test_dir.name, + "extracted_alleles_per_sample_table_no_extra_args_with_seq_reads_panel_id_collection_country.csv", + ) + allele_data_with_seq_reads_panel_id_collection_country.to_csv( + output_fnp, index=False + ) + self.assertEqual("c425004244e6af1386b6e7776da76fed", md5sum_of_fnp(output_fnp)) + + def test_export_specimen_meta_table(self): + spec_table = PMOExporter.export_specimen_meta_table(self.minimum_pmo_data) + spec_table.to_csv(os.path.join(self.test_dir.name, "specimen_meta_table.csv")) + self.assertEqual( + "8f94b8b774696e26c4ff6c8086e616a4", + md5sum_of_fnp(os.path.join(self.test_dir.name, "specimen_meta_table.csv")), + ) + + def test_export_target_info_meta_table(self): + target_info_table = PMOExporter.export_target_info_meta_table( + self.minimum_pmo_data + ) + target_info_table.to_csv( + os.path.join(self.test_dir.name, "target_info_table.csv") + ) + self.assertEqual( + "cb0319482c9da5f9d8b22fba955ce1c8", + md5sum_of_fnp(os.path.join(self.test_dir.name, "target_info_table.csv")), + ) + + def test_export_panel_info_meta_table(self): + panel_info_table = PMOExporter.export_panel_info_meta_table( + self.minimum_pmo_data + ) + panel_info_table.to_csv( + os.path.join(self.test_dir.name, "panel_info_table.csv") + ) + self.assertEqual( + "e5127ecaf7fe7950395d6f3d45f1c82a", + md5sum_of_fnp(os.path.join(self.test_dir.name, "panel_info_table.csv")), + ) + + def test_export_library_sample_meta_table(self): + library_sample_table = PMOExporter.export_library_sample_meta_table( + self.minimum_pmo_data + ) + library_sample_table.to_csv( + os.path.join(self.test_dir.name, "library_sample_table.csv") + ) + self.assertEqual( + "7c433a74d215708e9339b5f6dece0bf3", + md5sum_of_fnp(os.path.join(self.test_dir.name, "library_sample_table.csv")), + ) + + def test_export_sequencing_info_meta_table(self): + sequencing_info_table = PMOExporter.export_sequencing_info_meta_table( + self.minimum_pmo_data + ) + sequencing_info_table.to_csv( + os.path.join(self.test_dir.name, "sequencing_info_table.csv") + ) + self.assertEqual( + "1cc6fb83227752454cfc3ba63eac503b", + md5sum_of_fnp( + os.path.join(self.test_dir.name, "sequencing_info_table.csv") + ), + ) + + def test_export_project_info_meta_table(self): + project_info_table = PMOExporter.export_project_info_meta_table( + self.minimum_pmo_data + ) + project_info_table.to_csv( + os.path.join(self.test_dir.name, "project_info_table.csv") + ) + print(project_info_table) + self.assertEqual( + "e533098411cbd96de2733668e8475ab8", + md5sum_of_fnp(os.path.join(self.test_dir.name, "project_info_table.csv")), + ) + + def test_export_specimen_travel_meta_table(self): + test_pmo_with_travel_info = { + "specimen_info": [ + { + "specimen_name": "spec1", + "travel_out_six_month": [ + { + "travel_country": "Kenya", + "travel_start_date": "2024-01", + "travel_end_date": "2024-02", + }, + { + "travel_country": "Kenya", + "travel_start_date": "2024-04", + "travel_end_date": "2024-06", + }, + ], + }, + { + "specimen_name": "spec2", + "travel_out_six_month": [ + { + "travel_country": "Tanzania", + "travel_start_date": "2024-02-15", + "travel_end_date": "2024-02-27", + } + ], + }, + ] + } + specimen_trable_info_table = PMOExporter.export_specimen_travel_meta_table( + test_pmo_with_travel_info + ) + specimen_trable_info_table.to_csv( + os.path.join(self.test_dir.name, "specimen_trable_info_table.csv") + ) + print(specimen_trable_info_table) + self.assertEqual( + "0305350d655184aa385d3d1ddc9b3600", + md5sum_of_fnp( + os.path.join(self.test_dir.name, "specimen_trable_info_table.csv") + ), + ) + + +if __name__ == "__main__": + unittest.main() diff --git a/tests/test_pmo_engine/test_pmo_processor.py b/tests/test_pmo_engine/test_pmo_processor.py index 13a7891..3b4348b 100755 --- a/tests/test_pmo_engine/test_pmo_processor.py +++ b/tests/test_pmo_engine/test_pmo_processor.py @@ -23,7 +23,7 @@ def setUp(self): self.working_dir = os.path.dirname(os.path.abspath(__file__)) self.test_dir = tempfile.TemporaryDirectory() self.pmo_jsonschema_data = load_schema( - "portable_microhaplotype_object_v0.1.0.schema.json" + "portable_microhaplotype_object_v1.0.0.schema.json" ) with open( os.path.join( @@ -41,42 +41,13 @@ def setUp(self): def tearDown(self): self.test_dir.cleanup() - def test_list_library_sample_names_per_specimen_name(self): - id_counts = PMOProcessor.list_library_sample_names_per_specimen_name( - self.minimum_pmo_data - ) - id_counts_check_data = { - "specimen_name": ["8025874217", "8025874266"], - "library_sample_name": ["8025874217", "8025874266"], - "library_sample_count": [1, 1], - } - id_counts_check_df = pd.DataFrame(id_counts_check_data) - pd.testing.assert_frame_equal(id_counts, id_counts_check_df) - - with open( - os.path.join( - os.path.dirname(self.working_dir), "data/minimum_pmo_example_2.json" - ) - ) as f: - pmo_data_2 = json.load(f) - id_counts_2 = PMOProcessor.list_library_sample_names_per_specimen_name( - pmo_data_2 - ) - id_counts_check_data_2 = { - "specimen_name": ["5tbx", "XUC009"], - "library_sample_name": ["5tbx", "XUC009"], - "library_sample_count": [1, 1], - } - id_counts_check_df_2 = pd.DataFrame(id_counts_check_data_2) - pd.testing.assert_frame_equal(id_counts_check_df_2, id_counts_2) - def test_count_targets_per_library_sample(self): targets_per_sample_counts = PMOProcessor.count_targets_per_library_sample( self.minimum_pmo_data ) targets_per_sample_check_data = { "bioinformatics_run_id": [0, 0], - "library_sample_name": ["8025874266", "8025874217"], + "library_sample_name": ["8025874266_lib_name", "8025874217_lib_name"], "target_number": [85, 99], } targets_per_sample_check_df = pd.DataFrame(targets_per_sample_check_data) @@ -89,7 +60,7 @@ def test_count_targets_per_library_sample(self): ) targets_per_sample_read_count_off1000_check_data = { "bioinformatics_run_id": [0, 0], - "library_sample_name": ["8025874266", "8025874217"], + "library_sample_name": ["8025874266_lib_name", "8025874217_lib_name"], "target_number": [61, 99], } targets_per_sample_read_count_off1000_check_df = pd.DataFrame( @@ -111,7 +82,7 @@ def test_count_targets_per_library_sample(self): ) targets_per_sample_check_data_2 = { "bioinformatics_run_id": [0, 0], - "library_sample_name": ["XUC009", "5tbx"], + "library_sample_name": ["XUC009_lib_name", "5tbx_lib_name"], "target_number": [98, 100], } targets_per_sample_check_df_2 = pd.DataFrame(targets_per_sample_check_data_2) @@ -124,7 +95,7 @@ def test_count_targets_per_library_sample(self): ) targets_per_sample_check_data_2_read_count_off200 = { "bioinformatics_run_id": [0, 0], - "library_sample_name": ["XUC009", "5tbx"], + "library_sample_name": ["XUC009_lib_name", "5tbx_lib_name"], "target_number": [96, 100], } targets_per_sample_check_df_2_read_count_off200 = pd.DataFrame( @@ -148,22 +119,22 @@ def test_count_targets_per_library_sample(self): [ { "bioinformatics_run_id": 0, - "library_sample_name": "8025874266", + "library_sample_name": "8025874266_lib_name", "target_number": 85, }, { "bioinformatics_run_id": 0, - "library_sample_name": "8025874217", + "library_sample_name": "8025874217_lib_name", "target_number": 99, }, { "bioinformatics_run_id": 1, - "library_sample_name": "XUC009", + "library_sample_name": "XUC009_lib_name", "target_number": 98, }, { "bioinformatics_run_id": 1, - "library_sample_name": "5tbx", + "library_sample_name": "5tbx_lib_name", "target_number": 100, }, ] @@ -338,101 +309,6 @@ def test_extract_allele_counts_freq_from_pmo(self): "cb34c7e1357e2e35024a89464b63f06c", ) - def test_extract_targets_insert_bed_loc(self): - all_target_inserts = PMOProcessor.extract_targets_insert_bed_loc( - self.combined_pmo_data, sort_output=True - ) - output1_fnp = os.path.join(self.test_dir.name, "all_target_inserts_test1.bed") - PMOProcessor.write_bed_locs(all_target_inserts, output1_fnp) - self.assertEqual("b7e477fe327ad7ae85f78ddaa66c313c", md5sum_of_fnp(output1_fnp)) - - all_target_inserts_8_6_10 = PMOProcessor.extract_targets_insert_bed_loc( - self.combined_pmo_data, [8, 6, 10, 20], sort_output=False - ) - output2_fnp = os.path.join( - self.test_dir.name, "all_target_inserts_test2_8_6_10.bed" - ) - PMOProcessor.write_bed_locs(all_target_inserts_8_6_10, output2_fnp) - self.assertEqual("9be1da64a4794489e08eca11c240d879", md5sum_of_fnp(output2_fnp)) - - all_target_inserts_8_6_10_sorted = PMOProcessor.extract_targets_insert_bed_loc( - self.combined_pmo_data, [8, 6, 10, 20], sort_output=True - ) - output3_fnp = os.path.join( - self.test_dir.name, "all_target_inserts_test2_8_6_10_sorted.bed" - ) - PMOProcessor.write_bed_locs(all_target_inserts_8_6_10_sorted, output3_fnp) - self.assertEqual("1831cc6a6f9f2bc4036d1dfad90771a1", md5sum_of_fnp(output3_fnp)) - - def test_extract_panels_insert_bed_loc(self): - all_target_inserts = PMOProcessor.extract_panels_insert_bed_loc( - self.combined_pmo_data, sort_output=True - ) - output_fnp = os.path.join(self.test_dir.name, "all_panel_inserts_test1.bed") - PMOProcessor.write_bed_locs(all_target_inserts, output_fnp) - self.assertEqual("52b1f79a3a89f8265573fa54b5a7ce57", md5sum_of_fnp(output_fnp)) - - def test_extract_alleles_per_sample_table(self): - allele_data = PMOProcessor.extract_alleles_per_sample_table( - self.combined_pmo_data - ).sort_values( - by=[ - "bioinformatics_run_name", - "library_sample_name", - "target_name", - "mhap_id", - ] - ) - output_fnp = os.path.join( - self.test_dir.name, "extracted_alleles_per_sample_table_no_extra_args.csv" - ) - allele_data.to_csv(output_fnp, index=False) - self.assertEqual("d1775ec03eb38743cd4dd92d0a832bff", md5sum_of_fnp(output_fnp)) - - allele_data_with_seq_reads = PMOProcessor.extract_alleles_per_sample_table( - self.combined_pmo_data, - additional_microhap_fields=["reads"], - additional_representative_info_fields=["seq"], - ).sort_values( - by=[ - "bioinformatics_run_name", - "library_sample_name", - "target_name", - "mhap_id", - ] - ) - output_fnp = os.path.join( - self.test_dir.name, - "extracted_alleles_per_sample_table_no_extra_args_with_seq_reads.csv", - ) - allele_data_with_seq_reads.to_csv(output_fnp, index=False) - self.assertEqual("0e5da30c561c748fb2553f852db76607", md5sum_of_fnp(output_fnp)) - - allele_data_with_seq_reads_panel_id_collection_country = ( - PMOProcessor.extract_alleles_per_sample_table( - self.combined_pmo_data, - additional_microhap_fields=["reads"], - additional_representative_info_fields=["seq"], - additional_library_sample_info_fields=["panel_id"], - additional_specimen_info_fields=["collection_country"], - ).sort_values( - by=[ - "bioinformatics_run_name", - "library_sample_name", - "target_name", - "mhap_id", - ] - ) - ) - output_fnp = os.path.join( - self.test_dir.name, - "extracted_alleles_per_sample_table_no_extra_args_with_seq_reads_panel_id_collection_country.csv", - ) - allele_data_with_seq_reads_panel_id_collection_country.to_csv( - output_fnp, index=False - ) - self.assertEqual("13aed17cbdff88f0a80c685c42d89cb8", md5sum_of_fnp(output_fnp)) - def test_extract_from_pmo_with_read_filter(self): pmo_data_filtered = PMOProcessor.extract_from_pmo_with_read_filter( self.combined_pmo_data, 1000 @@ -442,7 +318,7 @@ def test_extract_from_pmo_with_read_filter(self): ) with open(output_fnp, "w") as f: json.dump(pmo_data_filtered, f) - self.assertEqual("cde277533e44e64c3ef980106024275f", md5sum_of_fnp(output_fnp)) + self.assertEqual("879b1a0c62a77a8fcc910a21d8ec9de6", md5sum_of_fnp(output_fnp)) checker = PMOChecker(self.pmo_jsonschema_data) checker.validate_pmo_json(pmo_data_filtered) @@ -455,7 +331,7 @@ def test_filter_pmo_by_target_ids(self): ) with open(output_fnp, "w") as f: json.dump(pmo_data_select_targets, f) - self.assertEqual("7bb125130685a955d658fe5c03634024", md5sum_of_fnp(output_fnp)) + self.assertEqual("d9525c0a067d8a291af8bf89b80bfb42", md5sum_of_fnp(output_fnp)) # check pmo extracted against PMO schema checker = PMOChecker(self.pmo_jsonschema_data) checker.validate_pmo_json(pmo_data_select_targets) @@ -469,7 +345,7 @@ def test_filter_pmo_by_target_names(self): ) with open(output_fnp, "w") as f: json.dump(pmo_data_select_targets, f) - self.assertEqual("4d546b332b264cf58ed0d44a687728b9", md5sum_of_fnp(output_fnp)) + self.assertEqual("853d0806237d4078abc601f0c7dcdc3c", md5sum_of_fnp(output_fnp)) # check pmo extracted against PMO schema checker = PMOChecker(self.pmo_jsonschema_data) checker.validate_pmo_json(pmo_data_select_targets) @@ -483,7 +359,7 @@ def test_filter_pmo_by_library_sample_ids(self): ) with open(output_fnp, "w") as f: json.dump(pmo_data_select_targets, f) - self.assertEqual("96e9ddc3a3d582617d856b01dd3f5083", md5sum_of_fnp(output_fnp)) + self.assertEqual("b942daeac359bbe063563f8692986d1c", md5sum_of_fnp(output_fnp)) # check pmo extracted against PMO schema checker = PMOChecker(self.pmo_jsonschema_data) checker.validate_pmo_json(pmo_data_select_targets) @@ -491,7 +367,7 @@ def test_filter_pmo_by_library_sample_ids(self): def test_filter_pmo_by_library_sample_names(self): pmo_data_select_library_sample_names = ( PMOProcessor.filter_pmo_by_library_sample_names( - self.combined_pmo_data, {"8025874217", "XUC009"} + self.combined_pmo_data, {"8025874217_lib_name", "XUC009_lib_name"} ) ) output_fnp = os.path.join( @@ -499,7 +375,7 @@ def test_filter_pmo_by_library_sample_names(self): ) with open(output_fnp, "w") as f: json.dump(pmo_data_select_library_sample_names, f) - self.assertEqual("f7637b5f2b100ca316102c13283493b0", md5sum_of_fnp(output_fnp)) + self.assertEqual("99873ba369fa94722969ab9ce6581287", md5sum_of_fnp(output_fnp)) # check pmo extracted against PMO schema checker = PMOChecker(self.pmo_jsonschema_data) checker.validate_pmo_json(pmo_data_select_library_sample_names) @@ -513,7 +389,7 @@ def test_filter_pmo_by_specimen_ids(self): ) with open(output_fnp, "w") as f: json.dump(pmo_data_select_targets, f) - self.assertEqual("ce94ed180bd6672d69371e3e0fcf0c4e", md5sum_of_fnp(output_fnp)) + self.assertEqual("b5d1d39d508a7c7c1d8ccce65c52bc5d", md5sum_of_fnp(output_fnp)) # check pmo extracted against PMO schema checker = PMOChecker(self.pmo_jsonschema_data) checker.validate_pmo_json(pmo_data_select_targets) @@ -527,7 +403,7 @@ def test_filter_pmo_by_specimen_names(self): ) with open(output_fnp, "w") as f: json.dump(pmo_data_select_targets, f) - self.assertEqual("ce94ed180bd6672d69371e3e0fcf0c4e", md5sum_of_fnp(output_fnp)) + self.assertEqual("b5d1d39d508a7c7c1d8ccce65c52bc5d", md5sum_of_fnp(output_fnp)) # check pmo extracted against PMO schema checker = PMOChecker(self.pmo_jsonschema_data) checker.validate_pmo_json(pmo_data_select_targets) @@ -544,7 +420,7 @@ def test_extract_from_pmo_samples_with_meta_groupings(self): ) with open(output_fnp, "w") as f: json.dump(pmo_data_select_meta, f) - self.assertEqual("b7c0c2c1c5fbfd9a023af3dfd6bf44c0", md5sum_of_fnp(output_fnp)) + self.assertEqual("338e838297d79a8038d8d5392a6ca57e", md5sum_of_fnp(output_fnp)) # check pmo extracted against PMO schema checker = PMOChecker(self.pmo_jsonschema_data) checker.validate_pmo_json(pmo_data_select_meta) @@ -577,7 +453,15 @@ def test_get_sorted_library_sample_names(self): ) as f: pmo_data_combined = json.load(f) names = PMOProcessor.get_sorted_library_sample_names(pmo_data_combined) - self.assertEqual(["5tbx", "8025874217", "8025874266", "XUC009"], names) + self.assertEqual( + [ + "5tbx_lib_name", + "8025874217_lib_name", + "8025874266_lib_name", + "XUC009_lib_name", + ], + names, + ) def test_sorted_get_target_names(self): with open( @@ -731,7 +615,15 @@ def test_get_library_sample_names(self): ) as f: pmo_data_combined = json.load(f) names = PMOProcessor.get_library_sample_names(pmo_data_combined) - self.assertEqual(["8025874217", "8025874266", "5tbx", "XUC009"], names) + self.assertEqual( + [ + "8025874217_lib_name", + "8025874266_lib_name", + "5tbx_lib_name", + "XUC009_lib_name", + ], + names, + ) def test_get_target_names(self): with open( @@ -857,6 +749,124 @@ def test_get_panel_names(self): names = PMOProcessor.get_panel_names(pmo_data_combined) self.assertEqual(["heomev1"], names) + def test_count_targets_per_panel_single_panel_single_reaction(self): + """Test count_targets_per_panel with a single panel containing one reaction""" + # Create a simple PMO with one panel and one reaction + test_pmo = { + "panel_info": [ + { + "panel_name": "test_panel_1", + "reactions": [ + { + "reaction_name": "reaction_1", + "panel_targets": [0, 1, 2, 3, 4], + } + ], + } + ] + } + + result = PMOProcessor.count_targets_per_panel(test_pmo) + + expected_data = {"panel_name": ["test_panel_1"], "panel_target_count": [5]} + expected_df = pd.DataFrame(expected_data) + + pd.testing.assert_frame_equal(result, expected_df) + + def test_count_targets_per_panel_single_panel_multiple_reactions(self): + """Test count_targets_per_panel with a single panel containing multiple reactions""" + # Create a PMO with one panel and multiple reactions + test_pmo = { + "panel_info": [ + { + "panel_name": "test_panel_1", + "reactions": [ + {"reaction_name": "reaction_1", "panel_targets": [0, 1, 2]}, + {"reaction_name": "reaction_2", "panel_targets": [3, 4, 5, 6]}, + {"reaction_name": "reaction_3", "panel_targets": [7, 8]}, + ], + } + ] + } + + result = PMOProcessor.count_targets_per_panel(test_pmo) + + expected_data = { + "panel_name": ["test_panel_1"], + "panel_target_count": [9], # 3 + 4 + 2 = 9 total targets + } + expected_df = pd.DataFrame(expected_data) + + pd.testing.assert_frame_equal(result, expected_df) + + def test_count_targets_per_panel_multiple_panels(self): + """Test count_targets_per_panel with multiple panels""" + # Create a PMO with multiple panels + test_pmo = { + "panel_info": [ + { + "panel_name": "panel_A", + "reactions": [ + {"reaction_name": "reaction_1", "panel_targets": [0, 1, 2, 3]} + ], + }, + { + "panel_name": "panel_B", + "reactions": [ + {"reaction_name": "reaction_1", "panel_targets": [4, 5]}, + { + "reaction_name": "reaction_2", + "panel_targets": [6, 7, 8, 9, 10], + }, + ], + }, + { + "panel_name": "panel_C", + "reactions": [ + {"reaction_name": "reaction_1", "panel_targets": [11]} + ], + }, + ] + } + + result = PMOProcessor.count_targets_per_panel(test_pmo) + + expected_data = { + "panel_name": ["panel_A", "panel_B", "panel_C"], + "panel_target_count": [4, 7, 1], # 4, (2+5), 1 + } + expected_df = pd.DataFrame(expected_data) + + pd.testing.assert_frame_equal(result, expected_df) + + def test_count_targets_per_panel_with_real_data_structure(self): + """Test count_targets_per_panel with realistic PMO data structure""" + # Create a realistic PMO structure similar to the real data + # Based on the real data structure with one panel containing 100 targets + test_pmo = { + "panel_info": [ + { + "panel_name": "heomev1", + "reactions": [ + { + "panel_targets": list(range(100)), # targets 0-99 + "reaction_name": "full", + } + ], + } + ] + } + + result = PMOProcessor.count_targets_per_panel(test_pmo) + + expected_data = { + "panel_name": ["heomev1"], + "panel_target_count": [100], # targets 0-99 = 100 total + } + expected_df = pd.DataFrame(expected_data) + + pd.testing.assert_frame_equal(result, expected_df) + if __name__ == "__main__": unittest.main() diff --git a/tests/test_pmo_engine/test_pmo_reader.py b/tests/test_pmo_engine/test_pmo_reader.py index edb5740..d8d4eb4 100755 --- a/tests/test_pmo_engine/test_pmo_reader.py +++ b/tests/test_pmo_engine/test_pmo_reader.py @@ -85,7 +85,7 @@ def test_combine_multiple_pmos(self): combined_pmo = PMOReader.combine_multiple_pmos(pmo_data_list) # validate with schema pmo_jsonschema_data = load_schema( - "portable_microhaplotype_object_v0.1.0.schema.json" + "portable_microhaplotype_object_v1.0.0.schema.json" ) checker = PMOChecker(pmo_jsonschema_data) checker.validate_pmo_json(combined_pmo) @@ -102,6 +102,48 @@ def test_combine_multiple_pmos(self): self.assertEqual(expected_pmo, combined_pmo) + def test_combine_multiple_pmos_fail_dup_specimen_names(self): + # the two files below have same specimen_names but have different meta so will fail when trying to combine + pmo_data_list = PMOReader.read_in_pmos( + [ + os.path.join( + os.path.dirname(self.working_dir), + "data/minimum_pmo_example_2_for_spec_dup_testing.json", + ), + os.path.join( + os.path.dirname(self.working_dir), "data/minimum_pmo_example_2.json" + ), + ] + ) + self.assertRaises(Exception, PMOReader.combine_multiple_pmos, pmo_data_list) + + def test_combine_multiple_pmos_fail_dup_library_sample_names(self): + # the two files below have same library sample names so will fail for duplicated library_sample_names + pmo_data_list_2 = PMOReader.read_in_pmos( + [ + os.path.join( + os.path.dirname(self.working_dir), + "data/minimum_pmo_example_2_for_library_sample_dup_testing.json", + ), + os.path.join( + os.path.dirname(self.working_dir), "data/minimum_pmo_example_2.json" + ), + ] + ) + self.assertRaises(Exception, PMOReader.combine_multiple_pmos, pmo_data_list_2) + + def test_combine_multiple_pmos_fail_for_combine_only_one_file(self): + # will fail for only having 1 PMO + pmo_data_list_2 = PMOReader.read_in_pmos( + [ + os.path.join( + os.path.dirname(self.working_dir), + "data/minimum_pmo_example_2_for_library_sample_dup_testing.json", + ) + ] + ) + self.assertRaises(Exception, PMOReader.combine_multiple_pmos, pmo_data_list_2) + if __name__ == "__main__": unittest.main() diff --git a/tests/test_pmo_engine/test_pmo_writer.py b/tests/test_pmo_engine/test_pmo_writer.py index f69fe31..5e157e7 100755 --- a/tests/test_pmo_engine/test_pmo_writer.py +++ b/tests/test_pmo_engine/test_pmo_writer.py @@ -53,7 +53,7 @@ def test_write_out_pmo(self): PMOWriter.write_out_pmo(pmo_data, output_fnp, True) with open(output_fnp, "rb") as file_to_check: md5_returned = hashlib.md5(file_to_check.read()).hexdigest() - self.assertEqual("f56b922855f471346376e6d928894e4d", md5_returned) + self.assertEqual("947659479b1924a40e91dedcb5f558fb", md5_returned) def test_write_out_pmo_gzip(self): with open( @@ -68,7 +68,7 @@ def test_write_out_pmo_gzip(self): with gzip.open(output_fnp, "rb") as f: for chunk in iter(lambda: f.read(4096), b""): hash_md5.update(chunk) - self.assertEqual("f56b922855f471346376e6d928894e4d", hash_md5.hexdigest()) + self.assertEqual("947659479b1924a40e91dedcb5f558fb", hash_md5.hexdigest()) def test_write_out_pmo_fail_overwrite(self): with open(