Portable Microhaplotype Object (PMO)Portable Microhaplotype Object (PMO) Portable Microhaplotype Object (PMO)
  • Home
  • Format Info
    • Overview of Format

    • PMO fields overview
    • PMO within a Data Analysis Ecosystem
    • History of Format Development

    • History of how PMO Format was derived
    • Overview of Format For Bioinformaticians

    • PMO Examples
    • Format Overview For Developers
  • PMO App
  • pmotools-python
    • Overview
    • Installation
    • Manual
    • Python Interface Tutorials
    • Building a PMO with minimum required fields
    • Updating the Specimen Meta Information in a minimum PMO
    • Building a PMO including optional sections and fields
    • Getting basic information from a PMO file
    • Command line Interface Tutorials
    • Command line interface guide
    • Extracting allele tables from a PMO
    • Subsetting a PMO
    • Getting basic information from a PMO
    • Extracting panel info from PMO
    • Handling Multiple PMOs
    • Validating PMO files
  • Resources
    • References
    • Documentation
    • Documentation Source Code
    • Comment or Report an issue for Documentation

    • pmotools-python
    • pmotools-python Source Code
    • Comment or Report an issue for pmotools-python

Contents

  • Python implementation
  • Tools
  • Format overview
    • PortableMicrohaplotypeObject
    • BioMethod
    • BioinformaticsMethodInfo
    • BioinformaticsRunInfo
    • DetectedMicrohaplotypes
    • DetectedMicrohaplotypesForSample
    • DetectedMicrohaplotypesForTarget
    • GenomeInfo
    • GenomicLocation
    • LibrarySampleInfo
    • MarkerOfInterest
    • MaskingInfo
    • MicrohaplotypeForTarget
    • PanelInfo
    • ParasiteDensity
    • PlateInfo
    • PmoGenerationMethod
    • PmoHeader
    • PrimerInfo
    • ProjectInfo
    • ProteinVariant
    • Pseudocigar
    • ReactionInfo
    • ReadCountsByStage
    • ReadCountsByStageForLibrarySample
    • ReadCountsByStageForTarget
    • RepresentativeMicrohaplotype
    • RepresentativeMicrohaplotypes
    • RepresentativeMicrohaplotypesForTarget
    • SequencingInfo
    • SpecimenInfo
    • StageReadCounts
    • TargetInfo
    • TravelInfo

Format Overview For Developers

  • Show All Code
  • Hide All Code

  • View Source

Python implementation

Linkml generates a datamodel file with all classes: https://github.com/PlasmoGenEpi/portable-micorhaplotype-object/blob/main/src/plasmo_tar_amp_schema/datamodel/plasmo_tar_amp_schema.py

Tools

Started development of a tool called pmotools. Python implementation can be found here: https://github.com/PlasmoGenEpi/pmotools-python/tree/develop

Format overview

Below is an overview of the entire format currently in development which is under active development and optimization. Please send questions to info@plasmogenepi.org

PMO PMO BioMethod_NODE BioMethodtypelistorsingle valuefieldsrequiredstringsingleprogram_versionstringsingleprogramoptionalstringlistadditional_argumentstringsingleprogram_descriptionstringsingleprogram_url BioinformaticsMethodInfo_NODE BioinformaticsMethodInfotypelistorsingle valuefieldsrequiredBioMethodlistmethods BioinformaticsMethodInfo_NODE:methods->BioMethod_NODE:BioMethod BioinformaticsRunInfo_NODE BioinformaticsRunInfotypelistorsingle valuefieldsrequiredintegersinglebioinformatics_methods_idstringsinglebioinformatics_run_nameoptionalstringsinglerun_date DetectedMicrohaplotypes_NODE DetectedMicrohaplotypestypelistorsingle valuefieldsrequiredDetectedMicrohaplotypesForSamplelistlibrary_samplesoptionalintegersinglebioinformatics_run_id DetectedMicrohaplotypesForSample_NODE DetectedMicrohaplotypesForSampletypelistorsingle valuefieldsrequiredintegersinglelibrary_sample_idDetectedMicrohaplotypesForTargetlisttarget_results DetectedMicrohaplotypes_NODE:library_samples->DetectedMicrohaplotypesForSample_NODE:DetectedMicrohaplotypesForSample DetectedMicrohaplotypesForTarget_NODE DetectedMicrohaplotypesForTargettypelistorsingle valuefieldsrequiredintegersinglemhaps_target_idMicrohaplotypeForTargetlistmhaps DetectedMicrohaplotypesForSample_NODE:target_results->DetectedMicrohaplotypesForTarget_NODE:DetectedMicrohaplotypesForTarget MicrohaplotypeForTarget_NODE MicrohaplotypeForTargettypelistorsingle valuefieldsrequiredintegersinglemhap_idintegersinglereadsoptionalintegersingleumis DetectedMicrohaplotypesForTarget_NODE:mhaps->MicrohaplotypeForTarget_NODE:MicrohaplotypeForTarget GenomeInfo_NODE GenomeInfotypelistorsingle valuefieldsrequiredstringsinglenamestringsinglegenome_versionintegerlisttaxon_idstringsingleurloptionalstringlistchromosomesstringsinglegff_url GenomicLocation_NODE GenomicLocationtypelistorsingle valuefieldsrequiredintegersinglegenome_idstringsinglechromintegersinglestartintegersingleendoptionalstringsinglealt_seqstringsingleref_seqstringsinglestrand LibrarySampleInfo_NODE LibrarySampleInfotypelistorsingle valuefieldsrequiredintegersinglespecimen_idintegersinglepanel_idstringsinglelibrary_sample_nameoptionalstringlistalternate_identifiersstringsingleexperiment_accessionstringsinglefastqs_locPlateInfosinglelibrary_prep_plate_infoParasiteDensitylistqpcr_parasite_density_infostringsinglerun_accessionintegersinglesequencing_info_id ParasiteDensity_NODE ParasiteDensitytypelistorsingle valuefieldsrequiredstringsingleparasite_density_methodnumbersingleparasite_densityoptionalstringsingledate_measuredstringsingledensity_method_comments LibrarySampleInfo_NODE:qpcr_parasite_density_info->ParasiteDensity_NODE:ParasiteDensity PlateInfo_NODE PlateInfotypelistorsingle valuefieldsrequiredstringsingleplate_namestringsingleplate_rowintegersingleplate_col LibrarySampleInfo_NODE:library_prep_plate_info->PlateInfo_NODE:PlateInfo MarkerOfInterest_NODE MarkerOfInteresttypelistorsingle valuefieldsrequiredGenomicLocationsinglemarker_locationoptionalstringlistassociations MarkerOfInterest_NODE:marker_location->GenomicLocation_NODE:GenomicLocation MaskingInfo_NODE MaskingInfotypelistorsingle valuefieldsrequiredintegersingleseq_startintegersingleseq_segment_sizeintegersinglereplacement_sizeoptionalstringsinglemasking_generation_description PanelInfo_NODE PanelInfotypelistorsingle valuefieldsrequiredReactionInfolistreactionsstringsinglepanel_name ReactionInfo_NODE ReactionInfotypelistorsingle valuefieldsrequiredintegerlistpanel_targetsstringsinglereaction_name PanelInfo_NODE:reactions->ReactionInfo_NODE:ReactionInfo PmoGenerationMethod_NODE PmoGenerationMethodtypelistorsingle valuefieldsrequiredstringsingleprogram_versionstringsingleprogram_name PmoHeader_NODE PmoHeadertypelistorsingle valuefieldsrequiredstringsinglepmo_versionoptionalstringsinglecreation_datePmoGenerationMethodsinglegeneration_method PmoHeader_NODE:generation_method->PmoGenerationMethod_NODE:PmoGenerationMethod PortableMicrohaplotypeObject_NODE PortableMicrohaplotypeObjecttypelistorsingle valuefieldsrequiredLibrarySampleInfolistlibrary_sample_infoSpecimenInfolistspecimen_infoPanelInfolistpanel_infoTargetInfolisttarget_infoRepresentativeMicrohaplotypessinglerepresentative_microhaplotypesDetectedMicrohaplotypeslistdetected_microhaplotypesPmoHeadersinglepmo_headeroptionalBioinformaticsMethodInfolistbioinformatics_methods_infoBioinformaticsRunInfolistbioinformatics_run_infoProjectInfolistproject_infoReadCountsByStagelistread_counts_by_stageSequencingInfolistsequencing_infoGenomeInfolisttargeted_genomes PortableMicrohaplotypeObject_NODE:bioinformatics_methods_info->BioinformaticsMethodInfo_NODE:BioinformaticsMethodInfo PortableMicrohaplotypeObject_NODE:bioinformatics_run_info->BioinformaticsRunInfo_NODE:BioinformaticsRunInfo PortableMicrohaplotypeObject_NODE:detected_microhaplotypes->DetectedMicrohaplotypes_NODE:DetectedMicrohaplotypes PortableMicrohaplotypeObject_NODE:targeted_genomes->GenomeInfo_NODE:GenomeInfo PortableMicrohaplotypeObject_NODE:library_sample_info->LibrarySampleInfo_NODE:LibrarySampleInfo PortableMicrohaplotypeObject_NODE:panel_info->PanelInfo_NODE:PanelInfo PortableMicrohaplotypeObject_NODE:pmo_header->PmoHeader_NODE:PmoHeader ProjectInfo_NODE ProjectInfotypelistorsingle valuefieldsrequiredstringsingleproject_namestringsingleproject_descriptionoptionalstringsingleBioProject_accessionstringsingleproject_collector_chief_scientiststringlistproject_contributorsstringsingleproject_type PortableMicrohaplotypeObject_NODE:project_info->ProjectInfo_NODE:ProjectInfo ReadCountsByStage_NODE ReadCountsByStagetypelistorsingle valuefieldsrequiredReadCountsByStageForLibrarySamplelistread_counts_by_library_sample_by_stageoptionalintegersinglebioinformatics_run_id PortableMicrohaplotypeObject_NODE:read_counts_by_stage->ReadCountsByStage_NODE:ReadCountsByStage RepresentativeMicrohaplotypes_NODE RepresentativeMicrohaplotypestypelistorsingle valuefieldsrequiredRepresentativeMicrohaplotypesForTargetlisttargets PortableMicrohaplotypeObject_NODE:representative_microhaplotypes->RepresentativeMicrohaplotypes_NODE:RepresentativeMicrohaplotypes SequencingInfo_NODE SequencingInfotypelistorsingle valuefieldsrequiredstringsinglesequencing_info_namestringsingleseq_platformstringsingleseq_instrument_modelstringsinglelibrary_layoutstringsinglelibrary_strategystringsinglelibrary_sourcestringsinglelibrary_selectionoptionalstringsinglelibrary_kitstringsinglelibrary_screenstringsinglenucl_acid_ampstringsinglenucl_acid_amp_datestringsinglenucl_acid_extstringsinglenucl_acid_ext_datestringsinglepcr_condstringsingleseq_centerstringsingleseq_date PortableMicrohaplotypeObject_NODE:sequencing_info->SequencingInfo_NODE:SequencingInfo SpecimenInfo_NODE SpecimenInfotypelistorsingle valuefieldsrequiredstringsinglespecimen_nameoptionalstringlistalternate_identifiersbooleansingleblood_mealstringsinglecollection_countrystringsinglecollection_datestringlistdrug_usagestringsingleenv_broad_scalestringsingleenv_local_scalestringsingleenv_mediumstringsinglegeo_admin1stringsinglegeo_admin2stringsinglegeo_admin3booleansinglegravidintegersinglegraviditybooleansinglehas_travel_out_six_monthnumbersinglehost_agestringsinglehost_sexstringsinglehost_subject_nameintegersinglehost_taxon_idstringsinglelat_lonParasiteDensitylistparasite_density_infointegersingleproject_idstringsinglespecimen_accessionstringsinglespecimen_collect_devicestringlistspecimen_commentsstringsinglespecimen_store_locintegerlistspecimen_taxon_idstringsinglespecimen_typePlateInfosinglestorage_plate_infoTravelInfolisttravel_out_six_monthstringlisttreatment_status PortableMicrohaplotypeObject_NODE:specimen_info->SpecimenInfo_NODE:SpecimenInfo TargetInfo_NODE TargetInfotypelistorsingle valuefieldsrequiredstringsingletarget_namePrimerInfosingleforward_primerPrimerInfosinglereverse_primeroptionalstringsinglegene_nameGenomicLocationsingleinsert_locationMarkerOfInterestlistmarkers_of_intereststringlisttarget_attributes PortableMicrohaplotypeObject_NODE:target_info->TargetInfo_NODE:TargetInfo PrimerInfo_NODE PrimerInfotypelistorsingle valuefieldsrequiredstringsingleseqoptionalGenomicLocationsinglelocation PrimerInfo_NODE:location->GenomicLocation_NODE:GenomicLocation ProteinVariant_NODE ProteinVarianttypelistorsingle valuefieldsrequiredGenomicLocationsingleprotein_locationoptionalstringsinglealternative_gene_nameGenomicLocationsinglecodon_genomic_locationstringsinglegene_name ProteinVariant_NODE:codon_genomic_location->GenomicLocation_NODE:GenomicLocation ProteinVariant_NODE:protein_location->GenomicLocation_NODE:GenomicLocation Pseudocigar_NODE Pseudocigartypelistorsingle valuefieldsrequiredstringsinglepseudocigar_seqGenomicLocationsingleref_locoptionalstringsinglepseudocigar_generation_description Pseudocigar_NODE:ref_loc->GenomicLocation_NODE:GenomicLocation ReadCountsByStageForLibrarySample_NODE ReadCountsByStageForLibrarySampletypelistorsingle valuefieldsrequiredintegersinglelibrary_sample_idintegersingletotal_raw_countoptionalReadCountsByStageForTargetlistread_counts_for_targets ReadCountsByStage_NODE:read_counts_by_library_sample_by_stage->ReadCountsByStageForLibrarySample_NODE:ReadCountsByStageForLibrarySample ReadCountsByStageForTarget_NODE ReadCountsByStageForTargettypelistorsingle valuefieldsrequiredintegersingletarget_idStageReadCountsliststages ReadCountsByStageForLibrarySample_NODE:read_counts_for_targets->ReadCountsByStageForTarget_NODE:ReadCountsByStageForTarget StageReadCounts_NODE StageReadCountstypelistorsingle valuefieldsrequiredintegersinglereadsstringsinglestage ReadCountsByStageForTarget_NODE:stages->StageReadCounts_NODE:StageReadCounts RepresentativeMicrohaplotype_NODE RepresentativeMicrohaplotypetypelistorsingle valuefieldsrequiredstringsingleseqoptionalstringlistalt_annotationsProteinVariantlistassociated_protein_variantsGenomicLocationlistassociated_seq_variantsMaskingInfolistmaskingstringsinglemicrohaplotype_namePseudocigarsinglepseudocigarstringsinglequality RepresentativeMicrohaplotype_NODE:associated_seq_variants->GenomicLocation_NODE:GenomicLocation RepresentativeMicrohaplotype_NODE:masking->MaskingInfo_NODE:MaskingInfo RepresentativeMicrohaplotype_NODE:associated_protein_variants->ProteinVariant_NODE:ProteinVariant RepresentativeMicrohaplotype_NODE:pseudocigar->Pseudocigar_NODE:Pseudocigar RepresentativeMicrohaplotypesForTarget_NODE RepresentativeMicrohaplotypesForTargettypelistorsingle valuefieldsrequiredintegersingletarget_idRepresentativeMicrohaplotypelistmicrohaplotypesoptionalGenomicLocationsinglemhap_location RepresentativeMicrohaplotypes_NODE:targets->RepresentativeMicrohaplotypesForTarget_NODE:RepresentativeMicrohaplotypesForTarget RepresentativeMicrohaplotypesForTarget_NODE:mhap_location->GenomicLocation_NODE:GenomicLocation RepresentativeMicrohaplotypesForTarget_NODE:microhaplotypes->RepresentativeMicrohaplotype_NODE:RepresentativeMicrohaplotype SpecimenInfo_NODE:parasite_density_info->ParasiteDensity_NODE:ParasiteDensity SpecimenInfo_NODE:storage_plate_info->PlateInfo_NODE:PlateInfo TravelInfo_NODE TravelInfotypelistorsingle valuefieldsrequiredstringsingletravel_countrystringsingletravel_start_datestringsingletravel_end_dateoptionalnumbersinglebed_net_usagestringsinglegeo_admin1stringsinglegeo_admin2stringsinglegeo_admin3stringsinglelat_lon SpecimenInfo_NODE:travel_out_six_month->TravelInfo_NODE:TravelInfo TargetInfo_NODE:insert_location->GenomicLocation_NODE:GenomicLocation TargetInfo_NODE:markers_of_interest->MarkerOfInterest_NODE:MarkerOfInterest TargetInfo_NODE:forward_primer->PrimerInfo_NODE:PrimerInfo TargetInfo_NODE:reverse_primer->PrimerInfo_NODE:PrimerInfo

