Portable Microhaplotype Object (PMO)
  • Home
  • Format Info
    • Development of Format
    • PMO fields overview
    • PMO Examples
    • Format Overview For Developers
  • Tools Installation
    • pmotools-python installation
  • pmotools-python usages
    • Command line interface

    • pmotools-runner.py
    • Command line interface to pmotools-python with pmotools-runner.py
    • Extracting out of PMO
    • Extracting allele tables using pmotools-python
    • Subset PMO
    • Subsetting from a PMO using pmotools-python
    • Getting sub info from PMO
    • Getting basic info out of PMO using pmotools-python
    • Getting panel info out of PMO using pmotools-python
    • Handling Multiple PMOs
    • Handling multiple PMOs pmotools-python

    • Python interface
    • Getting basic info out of a PMO
    • Creating a PMO File
  • 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

  • Goal
  • Overview
    • PortableMicrohaplotypeObject
      • Required
      • Optional
      • Example
    • BioMethod
    • BioinformaticsMethodInfo
    • BioinformaticsRunInfo
    • DetectedMicrohaplotypes
    • DetectedMicrohaplotypesForSample
    • DetectedMicrohaplotypesForTarget
    • ExperimentInfo
    • GenomeInfo
    • GenomicLocation
    • MarkerOfInterest
    • MaskingInfo
    • MicrohaplotypeForTarget
    • PanelInfo
    • ParasiteDensity
    • PlateInfo
    • PmoGenerationMethod
    • PmoHeader
    • PrimerInfo
    • ProjectInfo
    • ReactionInfo
    • ReadCountsByStage
    • ReadCountsByStageForExperimentalSample
    • ReadCountsByStageForTarget
    • RepresentativeMicrohaplotype
    • RepresentativeMicrohaplotypes
    • RepresentativeMicrohaplotypesForTarget
    • SequencingInfo
    • SpecimenInfo
    • StageReadCounts
    • TargetInfo

PMO fields overview

  • Show All Code
  • Hide All Code

  • View Source

Goal

Creating fields with efforts to be consistent with MIxS standards. These are the standards that the short read archive (SRA) use to validate metadata upon submission. This also helps to keep data standards to adhere to FAIR (Findable, Accessible, Interoperable, and Reusable).

Format was developed in order to achieve an efficient/low-weight format that contains the minimum amount of information about a targeted amplicon analysis without losing any important data. Tools are generated around this table to generate certain fields that are important but not necessary to keep constantly stored in this base class (e.g. SNP/INDEL calls). To increase portability and to keep data internally consistent, format was desinged to be contained within a singular file in JSON format which removes the limitation of storing data only in a tabular format. Output generated from this file can be a table for downstream usage but storing in the flexible JSON format allows storage in non-redundnat organiation (e.g. storing an ID only once while storing other data in lists).

Format is defined by utilizing LinkML to generate a general data scheme which creates various validation outputs like JSON Schema for validation tools. LinkML generates a website for viewing all fields defined in the format, https://github.com/PlasmoGenEpi/portable-microhaplotype-object.

