Corpus Engine Towards a reproducible .science file.
← All .science files

pmid:29881472

Identifying mislabeled and contaminated DNA methylation microarray data: an extended quality control toolset with examples from GEO.

Jonathan A Heiss · Allan C Just

Clinical epigenetics · 2018 doi:10.1186/s13148-018-0504-1

Paper

complete

Experiment

partial

Data

partial

Analysis

partial

Execution

absent

Execution evidence has not yet been added to this .science file. Explore its methods, data and open questions to plan the next step.
Record details sci_version · id · kind · revision · content_hash · schema · created_at · updated_at · generator
id
pmid:29881472
kind
science-record
content_hash
sha256:c75db4ab585f199197647ee90092fd9233d6c3df2557308dca26febb0c328c84
schema
https://corpus.bntrg.co.uk/sci/1.0/sci.schema.json
created_at
2026-11-01T15:40:34Z
updated_at
2026-11-01T21:21:29Z
generator object · 2 fields
name
corpus-assay-engine
run_id
reading-sci-2026-11-01
paper object · 10 fields
state
complete
title
Identifying mislabeled and contaminated DNA methylation microarray data: an extended quality control toolset with examples from GEO.
doi
10.1186/s13148-018-0504-1
pmid
29881472
authors array · 2 items
[0]
Jonathan A Heiss
[1]
Allan C Just
journal
Clinical epigenetics
year
2018
abstract
Background: Mislabeled, contaminated or poorly performing samples can threaten power in methylation microarray analyses or even result in spurious associations. We describe a set of quality checks for the popular Illumina 450K and EPIC microarrays to identify problematic samples and demonstrate their application in publicly available datasets. Methods: Quality checks implemented here include 17 control metrics defined by the manufacturer, a sex check to detect mislabeled sex-discordant samples, and both an identity check for fingerprinting sample donors and a measure of sample contamination based on probes querying high-frequency SNPs. These checks were tested on 80 datasets comprising 8327 samples run on the 450K microarray from the GEO repository. Results: Nine hundred forty samples were flagged by at least one control metric and 133 samples from 20 datasets were assigned the wrong sex. In a dataset in which a subset of samples appear contaminated with a single source of DNA, we demonstrate that our measure based on outliers among SNP probes was strongly correlated (> 0.95) with another independent measure of contamination. Conclusions: A more complete examination of samples that may be mislabeled, contaminated, or have poor performance due to technical problems will improve downstream analyses and replication of findings. We demonstrate that quality control problems are prevalent in a public repository of DNA methylation data. We advocate for a more thorough quality control workflow in epigenome-wide association studies and provide a software package to perform the checks described in this work. Reproducible code and supplementary material are available at 10.5281/zenodo.1172730.
claims array · 3 items
[0] object · 6 fields
id
claim-method
statement
The parameters were estimated using the Metropolis algorithm implemented in the Julia programming language (code is provided the supplement).
kind
methodological
target
null
evidence array · 1 item
[0] object · 3 fields
asset
source:pmid:29881472
locator
sections[5] "Quality checks" paragraph 8
quote
The parameters were estimated using the Metropolis algorithm implemented in the Julia programming language (code is provided the supplement).
state
complete
[1] object · 6 fields
id
claim-data-access
statement
R and Julia code to reproduce all analyses and results presented here, including retrieval of public methylation datasets, as well as other supplementary material, are available at 10.5281/zenodo.1172730. The ewastools R package can be found at https://github.com/hhhh5/ewastools.
kind
methodological
target
null
evidence array · 1 item
[0] object · 3 fields
asset
source:pmid:29881472
locator
sections[11] "Availability of data and materials" paragraph 2
quote
R and Julia code to reproduce all analyses and results presented here, including retrieval of public methylation datasets, as well as other supplementary material, are available at 10.5281/zenodo.1172730. The ewastools R package can be found at https://github.com/hhhh5/ewastools.
state
complete
[2] object · 6 fields
id
claim-target-result
statement
The paper applied an ewastools statistical quality-control workflow to 80 public GEO 450K datasets comprising 8,327 samples and found that 940 samples were flagged by at least one manufacturer control metric, while 133 samples from 20 datasets had the wrong recorded sex.
kind
qualitative
target
null
evidence array · 5 items
[0] object · 3 fields
asset
source:pmid:29881472
locator
sections[0] "Abstract" paragraph 1
quote
We describe a set of quality checks for the popular Illumina 450K and EPIC microarrays to identify problematic samples and demonstrate their application in publicly available datasets.
[1] object · 3 fields
asset
source:pmid:29881472
locator
sections[0] "Abstract" paragraph 2
quote
These checks were tested on 80 datasets comprising 8327 samples run on the 450K microarray from the GEO repository.
[2] object · 3 fields
asset
source:pmid:29881472
locator
sections[0] "Abstract" paragraph 3
quote
Nine hundred forty samples were flagged by at least one control metric and 133 samples from 20 datasets were assigned the wrong sex.
[3] object · 3 fields
asset
source:pmid:29881472
locator
sections[6] "Results" paragraph 2
quote
Overall, 940 samples (11%) from 41 datasets (51%) were flagged by at least one of the 17 metrics in control_metrics, leaving 7387 samples that passed this first check.
[4] object · 3 fields
asset
source:pmid:29881472
locator
sections[6] "Results" paragraph 7
quote
The function check_sex estimated that 133 of the 8327 samples had been assigned the wrong sex yielding an error rate of 1.6%, with 13 cases being unclear, as the inferred sex was discordant between T¯nX and T¯nY (Fig. 3a). Of the 80 datasets, 20 (25%) contained these sex-mismatched samples.
state
complete
gaps array · 0 items
experiment object · 8 fields
state
partial
objective
The paper applied an ewastools statistical quality-control workflow to 80 public GEO 450K datasets comprising 8,327 samples and found that 940 samples were flagged by at least one manufacturer control metric, while 133 samples from 20 datasets had the wrong recorded sex.
steps array · 3 items
[0] object · 13 fields
id
read_published_estimate
order
1
name
Read the published estimate from the source
kind
other
state
complete
blocked_on
null
description
The claim, method and evidence span published with the source article.
parameters object · 0 fields
inputs array · 1 item
[0]
source:pmid:29881472
outputs array · 1 item
[0]
the published estimate and its evidence
instruments array · 0 items
reagents array · 0 items
[1] object · 13 fields
id
obtain_source_data
order
2
name
Obtain the source data from the named repository
kind
data-preparation
state
blocked
blocked_on
data:accession_absent
description
The GEO series accession resolves and its sample accessions are listed. This lane did not download the dataset or read its licence.
parameters object · 0 fields
inputs array · 0 items
outputs array · 1 item
[0]
the source data with its repository provenance
instruments array · 0 items
reagents array · 0 items
[2] object · 13 fields
id
run_analysis
order
3
name
Run the published analysis
kind
analysis
state
complete
blocked_on
null
description
Apply the paper's statistical method to the resolved series and compare the result with the published target.
parameters object · 0 fields
inputs array · 0 items
outputs array · 1 item
[0]
the replicated result and its comparison
instruments array · 0 items
reagents array · 0 items
materials array · 0 items
instruments array · 0 items
reagents array · 0 items
conditions object · 0 fields
gaps array · 1 item
[0]
step:obtain_source_data blocked on data:accession_absent
data object · 3 fields
state
partial
assets array · 2 items
[0] object · 15 fields
id
source:pmid:29881472
role
manuscript
format
xml
media_type
application/xml
uri
https://doi.org/10.1186/s13148-018-0504-1
sha256
sha256:edfbdaa5d8e14fd7677d4c4203decd509ce6476331fad0e15906275b3fc57183
bytes
37880
access
open
state
resolved
reader
null
reader_status
reader_required
identifier
10.1186/s13148-018-0504-1
version
null
note
Full article fetched from PMC; the checksum covers the rendered section body, not the original XML bytes.
structure object · 4 fields
pmcid
PMC5984806
source
europe_pmc_fulltext
coverage
whole_body
text_hash_scope
rendered_section_body
[1] object · 16 fields
id
asset:table:pmid:29881472:1
role
table
format
jats-table
media_type
application/vnd.jats.table+json
uri
null
sha256
sha256:571213a2821962221cc5f4c48241d28e5baefd55d8d44fba4823148cc82ab4c0
bytes
1053
access
open
state
verified
reader
read_table
reader_status
available
identifier
section[6]/table-wrap[1]#Tab1
version
null
note
Summary of the number of samples flagged by each of the 17 control metrics outlined in the BeadArray controls reporter software guide. n.a.—not available
structure object · 5 fields
pmcid
PMC5984806
section_index
6
section_title
Results
row_count
19
column_count
4
table object · 8 fields
label
Table 1
caption
Summary of the number of samples flagged by each of the 17 control metrics outlined in the BeadArray controls reporter software guide. n.a.—not available
rows array · 19 items
[0] array · 4 items
[0]
Metric
[1]
Passed
[2]
Flagged
[3]
n.a.
[1] array · 4 items
[0]
Restoration
[1]
8326
[2]
0
[3]
1
[2] array · 4 items
[0]
Staining green
[1]
7885
[2]
10
[3]
432
[3] array · 4 items
[0]
Staining red
[1]
7764
[2]
14
[3]
549
[4] array · 4 items
[0]
Extension green
[1]
8324
[2]
3
[3]
0
[5] array · 4 items
[0]
Extension red
[1]
8326
[2]
1
[3]
0
[6] array · 4 items
[0]
Hybridization high/medium
[1]
8326
[2]
1
[3]
0
[7] array · 4 items
[0]
Hybridization medium/low
[1]
8327
[2]
0
[3]
0
[8] array · 4 items
[0]
Target removal 1
[1]
8327
[2]
0
[3]
0
[9] array · 4 items
[0]
Target removal 2
[1]
8327
[2]
0
[3]
0
[10] array · 4 items
[0]
Bisulfite conversion I green
[1]
8317
[2]
10
[3]
0
[11] array · 4 items
[0]
Bisulfite conversion I red
[1]
8208
[2]
119
[3]
0
[12] array · 4 items
[0]
Bisulfite conversion II
[1]
7950
[2]
377
[3]
0
[13] array · 4 items
[0]
Specificity I green
[1]
8323
[2]
4
[3]
0
[14] array · 4 items
[0]
Specificity I red
[1]
8279
[2]
48
[3]
0
[15] array · 4 items
[0]
Specificity II
[1]
8326
[2]
1
[3]
0
[16] array · 4 items
[0]
Non-polymorphic green
[1]
7677
[2]
558
[3]
92
[17] array · 4 items
[0]
Non-polymorphic red
[1]
7917
[2]
318
[3]
92
[18] array · 4 items
[0]
Any of the above
[1]
7387
[2]
940
[3]
–
locator
section[6]/table-wrap[1]#Tab1
gaps array · 0 items
analysis object · 4 fields
state
partial
methods array · 1 item
[0] object · 10 fields
id
method-1
family
null
specific
null
label
Metropolis algorithm
dsl_operations array · 0 items
missing_operations array · 0 items
parameters object · 0 fields
data_shapes array · 0 items
evidence object · 3 fields
score
1
band
verbatim
quote
The parameters were estimated using the Metropolis algorithm implemented in the Julia programming language (code is provided the supplement).
targets array · 0 items
gaps array · 1 item
[0]
method.reader_named_unmapped
capability object · 3 fields
state
complete
requirements array · 1 item
[0] object · 6 fields
capability_id
capability:computational_analysis
label
Computational analysis platform
assay_families array · 9 items
[0]
meta_analysis
[1]
machine_learning
[2]
survival_analysis
[3]
statistical_regression
[4]
pca
[5]
molecular_docking
[6]
network_analysis
[7]
differential_expression
[8]
gwas
candidate
Automated Assays Laravel application and simulated adapters
gaps array · 0 items
readiness object · 8 fields
state
blocked
tier
R4
blocked_on
data:accession_absent
axes object · 3 fields
method object · 5 fields
tier
R4
expressible
false
required_operations array · 0 items
missing_operations array · 0 items
basis
The reader quoted the method the paper names (Metropolis algorithm), but the corpus's method extractor could not map it onto a DSL operation, so the method is published but not expressible.
capability object · 4 fields
tier
R1
capability_id
capability:computational_analysis
availability_state
owned
basis
The computational analysis is owned. The physical bench the paper used is not, so a physical validation cannot be run here.
data object · 6 fields
tier
R4
reachable
false
accessions array · 0 items
resolved_accessions array · 0 items
statements array · 1 item
[0]
R and Julia code to reproduce all analyses and results presented here, including retrieval of public methylation datasets, as well as other supplementary material, are available at 10.5281/zenodo.1172730. The ewastools R package can be found at https://github.com/hhhh5/ewastools.
basis
The paper names no accession to its source data, so the data has to come from the authors.
can_run object · 3 fields
dsl_operations array · 0 items
assets array · 2 items
[0]
source:pmid:29881472
[1]
asset:table:pmid:29881472:1
steps array · 1 item
[0]
run_analysis
must_build object · 5 fields
dsl_operations array · 0 items
converters array · 0 items
readers array · 0 items
capabilities array · 0 items
data_gaps array · 1 item
[0]
data:geo:None
gaps array · 1 item
[0]
data:accession_absent
review object · 5 fields
state
partial
machine_critique object · 5 fields
kind
extraction_review
reader object · 5 fields
model
MiniMax-M3.1-Flash
provider
minimax
provider_family
minimax
read_at
2026-10-31T18:34:41Z
independence
same_provider
evidence_check object · 2 fields
method
verbatim
availability
verbatim
calls
8
usage object · 3 fields
prompt_tokens
71172
completion_tokens
3214
cached_tokens
18464
stages array · 1 item
[0] object · 4 fields
id
extraction
state
complete
reader
MiniMax-M3.1-Flash
provider
minimax
gaps array · 3 items
[0]
review.independent_reader
[1]
review.machine_critique
[2]
review.human_critique
execution object · 5 fields
state
absent
status
not_run
mode
null
runs array · 0 items
gaps array · 1 item
[0]
execution.not_run
provenance object · 7 fields
entities array · 3 items
[0] object · 3 fields
id
pmid:29881472
type
paper
label
pmid:29881472
[1] object · 3 fields
id
source:pmid:29881472
type
manuscript
label
PMID 29881472 full text
[2] object · 3 fields
id
data:geo:None
type
dataset
label
GEO None
activities array · 3 items
[0] object · 4 fields
id
activity-reading-sci-2026-11-01
type
classification
used array · 3 items
[0] object · 3 fields
id
pmid:29881472
type
paper
label
pmid:29881472
[1] object · 3 fields
id
source:pmid:29881472
type
manuscript
label
PMID 29881472 full text
[2] object · 3 fields
id
data:geo:None
type
dataset
label
GEO None
agent
agent:corpus-assay-engine
[1] object · 4 fields
id
activity-read-29881472
type
extraction
used array · 1 item
[0]
source:pmid:29881472
agent
agent:minimax-reader
[2] object · 4 fields
id
activity-resolve-None
type
accession_resolution
used array · 1 item
[0]
data:geo:None
agent
agent:corpus-assay-engine
agents array · 2 items
[0] object · 3 fields
id
agent:corpus-assay-engine
type
software
label
Corpus assay engine
[1] object · 3 fields
id
agent:minimax-reader
type
software
label
MiniMax literature reader
source_run_id
reading-sci-2026-11-01
dsl_catalogue_fingerprint
343fb30756ba6ec3
capability_table_fingerprint
2cb3e42f047d2ecf
snapshot_id
ba34b49490d9bfaf
lineage object · 4 fields
parent_id
pmid:29881472
parent_hash
sha256:5426a3e3699f225f47259c08ff998af8b6307b5af15b5240d75e48e042571506
fork_of
null
gaps array · 6 items
[0]
execution.not_run
[1]
method.reader_named_unmapped
[2]
review.human_critique
[3]
review.independent_reader
[4]
review.machine_critique
[5]
step:obtain_source_data blocked on data:accession_absent
assays array · 2 items
[0] object · 11 fields
role
data_generation
definition_id
microarray
definition_version
99e1195c7d6f
required_operations array · 0 items
support_state
partial
source_hashes object · 1 field
assay_lexicon
99e1195c7d6f
confidence
0.99
evidence array · 3 items
[0]
mislabeled and contaminated DNA methylation microarray data: an extended quality control toolset wi
[1]
ng samples can threaten power in methylation microarray analyses or even result in spurious associat
[2]
sets comprising 8327 samples run on the 450K microarray from the GEO repository. Results: Nine hundr
order_basis
paper_text_order:12
id
assay:1
[1] object · 11 fields
role
data_generation
definition_id
methylation_array
definition_version
99e1195c7d6f
required_operations array · 0 items
support_state
partial
source_hashes object · 1 field
assay_lexicon
99e1195c7d6f
confidence
0.99
evidence array · 3 items
[0]
t of quality checks for the popular Illumina 450K and EPIC microarrays to identify problematic
[1]
ity checks for the popular Illumina 450K and EPIC microarrays to identify problematic samples
[2]
datasets comprising 8327 samples run on the 450K microarray from the GEO repository. Results:
order_basis
paper_text_order:310
id
assay:2
Complete file
{"sci_version": "1.2", "schema": "https://corpus.bntrg.co.uk/sci/1.0/sci.schema.json", "id": "pmid:29881472", "kind": "science-record", "revision": 4, "content_hash": "sha256:c75db4ab585f199197647ee90092fd9233d6c3df2557308dca26febb0c328c84", "created_at": "2026-11-01T15:40:34Z", "updated_at": "2026-11-01T21:21:29Z", "generator": {"name": "corpus-assay-engine", "run_id": "reading-sci-2026-11-01"}, "paper": {"state": "complete", "title": "Identifying mislabeled and contaminated DNA methylation microarray data: an extended quality control toolset with examples from GEO.", "doi": "10.1186/s13148-018-0504-1", "pmid": "29881472", "authors": ["Jonathan A Heiss", "Allan C Just"], "journal": "Clinical epigenetics", "year": 2018, "abstract": "Background: Mislabeled, contaminated or poorly performing samples can threaten power in methylation microarray analyses or even result in spurious associations. We describe a set of quality checks for the popular Illumina 450K and EPIC microarrays to identify problematic samples and demonstrate their application in publicly available datasets.\nMethods: Quality checks implemented here include 17 control metrics defined by the manufacturer, a sex check to detect mislabeled sex-discordant samples, and both an identity check for fingerprinting sample donors and a measure of sample contamination based on probes querying high-frequency SNPs. These checks were tested on 80 datasets comprising 8327 samples run on the 450K microarray from the GEO repository.\nResults: Nine hundred forty samples were flagged by at least one control metric and 133 samples from 20 datasets were assigned the wrong sex. In a dataset in which a subset of samples appear contaminated with a single source of DNA, we demonstrate that our measure based on outliers among SNP probes was strongly correlated (> 0.95) with another independent measure of contamination.\nConclusions: A more complete examination of samples that may be mislabeled, contaminated, or have poor performance due to technical problems will improve downstream analyses and replication of findings. We demonstrate that quality control problems are prevalent in a public repository of DNA methylation data. We advocate for a more thorough quality control workflow in epigenome-wide association studies and provide a software package to perform the checks described in this work. Reproducible code and supplementary material are available at 10.5281/zenodo.1172730.", "claims": [{"id": "claim-method", "statement": "The parameters were estimated using the Metropolis algorithm implemented in the Julia programming language (code is provided the supplement).", "kind": "methodological", "target": null, "evidence": [{"asset": "source:pmid:29881472", "locator": "sections[5] \"Quality checks\" paragraph 8", "quote": "The parameters were estimated using the Metropolis algorithm implemented in the Julia programming language (code is provided the supplement)."}], "state": "complete"}, {"id": "claim-data-access", "statement": "R and Julia code to reproduce all analyses and results presented here, including retrieval of public methylation datasets, as well as other supplementary material, are available at 10.5281/zenodo.1172730. The ewastools R package can be found at https://github.com/hhhh5/ewastools.", "kind": "methodological", "target": null, "evidence": [{"asset": "source:pmid:29881472", "locator": "sections[11] \"Availability of data and materials\" paragraph 2", "quote": "R and Julia code to reproduce all analyses and results presented here, including retrieval of public methylation datasets, as well as other supplementary material, are available at 10.5281/zenodo.1172730. The ewastools R package can be found at https://github.com/hhhh5/ewastools."}], "state": "complete"}, {"id": "claim-target-result", "statement": "The paper applied an ewastools statistical quality-control workflow to 80 public GEO 450K datasets comprising 8,327 samples and found that 940 samples were flagged by at least one manufacturer control metric, while 133 samples from 20 datasets had the wrong recorded sex.", "kind": "qualitative", "target": null, "evidence": [{"asset": "source:pmid:29881472", "locator": "sections[0] \"Abstract\" paragraph 1", "quote": "We describe a set of quality checks for the popular Illumina 450K and EPIC microarrays to identify problematic samples and demonstrate their application in publicly available datasets."}, {"asset": "source:pmid:29881472", "locator": "sections[0] \"Abstract\" paragraph 2", "quote": "These checks were tested on 80 datasets comprising 8327 samples run on the 450K microarray from the GEO repository."}, {"asset": "source:pmid:29881472", "locator": "sections[0] \"Abstract\" paragraph 3", "quote": "Nine hundred forty samples were flagged by at least one control metric and 133 samples from 20 datasets were assigned the wrong sex."}, {"asset": "source:pmid:29881472", "locator": "sections[6] \"Results\" paragraph 2", "quote": "Overall, 940 samples (11%) from 41 datasets (51%) were flagged by at least one of the 17 metrics in control_metrics, leaving 7387 samples that passed this first check."}, {"asset": "source:pmid:29881472", "locator": "sections[6] \"Results\" paragraph 7", "quote": "The function check_sex estimated that 133 of the 8327 samples had been assigned the wrong sex yielding an error rate of 1.6%, with 13 cases being unclear, as the inferred sex was discordant between T¯nX and T¯nY (Fig. 3a). Of the 80 datasets, 20 (25%) contained these sex-mismatched samples."}], "state": "complete"}], "gaps": []}, "experiment": {"state": "partial", "objective": "The paper applied an ewastools statistical quality-control workflow to 80 public GEO 450K datasets comprising 8,327 samples and found that 940 samples were flagged by at least one manufacturer control metric, while 133 samples from 20 datasets had the wrong recorded sex.", "steps": [{"id": "read_published_estimate", "order": 1, "name": "Read the published estimate from the source", "kind": "other", "state": "complete", "blocked_on": null, "description": "The claim, method and evidence span published with the source article.", "duration_hours": null, "parameters": {}, "inputs": ["source:pmid:29881472"], "outputs": ["the published estimate and its evidence"], "instruments": [], "reagents": []}, {"id": "obtain_source_data", "order": 2, "name": "Obtain the source data from the named repository", "kind": "data-preparation", "state": "blocked", "blocked_on": "data:accession_absent", "description": "The GEO series accession resolves and its sample accessions are listed. This lane did not download the dataset or read its licence.", "duration_hours": null, "parameters": {}, "inputs": [], "outputs": ["the source data with its repository provenance"], "instruments": [], "reagents": []}, {"id": "run_analysis", "order": 3, "name": "Run the published analysis", "kind": "analysis", "state": "complete", "blocked_on": null, "description": "Apply the paper's statistical method to the resolved series and compare the result with the published target.", "duration_hours": null, "parameters": {}, "inputs": [], "outputs": ["the replicated result and its comparison"], "instruments": [], "reagents": []}], "materials": [], "instruments": [], "reagents": [], "conditions": {}, "gaps": ["step:obtain_source_data blocked on data:accession_absent"]}, "data": {"state": "partial", "assets": [{"id": "source:pmid:29881472", "role": "manuscript", "format": "xml", "media_type": "application/xml", "uri": "https://doi.org/10.1186/s13148-018-0504-1", "sha256": "sha256:edfbdaa5d8e14fd7677d4c4203decd509ce6476331fad0e15906275b3fc57183", "bytes": 37880, "access": "open", "state": "resolved", "reader": null, "reader_status": "reader_required", "identifier": "10.1186/s13148-018-0504-1", "version": null, "note": "Full article fetched from PMC; the checksum covers the rendered section body, not the original XML bytes.", "structure": {"pmcid": "PMC5984806", "source": "europe_pmc_fulltext", "coverage": "whole_body", "text_hash_scope": "rendered_section_body"}}, {"id": "asset:table:pmid:29881472:1", "role": "table", "format": "jats-table", "media_type": "application/vnd.jats.table+json", "uri": null, "sha256": "sha256:571213a2821962221cc5f4c48241d28e5baefd55d8d44fba4823148cc82ab4c0", "bytes": 1053, "access": "open", "state": "verified", "reader": "read_table", "reader_status": "available", "identifier": "section[6]/table-wrap[1]#Tab1", "version": null, "note": "Summary of the number of samples flagged by each of the 17 control metrics outlined in the BeadArray controls reporter software guide. n.a.—not available", "structure": {"pmcid": "PMC5984806", "section_index": 6, "section_title": "Results", "row_count": 19, "column_count": 4}, "table": {"label": "Table 1", "caption": "Summary of the number of samples flagged by each of the 17 control metrics outlined in the BeadArray controls reporter software guide. n.a.—not available", "rows": [["Metric", "Passed", "Flagged", "n.a."], ["Restoration", "8326", "0", "1"], ["Staining green", "7885", "10", "432"], ["Staining red", "7764", "14", "549"], ["Extension green", "8324", "3", "0"], ["Extension red", "8326", "1", "0"], ["Hybridization high/medium", "8326", "1", "0"], ["Hybridization medium/low", "8327", "0", "0"], ["Target removal 1", "8327", "0", "0"], ["Target removal 2", "8327", "0", "0"], ["Bisulfite conversion I green", "8317", "10", "0"], ["Bisulfite conversion I red", "8208", "119", "0"], ["Bisulfite conversion II", "7950", "377", "0"], ["Specificity I green", "8323", "4", "0"], ["Specificity I red", "8279", "48", "0"], ["Specificity II", "8326", "1", "0"], ["Non-polymorphic green", "7677", "558", "92"], ["Non-polymorphic red", "7917", "318", "92"], ["Any of the above", "7387", "940", "–"]], "row_count": 19, "column_count": 4, "numeric_cells": 55, "header_rows": 1, "locator": "section[6]/table-wrap[1]#Tab1"}}], "gaps": []}, "analysis": {"state": "partial", "methods": [{"id": "method-1", "family": null, "specific": null, "label": "Metropolis algorithm", "dsl_operations": [], "missing_operations": [], "expressible": null, "parameters": {}, "data_shapes": [], "evidence": {"score": 1.0, "band": "verbatim", "quote": "The parameters were estimated using the Metropolis algorithm implemented in the Julia programming language (code is provided the supplement)."}}], "targets": [], "gaps": ["method.reader_named_unmapped"]}, "capability": {"state": "complete", "requirements": [{"capability_id": "capability:computational_analysis", "label": "Computational analysis platform", "assay_families": ["meta_analysis", "machine_learning", "survival_analysis", "statistical_regression", "pca", "molecular_docking", "network_analysis", "differential_expression", "gwas"], "availability_state": "owned", "tier_unlocked": "R1", "candidate": "Automated Assays Laravel application and simulated adapters"}], "gaps": []}, "readiness": {"state": "blocked", "tier": "R4", "blocking_axis": "data", "blocked_on": "data:accession_absent", "axes": {"method": {"tier": "R4", "expressible": false, "required_operations": [], "missing_operations": [], "basis": "The reader quoted the method the paper names (Metropolis algorithm), but the corpus's method extractor could not map it onto a DSL operation, so the method is published but not expressible."}, "capability": {"tier": "R1", "capability_id": "capability:computational_analysis", "availability_state": "owned", "basis": "The computational analysis is owned. The physical bench the paper used is not, so a physical validation cannot be run here."}, "data": {"tier": "R4", "reachable": false, "accessions": [], "resolved_accessions": [], "statements": ["R and Julia code to reproduce all analyses and results presented here, including retrieval of public methylation datasets, as well as other supplementary material, are available at 10.5281/zenodo.1172730. The ewastools R package can be found at https://github.com/hhhh5/ewastools."], "basis": "The paper names no accession to its source data, so the data has to come from the authors."}}, "can_run": {"dsl_operations": [], "assets": ["source:pmid:29881472", "asset:table:pmid:29881472:1"], "steps": ["run_analysis"]}, "must_build": {"dsl_operations": [], "converters": [], "readers": [], "capabilities": [], "data_gaps": ["data:geo:None"]}, "gaps": ["data:accession_absent"]}, "review": {"state": "partial", "machine_critique": {"kind": "extraction_review", "reader": {"model": "MiniMax-M3.1-Flash", "provider": "minimax", "provider_family": "minimax", "read_at": "2026-10-31T18:34:41Z", "independence": "same_provider"}, "evidence_check": {"method": "verbatim", "availability": "verbatim"}, "calls": 8, "usage": {"prompt_tokens": 71172, "completion_tokens": 3214, "cached_tokens": 18464}}, "human_critique": null, "stages": [{"id": "extraction", "state": "complete", "reader": "MiniMax-M3.1-Flash", "provider": "minimax"}], "gaps": ["review.independent_reader", "review.machine_critique", "review.human_critique"]}, "execution": {"state": "absent", "status": "not_run", "mode": null, "runs": [], "gaps": ["execution.not_run"]}, "provenance": {"entities": [{"id": "pmid:29881472", "type": "paper", "label": "pmid:29881472"}, {"id": "source:pmid:29881472", "type": "manuscript", "label": "PMID 29881472 full text"}, {"id": "data:geo:None", "type": "dataset", "label": "GEO None"}], "activities": [{"id": "activity-reading-sci-2026-11-01", "type": "classification", "used": [{"id": "pmid:29881472", "type": "paper", "label": "pmid:29881472"}, {"id": "source:pmid:29881472", "type": "manuscript", "label": "PMID 29881472 full text"}, {"id": "data:geo:None", "type": "dataset", "label": "GEO None"}], "agent": "agent:corpus-assay-engine"}, {"id": "activity-read-29881472", "type": "extraction", "used": ["source:pmid:29881472"], "agent": "agent:minimax-reader"}, {"id": "activity-resolve-None", "type": "accession_resolution", "used": ["data:geo:None"], "agent": "agent:corpus-assay-engine"}], "agents": [{"id": "agent:corpus-assay-engine", "type": "software", "label": "Corpus assay engine"}, {"id": "agent:minimax-reader", "type": "software", "label": "MiniMax literature reader"}], "source_run_id": "reading-sci-2026-11-01", "dsl_catalogue_fingerprint": "343fb30756ba6ec3", "capability_table_fingerprint": "2cb3e42f047d2ecf", "snapshot_id": "ba34b49490d9bfaf"}, "lineage": {"parent_id": "pmid:29881472", "parent_hash": "sha256:5426a3e3699f225f47259c08ff998af8b6307b5af15b5240d75e48e042571506", "fork_of": null, "generation": 3}, "gaps": ["execution.not_run", "method.reader_named_unmapped", "review.human_critique", "review.independent_reader", "review.machine_critique", "step:obtain_source_data blocked on data:accession_absent"], "assays": [{"role": "data_generation", "definition_id": "microarray", "definition_version": "99e1195c7d6f", "definition_digest": null, "required_operations": [], "support_state": "partial", "source_hashes": {"assay_lexicon": "99e1195c7d6f"}, "confidence": 0.99, "evidence": ["mislabeled and contaminated DNA methylation microarray data: an extended quality control toolset wi", "ng samples can threaten power in methylation microarray analyses or even result in spurious associat", "sets comprising 8327 samples run on the 450K microarray from the GEO repository. Results: Nine hundr"], "order_basis": "paper_text_order:12", "id": "assay:1"}, {"role": "data_generation", "definition_id": "methylation_array", "definition_version": "99e1195c7d6f", "definition_digest": null, "required_operations": [], "support_state": "partial", "source_hashes": {"assay_lexicon": "99e1195c7d6f"}, "confidence": 0.99, "evidence": ["t of quality checks for the popular Illumina 450K and EPIC microarrays to identify problematic", "ity checks for the popular Illumina 450K and EPIC microarrays to identify problematic samples", "datasets comprising 8327 samples run on the 450K microarray from the GEO repository. Results:"], "order_basis": "paper_text_order:310", "id": "assay:2"}]}