PortableMicrohaplotypeObject

https://plasmogenepi.github.io/portable-microhaplotype-object/PortableMicrohaplotypeObject/
Show PortableMicrohaplotypeObject fields

Required

  • library_sample_info (type=list of LibrarySampleInfo)
    • a list of libraries of all the seq/amp of the specimens within this PMO file
  • specimen_info (type=list of SpecimenInfo)
    • a list of all the specimens within this PMO file
  • panel_info (type=list of PanelInfo)
    • a list of info on the panels
  • target_info (type=list of TargetInfo)
    • a list of info on the targets
  • representative_microhaplotypes (type=RepresentativeMicrohaplotypes)
    • a list of the information on the representative microhaplotypes
  • detected_microhaplotypes (type=list of DetectedMicrohaplotypes)
    • the microhaplotypes detected in this projects
  • pmo_header (type=PmoHeader)
    • the PMO information for this file including version etc

Optional

  • bioinformatics_methods_info (type=list of BioinformaticsMethodInfo)
    • the bioinformatics pipeline/methods used to generated the microhaplotype analysis for this project
  • bioinformatics_run_info (type=list of BioinformaticsRunInfo)
    • the runtime info for the bioinformatics pipeline used to generated the microhaplotypes analysis for this project
  • project_info (type=list of ProjectInfo)
    • the information about the projects stored in this PMO
  • read_counts_by_stage (type=list of ReadCountsByStage)
    • the read counts for library_samples for different stages of the pipeline
  • sequencing_info (type=list of SequencingInfo)
    • a list of sequencing infos for this PMO file
  • targeted_genomes (type=list of GenomeInfo)
    • a list of genomes that any genomic location information refers to

Example

Code
{
    "pmo_header": {},
    "targeted_genomes": [],
    "target_info": [],
    "panel_info": [],
    "sequencing_info": [],
    "project_info": [],
    "specimen_info": [],
    "library_sample_info": [],
    "bioinformatics_methods_info": [],
    "bioinformatics_run_info": [],
    "representative_microhaplotypes": {},
    "detected_microhaplotypes": [],
    "read_counts_by_stage": []
}
Code
{
    "pmo_header": {},
    "target_info": [],
    "panel_info": [],
    "specimen_info": [],
    "library_sample_info": [],
    "representative_microhaplotypes": {},
    "detected_microhaplotypes": [],
}
Code
{
  "pmo_header": {
    "pmo_version": "1.1.0",
    "creation_date": "2026-05-15",
    "generation_method": {
      "program_name": "pmotools-python",
      "program_version": "1.1.0"
    }
  },
  
  "library_sample_info": [
      {
      "library_sample_name": "SRR30825770",
      "specimen_id": 0,
      "panel_id": 0
    },
    ....
  ],
  "specimen_info": [
      {
      "specimen_name": "SRR30825770"
    },
    ....
  ],
  "panel_info": [
    {
      "panel_name": "staph_aureus_Furstenau2025",
      "reactions": [
        {
          "reaction_name": "full",
          "panel_targets": [
            0,
            1,
            .....
          ]
        }
      ]
    }
  ],
  "target_info":[
      {
      "target_name": "SA_131432",
      "forward_primer": {
        "seq": "GTCCAGGTAGCATGATT"
      },
      "reverse_primer": {
        "seq": "TGTCATACCAGTTAGGAATCACA"
      }
    },
    ....
  ],
  "representative_microhaplotypes":{
      "targets": [
      {
        "microhaplotypes": [
          {
            "seq": "CAATATAATAACCTAATAAAATGTTTAGGTCAACCTAAATTTATTTTAATTTTTTTAAAAGTATGAATTATTATGTTGAACGTTCGATTTAATATTAAGAAAAA"
          },
        ],
        "target_id": 8
      },
      ....
      ]
  },
  "detected_microhaplotypes": [
      {
      "library_samples": [
        {
          "library_sample_id" : 1,
          "target_results": [
            {
              "mhaps_target_id": 0,
              "mhaps": [
                {
                  "mhap_id": 6,
                  "reads": 428
                }
              ]
            }, 
            ....
         ]
        }
        ....
      ]
      }
    ...
  ]
}


BioMethod

https://plasmogenepi.github.io/portable-microhaplotype-object/BioMethod/
Show BioMethod fields

Required

  • program_version (type=string)
    • the version of program, should be in the format of v[MAJOR].[MINOR].[PATCH]
  • program (type=string)
    • name of the program used for this portion of the pipeline

Optional

  • additional_argument (type=list of string)
    • any additional arguments that differ from the default arguments
  • program_description (type=string)
    • a short description of what this method does
  • program_url (type=string)
    • a url pointing to code base of a program, e.g. a github link

Example

Code
        {
          "program": "SeekDeep extractorPairedEnd",
          "program_description": "Takes raw paired-end reads and demultiplexes on primers and does QC filtering",
          "program_version": "v2.6.5"
        },


BioinformaticsMethodInfo

https://plasmogenepi.github.io/portable-microhaplotype-object/BioinformaticsMethodInfo/
Show BioinformaticsMethodInfo fields

Required

  • methods (type=list of BioMethod)
    • 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

Example

Code
    {
      "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"
          ],
          "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"
        }
      ]
    },


BioinformaticsRunInfo

https://plasmogenepi.github.io/portable-microhaplotype-object/BioinformaticsRunInfo/
Show BioinformaticsRunInfo fields

Required

  • bioinformatics_methods_id (type=integer)
    • the index into the bioinformatics_methods_info list
  • bioinformatics_run_name (type=string)
    • a name to for this run, needs to be unique to each run

Optional

  • run_date (type=string)
    • the date when the run was done, should be YYYY-MM-DD

Example

Code


DetectedMicrohaplotypes

https://plasmogenepi.github.io/portable-microhaplotype-object/DetectedMicrohaplotypes/
Show DetectedMicrohaplotypes fields

Required

  • library_samples (type=list of DetectedMicrohaplotypesForSample)
    • a list of the microhaplotypes detected for all samples with a list for each target

Optional

  • bioinformatics_run_id (type=integer)
    • the index into bioinformatics_run_info list

Example

Code


DetectedMicrohaplotypesForSample

https://plasmogenepi.github.io/portable-microhaplotype-object/DetectedMicrohaplotypesForSample/
Show DetectedMicrohaplotypesForSample fields

Required

  • library_sample_id (type=integer)
    • the index into the library_sample_info list
  • target_results (type=list of DetectedMicrohaplotypesForTarget)
    • a list of the microhaplotypes detected for a list of targets

Example