Other notable users of LinkML/MIxS National Microbiome Data Collaborative Schema

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_description BioinformaticsMethodInfo_NODE BioinformaticsMethodInfotypelistorsingle valuefieldsrequiredBioMethodsingledemultiplexing_methodBioMethodsingledenoising_methodoptionalBioMethodlistadditional_methodsstringsinglebioinformatics_method_name BioinformaticsMethodInfo_NODE:additional_methods->BioMethod_NODE:BioMethod BioinformaticsMethodInfo_NODE:demultiplexing_method->BioMethod_NODE:BioMethod BioinformaticsMethodInfo_NODE:denoising_method->BioMethod_NODE:BioMethod BioinformaticsRunInfo_NODE BioinformaticsRunInfotypelistorsingle valuefieldsrequiredintegersinglebioinformatics_methods_idstringsinglebioinformatics_run_nameoptionalstringsinglerun_date DetectedMicrohaplotypes_NODE DetectedMicrohaplotypestypelistorsingle valuefieldsrequiredintegersinglebioinformatics_run_idDetectedMicrohaplotypesForSamplelistexperiment_samples DetectedMicrohaplotypesForSample_NODE DetectedMicrohaplotypesForSampletypelistorsingle valuefieldsrequiredintegersingleexperiment_sample_idDetectedMicrohaplotypesForTargetlisttarget_results DetectedMicrohaplotypes_NODE:experiment_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 ExperimentInfo_NODE ExperimentInfotypelistorsingle valuefieldsrequiredintegersinglesequencing_info_idintegersinglespecimen_idintegersinglepanel_idstringsingleexperiment_sample_nameoptionalstringsingleaccessionPlateInfosinglelibrary_prep_plate_infoParasiteDensitylistqpcr_parasite_density_info ParasiteDensity_NODE ParasiteDensitytypelistorsingle valuefieldsrequiredstringsingledensity_methodnumbersingleparasite_densityoptionalstringsingledate_measuredstringsingledensity_method_comments ExperimentInfo_NODE:qpcr_parasite_density_info->ParasiteDensity_NODE:ParasiteDensity PlateInfo_NODE PlateInfotypelistorsingle valuefieldsrequiredoptionalintegersingleplate_colstringsingleplate_namestringsingleplate_row ExperimentInfo_NODE:library_prep_plate_info->PlateInfo_NODE:PlateInfo GenomeInfo_NODE GenomeInfotypelistorsingle valuefieldsrequiredstringsinglenamestringsinglegenome_versionintegersingletaxon_idstringsingleurloptionalstringlistchromosomesstringsinglegff_url GenomicLocation_NODE GenomicLocationtypelistorsingle valuefieldsrequiredintegersinglegenome_idstringsinglechromintegersinglestartintegersingleendoptionalstringsinglealt_seqstringsingleref_seqstringsinglestrand MarkerOfInterest_NODE MarkerOfInteresttypelistorsingle valuefieldsrequiredGenomicLocationsinglemarker_locationoptionalstringlistassociations MarkerOfInterest_NODE:marker_location->GenomicLocation_NODE:GenomicLocation MaskingInfo_NODE MaskingInfotypelistorsingle valuefieldsrequiredintegersingleseq_startintegersingleseq_segment_sizeintegersinglereplacement_size 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 valuefieldsrequiredExperimentInfolistexperiment_infoSpecimenInfolistspecimen_infoSequencingInfolistsequencing_infoPanelInfolistpanel_infoTargetInfolisttarget_infoGenomeInfolisttargeted_genomesRepresentativeMicrohaplotypessinglerepresentative_microhaplotypesBioinformaticsMethodInfolistbioinformatics_methods_infoBioinformaticsRunInfolistbioinformatics_run_infoDetectedMicrohaplotypeslistdetected_microhaplotypesProjectInfolistproject_infoPmoHeadersinglepmo_headeroptionalReadCountsByStagelistread_counts_by_stage 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:experiment_info->ExperimentInfo_NODE:ExperimentInfo PortableMicrohaplotypeObject_NODE:targeted_genomes->GenomeInfo_NODE:GenomeInfo 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 valuefieldsrequiredintegersinglebioinformatics_run_idReadCountsByStageForExperimentalSamplelistread_counts_by_experimental_sample_by_stage 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_nameintegerlistspecimen_taxon_idintegersinglehost_taxon_idstringsinglecollection_datestringsinglecollection_countryintegersingleproject_idoptionalstringlistalternate_identifiersstringlistdrug_usagestringsingleenv_broad_scalestringsingleenv_local_scalestringsingleenv_mediumstringsinglegeo_admin1stringsinglegeo_admin2stringsinglegeo_admin3numbersinglehost_agestringsinglehost_sexintegersinglehost_subject_idstringsinglelat_lonParasiteDensitylistmicroscopy_parasite_density_infostringsinglespecimen_collect_devicestringlistspecimen_commentsstringsinglespecimen_store_locstringsinglespecimen_typePlateInfosinglestorage_plate_infostringlisttravel_out_six_month 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 ReadCountsByStageForExperimentalSample_NODE ReadCountsByStageForExperimentalSampletypelistorsingle valuefieldsrequiredintegersingleexperiment_sample_idintegersingletotal_raw_countoptionalReadCountsByStageForTargetlistread_counts_for_targets ReadCountsByStage_NODE:read_counts_by_experimental_sample_by_stage->ReadCountsByStageForExperimentalSample_NODE:ReadCountsByStageForExperimentalSample ReadCountsByStageForTarget_NODE ReadCountsByStageForTargettypelistorsingle valuefieldsrequiredintegersingletarget_idStageReadCountsliststages ReadCountsByStageForExperimentalSample_NODE:read_counts_for_targets->ReadCountsByStageForTarget_NODE:ReadCountsByStageForTarget StageReadCounts_NODE StageReadCountstypelistorsingle valuefieldsrequiredintegersingleread_countstringsinglestage ReadCountsByStageForTarget_NODE:stages->StageReadCounts_NODE:StageReadCounts RepresentativeMicrohaplotype_NODE RepresentativeMicrohaplotypetypelistorsingle valuefieldsrequiredstringsingleseqoptionalstringlistalt_annotationsMaskingInfolistmaskingstringsinglemicrohaplotype_namestringsinglepseudocigarstringsinglequality RepresentativeMicrohaplotype_NODE:masking->MaskingInfo_NODE:MaskingInfo 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:microscopy_parasite_density_info->ParasiteDensity_NODE:ParasiteDensity SpecimenInfo_NODE:storage_plate_info->PlateInfo_NODE:PlateInfo 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/

