MPD data API
• All endpoints are REST / HTTP GET.   Many examples available to try.   MPD Terms of Use apply.
• Use the domain   https://phenome.jax.org for all urls below.
• Results are JSON by default. Specify csv=yes to get CSV result unless otherwise indicated.
• Errors are indicated by a non-200 HTTP return code and "error" element.
• Available tutorials:
    • Get all data for a strain panel
    • Get all data for a center
    • Get all publications associated with QTL Archive projects

  Projects, data sets


/api/projects

Fetch a list of MPD projects / data sets. Each returned entry has some project attributes.
The following parameters can be supplied to filter the result (if none are specified then all projects are returned).
investigator ..... filter by pistring containing this, e.g. Gould TJ (case-insensitive)
projsym ..... retrieve a specific project by short name e.g. Gould2
projid ..... retrieve a specific project by integer ID eg. 471
mpdsector ..... filter by mpdsector term, e.g. pheno
largecollab ..... filter by largecollab term, e.g. HMDP
panelsym ..... filter by panelsym strain panel term, e.g. DO population
Example 1: /api/projects   (all projects)
Example 1a: /api/projects?csv=yes   (all projects, in CSV format)
Example 2: /api/projects?investigator=Gould TJ
Example 2a: /api/projects?investigator=jackson lab
Example 3: /api/projects?largecollab=HMDP
Example 4: /api/projects?panelsym=DO population
• Also available:   datasets.csv download file with all MPD projects.


/api/project_filters/filtername

This endpoint provides allowed filtering values for the /api/projects endpoint.
filtername is one of: mpdsector   largecollab   panelsym
Example 1: /api/project_filters/mpdsector
Example 2: /api/project_filters/panelsym
Example 3: /api/project_filters/largecollab


/api/projects/projsym/dataset

Return the project's entire dataset of measured phenotype animal values. By default this will be in CSV format; use json=yes to get JSON. Data set reflects any factor-related expansion. Some MPD projects don't have animal data; these will give a 404 error.
Example 1: /api/projects/Gould2/dataset
Example 2: /api/projects/Gould2/dataset?json=yes


/api/projects/projsym/strains

List the strains that were tested in the project projsym with some attributes for each.
Example 1: /api/projects/Gould2/strains
Example 2: /api/projects/UCLA1/strains
• Also available: datasets_strains.csv download file .


/api/projects/projsym/publications

Fetch the publications associated with the project projsym.
Example 1: /api/projects/Gould2/publications
Example 2: /api/projects/Beamer2/publications
• Also available:   datasets_pmids.csv download file


/api/investigators

Fetch a list of contributing investigators. The name parameter can be passed to filter on citation name eg. Smith JS (case insensitive).
Example 1: /api/investigators   (all)
Example 1a: /api/investigators?csv=yes   (all, in CSV format)
Example 2: /api/investigators?name=tarantino


  Phenotype measured data


/api/pheno/animalvals/measnum

Fetch numeric individual animal data for MPD strain survey phenotype measure(s) identified by measnum (an integer or comma-separated list of multiple integers).
Optional parameter: covariate .... the ID of another numeric measure involving the same animals
Example 1 (project Jaxpheno3, measureID 22826)   /api/pheno/animalvals/22826
Same as above but CSV result:   /api/pheno/animalvals/22826?csv=yes
Same as above but CSV for GxL:   /api/pheno/animalvals/45911?csv=yes&gxl_format1=yes
Example 2 (project Paigen1, measures 2908 and 2909)   /api/pheno/animalvals/2908,2909
Example 3 (measure 2909 with BW covariate 2905)   /api/pheno/animalvals/2909?covariate=2905
Example 4 (error example)   /api/pheno/animalvals/111
Example 5 (DO example)   /api/pheno/animalvals/47002
• Also available: the /api/projects/.../dataset endpoint (see above tab)
• Also available:   animaldatapoints.csv download file containing all numeric animal data points found in MPD.


/api/pheno/animalvals/series/measnum