Code
{
    "library_sample_id": 1,
    "target_results": [
        {
            "mhaps": [
                {
                    "mhap_id": 1,
                    "reads": 2227
                },
                {
                    "mhap_id": 2,
                    "reads": 51
                }
            ],
            "mhaps_target_id": 98
        },
        ...
}


DetectedMicrohaplotypesForTarget

https://plasmogenepi.github.io/portable-microhaplotype-object/DetectedMicrohaplotypesForTarget/
Show DetectedMicrohaplotypesForTarget fields

Required

  • mhaps_target_id (type=integer)
    • the index for a target in the representative_microhaplotypes list
  • mhaps (type=list of MicrohaplotypeForTarget)
    • a list of the microhaplotypes detected for this target

Example

Code


GenomeInfo

https://plasmogenepi.github.io/portable-microhaplotype-object/GenomeInfo/
Show GenomeInfo fields

Required

  • name (type=string)
    • name of the genome
  • genome_version (type=string)
    • the genome version
  • taxon_id (type= list of integer)
    • 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
  • url (type=string)
    • a link to the where this genome file could be downloaded

Optional

  • chromosomes (type=list of string)
    • a list of the chromosomes/contigs found within this genome
  • gff_url (type=string)
    • a link to the where this genome’s annotation file could be downloaded

Example

Code
    {
      "genome_version": "GCF_000013425.1",
      "gff_url": "https://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000/013/425/GCF_000013425.1_ASM1342v1/GCF_000013425.1_ASM1342v1_genomic.gff.gz",
      "name": "NCTC8325",
      "taxon_id": [
        1280
      ],
      "url": "https://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000/013/425/GCF_000013425.1_ASM1342v1/GCF_000013425.1_ASM1342v1_genomic.fna.gz"
    }


GenomicLocation

https://plasmogenepi.github.io/portable-microhaplotype-object/GenomicLocation/
Show GenomicLocation fields

Required

  • genome_id (type=integer)
    • the index to the genome in the targeted_genomes list that this location refers to
  • chrom (type=string)
    • the chromosome name
  • start (type=integer)
    • the start of the location, 0-based positioning
  • end (type=integer)
    • the end of the location, 0-based positioning

Optional

  • alt_seq (type=string)
    • a possible alternative sequence of this genomic location
  • ref_seq (type=string)
    • the reference sequence of this genomic location
  • strand (type=string)
    • which strand the location is, either + for plus strand or - for negative strand

Example

Code
{
          "chrom": "LS483365.1",
          "end": 849631,
          "genome_id": 0,
          "start": 849607,
          "strand": "+"
        },


LibrarySampleInfo

https://plasmogenepi.github.io/portable-microhaplotype-object/LibrarySampleInfo/
Show LibrarySampleInfo fields

Required

  • specimen_id (type=integer)
    • the index into the specimen_info list
  • panel_id (type=integer)
    • the index into the panel_info list
  • library_sample_name (type=string)
    • a unique identifier for this sequencing/amplification run

Optional

  • alternate_identifiers (type=list of string)
    • a list of alternative names
  • experiment_accession (type=string)
    • ERA/SRA experiment accession number for the sample if it was submitted
  • fastqs_loc (type=string)
    • the location (url or filename path) of the fastqs for a library run
  • library_prep_plate_info (type=PlateInfo)
    • plate location of where library was prepared for sequencing
  • qpcr_parasite_density_info (type=list of ParasiteDensity)
    • qpcr parasite density measurement for this extracted sample
  • run_accession (type=string)
    • ERA/SRA run accession number for the sample if it was submitted
  • sequencing_info_id (type=integer)
    • the index into the sequencing_info list

Example

Code
    {
      "alternate_identifiers": [
        "85b498-Wk22-Nasal"
      ],
      "experiment_accession": "SRX26225188",
      "fastqs_loc": "ftp.sra.ebi.ac.uk/vol1/fastq/SRR308/078/SRR30825778/SRR30825778_1.fastq.gz;ftp.sra.ebi.ac.uk/vol1/fastq/SRR308/078/SRR30825778/SRR30825778_2.fastq.gz",
      "library_sample_name": "SRR30825778",
      "panel_id": 0,
      "run_accession": "SRR30825778",
      "sequencing_info_id": 0,
      "specimen_id": 0
    },


MarkerOfInterest

https://plasmogenepi.github.io/portable-microhaplotype-object/MarkerOfInterest/
Show MarkerOfInterest fields

Required

  • marker_location (type=GenomicLocation)
    • the genomic location

Optional

  • associations (type=list of string)
    • a list of associations with this marker, e.g. SP resistance, etc

Example

Code


MaskingInfo

https://plasmogenepi.github.io/portable-microhaplotype-object/MaskingInfo/
Show MaskingInfo fields

Required

  • seq_start (type=integer)
    • the start of the masking
  • seq_segment_size (type=integer)
    • the size of the masking
  • replacement_size (type=integer)
    • the size of replacement mask

Optional

  • masking_generation_description (type=string)
    • a description of how the masking information was generated

Example

Code


MicrohaplotypeForTarget

https://plasmogenepi.github.io/portable-microhaplotype-object/MicrohaplotypeForTarget/
Show MicrohaplotypeForTarget fields

Required

  • mhap_id (type=integer)
    • the index for a microhaplotype for a target in the representative_microhaplotypes list, e.g. representative_microhaplotypes[mhaps_target_id][mhap_id]
  • reads (type=integer)
    • the read count for this microhaplotype

Optional

  • umis (type=integer)
    • the unique molecular identifier (umi) count for this microhaplotype

Example

Code


PanelInfo

https://plasmogenepi.github.io/portable-microhaplotype-object/PanelInfo/
Show PanelInfo fields

Required

  • reactions (type=list of ReactionInfo)
    • a list of 1 or more reactions that this panel contains, each reactions list the targets that were amplified in that reaction, e.g. pool1, pool2
  • panel_name (type=string)
    • a name for the panel

Example

Code


ParasiteDensity

https://plasmogenepi.github.io/portable-microhaplotype-object/ParasiteDensity/
Show ParasiteDensity fields

Required

  • parasite_density_method (type=string)
    • the method of how this density was obtained
  • parasite_density (type=number)
    • the density in microliters

Optional

  • date_measured (type=string)
    • the date the qpcr was performed, can be YYYY, YYYY-MM, or YYYY-MM-DD
  • density_method_comments (type=string)
    • additional comments about how the density was performed

Example

Code


PlateInfo

https://plasmogenepi.github.io/portable-microhaplotype-object/PlateInfo/
Show PlateInfo fields

Required

  • plate_name (type=string)
    • a name for the plate
  • plate_row (type=string)
    • the row position
  • plate_col (type=integer)
    • the column position

Example

Code


PmoGenerationMethod

https://plasmogenepi.github.io/portable-microhaplotype-object/PmoGenerationMethod/
Show PmoGenerationMethod fields

Required

  • program_version (type=string)
    • the version of program, should be in the format of v[MAJOR].[MINOR].[PATCH]
  • program_name (type=string)
    • the name of the program

Example

Code


PmoHeader

https://plasmogenepi.github.io/portable-microhaplotype-object/PmoHeader/
Show PmoHeader fields

Required

  • pmo_version (type=string)
    • the version of the PMO file, should be in the format of v[MAJOR].[MINOR].[PATCH]

Optional

  • creation_date (type=string)
    • the date of when the PMO file was created or modified, should be YYYY-MM-DD
  • generation_method (type=PmoGenerationMethod)
    • the generation method to create this PMO

Example

Code
    "pmo_version": "1.0.0",
    "creation_date": "2026-05-13",
    "generation_method": {
      "program_name": "pmotools-python.PMOReader.combine_multiple_pmos",
      "program_version": "1.0.0"
    }


PrimerInfo

https://plasmogenepi.github.io/portable-microhaplotype-object/PrimerInfo/
Show PrimerInfo fields

Required

  • seq (type=string)
    • the sequence

Optional

  • location (type=GenomicLocation)
    • what the intended genomic location of the primer is

Example

Code
{
        "location": {
          "chrom": "LS483365.1",
          "end": 849631,
          "genome_id": 0,
          "start": 849607,
          "strand": "+"
        },
        "seq": "GGAGTTATCATGCCAACAGTTATA"
      },


ProjectInfo

https://plasmogenepi.github.io/portable-microhaplotype-object/ProjectInfo/
Show ProjectInfo fields

Required

  • project_name (type=string)
    • a name for the project, should be unique if multiple projects listed
  • project_description (type=string)
    • a short description of the project

Optional

  • BioProject_accession (type=string)
    • an SRA bioproject accession e.g. PRJNA33823
  • project_collector_chief_scientist (type=string)
    • can be collection of names separated by a semicolon if multiple people involved or can just be the name of the primary person managing the specimen
  • project_contributors (type=list of string)
    • a list of collaborators who contributed to this project
  • project_type (type=string)
    • the type of project conducted, e.g. TES vs surveillance vs transmission

Example

Code
    {
      "BioProject_accession": "PRJNA1166327",
      "project_description": "Amplicon sequencing of Staphylococcus aureus from oral and nasal samples",
      "project_name": "PRJNA1166327"
    },


ProteinVariant

https://plasmogenepi.github.io/portable-microhaplotype-object/ProteinVariant/
Show ProteinVariant fields

Required

  • protein_location (type=GenomicLocation)
    • the position within the protein, the chromosome in this case would be the transcript name

Optional

  • alternative_gene_name (type=string)
    • an alternative gene name
  • codon_genomic_location (type=GenomicLocation)
    • the position within the genomic sequence of the codon
  • gene_name (type=string)
    • an identifier of the gene, if any, is being covered with this targeted

Example

Code


Pseudocigar

https://plasmogenepi.github.io/portable-microhaplotype-object/Pseudocigar/
Show Pseudocigar fields

Required

  • pseudocigar_seq (type=string)
    • the pseudocigar itself
  • ref_loc (type=GenomicLocation)
    • the genomic location the pseudocigar is in reference to

Optional

  • pseudocigar_generation_description (type=string)
    • a description of how the pseudocigar information was generated

Example

Code


ReactionInfo

https://plasmogenepi.github.io/portable-microhaplotype-object/ReactionInfo/
Show ReactionInfo fields

Required

  • panel_targets (type= list of integer)
    • a list of the target indexes in the target_info list
  • reaction_name (type=string)
    • a name for this reaction

Example

Code


ReadCountsByStage

https://plasmogenepi.github.io/portable-microhaplotype-object/ReadCountsByStage/
Show ReadCountsByStage fields

Required

  • read_counts_by_library_sample_by_stage (type=list of ReadCountsByStageForLibrarySample)
    • a list by library_sample for the counts at each stage

Optional

  • bioinformatics_run_id (type=integer)
    • the index into bioinformatics_run_info list

Example

Code


ReadCountsByStageForLibrarySample

https://plasmogenepi.github.io/portable-microhaplotype-object/ReadCountsByStageForLibrarySample/
Show ReadCountsByStageForLibrarySample fields

Required

  • library_sample_id (type=integer)
    • the index into the library_sample_info list
  • total_raw_count (type=integer)
    • the raw counts off the sequencing machine that a sample began with

Optional

  • read_counts_for_targets (type=list of ReadCountsByStageForTarget)
    • a list of counts by stage for a target

Example

Code


ReadCountsByStageForTarget

https://plasmogenepi.github.io/portable-microhaplotype-object/ReadCountsByStageForTarget/
Show ReadCountsByStageForTarget fields

Required

  • target_id (type=integer)
    • the index into the target_info list
  • stages (type=list of StageReadCounts)
    • the read counts by each stage

Example

Code


RepresentativeMicrohaplotype

https://plasmogenepi.github.io/portable-microhaplotype-object/RepresentativeMicrohaplotype/
Show RepresentativeMicrohaplotype fields

Required

  • seq (type=string)
    • the sequence

Optional

  • alt_annotations (type=list of string)
    • a list of additional annotations associated with this microhaplotype, e.g. wildtype
  • associated_protein_variants (type=list of ProteinVariant)
    • a list of protein variants for this haplotype, e.g. amino acid changes/INDELS
  • associated_seq_variants (type=list of GenomicLocation)
    • a list of sequence variants for this haplotype, e.g. SNPS, indels
  • masking (type=list of MaskingInfo)
    • masking info for the sequence
  • microhaplotype_name (type=string)
    • an optional name for this microhaplotype
  • pseudocigar (type=Pseudocigar)
    • the pseudocigar of the haplotype
  • quality (type=string)
    • the ASCII fastq per base quality score for this sequence, this is optional, must be same length as the sequence

Example

Code


RepresentativeMicrohaplotypes

https://plasmogenepi.github.io/portable-microhaplotype-object/RepresentativeMicrohaplotypes/
Show RepresentativeMicrohaplotypes fields

Required

  • targets (type=list of RepresentativeMicrohaplotypesForTarget)
    • a list of the microhaplotypes for each targets

Example

Code
      {
        "microhaplotypes": [
          {
            "seq": "CAATATAATAACCTAATAAAATGTTTAGGTCAACCTTTATTTTAATTTTTTTAAAAGTATGAATTATTATGTTGAACGTTCGATTTAATATTAAGAAAAA"
          },
          {
            "seq": "CAATATAATAACCTAATAAAACGTTTAGGTCAACCTAAATTTATTTTAATTTTTTTAAAAGTATGAATTATTATGTTGAACGTTCAATTTAATGGTAAGTAAAA"
          },
          {
            "seq": "CAATATAATAACCTAATAAAATGTTTAGGTCAACCTAAATTTATTTTAATTTTTTTAAAAGTATGAATTATTATGTTGAACGTTCGATTTAATATTAAGAAAAA"
          },
          {
            "seq": "CAATATAATAACCTAATAAAACGTTTAGGTCAACCTAAATTTATTTTAATTTTTTAAAAGTATGAATTATTATGTTGAACGTTCGATTTAATATTAAGAAAAA"
          },
          {
            "seq": "CAATATAATAACCTAATAAAATGTTTAGGTCAACCTAAATTTATTTTAATTTTTTTTAAAAGCCTGAATTATTATGTTGAACGTTCGATTTAATATTAAGAAAAA"
          },
          {
            "seq": "CAATATAATAACCTAATAAAATGTTTATGTCAACCTAAATTTATTTTAATTTTTTTAAAAGTATGAATTATTATGTTGAACGTTCAATTTAATGGTAAGTAAAA"
          },
          {
            "seq": "CAATATAATAACCTAATAAAACGTTTAGGTCAACCTAAATTTATTTTATTTTTTTAAAAGTATGAATTATTATTTTGAATGTTCGATTTAATGGTAAGAAAAA"
          },
          {
            "seq": "CAATATAATAACCTAATAAAATGTTTAGGTCAACCTAAATTTATTTTAATTTTTTTAAAAGCCTGAATTATTATGTTGAACGTTCGATTTAATATTAAGAAAAA"
          },
          {
            "seq": "CAATATAATAACCTAATAAAACATTTAGGTCAACCTAAATTTATTTTAATTTTTTTAAAAGTATGAATTATTATGTTGAACGTTCAATTTAATGGTAAGTAAAA"
          },
          {
            "seq": "CAATATAATAACCTAATAAAACGTTTAGGTCAACCTAAATTTATTTTAATTTTTTTAAAAGTATGAATTATTATGTTGAACGTTCGATTTAATATTAAGAAAAA"
          },
          {
            "seq": "CAATATAATAACCTAATAAAATGCTTAGGTCAACCTAAATTTATTTTAATTTTTTTAAAAGCCTGAATTATTATGTTGAACGTTCGATTTAATATTAAGAAAAA"
          }
        ],
        "target_id": 25
      },


RepresentativeMicrohaplotypesForTarget

https://plasmogenepi.github.io/portable-microhaplotype-object/RepresentativeMicrohaplotypesForTarget/
Show RepresentativeMicrohaplotypesForTarget fields

Required

  • target_id (type=integer)
    • the index into the target_info list
  • microhaplotypes (type=list of RepresentativeMicrohaplotype)
    • a list of all the microhaplotypes for a target

Optional

  • mhap_location (type=GenomicLocation)
    • 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)