Required

  • experiment_info (type=list of ExperimentInfo)
    • a list of experiments of all the seq/amp of the specimens within this project
  • specimen_info (type=list of SpecimenInfo)
    • a list of all the specimens within this project
  • sequencing_info (type=list of SequencingInfo)
    • a list of sequencing info for this project
  • 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
  • targeted_genomes (type=list of GenomeInfo)
    • a list of genomes that the targets in TargetInfo refer to
  • representative_microhaplotypes (type=RepresentativeMicrohaplotypes)
    • a list of the information on the representative microhaplotypes
  • bioinformatics_methods_info (type=list of BioinformaticsMethodInfo)
    • the bioinformatics pipeline/methods used to generated the amplicon analysis for this project
  • bioinformatics_run_info (type=list of BioinformaticsRunInfo)
    • the runtime info for the bioinformatics pipeline used to generated the amplicon analysis for this project
  • detected_microhaplotypes (type=list of DetectedMicrohaplotypes)
    • the microhaplotypes detected in this projects
  • project_info (type=list of ProjectInfo)
    • the information about the projects stored in this PMO
  • pmo_header (type=PmoHeader)
    • the PMO information for this file including version etc

Optional

  • read_counts_by_stage (type=list of ReadCountsByStage)
    • the read counts for different stages of the pipeline

Example

Code

BioMethod

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

Required

  • program_version (type=string)
    • the version of generation method, 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
  • program_description (type=string)
    • a short description of what this method does

Example

Code


BioinformaticsMethodInfo

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

Required

  • demultiplexing_method (type=BioMethod)
    • the demultiplexing method used to separate raw reads from barcodes and primer targets
  • denoising_method (type=BioMethod)
    • the method used to de-noise and/or cluster the raw reads

Optional

  • additional_methods (type=list of BioMethod)
    • any additional methods used to analyze the data
  • bioinformatics_method_name (type=string)
    • name of the collection of methods is called, e.g. pipeline

Example

Code


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

  • bioinformatics_run_id (type=integer)
    • the index into bioinformatics_run_info list
  • experiment_samples (type=list of DetectedMicrohaplotypesForSample)
    • a list of the microhaplotypes detected for a sample by targets

Example

Code


DetectedMicrohaplotypesForSample

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

Required

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

Example

Code


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


ExperimentInfo

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

Required

  • sequencing_info_id (type=integer)
    • the index into the sequencing_info list
  • specimen_id (type=integer)
    • the index into the specimen_info list
  • panel_id (type=integer)
    • the index into the panel_info list
  • experiment_sample_name (type=string)
    • a unique identifier for this sequence/amplification run on a specimen_name

Optional

  • accession (type=string)
    • ERA/SRA accession number for the sample if it was submitted
  • library_prep_plate_info (type=PlateInfo)
    • plate location of where experiment was prepared for sequencing
  • qpcr_parasite_density_info (type=list of ParasiteDensity)
    • qpcr parasite density measurement

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=integer)
    • the NCBI taxonomy number
  • url (type=string)
    • a link to the where this genome file could be downloaded

Optional

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

Example

Code


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


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

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 associated with this microhaplotype