Fetch numeric individual animal data for the measure series identified by measnum. For more about "measure series" see below (Metadata tab).
Example 1, Ackert1 BMD at 6mo, 12mo, 20mo   /api/pheno/animalvals/series/25011
Same as above but CSV result:   /api/pheno/animalvals/series/25011?csv=yes
Example 2, Gould2 jumping behavior, nicotine vs. control   /api/pheno/animalvals/series/47115


/api/pheno/lsmeans/selector

Get model-adjusted least-square strain means for phenotype measure(s). Model adjusted means are run on sex "f", "m" as well as "both". Not all MPD measures have adjusted means (for those that don't the unadjusted strain means are provided in the "unadj_means" element). The selector parameter can be a measure ID, a comma-separated list of two or more measure IDs, or a valid project symbol such as Vinyard1.
Example 1:   /api/pheno/lsmeans/2908,2909
Example 2:   /api/pheno/lsmeans/Vinyard1
Example 3:   /api/pheno/lsmeans/2909,2208 (2909 has adjusted, 2208 doesn't)
Example 4:   /api/pheno/lsmeans/2909
Example 5:   /api/pheno/lsmeans/2208
Same as above but CSV result:   /api/pheno/lsmeans/2208?csv=yes


/api/pheno/strainmeans/selector

Get unadjusted strain means for one or more MPD phenotype measures. The selector parameter can be one measure ID, a comma-separated list of two or more measure IDs, or a valid project symbol such as Vinyard1. Unadjusted strain means should be available for every strain survey measurement in MPD even if data were supplied with no individual animal data available. In the json result the "sex" for each strain mean element will be either "f" or "m".
Example 1:   /api/pheno/strainmeans/2908,2909
Example 2:   /api/pheno/strainmeans/Vinyard1
Same as above but CSV result:   /api/pheno/strainmeans/Vinyard1?csv=yes
• Also available:   strainmeans.csv download file


  Phenotype metadata, annotations


/api/pheno/measureinfo/selector

Get descriptions, units, and other metadata for one or more MPD measures.
selector is either:
• a project symbol eg. Tarantino1 .... list info for all measures in the project ... or...
• one or more measureIDs (measnums) eg. 2928 .... list info for these specific measure(s) ...or....
all .... list info for all MPD measures
Example 1: List info for the measure having measure ID 2908:   /api/pheno/measureinfo/2908
Example 2: List info for the measures 2908 and 2909:   /api/pheno/measureinfo/2908,2909
Example 3: List info for all the measures in project Albers1:   /api/pheno/measureinfo/Albers1
• Also available:   measurements.csv download file with metadata for all measures found in MPD.


/api/pheno/seriesinfo/measnum

Get descriptions, units, and other metadata for the measure series identified by measnum. A "measure series" is a set of 2 or more measures that are usually analyzed together, such as a timecourse series, dosage series, or a treated vs. control pair. To identify a measure series, use the measure ID of the first measure in the series (as shown in web app measure listings).
Example 1. Get info about measure series 25001:   /api/pheno/seriesinfo/25001
Example 2. Get info about measure series 110654:   /api/pheno/seriesinfo/110654


/api/pheno/measures_by_ontology/ont_term

The default use of this endpoint is to get measure IDs, descriptions, and other metadata for all measures that have been annotated to MP, VT, or MA ontology term ID ont_term or any of its DAG descendants. Payload includes additional info such as a list of all the involved ontology terms and descriptions. The following parameters are accepted:
this_term_only=yes .... work with the given term only, don't involve any DAG descendants
omit_baseline=yes .... omit measures that are 'baseline' or 'control' from the result; may be useful in eg. drug effect studies
collapse_series=yes .... any measure series will be represented as one pheno_measures row in the result
Example 1: /api/pheno/measures_by_ontology/VT:0010488
Example 2: /api/pheno/measures_by_ontology/VT:0010488?this_term_only=yes
Example 3: /api/pheno/measures_by_ontology/VT:0010488?omit_baseline=yes
Example 4: /api/pheno/measures_by_ontology/VT:0010488?collapse_series=yes
Example 5: /api/pheno/measures_by_ontology/VT:0010488?csv=yes
Example 6 (fail): /api/pheno/measures_by_ontology/VT:9898989
Example 7 (no measures mapped): /api/pheno/measures_by_ontology/MA:0000451
• Also available:   ontology_mappings.csv download file