Example

Code
{
    "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
}


SequencingInfo

https://plasmogenepi.github.io/portable-microhaplotype-object/SequencingInfo/
Show SequencingInfo fields

Required

  • sequencing_info_name (type=string)
    • a name for a specific sequencing run, e.g. batch1
  • seq_platform (type=string)
    • the sequencing technology used to sequence the run, e.g. ILLUMINA, NANOPORE, PACBIO
  • seq_instrument_model (type=string)
    • the sequencing instrument model used to sequence the run, e.g. NextSeq 2000, MinION, Revio
  • library_layout (type=string)
    • Specify the configuration of reads, e.g. paired-end, single
  • library_strategy (type=string)
    • what the nuceloacid sequencing/amplification strategy was (common names are AMPLICON, WGS)
  • library_source (type=string)
    • Source of amplification material e.g. was it DNA (GENOMIC) or RNA (TRANSCRIPTOMIC) (common names GENOMIC, TRANSCRIPTOMIC)
  • library_selection (type=string)
    • how amplification was done (common are PCR=Source material was selected by designed primers, RANDOM =Random selection by shearing or other method)

Optional

  • library_kit (type=string)
    • Name, version, and applicable cell or cycle numbers for the kit used to prepare libraries and load cells or chips for sequencing. If possible, include a part number, e.g. MiSeq Reagent Kit v3 (150-cycle), MS-102-3001
  • library_screen (type=string)
    • Describe enrichment, screening, or normalization methods applied during amplification or library preparation, e.g. size selection 390bp, diluted to 1 ng DNA/sample
  • nucl_acid_amp (type=string)
    • Link to a reference or kit that describes the enzymatic amplification of nucleic acids
  • nucl_acid_amp_date (type=string)
    • the date of the nucleoacid amplification
  • nucl_acid_ext (type=string)
    • Link to a reference or kit that describes the recovery of nucleic acids from the sample
  • nucl_acid_ext_date (type=string)
    • the date of the nucleoacid extraction
  • pcr_cond (type=string)
    • the method/conditions for PCR, List PCR cycles used to amplify the target
  • seq_center (type=string)
    • Name of facility where sequencing was performed (lab, core facility, or company)
  • seq_date (type=string)
    • the date of sequencing, should be YYYY-MM or YYYY-MM-DD

Example

Code
    {
      "library_layout": "PAIRED",
      "library_selection": "PCR",
      "library_source": "GENOMIC",
      "library_strategy": "AMPLICON",
      "seq_instrument_model": "Illumina MiSeq",
      "seq_platform": "ILLUMINA",
      "sequencing_info_name": "seq_info"
    },


SpecimenInfo

https://plasmogenepi.github.io/portable-microhaplotype-object/SpecimenInfo/
Show SpecimenInfo fields

Required

  • specimen_name (type=string)
    • an identifier for the specimen, should be unique within this sample set

Optional

  • alternate_identifiers (type=list of string)
    • a list of alternative names
  • blood_meal (type=boolean)
    • whether host specimen has had a recent blood meal
  • collection_country (type=string)
    • the name of country collected in, would be the same as admin level 0
  • collection_date (type=string)
    • the date of the specimen collection, can be YYYY, YYYY-MM, or YYYY-MM-DD
  • drug_usage (type=list of string)
    • Any drug used by subject and the frequency of usage; can include multiple drugs used
  • env_broad_scale (type=string)
    • the broad environment from which the specimen was collected, e.g. highlands, lowlands, mountainous region
  • env_local_scale (type=string)
    • the local environment from which the specimen was collected, e.g. jungle, urban, rural
  • env_medium (type=string)
    • the environment medium from which the specimen was collected from
  • geo_admin1 (type=string)
    • geographical admin level 1, the secondary large demarcation of a nation (nation = admin level 0)
  • geo_admin2 (type=string)
    • geographical admin level 2, the third large demarcation of a nation (nation = admin level 0)
  • geo_admin3 (type=string)
    • geographical admin level 3, the third large demarcation of a nation (nation = admin level 0)
  • gravid (type=boolean)
    • whether host specimen is currently pregnant
  • gravidity (type=integer)
    • the gravidity of the specimen host (number of previous pregnancies)
  • has_travel_out_six_month (type=boolean)
    • has travelled out from local region in the last six months
  • host_age (type=number)
    • if specimen is from a person, the age in years of the person, can be float value so for 3 month old put 0.25
  • host_sex (type=string)
    • if specimen is collected from a host with a sex, the sex listed for that host
  • host_subject_name (type=string)
    • an identifier for the individual/person/patient a specimen was collected from
  • host_taxon_id (type=integer)
    • the NCBI taxonomy number of the host that the specimen was collected from
  • lat_lon (type=string)
    • the latitude and longitude of a specific site
  • parasite_density_info (type=list of ParasiteDensity)
    • one or more parasite densities in microliters for this specimen
  • project_id (type=integer)
    • the index into the project_info list
  • specimen_accession (type=string)
    • if specimen is deposited in a database, what accession is it associated with
  • specimen_collect_device (type=string)
    • the way the specimen was collected, e.g. whole blood, dried blood spot
  • specimen_comments (type=list of string)
    • any additional comments about the specimen
  • specimen_store_loc (type=string)
    • the specimen store site, address or facility name
  • specimen_taxon_id (type=list of integer)
    • the NCBI taxonomy number of the organism(s) in the specimen, can list multiple if a mixed sample
  • specimen_type (type=string)
    • what type of specimen this is, e.g. negative_control, positive_control, field_sample
  • storage_plate_info (type=PlateInfo)
    • plate location of where specimen is stored if stored in a plate
  • travel_out_six_month (type=list of TravelInfo)
    • Specification of the countries travelled in the last six months; can include multiple travels
  • treatment_status (type=list of string)
    • If person has been treated with drugs, what was the treatment outcome

Example

Code


StageReadCounts

https://plasmogenepi.github.io/portable-microhaplotype-object/StageReadCounts/
Show StageReadCounts fields

Required

  • reads (type=integer)
    • the read counts for this stage
  • stage (type=string)
    • the stage of the pipeline, e.g. demultiplexed, denoised, etc

Example

Code
    {
      "collection_country": "USA",
      "collection_date": "2022-03-21",
      "geo_admin1": "Phoenix",
      "host_taxon_id": 9606,
      "project_id": 0,
      "specimen_accession": "SAMN43965049",
      "specimen_name": "85b498-Wk22-Nasal",
      "specimen_taxon_id": [
        1280
      ]
    },


TargetInfo

https://plasmogenepi.github.io/portable-microhaplotype-object/TargetInfo/
Show TargetInfo fields

Required

  • target_name (type=string)
    • a name for this target
  • forward_primer (type=PrimerInfo)
    • the forward primer for this target
  • reverse_primer (type=PrimerInfo)
    • the reverse primer for this target

Optional

  • gene_name (type=string)
    • an identifier of the gene, if any, is being covered with this targeted
  • insert_location (type=GenomicLocation)
    • 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 (type=list of MarkerOfInterest)
    • a list of markers of interest that are covered by this target
  • target_attributes (type=list of string)
    • a list of classification types for this target

Example

Code
{
    "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"
}
Code
{
    "forward_primer": {
        "seq": "TTTTTCTCCACTTTGTAATTTTTATTGTTGAAT"
    },
    "reverse_primer": {
        "seq": "CGGGTGGTATCATGAGAATAGTTGAT"
    },
    "target_name": "t96"
}