Optional

  • umis (type=integer)
    • the unique molecular identifier (umi) count associated with 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

  • 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

Optional

  • plate_col (type=integer)
    • the column the specimen was in
  • plate_name (type=string)
    • a name of plate the specimen was in
  • plate_row (type=string)
    • the row the specimen was in

Example

Code


PmoGenerationMethod

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

Required

  • program_version (type=string)
    • the version of generation method, 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


PrimerInfo

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

Required

  • seq (type=string)
    • the DNA sequence

Optional

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

Example

Code


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


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

  • bioinformatics_run_id (type=integer)
    • the index into bioinformatics_run_info list
  • read_counts_by_experimental_sample_by_stage (type=list of ReadCountsByStageForExperimentalSample)
    • a list by experiment_sample for the counts at each stage

Example

Code


ReadCountsByStageForExperimentalSample

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

Required

  • experiment_sample_id (type=integer)
    • the index into the experiment_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 DNA sequence

Optional

  • alt_annotations (type=list of string)
    • a list of additional annotations associated with this microhaplotype, e.g. wildtype, amino acid changes etc
  • masking (type=list of MaskingInfo)
    • masking info for the sequence
  • microhaplotype_name (type=string)
    • an optional name for this microhaplotype
  • pseudocigar (type=string)
    • the pseudocigar of the haplotype
  • quality (type=string)
    • the ansi fastq per base quality score for this sequence, this is optional

Example

Code


RepresentativeMicrohaplotypes

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

Required

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

Example

Code


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 the microhaplotypes detected 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 base in from the full)

Example

Code


SequencingInfo

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

Required

  • sequencing_info_name (type=string)
    • a name of for the sequencing done, 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 (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


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
  • specimen_taxon_id (type= list of integer)
    • the NCBI taxonomy number of the organism in specimen, can list multiple if a mixed sample
  • host_taxon_id (type=integer)
    • the NCBI taxonomy number of the host that the specimen was collected from
  • collection_date (type=string)
    • the date of the specimen collection, can be YYYY, YYYY-MM, or YYYY-MM-DD
  • collection_country (type=string)
    • the name of country collected in, would be the same as admin level 0
  • project_id (type=integer)
    • the index into the project_info list

Optional

  • alternate_identifiers (type=list of string)
    • a list of optional alternative names for the specimens
  • 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)
  • 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 from a person, the sex listed for that person
  • host_subject_id (type=integer)
    • an identifier for the individual a specimen was collected from
  • lat_lon (type=string)
    • the latitude and longitude of the collection site of the specimen
  • microscopy_parasite_density_info (type=list of ParasiteDensity)
    • one or more parasite densities in microliters for this specimen
  • 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_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 string)
    • Specification of the countries travelled in the last six months; can include multiple travels

Example

Code


StageReadCounts

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

Required

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

Example

Code


TargetInfo

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

Required

  • target_name (type=string)
    • an identifier for this target
  • forward_primer (type=PrimerInfo)
    • the forward primer associated with this target
  • reverse_primer (type=PrimerInfo)
    • the reverse primer associated with 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 covered markers of interest
  • target_attributes (type=list of string)
    • a list of classification type for the primer target

Example

Code


Source Code
---
title: PMO fields overview 
# format: docx
---

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


# Goal  

