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

Contents

  • Goal
  • Overview
    • PortableMicrohaplotypeObject
      • Required
      • Optional
      • Example
    • BioMethod
    • BioinformaticsMethodInfo
    • BioinformaticsRunInfo
    • ExperimentInfo
    • GenomeInfo
    • GenomicLocation
    • MarkerOfInterest
    • MaskingInfo
    • MicrohaplotypeForTarget
    • MicrohaplotypesDetected
    • MicrohaplotypesForSample
    • MicrohaplotypesForTarget
    • PanelInfo
    • ParasiteDensity
    • PlateInfo
    • PmoGenerationMethod
    • PmoHeader
    • PrimerInfo
    • 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_idstringsinglerun_dateoptionalstringsinglebioinformatics_run_name ExperimentInfo_NODE ExperimentInfotypelistorsingle valuefieldsrequiredintegersinglesequencing_info_idintegersinglespecimen_idintegersinglepanel_idstringsingleexperiment_sample_nameoptionalstringsingleaccessionPlateInfosingleextraction_plate_infoPlateInfosinglesequencing_prep_plate_info PlateInfo_NODE PlateInfotypelistorsingle valuefieldsrequiredoptionalintegersingleplate_colstringsingleplate_namestringsingleplate_row ExperimentInfo_NODE:extraction_plate_info->PlateInfo_NODE:PlateInfo ExperimentInfo_NODE:sequencing_prep_plate_info->PlateInfo_NODE:PlateInfo GenomeInfo_NODE GenomeInfotypelistorsingle valuefieldsrequiredstringsinglenamestringsinglegenome_versionintegersingletaxon_idstringsingleurloptionalstringlistchromosomesstringsinglegff_url GenomicLocation_NODE GenomicLocationtypelistorsingle valuefieldsrequiredintegersinglegenome_idstringsinglechromintegersinglestartintegersingleendoptionalstringsingleref_seqstringsinglestrand MarkerOfInterest_NODE MarkerOfInteresttypelistorsingle valuefieldsrequiredGenomicLocationsinglemarker_locationoptionalstringlistassociations MarkerOfInterest_NODE:marker_location->GenomicLocation_NODE:GenomicLocation MaskingInfo_NODE MaskingInfotypelistorsingle valuefieldsrequiredintegersingleseq_startintegersingleseq_segment_sizeintegersinglereplacement_size MicrohaplotypeForTarget_NODE MicrohaplotypeForTargettypelistorsingle valuefieldsrequiredintegersinglemhap_idintegersinglereadsoptionalintegersingleumis MicrohaplotypesDetected_NODE MicrohaplotypesDetectedtypelistorsingle valuefieldsrequiredintegersinglebioinformatics_run_idMicrohaplotypesForSamplelistexperiment_samples MicrohaplotypesForSample_NODE MicrohaplotypesForSampletypelistorsingle valuefieldsrequiredintegersingleexperiment_sample_idMicrohaplotypesForTargetlisttarget_results MicrohaplotypesDetected_NODE:experiment_samples->MicrohaplotypesForSample_NODE:MicrohaplotypesForSample MicrohaplotypesForTarget_NODE MicrohaplotypesForTargettypelistorsingle valuefieldsrequiredintegersinglemhaps_target_idMicrohaplotypeForTargetlisthaps MicrohaplotypesForSample_NODE:target_results->MicrohaplotypesForTarget_NODE:MicrohaplotypesForTarget MicrohaplotypesForTarget_NODE:haps->MicrohaplotypeForTarget_NODE:MicrohaplotypeForTarget PanelInfo_NODE PanelInfotypelistorsingle valuefieldsrequiredReactionInfolistreactionsstringsinglepanel_name ReactionInfo_NODE ReactionInfotypelistorsingle valuefieldsrequiredintegerlistpanel_targetsstringsinglereaction_name PanelInfo_NODE:reactions->ReactionInfo_NODE:ReactionInfo ParasiteDensity_NODE ParasiteDensitytypelistorsingle valuefieldsrequiredstringsinglemethodnumbersingledensity 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_genomesRepresentativeMicrohaplotypessinglemicrohaplotypes_infoBioinformaticsMethodInfolistbioinformatics_methods_infoBioinformaticsRunInfolistbioinformatics_run_infoMicrohaplotypesDetectedlistmicrohaplotypes_detectedPmoHeadersinglepmo_headeroptionalReadCountsByStagelistread_counts_by_stage PortableMicrohaplotypeObject_NODE:bioinformatics_methods_info->BioinformaticsMethodInfo_NODE:BioinformaticsMethodInfo PortableMicrohaplotypeObject_NODE:bioinformatics_run_info->BioinformaticsRunInfo_NODE:BioinformaticsRunInfo PortableMicrohaplotypeObject_NODE:experiment_info->ExperimentInfo_NODE:ExperimentInfo PortableMicrohaplotypeObject_NODE:targeted_genomes->GenomeInfo_NODE:GenomeInfo PortableMicrohaplotypeObject_NODE:microhaplotypes_detected->MicrohaplotypesDetected_NODE:MicrohaplotypesDetected PortableMicrohaplotypeObject_NODE:panel_info->PanelInfo_NODE:PanelInfo PortableMicrohaplotypeObject_NODE:pmo_header->PmoHeader_NODE:PmoHeader 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:microhaplotypes_info->RepresentativeMicrohaplotypes_NODE:RepresentativeMicrohaplotypes SequencingInfo_NODE SequencingInfotypelistorsingle valuefieldsrequiredstringsinglesequencing_info_namestringsingleseq_platformstringsingleseq_instrument_modelstringsingleseq_datestringsinglelibrary_layoutstringsinglelibrary_strategystringsinglelibrary_sourcestringsinglelibrary_selectionoptionalstringsinglelibrary_kitstringsinglelibrary_screenstringsinglenucl_acid_ampstringsinglenucl_acid_amp_datestringsinglenucl_acid_extstringsinglenucl_acid_ext_datestringsinglepcr_condstringsingleseq_center PortableMicrohaplotypeObject_NODE:sequencing_info->SequencingInfo_NODE:SequencingInfo SpecimenInfo_NODE SpecimenInfotypelistorsingle valuefieldsrequiredstringsinglespecimen_nameintegerlistspecimen_taxon_idintegersinglehost_taxon_idstringsinglecollection_datestringsinglecollection_countrystringsingleproject_nameoptionalstringlistalternate_identifiersstringsinglecollector_chief_scientiststringlistdrug_usagestringsingleenv_broad_scalestringsingleenv_local_scalestringsingleenv_mediumstringsinglegeo_admin1stringsinglegeo_admin2stringsinglegeo_admin3numbersinglehost_agestringsinglehost_sexintegersinglehost_subject_idstringsinglelat_lonParasiteDensitylistparasite_density_infoPlateInfosingleplate_infostringsinglespecimen_collect_devicestringlistspecimen_commentsstringsinglespecimen_store_locstringsinglespecimen_typestringlisttravel_out_six_month PortableMicrohaplotypeObject_NODE:specimen_info->SpecimenInfo_NODE:SpecimenInfo TargetInfo_NODE TargetInfotypelistorsingle valuefieldsrequiredstringsingletarget_namePrimerInfolistforward_primersPrimerInfolistreverse_primersoptionalstringsinglegene_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_idRepresentativeMicrohaplotypelistmicrohaplotypes RepresentativeMicrohaplotypes_NODE:targets->RepresentativeMicrohaplotypesForTarget_NODE:RepresentativeMicrohaplotypesForTarget RepresentativeMicrohaplotypesForTarget_NODE:microhaplotypes->RepresentativeMicrohaplotype_NODE:RepresentativeMicrohaplotype SpecimenInfo_NODE:parasite_density_info->ParasiteDensity_NODE:ParasiteDensity SpecimenInfo_NODE:plate_info->PlateInfo_NODE:PlateInfo TargetInfo_NODE:insert_location->GenomicLocation_NODE:GenomicLocation TargetInfo_NODE:markers_of_interest->MarkerOfInterest_NODE:MarkerOfInterest TargetInfo_NODE:forward_primers->PrimerInfo_NODE:PrimerInfo TargetInfo_NODE:reverse_primers->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
  • microhaplotypes_info (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
  • microhaplotypes_detected (type=list of MicrohaplotypesDetected)
    • the microhaplotypes detected in this projects
  • 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
  • run_date (type=string)
    • the date when the run was done, should be YYYY-MM-DD

Optional

  • bioinformatics_run_name (type=string)
    • a name to for this run

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
  • extraction_plate_info (type=PlateInfo)
    • plate location of where experiment was extracted
  • sequencing_prep_plate_info (type=PlateInfo)
    • plate location of where experiment was prepared for sequencing

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

  • 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 microhaplotypes_info list, e.g. microhaplotypes_info[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


MicrohaplotypesDetected

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

Required

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

Example

Code


MicrohaplotypesForSample

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

Required

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

Example

Code


MicrohaplotypesForTarget

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

Required

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

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

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

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


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

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
  • seq_date (type=string)
    • the date of sequencing, should be YYYY-MM or YYYY-MM-DD
  • 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)

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_name (type=string)
    • a name of the project under which the specimen is organized

Optional

  • alternate_identifiers (type=list of string)
    • a list of optional alternative names for the specimens
  • 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
  • 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
  • parasite_density_info (type=list of ParasiteDensity)
    • one or more parasite densities in microliters for this specimen
  • plate_info (type=PlateInfo)
    • plate location of where specimen is stored if stored in a plate
  • 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
  • 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_primers (type=list of PrimerInfo)
    • A list of forward primers associated with this target
  • reverse_primers (type=list of PrimerInfo)
    • A list of reverse primers 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  
*  microhaplotypes_info (***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  
*  microhaplotypes_detected (***type=[list of MicrohaplotypesDetected](#microhaplotypesdetected)***)  
    *  the microhaplotypes detected in this projects  
*  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  
*  run_date (***type=string***)  
    *  the date when the run was done, should be YYYY-MM-DD  

### Optional  
*  bioinformatics_run_name (***type=string***)  
    *  a name to for this run  

### 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  
*  extraction_plate_info (***type=[PlateInfo](#plateinfo)***)  
    *  plate location of where experiment was extracted  
*  sequencing_prep_plate_info (***type=[PlateInfo](#plateinfo)***)  
    *  plate location of where experiment was prepared for sequencing   

### 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  
*  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 microhaplotypes_info list, e.g. microhaplotypes_info[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>

## MicrohaplotypesDetected  
<https://plasmogenepi.github.io/portable-microhaplotype-object/MicrohaplotypesDetected/>  
<a class = "btn btn-light" data-bs-toggle="collapse" data-bs-target="#collapseMicrohaplotypesDetected" aria-expanded="false" aria-controls="collapseExample">
  Show MicrohaplotypesDetected fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse" id="collapseMicrohaplotypesDetected">
  <div class="card card-body">
### Required  
*  bioinformatics_run_id (***type=integer***)  
    *  the index into bioinformatics_run_info list  
*  experiment_samples (***type=[list of MicrohaplotypesForSample](#microhaplotypesforsample)***)  
    *  a list of the microhaplotypes detected for a sample by targets   

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

## MicrohaplotypesForSample  
<https://plasmogenepi.github.io/portable-microhaplotype-object/MicrohaplotypesForSample/>  
<a class = "btn btn-light" data-bs-toggle="collapse" data-bs-target="#collapseMicrohaplotypesForSample" aria-expanded="false" aria-controls="collapseExample">
  Show MicrohaplotypesForSample fields <i class="fa-solid fa-caret-right"></i>
</a>
<div class="collapse" id="collapseMicrohaplotypesForSample">
  <div class="card card-body">
### Required  
*  experiment_sample_id (***type=integer***)  
    *  the index into the experiment_info list  
*  target_results (***type=[list of MicrohaplotypesForTarget](#microhaplotypesfortarget)***)  
    *  a list of the microhaplotypes detected for a list of targets  

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

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

### 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  
*  method (***type=string***)  
    *  the method of how this density was obtained  
*  density (***type=number***)  
    *  the density in microliters  

### 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>

## 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   

### 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  
*  seq_date (***type=string***)  
    *  the date of sequencing, should be YYYY-MM or YYYY-MM-DD  
*  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)  

### 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_name (***type=string***)  
    *  a name of the project under which the specimen is organized  

### Optional  
*  alternate_identifiers (***type=list of string***)  
    *  a list of optional alternative names for the specimens  
*  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  
*  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  
*  parasite_density_info (***type=[list of ParasiteDensity](#parasitedensity)***)  
    *  one or more parasite densities in microliters for this specimen  
*  plate_info (***type=[PlateInfo](#plateinfo)***)  
    *  plate location of where specimen is stored if stored in a plate   
*  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  
*  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_primers (***type=[list of PrimerInfo](#primerinfo)***)  
    *  A list of forward primers associated with this target  
*  reverse_primers (***type=[list of PrimerInfo](#primerinfo)***)  
    *  A list of reverse primers 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 >}}