TravelInfo

https://plasmogenepi.github.io/portable-microhaplotype-object/TravelInfo/
Show TravelInfo fields

Required

  • travel_country (type=string)
    • the name of country, would be the same as admin level 0
  • travel_start_date (type=string)
    • the date of the start of travel, can be approximate, should be YYYY-MM or YYYY-MM-DD (preferred)
  • travel_end_date (type=string)
    • the date of the end of travel, can be approximate, should be YYYY-MM or YYYY-MM-DD (preferred)

Optional

  • bed_net_usage (type=number)
    • approximate usage of bed net while traveling, 1 = 100% nights with bed net, 0 = 0% no bed net usage
  • geo_admin1 (type=string)
    • geographical admin level 1, the secondary large demarcation of a nation (nation = admin level 0)
  • geo_admin2 (type=string)
    • geographical admin level 2, the third large demarcation of a nation (nation = admin level 0)
  • geo_admin3 (type=string)
    • geographical admin level 3, the third large demarcation of a nation (nation = admin level 0)
  • lat_lon (type=string)
    • the latitude and longitude of a specific site

Example

Code


Source Code
---
title: "Format Overview For Developers"
---

```{r setup, echo=FALSE}
source("../common.R")
```


# Python implementation 

Linkml generates a datamodel file with all classes: <https://github.com/PlasmoGenEpi/portable-micorhaplotype-object/blob/main/src/plasmo_tar_amp_schema/datamodel/plasmo_tar_amp_schema.py>


# Tools  

Started development of a tool called pmotools. Python implementation can be found here: <https://github.com/PlasmoGenEpi/pmotools-python/tree/develop>


# Format overview

Below is an overview of the entire format currently in  development which is under active development and optimization. Please send questions to [info@plasmogenepi.org](mailto:info@plasmogenepi.org)


:::{.column-screen}

```{r, echo=FALSE, results="asis"}
cat(readr::read_lines("portable_microhaplotype_object.schema.dot.svg", skip = 6), sep = "\n")
```
:::



## PortableMicrohaplotypeObject  
<https://plasmogenepi.github.io/portable-microhaplotype-object/PortableMicrohaplotypeObject/>  
<a class = "btn btn-light" data-bs-toggle="collapse" data-bs-target="#collapsePortableMicrohaplotypeObject" aria-expanded="true" aria-controls="collapseExample">
  Show PortableMicrohaplotypeObject fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse show" id="collapsePortableMicrohaplotypeObject">
  <div class="card card-body">