Creating fields with efforts to be consistent with [MIxS standards](https://genomicsstandardsconsortium.github.io/mixs/). These are the standards that the short read archive (SRA) use to validate metadata upon submission. This also helps to keep data standards to adhere to FAIR (Findable, Accessible, Interoperable, and Reusable). 

Format was developed in order to achieve an efficient/low-weight format that contains the minimum amount of information about a targeted amplicon analysis without losing any important data. Tools are generated around this table to generate certain fields that are important but not necessary to keep constantly stored in this base class (e.g. SNP/INDEL calls). To increase portability and to keep data internally consistent, format was desinged to be contained within a singular file in [JSON format](https://en.wikipedia.org/wiki/JSON) which removes the limitation of storing data only in a tabular format. Output generated from this file can be a table for downstream usage but storing in the flexible JSON format allows storage in non-redundnat organiation (e.g. storing an ID only once while storing other data in lists).

Format is defined by utilizing [LinkML](https://linkml.io/linkml/) to generate a general data scheme which creates various validation outputs like [JSON Schema](https://json-schema.org/) for validation tools. LinkML generates a website for viewing all fields defined in the format, <https://github.com/PlasmoGenEpi/portable-microhaplotype-object>. 

Other notable users of LinkML/MIxS [National Microbiome Data Collaborative Schema](https://github.com/microbiomedata/nmdc-schema)

# 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")
```
<!-- ![](portable_microhaplotype_object.schema.dot.svg) -->

:::



## PortableMicrohaplotypeObject  
<https://plasmogenepi.github.io/portable-microhaplotype-object/PortableMicrohaplotypeObject/>  

### Required  
*  experiment_info (***type=[list of ExperimentInfo](#experimentinfo)***)  
    *  a list of experiments of all the seq/amp of the specimens within this project  
*  specimen_info (***type=[list of SpecimenInfo](#specimeninfo)***)  
    *  a list of all the specimens within this project  
*  sequencing_info (***type=[list of SequencingInfo](#sequencinginfo)***)  
    *  a list of sequencing info for this project  
*  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  
*  targeted_genomes (***type=[list of GenomeInfo](#genomeinfo)***)  
    *  a list of genomes that the targets in TargetInfo refer to  
*  representative_microhaplotypes (***type=[RepresentativeMicrohaplotypes](#representativemicrohaplotypes)***)  
    *  a list of the information on the representative microhaplotypes  
*  bioinformatics_methods_info (***type=[list of BioinformaticsMethodInfo](#bioinformaticsmethodinfo)***)  
    *  the bioinformatics pipeline/methods used to generated the amplicon analysis for this project  
*  bioinformatics_run_info (***type=[list of BioinformaticsRunInfo](#bioinformaticsruninfo)***)  
    *  the runtime info for the bioinformatics pipeline used to generated the amplicon analysis for this project  
*  detected_microhaplotypes (***type=[list of DetectedMicrohaplotypes](#detectedmicrohaplotypes)***)  
    *  the microhaplotypes detected in this projects  
*  project_info (***type=[list of ProjectInfo](#projectinfo)***)  
    *  the information about the projects stored in this PMO  
*  pmo_header (***type=[PmoHeader](#pmoheader)***)  
    *  the PMO information for this file including version etc  

### Optional  
*  read_counts_by_stage (***type=[list of ReadCountsByStage](#readcountsbystage)***)  
    *  the read counts for different stages of the pipeline  

### Example  
```{json}
```  

## BioMethod  
<https://plasmogenepi.github.io/portable-microhaplotype-object/BioMethod/>  
<a class = "btn btn-light" data-bs-toggle="collapse" data-bs-target="#collapseBioMethod" aria-expanded="false" aria-controls="collapseExample">
  Show BioMethod fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse" id="collapseBioMethod">
  <div class="card card-body">
### Required  
*  program_version (***type=string***)  
    *  the version of generation method, 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  
*  program_description (***type=string***)  
    *  a short description of what this method does  

### Example  
```{json}
```  
  </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="false" aria-controls="collapseExample">
  Show BioinformaticsMethodInfo fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse" id="collapseBioinformaticsMethodInfo">
  <div class="card card-body">
### Required  
*  demultiplexing_method (***type=[BioMethod](#biomethod)***)  
    *  the demultiplexing method used to separate raw reads from barcodes and primer targets  
*  denoising_method (***type=[BioMethod](#biomethod)***)  
    *  the method used to de-noise and/or cluster the raw reads  

### Optional  
*  additional_methods (***type=[list of BioMethod](#biomethod)***)  
    *  any additional methods used to analyze the data  
*  bioinformatics_method_name (***type=string***)  
    *  name of the collection of methods is called, e.g. pipeline   

### Example  
```{json}
```  
  </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="false" aria-controls="collapseExample">
  Show BioinformaticsRunInfo fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse" 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="false" aria-controls="collapseExample">
  Show DetectedMicrohaplotypes fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse" id="collapseDetectedMicrohaplotypes">
  <div class="card card-body">
### Required  
*  bioinformatics_run_id (***type=integer***)  
    *  the index into bioinformatics_run_info list  
*  experiment_samples (***type=[list of DetectedMicrohaplotypesForSample](#detectedmicrohaplotypesforsample)***)  
    *  a list of the microhaplotypes detected for a sample by targets   

### 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="false" aria-controls="collapseExample">
  Show DetectedMicrohaplotypesForSample fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse" id="collapseDetectedMicrohaplotypesForSample">
  <div class="card card-body">
### Required  
*  experiment_sample_id (***type=integer***)  
    *  the index into the experiment_info list  
*  target_results (***type=[list of DetectedMicrohaplotypesForTarget](#detectedmicrohaplotypesfortarget)***)  
    *  a list of the microhaplotypes detected for a list of targets  

### Example  
```{json}
```  
  </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="false" aria-controls="collapseExample">
  Show DetectedMicrohaplotypesForTarget fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse" 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>

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

### Optional  
*  accession (***type=string***)  
    *  ERA/SRA accession number for the sample if it was submitted  
*  library_prep_plate_info (***type=[PlateInfo](#plateinfo)***)  
    *  plate location of where experiment was prepared for sequencing   
*  qpcr_parasite_density_info (***type=[list of ParasiteDensity](#parasitedensity)***)  
    *  qpcr parasite density measurement   

### 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="false" aria-controls="collapseExample">
  Show GenomeInfo fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse" 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=integer***)  
    *  the NCBI taxonomy number  
*  url (***type=string***)  
    *  a link to the where this genome file could be downloaded  

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

### Example  
```{json}
```  
  </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="false" aria-controls="collapseExample">
  Show GenomicLocation fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse" 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}
```  
  </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="false" aria-controls="collapseExample">
  Show MarkerOfInterest fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse" 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="false" aria-controls="collapseExample">
  Show MaskingInfo fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse" 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  

### 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="false" aria-controls="collapseExample">
  Show MicrohaplotypeForTarget fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse" 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 associated with this microhaplotype  

### Optional  
*  umis (***type=integer***)  
    *  the unique molecular identifier (umi) count associated with 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="false" aria-controls="collapseExample">
  Show PanelInfo fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse" 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="false" aria-controls="collapseExample">
  Show ParasiteDensity fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse" id="collapseParasiteDensity">
  <div class="card card-body">
### Required  
*  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="false" aria-controls="collapseExample">
  Show PlateInfo fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse" id="collapsePlateInfo">
  <div class="card card-body">
### Required  

### Optional  
*  plate_col (***type=integer***)  
    *  the column the specimen was in  
*  plate_name (***type=string***)  
    *  a name of plate the specimen was in  
*  plate_row (***type=string***)  
    *  the row the specimen was in  

### 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="false" aria-controls="collapseExample">
  Show PmoGenerationMethod fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse" id="collapsePmoGenerationMethod">
  <div class="card card-body">
### Required  
*  program_version (***type=string***)  
    *  the version of generation method, 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="false" aria-controls="collapseExample">
  Show PmoHeader fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse" 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}
```  
  </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="false" aria-controls="collapseExample">
  Show PrimerInfo fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse" id="collapsePrimerInfo">
  <div class="card card-body">
### Required  
*  seq (***type=string***)  
    *  the DNA sequence  

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

### Example  
```{json}
```  
  </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="false" aria-controls="collapseExample">
  Show ProjectInfo fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse" 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}
```  
  </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="false" aria-controls="collapseExample">
  Show ReactionInfo fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse" 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="false" aria-controls="collapseExample">
  Show ReadCountsByStage fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse" id="collapseReadCountsByStage">
  <div class="card card-body">
### Required  
*  bioinformatics_run_id (***type=integer***)  
    *  the index into bioinformatics_run_info list  
*  read_counts_by_experimental_sample_by_stage (***type=[list of ReadCountsByStageForExperimentalSample](#readcountsbystageforexperimentalsample)***)  
    *  a list by experiment_sample for the counts at each stage  

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

## ReadCountsByStageForExperimentalSample  
<https://plasmogenepi.github.io/portable-microhaplotype-object/ReadCountsByStageForExperimentalSample/>  
<a class = "btn btn-light" data-bs-toggle="collapse" data-bs-target="#collapseReadCountsByStageForExperimentalSample" aria-expanded="false" aria-controls="collapseExample">
  Show ReadCountsByStageForExperimentalSample fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse" id="collapseReadCountsByStageForExperimentalSample">
  <div class="card card-body">
### Required  
*  experiment_sample_id (***type=integer***)  
    *  the index into the experiment_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="false" aria-controls="collapseExample">
  Show ReadCountsByStageForTarget fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse" 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="false" aria-controls="collapseExample">
  Show RepresentativeMicrohaplotype fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse" id="collapseRepresentativeMicrohaplotype">
  <div class="card card-body">
### Required  
*  seq (***type=string***)  
    *  the DNA sequence  

### Optional  
*  alt_annotations (***type=list of string***)  
    *  a list of additional annotations associated with this microhaplotype, e.g. wildtype, amino acid changes etc  
*  masking (***type=[list of MaskingInfo](#maskinginfo)***)  
    *  masking info for the sequence  
*  microhaplotype_name (***type=string***)  
    *  an optional name for this microhaplotype  
*  pseudocigar (***type=string***)  
    *  the pseudocigar of the haplotype  
*  quality (***type=string***)  
    *  the ansi fastq per base quality score for this sequence, this is optional  

### 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="false" aria-controls="collapseExample">
  Show RepresentativeMicrohaplotypes fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse" id="collapseRepresentativeMicrohaplotypes">
  <div class="card card-body">
### Required  
*  targets (***type=[list of RepresentativeMicrohaplotypesForTarget](#representativemicrohaplotypesfortarget)***)  
    *  a list of the microhaplotype for each targets   

### Example  
```{json}
```  
  </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="false" aria-controls="collapseExample">
  Show RepresentativeMicrohaplotypesForTarget fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse" 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 the microhaplotypes detected 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 base in from the full)   

### Example  
```{json}
```  
  </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="false" aria-controls="collapseExample">
  Show SequencingInfo fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse" id="collapseSequencingInfo">
  <div class="card card-body">
### Required  
*  sequencing_info_name (***type=string***)  
    *  a name of for the sequencing done, 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 (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}
```  
  </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="false" aria-controls="collapseExample">
  Show SpecimenInfo fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse" id="collapseSpecimenInfo">
  <div class="card card-body">
### Required  
*  specimen_name (***type=string***)  
    *  an identifier for the specimen, should be unique within this sample set  
*  specimen_taxon_id (***type= list of integer***)  
    *  the NCBI taxonomy number of the organism in specimen, can list multiple if a mixed sample  
*  host_taxon_id (***type=integer***)  
    *  the NCBI taxonomy number of the host that the specimen was collected from  
*  collection_date (***type=string***)  
    *  the date of the specimen collection, can be YYYY, YYYY-MM, or YYYY-MM-DD  
*  collection_country (***type=string***)  
    *  the name of country collected in, would be the same as admin level 0  
*  project_id (***type=integer***)  
    *  the index into the project_info list  

### Optional  
*  alternate_identifiers (***type=list of string***)  
    *  a list of optional alternative names for the specimens  
*  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)  
*  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 from a person, the sex listed for that person  
*  host_subject_id (***type=integer***)  
    *  an identifier for the individual a specimen was collected from  
*  lat_lon (***type=string***)  
    *  the latitude and longitude of the collection site of the specimen  
*  microscopy_parasite_density_info (***type=[list of ParasiteDensity](#parasitedensity)***)  
    *  one or more parasite densities in microliters for this specimen  
*  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_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 string***)  
    *  Specification of the countries travelled in the last six months; can include multiple travels  

### 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="false" aria-controls="collapseExample">
  Show StageReadCounts fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse" id="collapseStageReadCounts">
  <div class="card card-body">
### Required  
*  read_count (***type=integer***)  
    *  the read counts  
*  stage (***type=string***)  
    *  the stage of the pipeline, e.g. demultiplexed, denoised, etc  

### Example  
```{json}
```  
  </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="false" aria-controls="collapseExample">
  Show TargetInfo fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse" id="collapseTargetInfo">
  <div class="card card-body">
### Required  
*  target_name (***type=string***)  
    *  an identifier for this target  
*  forward_primer (***type=[PrimerInfo](#primerinfo)***)  
    *  the forward primer associated with this target  
*  reverse_primer (***type=[PrimerInfo](#primerinfo)***)  
    *  the reverse primer associated with 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 covered markers of interest  
*  target_attributes (***type=list of string***)  
    *  a list of classification type for the primer target  

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

{{< fa dna >}}