### Required  
*  library_sample_info (***type=[list of LibrarySampleInfo](#librarysampleinfo)***)  
    *  a list of libraries of all the seq/amp of the specimens within this PMO file  
*  specimen_info (***type=[list of SpecimenInfo](#specimeninfo)***)  
    *  a list of all the specimens within this PMO file  
*  panel_info (***type=[list of PanelInfo](#panelinfo)***)  
    *  a list of info on the panels  
*  target_info (***type=[list of TargetInfo](#targetinfo)***)  
    *  a list of info on the targets  
*  representative_microhaplotypes (***type=[RepresentativeMicrohaplotypes](#representativemicrohaplotypes)***)  
    *  a list of the information on the representative microhaplotypes  
*  detected_microhaplotypes (***type=[list of DetectedMicrohaplotypes](#detectedmicrohaplotypes)***)  
    *  the microhaplotypes detected in this projects  
*  pmo_header (***type=[PmoHeader](#pmoheader)***)  
    *  the PMO information for this file including version etc  

### Optional  
*  bioinformatics_methods_info (***type=[list of BioinformaticsMethodInfo](#bioinformaticsmethodinfo)***)  
    *  the bioinformatics pipeline/methods used to generated the microhaplotype analysis for this project  
*  bioinformatics_run_info (***type=[list of BioinformaticsRunInfo](#bioinformaticsruninfo)***)  
    *  the runtime info for the bioinformatics pipeline used to generated the microhaplotypes analysis for this project  
*  project_info (***type=[list of ProjectInfo](#projectinfo)***)  
    *  the information about the projects stored in this PMO  
*  read_counts_by_stage (***type=[list of ReadCountsByStage](#readcountsbystage)***)  
    *  the read counts for library_samples for different stages of the pipeline  
*  sequencing_info (***type=[list of SequencingInfo](#sequencinginfo)***)  
    *  a list of sequencing infos for this PMO file  
*  targeted_genomes (***type=[list of GenomeInfo](#genomeinfo)***)  
    *  a list of genomes that any genomic location information refers to  

### Example  

```{json}
{
    "pmo_header": {},
    "targeted_genomes": [],
    "target_info": [],
    "panel_info": [],
    "sequencing_info": [],
    "project_info": [],
    "specimen_info": [],
    "library_sample_info": [],
    "bioinformatics_methods_info": [],
    "bioinformatics_run_info": [],
    "representative_microhaplotypes": {},
    "detected_microhaplotypes": [],
    "read_counts_by_stage": []
}
```

```{json}
{
    "pmo_header": {},
    "target_info": [],
    "panel_info": [],
    "specimen_info": [],
    "library_sample_info": [],
    "representative_microhaplotypes": {},
    "detected_microhaplotypes": [],
}

```  


```{json}
{
  "pmo_header": {
    "pmo_version": "1.1.0",
    "creation_date": "2026-05-15",
    "generation_method": {
      "program_name": "pmotools-python",
      "program_version": "1.1.0"
    }
  },
  
  "library_sample_info": [
      {
      "library_sample_name": "SRR30825770",
      "specimen_id": 0,
      "panel_id": 0
    },
    ....
  ],
  "specimen_info": [
      {
      "specimen_name": "SRR30825770"
    },
    ....
  ],
  "panel_info": [
    {
      "panel_name": "staph_aureus_Furstenau2025",
      "reactions": [
        {
          "reaction_name": "full",
          "panel_targets": [
            0,
            1,
            .....
          ]
        }
      ]
    }
  ],
  "target_info":[
      {
      "target_name": "SA_131432",
      "forward_primer": {
        "seq": "GTCCAGGTAGCATGATT"
      },
      "reverse_primer": {
        "seq": "TGTCATACCAGTTAGGAATCACA"
      }
    },
    ....
  ],
  "representative_microhaplotypes":{
      "targets": [
      {
        "microhaplotypes": [
          {
            "seq": "CAATATAATAACCTAATAAAATGTTTAGGTCAACCTAAATTTATTTTAATTTTTTTAAAAGTATGAATTATTATGTTGAACGTTCGATTTAATATTAAGAAAAA"
          },
        ],
        "target_id": 8
      },
      ....
      ]
  },
  "detected_microhaplotypes": [
      {
      "library_samples": [
        {
          "library_sample_id" : 1,
          "target_results": [
            {
              "mhaps_target_id": 0,
              "mhaps": [
                {
                  "mhap_id": 6,
                  "reads": 428
                }
              ]
            }, 
            ....
         ]
        }
        ....
      ]
      }
    ...
  ]
}
```
  </div>
</div><br>


## BioMethod  
<https://plasmogenepi.github.io/portable-microhaplotype-object/BioMethod/>  
<a class = "btn btn-light" data-bs-toggle="collapse" data-bs-target="#collapseBioMethod" aria-expanded="true" aria-controls="collapseExample">
  Show BioMethod fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse show" id="collapseBioMethod">
  <div class="card card-body">
### Required  
*  program_version (***type=string***)  
    *  the version of program, should be in the format of v[MAJOR].[MINOR].[PATCH]  
*  program (***type=string***)  
    *  name of the program used for this portion of the pipeline  

### Optional  
*  additional_argument (***type=list of string***)  
    *  any additional arguments that differ from the default arguments  
*  program_description (***type=string***)  
    *  a short description of what this method does  
*  program_url (***type=string***)  
    *  a url pointing to code base of a program, e.g. a github link  

### Example  
```{json}
        {
          "program": "SeekDeep extractorPairedEnd",
          "program_description": "Takes raw paired-end reads and demultiplexes on primers and does QC filtering",
          "program_version": "v2.6.5"
        },
```  
  </div>
</div><br>

## BioinformaticsMethodInfo  
<https://plasmogenepi.github.io/portable-microhaplotype-object/BioinformaticsMethodInfo/>  
<a class = "btn btn-light" data-bs-toggle="collapse" data-bs-target="#collapseBioinformaticsMethodInfo" aria-expanded="true" aria-controls="collapseExample">
  Show BioinformaticsMethodInfo fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse show" id="collapseBioinformaticsMethodInfo">
  <div class="card card-body">
### Required  
*  methods (***type=[list of BioMethod](#biomethod)***)  
    *  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  

### Example  
```{json}
    {
      "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"
          ],
          "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"
        }
      ]
    },
```  
  </div>
</div><br>

## BioinformaticsRunInfo  
<https://plasmogenepi.github.io/portable-microhaplotype-object/BioinformaticsRunInfo/>  
<a class = "btn btn-light" data-bs-toggle="collapse" data-bs-target="#collapseBioinformaticsRunInfo" aria-expanded="true" aria-controls="collapseExample">
  Show BioinformaticsRunInfo fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse show" id="collapseBioinformaticsRunInfo">
  <div class="card card-body">
### Required  
*  bioinformatics_methods_id (***type=integer***)  
    *  the index into the bioinformatics_methods_info list  
*  bioinformatics_run_name (***type=string***)  
    *  a name to for this run, needs to be unique to each run   

### Optional  
*  run_date (***type=string***)  
    *  the date when the run was done, should be YYYY-MM-DD  

### Example  
```{json}
```  
  </div>
</div><br>

## DetectedMicrohaplotypes  
<https://plasmogenepi.github.io/portable-microhaplotype-object/DetectedMicrohaplotypes/>  
<a class = "btn btn-light" data-bs-toggle="collapse" data-bs-target="#collapseDetectedMicrohaplotypes" aria-expanded="true" aria-controls="collapseExample">
  Show DetectedMicrohaplotypes fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse show" id="collapseDetectedMicrohaplotypes">
  <div class="card card-body">
### Required  
*  library_samples (***type=[list of DetectedMicrohaplotypesForSample](#detectedmicrohaplotypesforsample)***)  
    *  a list of the microhaplotypes detected for all samples with a list for each target   

### Optional  
*  bioinformatics_run_id (***type=integer***)  
    *  the index into bioinformatics_run_info list  

### Example  
```{json}
```  
  </div>
</div><br>

## DetectedMicrohaplotypesForSample  
<https://plasmogenepi.github.io/portable-microhaplotype-object/DetectedMicrohaplotypesForSample/>  
<a class = "btn btn-light" data-bs-toggle="collapse" data-bs-target="#collapseDetectedMicrohaplotypesForSample" aria-expanded="true" aria-controls="collapseExample">
  Show DetectedMicrohaplotypesForSample fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse show" id="collapseDetectedMicrohaplotypesForSample">
  <div class="card card-body">
### Required  
*  library_sample_id (***type=integer***)  
    *  the index into the library_sample_info list  
*  target_results (***type=[list of DetectedMicrohaplotypesForTarget](#detectedmicrohaplotypesfortarget)***)  
    *  a list of the microhaplotypes detected for a list of targets  

### Example  
```{json}
{
    "library_sample_id": 1,
    "target_results": [
        {
            "mhaps": [
                {
                    "mhap_id": 1,
                    "reads": 2227
                },
                {
                    "mhap_id": 2,
                    "reads": 51
                }
            ],
            "mhaps_target_id": 98
        },
        ...
}

```  
  </div>
</div><br>

## DetectedMicrohaplotypesForTarget  
<https://plasmogenepi.github.io/portable-microhaplotype-object/DetectedMicrohaplotypesForTarget/>  
<a class = "btn btn-light" data-bs-toggle="collapse" data-bs-target="#collapseDetectedMicrohaplotypesForTarget" aria-expanded="true" aria-controls="collapseExample">
  Show DetectedMicrohaplotypesForTarget fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse show" id="collapseDetectedMicrohaplotypesForTarget">
  <div class="card card-body">
### Required  
*  mhaps_target_id (***type=integer***)  
    *  the index for a target in the representative_microhaplotypes list  
*  mhaps (***type=[list of MicrohaplotypeForTarget](#microhaplotypefortarget)***)  
    *  a list of the microhaplotypes detected for this target  

### Example  

```{json}
```  
  </div>
</div><br>

## GenomeInfo  
<https://plasmogenepi.github.io/portable-microhaplotype-object/GenomeInfo/>  
<a class = "btn btn-light" data-bs-toggle="collapse" data-bs-target="#collapseGenomeInfo" aria-expanded="true" aria-controls="collapseExample">
  Show GenomeInfo fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse show" id="collapseGenomeInfo">
  <div class="card card-body">
### Required  
*  name (***type=string***)  
    *  name of the genome  
*  genome_version (***type=string***)  
    *  the genome version  
*  taxon_id (***type= list of integer***)  
    *  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  
*  url (***type=string***)  
    *  a link to the where this genome file could be downloaded  

### Optional  
*  chromosomes (***type=list of string***)  
    *  a list of the chromosomes/contigs found within this genome  
*  gff_url (***type=string***)  
    *  a link to the where this genome's annotation file could be downloaded  

### Example  

```{json}
    {
      "genome_version": "GCF_000013425.1",
      "gff_url": "https://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000/013/425/GCF_000013425.1_ASM1342v1/GCF_000013425.1_ASM1342v1_genomic.gff.gz",
      "name": "NCTC8325",
      "taxon_id": [
        1280
      ],
      "url": "https://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000/013/425/GCF_000013425.1_ASM1342v1/GCF_000013425.1_ASM1342v1_genomic.fna.gz"
    }
```  
  </div>
</div><br>

## GenomicLocation  
<https://plasmogenepi.github.io/portable-microhaplotype-object/GenomicLocation/>  
<a class = "btn btn-light" data-bs-toggle="collapse" data-bs-target="#collapseGenomicLocation" aria-expanded="true" aria-controls="collapseExample">
  Show GenomicLocation fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse show" id="collapseGenomicLocation">
  <div class="card card-body">
### Required  
*  genome_id (***type=integer***)  
    *  the index to the genome in the targeted_genomes list that this location refers to  
*  chrom (***type=string***)  
    *  the chromosome name  
*  start (***type=integer***)  
    *  the start of the location, 0-based positioning  
*  end (***type=integer***)  
    *  the end of the location, 0-based positioning  

### Optional  
*  alt_seq (***type=string***)  
    *  a possible alternative sequence of this genomic location  
*  ref_seq (***type=string***)  
    *  the reference sequence of this genomic location  
*  strand (***type=string***)  
    *  which strand the location is, either + for plus strand or - for negative strand  

### Example  

```{json}
{
          "chrom": "LS483365.1",
          "end": 849631,
          "genome_id": 0,
          "start": 849607,
          "strand": "+"
        },
```  
  </div>
</div><br>

## LibrarySampleInfo  
<https://plasmogenepi.github.io/portable-microhaplotype-object/LibrarySampleInfo/>  
<a class = "btn btn-light" data-bs-toggle="collapse" data-bs-target="#collapseLibrarySampleInfo" aria-expanded="true" aria-controls="collapseExample">
  Show LibrarySampleInfo fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse show" id="collapseLibrarySampleInfo">
  <div class="card card-body">
### Required  
*  specimen_id (***type=integer***)  
    *  the index into the specimen_info list  
*  panel_id (***type=integer***)  
    *  the index into the panel_info list  
*  library_sample_name (***type=string***)  
    *  a unique identifier for this sequencing/amplification run  

### Optional  
*  alternate_identifiers (***type=list of string***)  
    *  a list of alternative names  
*  experiment_accession (***type=string***)  
    *  ERA/SRA experiment accession number for the sample if it was submitted  
*  fastqs_loc (***type=string***)  
    *  the location (url or filename path) of the fastqs for a library run  
*  library_prep_plate_info (***type=[PlateInfo](#plateinfo)***)  
    *  plate location of where library was prepared for sequencing   
*  qpcr_parasite_density_info (***type=[list of ParasiteDensity](#parasitedensity)***)  
    *  qpcr parasite density measurement for this extracted sample  
*  run_accession (***type=string***)  
    *  ERA/SRA run accession number for the sample if it was submitted  
*  sequencing_info_id (***type=integer***)  
    *  the index into the sequencing_info list  

### Example  

```{json}
    {
      "alternate_identifiers": [
        "85b498-Wk22-Nasal"
      ],
      "experiment_accession": "SRX26225188",
      "fastqs_loc": "ftp.sra.ebi.ac.uk/vol1/fastq/SRR308/078/SRR30825778/SRR30825778_1.fastq.gz;ftp.sra.ebi.ac.uk/vol1/fastq/SRR308/078/SRR30825778/SRR30825778_2.fastq.gz",
      "library_sample_name": "SRR30825778",
      "panel_id": 0,
      "run_accession": "SRR30825778",
      "sequencing_info_id": 0,
      "specimen_id": 0
    },
```  
  </div>
</div><br>

## MarkerOfInterest  
<https://plasmogenepi.github.io/portable-microhaplotype-object/MarkerOfInterest/>  
<a class = "btn btn-light" data-bs-toggle="collapse" data-bs-target="#collapseMarkerOfInterest" aria-expanded="true" aria-controls="collapseExample">
  Show MarkerOfInterest fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse show" id="collapseMarkerOfInterest">
  <div class="card card-body">
### Required  
*  marker_location (***type=[GenomicLocation](#genomiclocation)***)  
    *  the genomic location  

### Optional  
*  associations (***type=list of string***)  
    *  a list of associations with this marker, e.g. SP resistance, etc  

### Example  
```{json}
```  
  </div>
</div><br>

## MaskingInfo  
<https://plasmogenepi.github.io/portable-microhaplotype-object/MaskingInfo/>  
<a class = "btn btn-light" data-bs-toggle="collapse" data-bs-target="#collapseMaskingInfo" aria-expanded="true" aria-controls="collapseExample">
  Show MaskingInfo fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse show" id="collapseMaskingInfo">
  <div class="card card-body">
### Required  
*  seq_start (***type=integer***)  
    *  the start of the masking  
*  seq_segment_size (***type=integer***)  
    *  the size of the masking  
*  replacement_size (***type=integer***)  
    *  the size of replacement mask  

### Optional  
*  masking_generation_description (***type=string***)  
    *  a description of how the masking information was generated   

### Example  
```{json}
```  
  </div>
</div><br>

## MicrohaplotypeForTarget  
<https://plasmogenepi.github.io/portable-microhaplotype-object/MicrohaplotypeForTarget/>  
<a class = "btn btn-light" data-bs-toggle="collapse" data-bs-target="#collapseMicrohaplotypeForTarget" aria-expanded="true" aria-controls="collapseExample">
  Show MicrohaplotypeForTarget fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse show" id="collapseMicrohaplotypeForTarget">
  <div class="card card-body">
### Required  
*  mhap_id (***type=integer***)  
    *  the index for a microhaplotype for a target in the representative_microhaplotypes list, e.g. representative_microhaplotypes[mhaps_target_id][mhap_id]  
*  reads (***type=integer***)  
    *  the read count for this microhaplotype  

### Optional  
*  umis (***type=integer***)  
    *  the unique molecular identifier (umi) count for this microhaplotype  

### Example  
```{json}
```  
  </div>
</div><br>

## PanelInfo  
<https://plasmogenepi.github.io/portable-microhaplotype-object/PanelInfo/>  
<a class = "btn btn-light" data-bs-toggle="collapse" data-bs-target="#collapsePanelInfo" aria-expanded="true" aria-controls="collapseExample">
  Show PanelInfo fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse show" id="collapsePanelInfo">
  <div class="card card-body">
### Required  
*  reactions (***type=[list of ReactionInfo](#reactioninfo)***)  
    *  a list of 1 or more reactions that this panel contains, each reactions list the targets that were amplified in that reaction, e.g. pool1, pool2  
*  panel_name (***type=string***)  
    *  a name for the panel  

### Example  
```{json}
```  
  </div>
</div><br>

## ParasiteDensity  
<https://plasmogenepi.github.io/portable-microhaplotype-object/ParasiteDensity/>  
<a class = "btn btn-light" data-bs-toggle="collapse" data-bs-target="#collapseParasiteDensity" aria-expanded="true" aria-controls="collapseExample">
  Show ParasiteDensity fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse show" id="collapseParasiteDensity">
  <div class="card card-body">
### Required  
*  parasite_density_method (***type=string***)  
    *  the method of how this density was obtained  
*  parasite_density (***type=number***)  
    *  the density in microliters  

### Optional  
*  date_measured (***type=string***)  
    *  the date the qpcr was performed, can be YYYY, YYYY-MM, or YYYY-MM-DD  
*  density_method_comments (***type=string***)  
    *  additional comments about how the density was performed  

### Example  
```{json}
```  
  </div>
</div><br>

## PlateInfo  
<https://plasmogenepi.github.io/portable-microhaplotype-object/PlateInfo/>  
<a class = "btn btn-light" data-bs-toggle="collapse" data-bs-target="#collapsePlateInfo" aria-expanded="true" aria-controls="collapseExample">
  Show PlateInfo fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse show" id="collapsePlateInfo">
  <div class="card card-body">
### Required  
*  plate_name (***type=string***)  
    *  a name for the plate  
*  plate_row (***type=string***)  
    *  the row position  
*  plate_col (***type=integer***)  
    *  the column position  

### Example  
```{json}
```  
  </div>
</div><br>

## PmoGenerationMethod  
<https://plasmogenepi.github.io/portable-microhaplotype-object/PmoGenerationMethod/>  
<a class = "btn btn-light" data-bs-toggle="collapse" data-bs-target="#collapsePmoGenerationMethod" aria-expanded="true" aria-controls="collapseExample">
  Show PmoGenerationMethod fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse show" id="collapsePmoGenerationMethod">
  <div class="card card-body">
### Required  
*  program_version (***type=string***)  
    *  the version of program, should be in the format of v[MAJOR].[MINOR].[PATCH]  
*  program_name (***type=string***)  
    *  the name of the program  

### Example  
```{json}
```  
  </div>
</div><br>

## PmoHeader  
<https://plasmogenepi.github.io/portable-microhaplotype-object/PmoHeader/>  
<a class = "btn btn-light" data-bs-toggle="collapse" data-bs-target="#collapsePmoHeader" aria-expanded="true" aria-controls="collapseExample">
  Show PmoHeader fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse show" id="collapsePmoHeader">
  <div class="card card-body">
### Required  
*  pmo_version (***type=string***)  
    *  the version of the PMO file, should be in the format of v[MAJOR].[MINOR].[PATCH]  

### Optional  
*  creation_date (***type=string***)  
    *  the date of when the PMO file was created or modified, should be YYYY-MM-DD  
*  generation_method (***type=[PmoGenerationMethod](#pmogenerationmethod)***)  
    *  the generation method to create this PMO   

### Example  
```{json}
    "pmo_version": "1.0.0",
    "creation_date": "2026-05-13",
    "generation_method": {
      "program_name": "pmotools-python.PMOReader.combine_multiple_pmos",
      "program_version": "1.0.0"
    }
```  
  </div>
</div><br>


## PrimerInfo  
<https://plasmogenepi.github.io/portable-microhaplotype-object/PrimerInfo/>  
<a class = "btn btn-light" data-bs-toggle="collapse" data-bs-target="#collapsePrimerInfo" aria-expanded="true" aria-controls="collapseExample">
  Show PrimerInfo fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse show" id="collapsePrimerInfo">
  <div class="card card-body">
### Required  
*  seq (***type=string***)  
    *  the sequence  

### Optional  
*  location (***type=[GenomicLocation](#genomiclocation)***)  
    *  what the intended genomic location of the primer is  

### Example  
```{json}
{
        "location": {
          "chrom": "LS483365.1",
          "end": 849631,
          "genome_id": 0,
          "start": 849607,
          "strand": "+"
        },
        "seq": "GGAGTTATCATGCCAACAGTTATA"
      },
```  
  </div>
</div><br>

## ProjectInfo  
<https://plasmogenepi.github.io/portable-microhaplotype-object/ProjectInfo/>  
<a class = "btn btn-light" data-bs-toggle="collapse" data-bs-target="#collapseProjectInfo" aria-expanded="true" aria-controls="collapseExample">
  Show ProjectInfo fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse show" id="collapseProjectInfo">
  <div class="card card-body">
### Required  
*  project_name (***type=string***)  
    *  a name for the project, should be unique if multiple projects listed  
*  project_description (***type=string***)  
    *  a short description of the project  

### Optional  
*  BioProject_accession (***type=string***)  
    *  an SRA bioproject accession e.g. PRJNA33823  
*  project_collector_chief_scientist (***type=string***)  
    *  can be collection of names separated by a semicolon if multiple people involved or can just be the name of the primary person managing the specimen  
*  project_contributors (***type=list of string***)  
    *  a list of collaborators who contributed to this project  
*  project_type (***type=string***)  
    *  the type of project conducted, e.g. TES vs surveillance vs transmission  

### Example  
```{json}
    {
      "BioProject_accession": "PRJNA1166327",
      "project_description": "Amplicon sequencing of Staphylococcus aureus from oral and nasal samples",
      "project_name": "PRJNA1166327"
    },
```  
  </div>
</div><br>

## ProteinVariant  
<https://plasmogenepi.github.io/portable-microhaplotype-object/ProteinVariant/>  
<a class = "btn btn-light" data-bs-toggle="collapse" data-bs-target="#collapseProteinVariant" aria-expanded="true" aria-controls="collapseExample">
  Show ProteinVariant fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse show" id="collapseProteinVariant">
  <div class="card card-body">
### Required  
*  protein_location (***type=[GenomicLocation](#genomiclocation)***)  
    *  the position within the protein, the chromosome in this case would be the transcript name  

### Optional  
*  alternative_gene_name (***type=string***)  
    *  an alternative gene name  
*  codon_genomic_location (***type=[GenomicLocation](#genomiclocation)***)  
    *  the position within the genomic sequence of the codon  
*  gene_name (***type=string***)  
    *  an identifier of the gene, if any, is being covered with this targeted  

### Example  
```{json}
```  
  </div>
</div><br>

## Pseudocigar  
<https://plasmogenepi.github.io/portable-microhaplotype-object/Pseudocigar/>  
<a class = "btn btn-light" data-bs-toggle="collapse" data-bs-target="#collapsePseudocigar" aria-expanded="true" aria-controls="collapseExample">
  Show Pseudocigar fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse show" id="collapsePseudocigar">
  <div class="card card-body">
### Required  
*  pseudocigar_seq (***type=string***)  
    *  the pseudocigar itself  
*  ref_loc (***type=[GenomicLocation](#genomiclocation)***)  
    *  the genomic location the pseudocigar is in reference to  

### Optional  
*  pseudocigar_generation_description (***type=string***)  
    *  a description of how the pseudocigar information was generated   

### Example  
```{json}
```  
  </div>
</div><br>

## ReactionInfo  
<https://plasmogenepi.github.io/portable-microhaplotype-object/ReactionInfo/>  
<a class = "btn btn-light" data-bs-toggle="collapse" data-bs-target="#collapseReactionInfo" aria-expanded="true" aria-controls="collapseExample">
  Show ReactionInfo fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse show" id="collapseReactionInfo">
  <div class="card card-body">
### Required  
*  panel_targets (***type= list of integer***)  
    *  a list of the target indexes in the target_info list  
*  reaction_name (***type=string***)  
    *  a name for this reaction  

### Example  
```{json}
```  
  </div>
</div><br>

## ReadCountsByStage  
<https://plasmogenepi.github.io/portable-microhaplotype-object/ReadCountsByStage/>  
<a class = "btn btn-light" data-bs-toggle="collapse" data-bs-target="#collapseReadCountsByStage" aria-expanded="true" aria-controls="collapseExample">
  Show ReadCountsByStage fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse show" id="collapseReadCountsByStage">
  <div class="card card-body">
### Required  
*  read_counts_by_library_sample_by_stage (***type=[list of ReadCountsByStageForLibrarySample](#readcountsbystageforlibrarysample)***)  
    *  a list by library_sample for the counts at each stage  

### Optional  
*  bioinformatics_run_id (***type=integer***)  
    *  the index into bioinformatics_run_info list  

### Example  
```{json}
```  
  </div>
</div><br>

## ReadCountsByStageForLibrarySample  
<https://plasmogenepi.github.io/portable-microhaplotype-object/ReadCountsByStageForLibrarySample/>  
<a class = "btn btn-light" data-bs-toggle="collapse" data-bs-target="#collapseReadCountsByStageForLibrarySample" aria-expanded="true" aria-controls="collapseExample">
  Show ReadCountsByStageForLibrarySample fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse show" id="collapseReadCountsByStageForLibrarySample">
  <div class="card card-body">
### Required  
*  library_sample_id (***type=integer***)  
    *  the index into the library_sample_info list  
*  total_raw_count (***type=integer***)  
    *  the raw counts off the sequencing machine that a sample began with  

### Optional  
*  read_counts_for_targets (***type=[list of ReadCountsByStageForTarget](#readcountsbystagefortarget)***)  
    *  a list of counts by stage for a target  

### Example  
```{json}
```  
  </div>
</div><br>

## ReadCountsByStageForTarget  
<https://plasmogenepi.github.io/portable-microhaplotype-object/ReadCountsByStageForTarget/>  
<a class = "btn btn-light" data-bs-toggle="collapse" data-bs-target="#collapseReadCountsByStageForTarget" aria-expanded="true" aria-controls="collapseExample">
  Show ReadCountsByStageForTarget fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse show" id="collapseReadCountsByStageForTarget">
  <div class="card card-body">
### Required  
*  target_id (***type=integer***)  
    *  the index into the target_info list  
*  stages (***type=[list of StageReadCounts](#stagereadcounts)***)  
    *  the read counts by each stage  

### Example  
```{json}
```  
  </div>
</div><br>

## RepresentativeMicrohaplotype  
<https://plasmogenepi.github.io/portable-microhaplotype-object/RepresentativeMicrohaplotype/>  
<a class = "btn btn-light" data-bs-toggle="collapse" data-bs-target="#collapseRepresentativeMicrohaplotype" aria-expanded="true" aria-controls="collapseExample">
  Show RepresentativeMicrohaplotype fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse show" id="collapseRepresentativeMicrohaplotype">
  <div class="card card-body">
### Required  
*  seq (***type=string***)  
    *  the sequence  

### Optional  
*  alt_annotations (***type=list of string***)  
    *  a list of additional annotations associated with this microhaplotype, e.g. wildtype  
*  associated_protein_variants (***type=[list of ProteinVariant](#proteinvariant)***)  
    *  a list of protein variants for this haplotype, e.g. amino acid changes/INDELS  
*  associated_seq_variants (***type=[list of GenomicLocation](#genomiclocation)***)  
    *  a list of sequence variants for this haplotype, e.g. SNPS, indels  
*  masking (***type=[list of MaskingInfo](#maskinginfo)***)  
    *  masking info for the sequence  
*  microhaplotype_name (***type=string***)  
    *  an optional name for this microhaplotype  
*  pseudocigar (***type=[Pseudocigar](#pseudocigar)***)  
    *  the pseudocigar of the haplotype  
*  quality (***type=string***)  
    *  the ASCII fastq per base quality score for this sequence, this is optional, must be same length as the sequence  

### Example  
```{json}
```  
  </div>
</div><br>

## RepresentativeMicrohaplotypes  
<https://plasmogenepi.github.io/portable-microhaplotype-object/RepresentativeMicrohaplotypes/>  
<a class = "btn btn-light" data-bs-toggle="collapse" data-bs-target="#collapseRepresentativeMicrohaplotypes" aria-expanded="true" aria-controls="collapseExample">
  Show RepresentativeMicrohaplotypes fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse show" id="collapseRepresentativeMicrohaplotypes">
  <div class="card card-body">
### Required  
*  targets (***type=[list of RepresentativeMicrohaplotypesForTarget](#representativemicrohaplotypesfortarget)***)  
    *  a list of the microhaplotypes for each targets   

### Example  
```{json}
      {
        "microhaplotypes": [
          {
            "seq": "CAATATAATAACCTAATAAAATGTTTAGGTCAACCTTTATTTTAATTTTTTTAAAAGTATGAATTATTATGTTGAACGTTCGATTTAATATTAAGAAAAA"
          },
          {
            "seq": "CAATATAATAACCTAATAAAACGTTTAGGTCAACCTAAATTTATTTTAATTTTTTTAAAAGTATGAATTATTATGTTGAACGTTCAATTTAATGGTAAGTAAAA"
          },
          {
            "seq": "CAATATAATAACCTAATAAAATGTTTAGGTCAACCTAAATTTATTTTAATTTTTTTAAAAGTATGAATTATTATGTTGAACGTTCGATTTAATATTAAGAAAAA"
          },
          {
            "seq": "CAATATAATAACCTAATAAAACGTTTAGGTCAACCTAAATTTATTTTAATTTTTTAAAAGTATGAATTATTATGTTGAACGTTCGATTTAATATTAAGAAAAA"
          },
          {
            "seq": "CAATATAATAACCTAATAAAATGTTTAGGTCAACCTAAATTTATTTTAATTTTTTTTAAAAGCCTGAATTATTATGTTGAACGTTCGATTTAATATTAAGAAAAA"
          },
          {
            "seq": "CAATATAATAACCTAATAAAATGTTTATGTCAACCTAAATTTATTTTAATTTTTTTAAAAGTATGAATTATTATGTTGAACGTTCAATTTAATGGTAAGTAAAA"
          },
          {
            "seq": "CAATATAATAACCTAATAAAACGTTTAGGTCAACCTAAATTTATTTTATTTTTTTAAAAGTATGAATTATTATTTTGAATGTTCGATTTAATGGTAAGAAAAA"
          },
          {
            "seq": "CAATATAATAACCTAATAAAATGTTTAGGTCAACCTAAATTTATTTTAATTTTTTTAAAAGCCTGAATTATTATGTTGAACGTTCGATTTAATATTAAGAAAAA"
          },
          {
            "seq": "CAATATAATAACCTAATAAAACATTTAGGTCAACCTAAATTTATTTTAATTTTTTTAAAAGTATGAATTATTATGTTGAACGTTCAATTTAATGGTAAGTAAAA"
          },
          {
            "seq": "CAATATAATAACCTAATAAAACGTTTAGGTCAACCTAAATTTATTTTAATTTTTTTAAAAGTATGAATTATTATGTTGAACGTTCGATTTAATATTAAGAAAAA"
          },
          {
            "seq": "CAATATAATAACCTAATAAAATGCTTAGGTCAACCTAAATTTATTTTAATTTTTTTAAAAGCCTGAATTATTATGTTGAACGTTCGATTTAATATTAAGAAAAA"
          }
        ],
        "target_id": 25
      },
```  
  </div>
</div><br>

## RepresentativeMicrohaplotypesForTarget  
<https://plasmogenepi.github.io/portable-microhaplotype-object/RepresentativeMicrohaplotypesForTarget/>  
<a class = "btn btn-light" data-bs-toggle="collapse" data-bs-target="#collapseRepresentativeMicrohaplotypesForTarget" aria-expanded="true" aria-controls="collapseExample">
  Show RepresentativeMicrohaplotypesForTarget fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse show" id="collapseRepresentativeMicrohaplotypesForTarget">
  <div class="card card-body">
### Required  
*  target_id (***type=integer***)  
    *  the index into the target_info list  
*  microhaplotypes (***type=[list of RepresentativeMicrohaplotype](#representativemicrohaplotype)***)  
    *  a list of all the microhaplotypes for a target  

### Optional  
*  mhap_location (***type=[GenomicLocation](#genomiclocation)***)  
    *  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)   

### Example  

```{json}
{
    "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
}
```  
  </div>
</div><br>

## SequencingInfo  
<https://plasmogenepi.github.io/portable-microhaplotype-object/SequencingInfo/>  
<a class = "btn btn-light" data-bs-toggle="collapse" data-bs-target="#collapseSequencingInfo" aria-expanded="true" aria-controls="collapseExample">
  Show SequencingInfo fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse show" id="collapseSequencingInfo">
  <div class="card card-body">
### Required  
*  sequencing_info_name (***type=string***)  
    *  a name for a specific sequencing run, e.g. batch1  
*  seq_platform (***type=string***)  
    *  the sequencing technology used to sequence the run, e.g. ILLUMINA, NANOPORE, PACBIO  
*  seq_instrument_model (***type=string***)  
    *  the sequencing instrument model used to sequence the run, e.g. NextSeq 2000, MinION, Revio  
*  library_layout (***type=string***)  
    *  Specify the configuration of reads, e.g. paired-end, single  
*  library_strategy (***type=string***)  
    *  what the nuceloacid sequencing/amplification strategy was (common names are AMPLICON, WGS)  
*  library_source (***type=string***)  
    *  Source of amplification material e.g. was it DNA (GENOMIC) or RNA (TRANSCRIPTOMIC) (common names GENOMIC, TRANSCRIPTOMIC)  
*  library_selection (***type=string***)  
    *  how amplification was done (common are PCR=Source material was selected by designed primers, RANDOM =Random selection by shearing or other method)  

### Optional  
*  library_kit (***type=string***)  
    *  Name, version, and applicable cell or cycle numbers for the kit used to prepare libraries and load cells or chips for sequencing. If possible, include a part number, e.g. MiSeq Reagent Kit v3 (150-cycle), MS-102-3001  
*  library_screen (***type=string***)  
    *  Describe enrichment, screening, or normalization methods applied during amplification or library preparation, e.g. size selection 390bp, diluted to 1 ng DNA/sample  
*  nucl_acid_amp (***type=string***)  
    *  Link to a reference or kit that describes the enzymatic amplification of nucleic acids  
*  nucl_acid_amp_date (***type=string***)  
    *  the date of the nucleoacid amplification  
*  nucl_acid_ext (***type=string***)  
    *  Link to a reference or kit that describes the recovery of nucleic acids from the sample  
*  nucl_acid_ext_date (***type=string***)  
    *  the date of the nucleoacid extraction  
*  pcr_cond (***type=string***)  
    *  the method/conditions for PCR, List PCR cycles used to amplify the target  
*  seq_center (***type=string***)  
    *  Name of facility where sequencing was performed (lab, core facility, or company)  
*  seq_date (***type=string***)  
    *  the date of sequencing, should be YYYY-MM or YYYY-MM-DD  

### Example  
```{json}
    {
      "library_layout": "PAIRED",
      "library_selection": "PCR",
      "library_source": "GENOMIC",
      "library_strategy": "AMPLICON",
      "seq_instrument_model": "Illumina MiSeq",
      "seq_platform": "ILLUMINA",
      "sequencing_info_name": "seq_info"
    },
```  
  </div>
</div><br>

## SpecimenInfo  
<https://plasmogenepi.github.io/portable-microhaplotype-object/SpecimenInfo/>  
<a class = "btn btn-light" data-bs-toggle="collapse" data-bs-target="#collapseSpecimenInfo" aria-expanded="true" aria-controls="collapseExample">
  Show SpecimenInfo fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse show" id="collapseSpecimenInfo">
  <div class="card card-body">
### Required  
*  specimen_name (***type=string***)  
    *  an identifier for the specimen, should be unique within this sample set  

### Optional  
*  alternate_identifiers (***type=list of string***)  
    *  a list of alternative names  
*  blood_meal (***type=boolean***)  
    *  whether host specimen has had a recent blood meal    
*  collection_country (***type=string***)  
    *  the name of country collected in, would be the same as admin level 0  
*  collection_date (***type=string***)  
    *  the date of the specimen collection, can be YYYY, YYYY-MM, or YYYY-MM-DD  
*  drug_usage (***type=list of string***)  
    *  Any drug used by subject and the frequency of usage; can include multiple drugs used  
*  env_broad_scale (***type=string***)  
    *  the broad environment from which the specimen was collected, e.g. highlands, lowlands, mountainous region  
*  env_local_scale (***type=string***)  
    *  the local environment from which the specimen was collected, e.g. jungle, urban, rural  
*  env_medium (***type=string***)  
    *  the environment medium from which the specimen was collected from  
*  geo_admin1 (***type=string***)  
    *  geographical admin level 1, the secondary large demarcation of a nation (nation = admin level 0)  
*  geo_admin2 (***type=string***)  
    *  geographical admin level 2, the third large demarcation of a nation (nation = admin level 0)  
*  geo_admin3 (***type=string***)  
    *  geographical admin level 3, the third large demarcation of a nation (nation = admin level 0)  
*  gravid (***type=boolean***)  
    *  whether host specimen is currently pregnant  
*  gravidity (***type=integer***)  
    *  the gravidity of the specimen host (number of previous pregnancies)  
*  has_travel_out_six_month (***type=boolean***)  
    *  has travelled out from local region in the last six months  
*  host_age (***type=number***)  
    *  if specimen is from a person, the age in years of the person, can be float value so for 3 month old put 0.25  
*  host_sex (***type=string***)  
    *  if specimen is collected from a host with a sex, the sex listed for that host  
*  host_subject_name (***type=string***)  
    *  an identifier for the individual/person/patient a specimen was collected from  
*  host_taxon_id (***type=integer***)  
    *  the NCBI taxonomy number of the host that the specimen was collected from  
*  lat_lon (***type=string***)  
    *  the latitude and longitude of a specific site  
*  parasite_density_info (***type=[list of ParasiteDensity](#parasitedensity)***)  
    *  one or more parasite densities in microliters for this specimen  
*  project_id (***type=integer***)  
    *  the index into the project_info list  
*  specimen_accession (***type=string***)  
    *  if specimen is deposited in a database, what accession is it associated with  
*  specimen_collect_device (***type=string***)  
    *  the way the specimen was collected, e.g. whole blood, dried blood spot  
*  specimen_comments (***type=list of string***)  
    *  any additional comments about the specimen  
*  specimen_store_loc (***type=string***)  
    *  the specimen store site, address or facility name  
*  specimen_taxon_id (***type=list of integer***)  
    *  the NCBI taxonomy number of the organism(s) in the specimen, can list multiple if a mixed sample  
*  specimen_type (***type=string***)  
    *  what type of specimen this is, e.g. negative_control, positive_control, field_sample  
*  storage_plate_info (***type=[PlateInfo](#plateinfo)***)  
    *  plate location of where specimen is stored if stored in a plate   
*  travel_out_six_month (***type=[list of TravelInfo](#travelinfo)***)  
    *  Specification of the countries travelled in the last six months; can include multiple travels  
*  treatment_status (***type=list of string***)  
    *  If person has been treated with drugs, what was the treatment outcome  

### Example  
```{json}
```  
  </div>
</div><br>

## StageReadCounts  
<https://plasmogenepi.github.io/portable-microhaplotype-object/StageReadCounts/>  
<a class = "btn btn-light" data-bs-toggle="collapse" data-bs-target="#collapseStageReadCounts" aria-expanded="true" aria-controls="collapseExample">
  Show StageReadCounts fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse show" id="collapseStageReadCounts">
  <div class="card card-body">
### Required  
*  reads (***type=integer***)  
    *  the read counts for this stage  
*  stage (***type=string***)  
    *  the stage of the pipeline, e.g. demultiplexed, denoised, etc  

### Example  
```{json}
    {
      "collection_country": "USA",
      "collection_date": "2022-03-21",
      "geo_admin1": "Phoenix",
      "host_taxon_id": 9606,
      "project_id": 0,
      "specimen_accession": "SAMN43965049",
      "specimen_name": "85b498-Wk22-Nasal",
      "specimen_taxon_id": [
        1280
      ]
    },
```  
  </div>
</div><br>

## TargetInfo  
<https://plasmogenepi.github.io/portable-microhaplotype-object/TargetInfo/>  
<a class = "btn btn-light" data-bs-toggle="collapse" data-bs-target="#collapseTargetInfo" aria-expanded="true" aria-controls="collapseExample">
  Show TargetInfo fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse show" id="collapseTargetInfo">
  <div class="card card-body">
### Required  
*  target_name (***type=string***)  
    *  a name for this target  
*  forward_primer (***type=[PrimerInfo](#primerinfo)***)  
    *  the forward primer for this target  
*  reverse_primer (***type=[PrimerInfo](#primerinfo)***)  
    *  the reverse primer for this target  

### Optional  
*  gene_name (***type=string***)  
    *  an identifier of the gene, if any, is being covered with this targeted  
*  insert_location (***type=[GenomicLocation](#genomiclocation)***)  
    *  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 (***type=[list of MarkerOfInterest](#markerofinterest)***)  
    *  a list of markers of interest that are covered by this target  
*  target_attributes (***type=list of string***)  
    *  a list of classification types for this target  

### Example  
```{json}
{
    "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"
}
```  
```{json}
{
    "forward_primer": {
        "seq": "TTTTTCTCCACTTTGTAATTTTTATTGTTGAAT"
    },
    "reverse_primer": {
        "seq": "CGGGTGGTATCATGAGAATAGTTGAT"
    },
    "target_name": "t96"
}
```  
  </div>
</div><br>

## TravelInfo  
<https://plasmogenepi.github.io/portable-microhaplotype-object/TravelInfo/>  
<a class = "btn btn-light" data-bs-toggle="collapse" data-bs-target="#collapseTravelInfo" aria-expanded="true" aria-controls="collapseExample">
  Show TravelInfo fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse show" id="collapseTravelInfo">
  <div class="card card-body">
### Required  
*  travel_country (***type=string***)  
    *  the name of country, would be the same as admin level 0  
*  travel_start_date (***type=string***)  
    *  the date of the start of travel, can be approximate, should be YYYY-MM or YYYY-MM-DD (preferred)  
*  travel_end_date (***type=string***)  
    *  the date of the end of travel, can be approximate, should be YYYY-MM or YYYY-MM-DD (preferred)  

### Optional  
*  bed_net_usage (***type=number***)  
    *  approximate usage of bed net while traveling, 1 = 100% nights with bed net, 0 = 0% no bed net usage  
*  geo_admin1 (***type=string***)  
    *  geographical admin level 1, the secondary large demarcation of a nation (nation = admin level 0)  
*  geo_admin2 (***type=string***)  
    *  geographical admin level 2, the third large demarcation of a nation (nation = admin level 0)  
*  geo_admin3 (***type=string***)  
    *  geographical admin level 3, the third large demarcation of a nation (nation = admin level 0)  
*  lat_lon (***type=string***)  
    *  the latitude and longitude of a specific site  

### Example  
```{json}
```  
  </div>
</div><br>

{{< fa dna >}}
 

A PlasmoGenEpi project