← Back to the catalog
Publicraw reproducible

Wheat Perten protein NIR

wheat · NIR

Wheat Perten protein NIR. v2.0 standardized NIRS package: 1 spectral source(s), 1 declared target(s). Auto-generated from dataset_card.json (verify before publication).

nirv2wheat
150
samples
141
wavelengths
1
sources
1
targets
51
metadata
NIR
family

Dataset property explorer

Mean profile risk0.41
Highest axisBaseline / forme · 1.00
Diagnostics8
Sources profiled1
Wheat Perten protein NIR property profile0.250.50.751integritynoiseartefactsbaselinePCA outliersreferencerepeatabilitystructureWheat Perten protein NIR profileintegrity: 0.00noise: 0.01artefacts: 0.01baseline: 1.00PCA outliers: 0.57reference: 0.89repeatability: 0.00structure: 0.81Wheat Perten pr…0 center · 1 outer ring · outward = stronger anomaly / heterogeneity signal

Profile axes

Intégrité0.00
Artefacts locaux0.01
Bruit0.01
Outliers PCA0.57
Distance à la référence0.89
Répétabilité0.00
Baseline / forme1.00
Structure multi-régimes0.81
Diagnostic hypotheses00.250.50.751hypothesis scoreFond différentFond différent: 0.750.75Spectre hors domaine valideSpectre hors domaine valide: 0.710.71Erreur calibration / référenc…Erreur calibration / référence blanche: 0.640.64Mélange feuille + fondMélange feuille + fond: 0.600.60Dataset multi-régimesDataset multi-régimes: 0.520.52Différence de sonde / géométr…Différence de sonde / géométrie: 0.480.48Splice / raccord détecteursSplice / raccord détecteurs: 0.430.43Signature VERA25-likeSignature VERA25-like: 0.410.41
DiagnosticScoreForceSignauxInterprétation probable
Fond différentX0.75forteBaseline/mean/area 1.00, RMS/SAM référence 0.89, PCA Q 0.57Effet systématique du support, blanc/noir, transflectance ou environnement de mesure.
Spectre hors domaine valideX0.71moyenneartefacts faibles 0.99, RMS/SAM référence 0.89, Structure PCA 0.81Variété, espèce, lot ou condition différente mais physiquement plausible.
Erreur calibration / référence blancheX0.64moyenneBaseline/mean/area 1.00, RMS/SAM référence 0.89, PCA Q 0.57Décalage systématique entre campagnes, instruments ou référence blanche.
Mélange feuille + fondX0.60moyenneBaseline/mean/area 1.00, RMS/SAM référence 0.89, PCA Q 0.57Couverture partielle du spot; contribution du fond ou du support.
Dataset multi-régimesX0.52moyenneRMS/SAM référence 0.89, Structure PCA 0.81, PCA Q 0.57Mélange de campagnes, opérateurs, lots, setups ou sous-populations spectrales.
Différence de sonde / géométrieX0.48moyenneBaseline/mean/area 1.00, RMS/SAM référence 0.89, PCA Q 0.57Modification de l'illumination, collecte, angle ou distance sonde-échantillon.
Splice / raccord détecteursX0.43moyenneSNR non dégradé 1.00, RMS/SAM référence 0.89, PCA Q 0.57Rupture aux jonctions de détecteurs, calibration locale ou sonde différente.
Signature VERA25-likeX0.41faibleRMS/SAM référence 0.89, PCA Q 0.57, Mahalanobis / T2 0.55Combinaison possible changement de sonde + splice, amplifiée par géométrie, fond ou calibration.

Spectral sources

Wheat Perten protein NIR

X · NIR · Perten DA7200/DA72xx/DA7440/DA7250/DA7300 as available by sample
Wheat Perten protein NIR spectra0.00.20.40.60.81.08001,0001,2001,4001,6001,800q05-q95 envelopeq25-q75 envelopemedian spectrummedianq25–q75q05–q95wavelength / nm950nm — median 0.1917 (q25–q75 0.1535–0.22)955nm — median 0.1954 (q25–q75 0.1564–0.2236)960nm — median 0.201 (q25–q75 0.161–0.2279)965nm — median 0.2072 (q25–q75 0.1673–0.2331)970nm — median 0.2155 (q25–q75 0.1745–0.2395)975nm — median 0.2239 (q25–q75 0.1816–0.2454)980nm — median 0.2308 (q25–q75 0.1882–0.2526)985nm — median 0.2342 (q25–q75 0.1929–0.2576)990nm — median 0.2362 (q25–q75 0.1955–0.2606)995nm — median 0.237 (q25–q75 0.1965–0.2614)1,000nm — median 0.2372 (q25–q75 0.1964–0.2612)1,005nm — median 0.2363 (q25–q75 0.1955–0.2602)1,010nm — median 0.2346 (q25–q75 0.1942–0.2586)1,015nm — median 0.2322 (q25–q75 0.1923–0.2564)1,020nm — median 0.2293 (q25–q75 0.1899–0.2534)1,025nm — median 0.2259 (q25–q75 0.187–0.2501)1,030nm — median 0.2223 (q25–q75 0.184–0.2468)1,035nm — median 0.2187 (q25–q75 0.1808–0.2433)1,040nm — median 0.2151 (q25–q75 0.1777–0.2399)1,045nm — median 0.2116 (q25–q75 0.1748–0.2365)1,050nm — median 0.2083 (q25–q75 0.1719–0.2334)1,055nm — median 0.205 (q25–q75 0.169–0.2301)1,060nm — median 0.2017 (q25–q75 0.1661–0.2267)1,065nm — median 0.1984 (q25–q75 0.1632–0.2235)1,070nm — median 0.1953 (q25–q75 0.1603–0.2205)1,075nm — median 0.1925 (q25–q75 0.1578–0.218)1,080nm — median 0.19 (q25–q75 0.1555–0.2158)1,085nm — median 0.1881 (q25–q75 0.1536–0.2137)1,090nm — median 0.1866 (q25–q75 0.1519–0.2118)1,095nm — median 0.1857 (q25–q75 0.1506–0.2102)1,100nm — median 0.1853 (q25–q75 0.1497–0.2095)1,105nm — median 0.1852 (q25–q75 0.1492–0.209)1,110nm — median 0.1854 (q25–q75 0.149–0.2089)1,115nm — median 0.1861 (q25–q75 0.1494–0.2097)1,120nm — median 0.1878 (q25–q75 0.1509–0.2118)1,125nm — median 0.1915 (q25–q75 0.1543–0.2159)1,130nm — median 0.199 (q25–q75 0.1622–0.2241)1,135nm — median 0.2112 (q25–q75 0.175–0.2372)1,140nm — median 0.2276 (q25–q75 0.1917–0.253)1,145nm — median 0.2469 (q25–q75 0.2072–0.2723)1,150nm — median 0.2659 (q25–q75 0.2257–0.2933)1,155nm — median 0.2849 (q25–q75 0.2443–0.3129)1,160nm — median 0.3041 (q25–q75 0.2623–0.3305)1,165nm — median 0.3211 (q25–q75 0.2785–0.3481)1,170nm — median 0.3347 (q25–q75 0.291–0.3641)1,175nm — median 0.3465 (q25–q75 0.3016–0.3771)1,180nm — median 0.3578 (q25–q75 0.3117–0.3902)1,185nm — median 0.3683 (q25–q75 0.3226–0.4019)1,190nm — median 0.377 (q25–q75 0.3317–0.4121)1,195nm — median 0.3829 (q25–q75 0.3379–0.4181)1,200nm — median 0.3861 (q25–q75 0.3411–0.4211)1,205nm — median 0.386 (q25–q75 0.3412–0.4209)1,210nm — median 0.3826 (q25–q75 0.3383–0.4172)1,215nm — median 0.3759 (q25–q75 0.3323–0.4098)1,220nm — median 0.3671 (q25–q75 0.3241–0.3997)1,225nm — median 0.3574 (q25–q75 0.3153–0.3891)1,230nm — median 0.3487 (q25–q75 0.3072–0.3798)1,235nm — median 0.3416 (q25–q75 0.3002–0.3716)1,240nm — median 0.3362 (q25–q75 0.2949–0.3655)1,245nm — median 0.332 (q25–q75 0.291–0.3607)1,250nm — median 0.3288 (q25–q75 0.288–0.3573)1,255nm — median 0.3265 (q25–q75 0.2859–0.3548)1,260nm — median 0.3248 (q25–q75 0.2843–0.3529)1,265nm — median 0.3235 (q25–q75 0.2829–0.3514)1,270nm — median 0.3222 (q25–q75 0.2815–0.35)1,275nm — median 0.3207 (q25–q75 0.2799–0.348)1,280nm — median 0.3188 (q25–q75 0.278–0.3451)1,285nm — median 0.3157 (q25–q75 0.2761–0.3424)1,290nm — median 0.3132 (q25–q75 0.2742–0.3405)1,295nm — median 0.3121 (q25–q75 0.2725–0.3393)1,305nm — median 0.3133 (q25–q75 0.272–0.3408)1,310nm — median 0.3163 (q25–q75 0.2738–0.344)1,315nm — median 0.3211 (q25–q75 0.2773–0.3494)1,320nm — median 0.3277 (q25–q75 0.2827–0.3567)1,325nm — median 0.3361 (q25–q75 0.2903–0.3663)1,330nm — median 0.3473 (q25–q75 0.3007–0.3783)1,335nm — median 0.3609 (q25–q75 0.313–0.3922)1,340nm — median 0.3762 (q25–q75 0.3268–0.4073)1,345nm — median 0.3913 (q25–q75 0.3415–0.4238)1,350nm — median 0.4066 (q25–q75 0.3565–0.4398)1,355nm — median 0.4219 (q25–q75 0.3712–0.4557)1,360nm — median 0.4357 (q25–q75 0.3846–0.4704)1,365nm — median 0.4471 (q25–q75 0.3963–0.4843)1,370nm — median 0.4581 (q25–q75 0.4066–0.4967)1,375nm — median 0.4687 (q25–q75 0.4164–0.5079)1,380nm — median 0.4812 (q25–q75 0.4268–0.5199)1,385nm — median 0.4967 (q25–q75 0.4397–0.5359)1,390nm — median 0.5174 (q25–q75 0.4575–0.5585)1,395nm — median 0.5422 (q25–q75 0.4785–0.5828)1,400nm — median 0.5693 (q25–q75 0.5021–0.6143)1,405nm — median 0.5976 (q25–q75 0.5285–0.6435)1,410nm — median 0.6272 (q25–q75 0.557–0.6738)1,415nm — median 0.656 (q25–q75 0.5857–0.7032)1,420nm — median 0.6834 (q25–q75 0.61–0.7306)1,425nm — median 0.7031 (q25–q75 0.6307–0.7524)1,430nm — median 0.7186 (q25–q75 0.6489–0.7694)1,435nm — median 0.7289 (q25–q75 0.6643–0.7817)1,440nm — median 0.7362 (q25–q75 0.6746–0.7899)1,445nm — median 0.7412 (q25–q75 0.6818–0.7958)1,450nm — median 0.7445 (q25–q75 0.6863–0.8)1,455nm — median 0.7467 (q25–q75 0.6885–0.8027)1,460nm — median 0.7481 (q25–q75 0.6899–0.804)1,465nm — median 0.7488 (q25–q75 0.6906–0.8047)1,470nm — median 0.7486 (q25–q75 0.6906–0.8046)1,475nm — median 0.7478 (q25–q75 0.6897–0.8037)1,480nm — median 0.7466 (q25–q75 0.6881–0.8023)1,485nm — median 0.7449 (q25–q75 0.686–0.7999)1,490nm — median 0.743 (q25–q75 0.6838–0.798)1,495nm — median 0.7407 (q25–q75 0.6812–0.7953)1,500nm — median 0.738 (q25–q75 0.6784–0.7928)1,505nm — median 0.7345 (q25–q75 0.6753–0.7899)1,510nm — median 0.731 (q25–q75 0.672–0.7871)1,515nm — median 0.7277 (q25–q75 0.6684–0.7845)1,520nm — median 0.7248 (q25–q75 0.6649–0.7819)1,525nm — median 0.7224 (q25–q75 0.6617–0.7798)1,530nm — median 0.7204 (q25–q75 0.6593–0.7779)1,535nm — median 0.7184 (q25–q75 0.6569–0.7756)1,540nm — median 0.7168 (q25–q75 0.6551–0.7738)1,545nm — median 0.7155 (q25–q75 0.6536–0.7726)1,550nm — median 0.7142 (q25–q75 0.652–0.7715)1,555nm — median 0.7131 (q25–q75 0.6505–0.7703)1,560nm — median 0.7118 (q25–q75 0.6492–0.7691)1,565nm — median 0.7106 (q25–q75 0.6479–0.7679)1,570nm — median 0.7094 (q25–q75 0.6464–0.7666)1,575nm — median 0.708 (q25–q75 0.6446–0.7651)1,580nm — median 0.7057 (q25–q75 0.6424–0.763)1,585nm — median 0.7024 (q25–q75 0.6397–0.7604)1,590nm — median 0.6987 (q25–q75 0.6363–0.7572)1,595nm — median 0.6948 (q25–q75 0.6322–0.7533)1,600nm — median 0.6904 (q25–q75 0.6277–0.7489)1,605nm — median 0.6858 (q25–q75 0.623–0.7445)1,610nm — median 0.6811 (q25–q75 0.6179–0.7395)1,615nm — median 0.6764 (q25–q75 0.6127–0.7342)1,620nm — median 0.671 (q25–q75 0.6077–0.729)1,625nm — median 0.6658 (q25–q75 0.6027–0.7237)1,630nm — median 0.6612 (q25–q75 0.5982–0.7186)1,635nm — median 0.6565 (q25–q75 0.5936–0.7139)1,640nm — median 0.6519 (q25–q75 0.589–0.7093)1,645nm — median 0.6475 (q25–q75 0.5847–0.7051)1,650nm — median 0.6435 (q25–q75 0.5808–0.7014)

Sampling

Wavelengths141
Axis range950–1,650 nm
Mean spacing5 nm
Griduniform
Observations150

Signal & quality

Value range0.0907 – 0.927
Mean range0.184 – 0.749
Mean level0.4397
Area307.9
PTP0.5655
Noise RMS0.00040311
SNR1.1e+03
SNR dB6e+01 dB
Dynamic range0.566
Smoothness0.001657
Saturated0.0%
X-outliers66

Integrity & artefacts

NaN ratio0.00%
Inf count0
Zero ratio0.00%
Spike count0
Spike rate0.00%
Jump count0
Jump rate0.00%
Clip fraction0.01%

Shape & reference

Baseline slope0.66375
Curvature RMS0.0016278
D1 RMS0.0092861
RMS to mean0.046604
RMS p950.12641
SAM to mean0.03337
SAM p950.094671
Affine offset p950.095343
Affine gain p95 Δ0.16671
Affine residual p950.010658
Xcorr lag p950

Outliers & repeatability

PCA Q p95/median4.6
Hotelling T2 p95/median4.4
Mahalanobis H p95/median2.1
Repeat groups0

Dimensionality (PCA)

Effective rank1.3
PCs → 95% var2
PCs → 99% var2
Top-10 cum. var100.0%
Computed metric scores 29worst 1.00
FamilleMétrique calculéeValeurScoreNiveauInterprétation datasetCauses typiquesCalcul / scoring
Intégrité des donnéesNaN ratiointegrity.nan_ratio0%0.00faibleSpectre completErreur acquisition/exportcount(isnan(X)) / X.sizealert = min(1, nan_ratio / 0.05)
Intégrité des donnéesInf countintegrity.inf_count00.00faibleNormalCalculs invalidescount(isinf(X))alert = min(1, inf_count / 1)
Intégrité des donnéesZero ratiointegrity.zero_ratio0%0.00faibleNormalExport, saturationcount(X == 0) / count(finite X)alert = min(1, zero_ratio / 0.05)
Amplitude globaleMean reflectanceamplitude.mean_reflectance0.439691.00fortValeur atypique: Trop clair / fond visible ou Trop sombreFond, géométriemean(X finite)alert reuses baseline/shape drift because absolute reflectance ranges are technology-dependent
Amplitude globaleArea under curveamplitude.area_under_curve307.91.00fortValeur atypique: Différence d'éclairement ou NormalDistance sondetrapezoid(mean_spectrum, spectral_axis)alert reuses baseline/shape drift because area scale depends on axis and units
Amplitude globalePeak-to-peak (PTP)amplitude.peak_to_peak0.565550.00faibleVariabilité forteSaturationmax(mean_spectrum) - min(mean_spectrum)alert increases when dynamic range is abnormally flat
Amplitude globaleVarianceamplitude.variance0.0489080.00faibleNormal ou hétérogèneMauvais contactvar(X finite)alert increases when variance/dynamic range is abnormally flat
BruitNoise RMSnoise.noise_rms0.000403110.01faibleStableLampe, détecteurmedian MAD(second derivative) * 1.4826 / sqrt(6)alert = noise_rms / signal_scale, saturated at 5%
BruitSNRnoise.snr1090.70.00faibleBon signalAcquisitionmean(abs(X)) / noise_rmsalert decreases with SNR dB; >=40 dB is treated as low alert
BruitBandwise SNRnoise.bandwise_snr_min880.360.00faibleZone fiableDétecteurmin(abs(mean_spectrum) / local second-derivative noise)alert decreases with worst-band SNR dB; >=35 dB is treated as low alert
Artefacts locauxSpike countartefacts.spike_count00.00faibleSpectre propreCosmic rays, splicecount robust outliers in second derivativealert follows spike_rate, saturated at 1%
Artefacts locauxSpike rateartefacts.spike_rate0%0.00faibleNormalInterpolationspike_count / (n_samples * (n_features - 2))alert = min(1, spike_rate / 0.01)
Artefacts locauxJump countartefacts.jump_count00.00faibleContinuSplicecount robust outliers in first derivativealert follows jump_rate, saturated at 1%
Artefacts locauxJump rateartefacts.jump_rate0%0.00faibleNormalCalibrationjump_count / (n_samples * (n_features - 1))alert = min(1, jump_rate / 0.01)
Artefacts locauxClip fractionartefacts.clip_fraction0.00946%0.01faibleNormalDétecteur saturéfraction of finite cells equal to repeated min/max extremaalert = min(1, clip_fraction / 0.01)
Forme spectraleBaseline slopeshape.baseline_slope0.663751.00fortDériveÉclairementlinear slope of mean_spectrum over normalized axisalert = abs(slope / signal_scale), saturated at 0.5
Forme spectraleCurvature RMSshape.curvature_rms0.00162780.29faibleLisseFond, splicemedian RMS(second derivative per spectrum)alert = curvature_rms / signal_scale, saturated at 1%
Forme spectraleD1 RMSshape.d1_rms0.00928610.33faiblePlatBiologie ou artefactmedian RMS(first derivative per spectrum)alert = d1_rms / signal_scale, saturated at 5%
Outliers multivariésPCA Q (SPE)outliers.pca_q_ratio4.59930.57moyenSpectre atypiqueArtefact, mélangep95(Q/SPE residual) / median(Q/SPE residual)alert = min(1, pca_q_ratio / 8)
Outliers multivariésHotelling T²outliers.hotelling_t2_ratio4.42420.55moyenExtrême mais cohérentVariabilité naturellep95(Hotelling T2) / median(Hotelling T2)alert = min(1, hotelling_t2_ratio / 8)
Outliers multivariésMahalanobis Houtliers.mahalanobis_h_ratio2.10240.53moyenOutlier globalDomaine différentp95(sqrt(T2)) / median(sqrt(T2))alert = min(1, mahalanobis_h_ratio / 4)
Comparaison à référenceRMS to mean spectrumreference.rms_to_mean_spectrum_p950.126410.89fortSpectre différentDomain shiftp95 RMS distance to dataset mean spectrumalert = RMS_p95 / signal_scale, saturated at 25%
Comparaison à référenceSpectral Angle Mapper (SAM)reference.sam_to_mean_spectrum_p950.0946710.27faibleSimilaireFond, géométriep95 spectral angle to dataset mean spectrumalert = min(1, SAM_p95 / 0.35 rad)
RépétabilitéRMS intra-IDrepeatability.rms_intra_id—0.00faibleStablePositionnementmedian RMS distance to repeated-sample centroidalert = RMS_intra_ID / signal_scale, saturated at 10%
RépétabilitéSAM intra-IDrepeatability.sam_intra_id—0.00faibleStableAcquisitionmedian SAM to repeated-sample centroidalert = min(1, SAM_intra_ID / 0.15 rad)
RépétabilitéCV intra-IDrepeatability.cv_intra_id—0.00faibleStableOpérateurmedian within-ID band CValert = min(1, CV_intra_ID / 0.25)
Structure du datasetPCA score densitystructure.pca_score_density8.38140.81fortSous-populationsLots différents1 / median kNN distance in PCA score spacealert follows density_cv/profile structure complexity, not raw density alone
Structure du datasetLocal Outlier Factor (LOF)structure.local_outlier_factor_p952.41560.71moyenSpectre isoléCas raresp95 approximate LOF from PCA-score kNN distancesalert = min(1, max(0, LOF_p95 - 1) / 2)
Structure du datasetIsolation Forest scorestructure.isolation_forest_score_p950.589960.81fortSpectre atypiqueDiverses causesp95 IsolationForest anomaly score on PCA scoresalert follows structure complexity; raw score is implementation-dependent
X PCA score plot-2-1012-0.75-0.50-0.250.000.250.50PC1 -1.213 · PC2 0.1949PC1 -0.5062 · PC2 -0.1385PC1 -0.512 · PC2 -0.1339PC1 -0.03376 · PC2 0.1949PC1 0.9269 · PC2 0.2372PC1 0.1023 · PC2 0.07754PC1 0.6773 · PC2 0.287PC1 -0.2481 · PC2 0.1499PC1 0.08283 · PC2 0.2002PC1 0.4369 · PC2 0.1493PC1 -0.05874 · PC2 0.06482PC1 -0.4631 · PC2 0.02649PC1 0.5687 · PC2 0.08876PC1 0.9271 · PC2 0.2737PC1 0.5287 · PC2 0.09071PC1 -0.1699 · PC2 -0.3242PC1 0.2421 · PC2 0.1998PC1 0.5307 · PC2 0.2849PC1 -1.185 · PC2 -0.05089PC1 0.3138 · PC2 0.1877PC1 -1.224 · PC2 -0.0374PC1 -0.5918 · PC2 -0.03736PC1 -0.2066 · PC2 -0.033PC1 -0.1117 · PC2 -0.05569PC1 -1.292 · PC2 -0.1217PC1 -0.9396 · PC2 0.1279PC1 -0.8414 · PC2 0.09847PC1 0.02833 · PC2 0.1214PC1 -1.415 · PC2 0.1117PC1 -1.198 · PC2 0.08497PC1 -0.6494 · PC2 0.1858PC1 0.09656 · PC2 0.3832PC1 -0.807 · PC2 -0.02962PC1 -1.246 · PC2 -0.513PC1 0.1459 · PC2 0.4088PC1 -1.421 · PC2 -0.01354PC1 -1.345 · PC2 0.1067PC1 0.3225 · PC2 0.3197PC1 0.05954 · PC2 -0.07175PC1 -0.6417 · PC2 -0.1958PC1 -0.287 · PC2 0.136PC1 -0.3252 · PC2 -0.0259PC1 0.4408 · PC2 0.05055PC1 0.2279 · PC2 0.0282PC1 1.639 · PC2 -0.3515PC1 1.07 · PC2 -0.2333PC1 0.5008 · PC2 -0.5565PC1 0.8655 · PC2 -0.2836PC1 1.548 · PC2 -0.2794PC1 1.571 · PC2 -0.3552PC1 -0.7153 · PC2 0.01517PC1 -0.913 · PC2 -0.01706PC1 -0.2488 · PC2 0.007617PC1 1.176 · PC2 -0.1923PC1 1.702 · PC2 0.07801PC1 1.284 · PC2 0.1375PC1 0.6964 · PC2 -0.1277PC1 0.5205 · PC2 -0.2055PC1 1.02 · PC2 0.04227PC1 0.9975 · PC2 -0.1359PC1 0.5395 · PC2 0.2248PC1 1.448 · PC2 0.1315PC1 -0.03324 · PC2 0.2021PC1 0.5261 · PC2 -0.01678PC1 -0.1572 · PC2 0.1914PC1 0.2914 · PC2 0.1726PC1 0.9779 · PC2 0.2174PC1 0.3084 · PC2 0.1229PC1 0.2429 · PC2 -0.09464PC1 -0.3847 · PC2 0.04693PC1 0.05942 · PC2 0.08013PC1 0.2673 · PC2 -0.1454PC1 0.0417 · PC2 -0.1336PC1 0.2451 · PC2 -0.1292PC1 -0.2315 · PC2 -0.3674PC1 0.9508 · PC2 0.3623PC1 0.4608 · PC2 0.1574PC1 -1.169 · PC2 0.06245PC1 -0.912 · PC2 -0.02069PC1 -1.162 · PC2 0.02765PC1 -0.004852 · PC2 0.02983PC1 -0.9025 · PC2 0.06871PC1 -0.7526 · PC2 0.1519PC1 -0.1737 · PC2 -0.0521PC1 -1.536 · PC2 -0.02757PC1 -0.157 · PC2 0.1819PC1 -0.6816 · PC2 0.08482PC1 -0.8437 · PC2 -0.0139PC1 -1.005 · PC2 0.08984PC1 -0.7747 · PC2 0.02121PC1 0.1527 · PC2 0.1968PC1 0.05805 · PC2 0.2124PC1 -1.19 · PC2 0.06643PC1 -1.479 · PC2 0.04035PC1 -0.4318 · PC2 0.006782PC1 -0.9904 · PC2 -0.03501PC1 -0.5253 · PC2 0.1198PC1 -1.411 · PC2 0.0388PC1 -0.7111 · PC2 -0.004391PC1 -1.062 · PC2 0.01247PC1 -1.647 · PC2 -0.02512PC1 -1.518 · PC2 -0.04053PC1 -0.3817 · PC2 -0.07287PC1 0.1316 · PC2 -0.07877PC1 0.4298 · PC2 0.05491PC1 0.1252 · PC2 -0.0398PC1 0.02636 · PC2 -0.1776PC1 0.2917 · PC2 -0.1876PC1 0.7732 · PC2 0.2341PC1 0.5479 · PC2 0.117PC1 0.151 · PC2 -0.06018PC1 -0.3718 · PC2 -0.1435PC1 0.8664 · PC2 0.2579PC1 0.5663 · PC2 0.06528PC1 -0.0325 · PC2 -0.1774PC1 0.3074 · PC2 -0.1958PC1 0.1072 · PC2 -0.222PC1 0.5072 · PC2 0.06161PC1 0.167 · PC2 -0.06421PC1 -0.007575 · PC2 -0.1191PC1 0.8482 · PC2 0.2301PC1 0.3364 · PC2 0.02899PC1 -0.04196 · PC2 -0.07058PC1 0.1164 · PC2 -0.1084PC1 -0.06972 · PC2 -0.1498PC1 0.3189 · PC2 -0.1142PC1 -0.06879 · PC2 -0.1711PC1 -0.3251 · PC2 -0.1357PC1 -0.2024 · PC2 -0.2158PC1 -0.0078 · PC2 -0.1074PC1 0.1084 · PC2 -0.06305PC1 1.158 · PC2 -0.3859PC1 1.363 · PC2 -0.3238PC1 -1.067 · PC2 -0.1544PC1 -0.04518 · PC2 0.2411PC1 1.793 · PC2 0.04316PC1 1.292 · PC2 -0.1008PC1 -0.09085 · PC2 0.1822PC1 1.199 · PC2 0.1399PC1 0.9634 · PC2 0.1093PC1 0.889 · PC2 -0.06901PC1 1.378 · PC2 0.1589PC1 0.5861 · PC2 -0.2334PC1 0.7539 · PC2 0.1392PC1 0.2621 · PC2 0.02536PC1 -0.4611 · PC2 -0.2903PC1 -0.2394 · PC2 -0.2237PC1 -0.7146 · PC2 0.07474PC1 -0.09143 · PC2 -0.5049PC1 0.6878 · PC2 -0.04983PC1 (94.6%)PC2 (4.9%)150 scores
PCA explained variance0%25%50%75%100%PC1: 94.6% (cumulative 94.6%)1PC2: 4.9% (cumulative 99.5%)2PC3: 0.3% (cumulative 99.8%)3PC4: 0.2% (cumulative 100.0%)4PC5: 0.0% (cumulative 100.0%)5PC6: 0.0% (cumulative 100.0%)6PC7: 0.0% (cumulative 100.0%)7PC8: 0.0% (cumulative 100.0%)8PC9: 0.0% (cumulative 100.0%)9PC10: 0.0% (cumulative 100.0%)10cumulative explained variancePC variancecumulativeprincipal component · cumulative (dashed)
X-Y spectral correlation 1
X · protein spectral correlation-1-0.500.51absolute correlation envelopesigned correlationabsolute correlation8001,0001,2001,4001,6001,800|r|signed raxis · Pearson correlation scale
Targetmax |r|axis @ maxmean |r||r| ≥ .5
protein0.4571,1850.3870.0%

Metric interpretation reference

Metric catalog 29
FamilleMétriqueCe qu’elle détecteForte valeur =Faible valeur =Causes typiquesCalcul / score
Intégrité des donnéesNaN ratioDonnées manquantesSpectre corrompuSpectre completErreur acquisition/exportcount(isnan(X)) / X.sizealert = min(1, nan_ratio / 0.05)
Intégrité des donnéesInf countValeurs infiniesCorruptionNormalCalculs invalidescount(isinf(X))alert = min(1, inf_count / 1)
Intégrité des donnéesZero ratioColonnes ou cellules nullesSpectre tronquéNormalExport, saturationcount(X == 0) / count(finite X)alert = min(1, zero_ratio / 0.05)
Amplitude globaleMean reflectanceNiveau moyenTrop clair / fond visibleTrop sombreFond, géométriemean(X finite)alert reuses baseline/shape drift because absolute reflectance ranges are technology-dependent
Amplitude globaleArea under curveIntensité globaleDifférence d'éclairementNormalDistance sondetrapezoid(mean_spectrum, spectral_axis)alert reuses baseline/shape drift because area scale depends on axis and units
Amplitude globalePeak-to-peak (PTP)DynamiqueVariabilité forteSpectre platSaturationmax(mean_spectrum) - min(mean_spectrum)alert increases when dynamic range is abnormally flat
Amplitude globaleVarianceVariabilité spectraleNormal ou hétérogèneSpectre platMauvais contactvar(X finite)alert increases when variance/dynamic range is abnormally flat
BruitNoise RMSBruit haute fréquenceBruitéStableLampe, détecteurmedian MAD(second derivative) * 1.4826 / sqrt(6)alert = noise_rms / signal_scale, saturated at 5%
BruitSNRQualité signalBon signalMauvais signalAcquisitionmean(abs(X)) / noise_rmsalert decreases with SNR dB; >=40 dB is treated as low alert
BruitBandwise SNRBruit localiséZone fiableZone problématiqueDétecteurmin(abs(mean_spectrum) / local second-derivative noise)alert decreases with worst-band SNR dB; >=35 dB is treated as low alert
Artefacts locauxSpike countPics étroitsArtefactsSpectre propreCosmic rays, splicecount robust outliers in second derivativealert follows spike_rate, saturated at 1%
Artefacts locauxSpike rateDensité de picsSpectre suspectNormalInterpolationspike_count / (n_samples * (n_features - 2))alert = min(1, spike_rate / 0.01)
Artefacts locauxJump countDiscontinuitésRaccord détecteurContinuSplicecount robust outliers in first derivativealert follows jump_rate, saturated at 1%
Artefacts locauxJump rateFréquence de sautsProblème spectralNormalCalibrationjump_count / (n_samples * (n_features - 1))alert = min(1, jump_rate / 0.01)
Artefacts locauxClip fractionSaturationClippingNormalDétecteur saturéfraction of finite cells equal to repeated min/max extremaalert = min(1, clip_fraction / 0.01)
Forme spectraleBaseline slopePente globaleDériveStableÉclairementlinear slope of mean_spectrum over normalized axisalert = abs(slope / signal_scale), saturated at 0.5
Forme spectraleCurvature RMSCourbureForme inhabituelleLisseFond, splicemedian RMS(second derivative per spectrum)alert = curvature_rms / signal_scale, saturated at 1%
Forme spectraleD1 RMSVariabilité localeSpectre structuréPlatBiologie ou artefactmedian RMS(first derivative per spectrum)alert = d1_rms / signal_scale, saturated at 5%
Outliers multivariésPCA Q (SPE)Non expliqué par PCASpectre atypiqueConformeArtefact, mélangep95(Q/SPE residual) / median(Q/SPE residual)alert = min(1, pca_q_ratio / 8)
Outliers multivariésHotelling T²Extrême dans PCAExtrême mais cohérentCentralVariabilité naturellep95(Hotelling T2) / median(Hotelling T2)alert = min(1, hotelling_t2_ratio / 8)
Outliers multivariésMahalanobis HDistance au nuageOutlier globalPopulation normaleDomaine différentp95(sqrt(T2)) / median(sqrt(T2))alert = min(1, mahalanobis_h_ratio / 4)
Comparaison à référenceRMS to mean spectrumDistance moyenneSpectre différentTypiqueDomain shiftp95 RMS distance to dataset mean spectrumalert = RMS_p95 / signal_scale, saturated at 25%
Comparaison à référenceSpectral Angle Mapper (SAM)Différence de formeForme différenteSimilaireFond, géométriep95 spectral angle to dataset mean spectrumalert = min(1, SAM_p95 / 0.35 rad)
RépétabilitéRMS intra-IDReproductibilitéMauvaise répétabilitéStablePositionnementmedian RMS distance to repeated-sample centroidalert = RMS_intra_ID / signal_scale, saturated at 10%
RépétabilitéSAM intra-IDVariation de formeInstableStableAcquisitionmedian SAM to repeated-sample centroidalert = min(1, SAM_intra_ID / 0.15 rad)
RépétabilitéCV intra-IDVariabilité interneMauvais contrôleStableOpérateurmedian within-ID band CValert = min(1, CV_intra_ID / 0.25)
Structure du datasetPCA score densityClustersSous-populationsHomogèneLots différents1 / median kNN distance in PCA score spacealert follows density_cv/profile structure complexity, not raw density alone
Structure du datasetLocal Outlier Factor (LOF)Anomalie localeSpectre isoléPopulation normaleCas raresp95 approximate LOF from PCA-score kNN distancesalert = min(1, max(0, LOF_p95 - 1) / 2)
Structure du datasetIsolation Forest scoreAnomalie globaleSpectre atypiqueNormalDiverses causesp95 IsolationForest anomaly score on PCA scoresalert follows structure complexity; raw score is implementation-dependent
Technology-specific extensions
TechnologieAdaptations / métriquesAnomalies cibléesCommentaire pratique
UV-Vis 300-1000 nmBaseline, pente globale, dérive aux bords 300-350 et 900-1000; métriques par zonesLumière parasite, mauvais blanc, saturation, faible signal aux extrémitésLes bords sont souvent instables; calculer aussi des scores edge/middle.
UV-Vis 300-1000 nmSaturation / clipping proche absorbance max ou réflectance maxSignal écrêtéTrès important si absorption forte.
UV-Vis 300-1000 nmRed-edge, position de maximum, ratios de bandes si végétalDécalage biologique ou artefact optiqueAide à distinguer changement réel et problème d'acquisition.
UV-Vis 300-1000 nmSmoothness / roughness indexBruit haute fréquenceSouvent plus informatif que le SNR seul.
MIR / ATR-FTIRATR contact quality index: intensité globale, aire totale, profondeur des bandes clésMauvais contact cristal-échantillonCrucial: beaucoup d'anomalies viennent du contact ATR.
MIR / ATR-FTIRCO2 / H2O atmospheric bandsMauvaise correction atmosphériquePics parasites fréquents.
MIR / ATR-FTIRBaseline curvature / rubber-band residualDiffusion, contact, dérive baselineTrès utile avant PCA.
MIR / ATR-FTIRPeak position shiftMauvais alignement spectral / calibrationImportant en FTIR car de petits shifts comptent.
MIR / ATR-FTIRBand area ratios sur bandes connuesSpectre chimiquement incohérentÀ adapter par matrice: polysaccharides, protéines, lipides, etc.
HS-MSTotal Ion Current (TIC), Base Peak Intensity (BPI)Injection faible, ionisation instableÉquivalent MS du niveau global spectral.
HS-MSNombre de pics détectésSpectre pauvre ou trop bruitéTrop peu = mauvais signal; trop = bruit/contamination.
HS-MSMass accuracy / m/z driftProblème calibration masseFondamental en HRMS.
HS-MSRetention time drift si LC/GC-MSDérive chromatographiqueÀ suivre sur standards/QC pools.
HS-MSBlank contamination scoreContaminants / carry-overComparer échantillons vs blancs.
HS-MSInternal standard CVVariabilité instrumentaleTrès robuste si standards disponibles.
HS-MSMissingness par featureInstabilité de détectionCrucial pour filtrer les variables.
Avec répétitionsRMS intra-échantillonRépétabilité globaleApplicable à toutes les technologies.
Avec répétitionsSAM / corrélation intra-échantillonRépétabilité de formeTrès utile pour spectres.
Avec répétitionsCV intra-échantillon par bande / featureRépétabilité localeDétecte les zones instables.
Avec répétitionsICC ou variance componentsPart variance échantillon vs techniqueTrès utile si plusieurs répétitions par sample.
Avec répétitionsDistance au centroïde intra-IDRépétition aberrantePermet de flagger la mauvaise répétition plutôt que le sample entier.
Bug-hunting / supervised audits
Famille de bug potentielMéthodes à ajouterCe que ça détecteÉtat dans l’explorateur
Shift spectral globalCorrélation spectre moyen inter-dataset, DTW, cross-correlation, comparaison positions de picsDécalage en longueur d'onde, mauvais alignement, interpolation différentePartiellement calculé: cross-correlation lag et dispersion des positions de pics vs spectre moyen.
Baseline / offset / gainRégression chaque spectre vs spectre moyen: x = a + b ref + residual; suivi de a, b, RMS résiduelOffset additif, effet multiplicatif, dérive de baselineCalculé dans reference.affine_*.
Mélange de lignes / mauvais appariement X-M-YVérification index, hash des lignes, duplication ID, distance spectrale intra-ID, labels incohérentsLignes mélangées, metadata mal alignées, Y attribué au mauvais spectrePartiellement couvert par répétabilité intra-ID; checks index/hash à ajouter au pipeline canonical.
Fuite d'information / répétitions mal splitéesGroupKFold par sample_id vs StratifiedKFold random; audit des partitions par sample_idPerformance artificiellement bonne due aux répétitionsNécessite splits et benchmark modèle; non calculé par la carte descriptive.
Label bugsÉchantillons proches en X mais Y différents, confident learning, erreurs systématiques FP/FNY inversés, erreurs de saisie, classes ambiguësNécessite Y et/ou modèle; recommandé pour l'explorateur supervisé.
Sous-domaines cachésPCA/UMAP/t-SNE + clustering non supervisé + association avec dataset/Y/date/operatorLots, campagnes, sondes, backgrounds non renseignésPartiellement calculé par structure PCA/LOF; UMAP/t-SNE hors carte statique.
Artefacts localisés inconnusCarte wavelength x dataset: différence moyenne, différence variance, KS par longueur d'ondeRégions spectrales anormales non anticipéesÀ calculer au niveau banque quand plusieurs datasets partagent un axe spectral.
Ruptures instrumentalesDiscontinuités dans dérivées, changepoint detectionSplice, raccord détecteur, saut local non prévuCalculé par jump/spike rates; changepoint plus avancé à ajouter.
Mélange / contamination spectraleNMF / unmixing / reconstruction par convex hullComposante externe: fond, plastique, solNon calculé automatiquement; nécessite hypothèses de composants ou grande bibliothèque.
Features instables mais prédictivesImportance modèle vs instabilité QC par variableModèle qui apprend un artefact plutôt qu'un signal biologiqueNécessite modèle supervisé; recommandé pour rapports de benchmark.

Variables

Targets 1

protein

target · numeric
protein distribution0510158.42 – 8.915: 68.915 – 9.409: 89.409 – 9.904: 99.904 – 10.4: 810.4 – 10.89: 910.89 – 11.39: 1111.39 – 11.88: 811.88 – 12.38: 1112.38 – 12.87: 1112.87 – 13.37: 1213.37 – 13.86: 1013.86 – 14.36: 614.36 – 14.85: 814.85 – 15.34: 615.34 – 15.84: 515.84 – 16.33: 416.33 – 16.83: 516.83 – 17.32: 617.32 – 17.82: 317.82 – 18.31: 218.31 – 18.81: 118.81 – 19.3: 019.3 – 19.8: 019.8 – 20.29: 1125102050100
n / missing150 / 0
Mean ± SD12.79 ± 2.57
Median12.6
Range8.42 – 20.29
CV0.201
Skew / kurtosis0.38 / -0.53
Normal?no

Metadata 8

raw_label

metadata · categorical
n / missing150 / 0
Classes150
Balance (entropy)1
Imbalance ratio1
Top classWheatWholePerten0001 (1)

reference_value

metadata · numeric
reference_value distribution0510158.42 – 8.915: 68.915 – 9.409: 89.409 – 9.904: 99.904 – 10.4: 810.4 – 10.89: 910.89 – 11.39: 1111.39 – 11.88: 811.88 – 12.38: 1112.38 – 12.87: 1112.87 – 13.37: 1213.37 – 13.86: 1013.86 – 14.36: 614.36 – 14.85: 814.85 – 15.34: 615.34 – 15.84: 515.84 – 16.33: 416.33 – 16.83: 516.83 – 17.32: 617.32 – 17.82: 317.82 – 18.31: 218.31 – 18.81: 118.81 – 19.3: 019.3 – 19.8: 019.8 – 20.29: 1125102050100
n / missing150 / 0
Mean ± SD12.79 ± 2.57
Median12.6
Range8.42 – 20.29
CV0.201
Skew / kurtosis0.38 / -0.53
Normal?no

ID

metadata · categorical
n / missing150 / 0
Classes150
Balance (entropy)1
Imbalance ratio1
Top classWheatWholePerten0001 (1)

Spectrometer

metadata · categorical
Spectrometer classesPerten_DA7200Perten_DA7200: 141141Perten_DA7300Perten_DA7300: 88Perten_DA7250Perten_DA7250: 11
n / missing150 / 0
Classes3
Balance (entropy)0.23
Imbalance ratio141
Top classPerten_DA7200 (141)

Variety

metadata · categorical
Variety classesWheatWheat: 9999Canadian Hard RCanadian Hard R: 2929DurumDurum: 2222
n / missing150 / 0
Classes3
Balance (entropy)0.8
Imbalance ratio4
Top classWheat (99)

Country

metadata · categorical
Country classesSpainSpain: 5757UKUK: 3636CanadaCanada: 2929SwedenSweden: 1616AustraliaAustralia: 66USUS: 55NorwayNorway: 11
n / missing150 / 0
Classes7
Balance (entropy)0.79
Imbalance ratio57
Top classSpain (57)

Year

metadata · numeric
Year distribution02040602,002 – 2002: 292002 – 2,003: 02,003 – 2004: 02004 – 2,004: 02,004 – 2004: 02004 – 2,005: 02,005 – 2006: 02006 – 2,006: 02,006 – 2006: 82006 – 2,007: 02,007 – 2008: 572008 – 2,008: 02,008 – 2008: 142008 – 2,009: 02,009 – 2010: 02010 – 2,010: 02,010 – 2010: 02010 – 2,011: 02,011 – 2012: 412012 – 2,012: 02,012 – 2012: 02012 – 2,013: 02,013 – 2014: 02014 – 2,014: 12,0002,0052,0102,015
n / missing150 / 0
Mean ± SD2007 ± 3.11
Median2,007
Range2,002 – 2,014
CV0.00155
Skew / kurtosis-0.36 / -0.68
Normal?no

Moisture

metadata · numeric
Moisture distribution010207.6 – 8.087: 48.087 – 8.573: 48.573 – 9.06: 69.06 – 9.547: 79.547 – 10.03: 710.03 – 10.52: 1010.52 – 11.01: 911.01 – 11.49: 1111.49 – 11.98: 611.98 – 12.47: 1012.47 – 12.95: 912.95 – 13.44: 1813.44 – 13.93: 1313.93 – 14.41: 814.41 – 14.9: 614.9 – 15.39: 315.39 – 15.87: 515.87 – 16.36: 316.36 – 16.85: 216.85 – 17.33: 417.33 – 17.82: 117.82 – 18.31: 118.31 – 18.79: 218.79 – 19.28: 1125102050100
n / missing150 / 0
Mean ± SD12.42 ± 2.5
Median12.5
Range7.6 – 19.28
CV0.201
Skew / kurtosis0.32 / -0.22
Normal?yes
Constant metadata 43
  • SpectralRep1
  • datasetsensAIfood Perten Cereals
  • dataset_titleWheat Perten protein
  • dataset_slugwheat_protein_perten
  • spectroscopy_typeNIR
  • cereal_typewheat
  • trait_headerprotein
  • trait_header_originalProtein
  • task_typeregression
  • n_points_original141
  • dimensions1D
  • axis_notesource_axis_950_to_1650_nm_step_5
  • Cerealwheat
  • meta_Spectrometer_Make_ModelPerten: DA7200, DA7300
  • meta_Wavelength_Range_nm950-1650
  • meta_Spectral_Resolution_nmWL accuracy < 0.05 nm, all data provided is 5nm step
  • meta_Number_of_Scans_per_Spectrum100
  • meta_Grain_TypeWheat (whole)
  • meta_VarietyDurum, Wheat, Canadian Hard R
  • meta_CountrySpain, Sweden, Australia, Canada, US, UK, Norway
  • meta_Year2002, 2006, 2007, 2008, 2011, 2014
  • meta_Reference_Method_ProteinKjeldahl
  • meta_Reference_Method_MoistureOven
  • meta_Units_for_Protein% protein (N6_25)
  • meta_Units_for_Moisture% moisture
  • meta_Reference_for_moistureDry Basis
  • meta_CitationPerten (for sensAIfood)
  • meta_Autorshipapplications.perten@perkinelmer.com
  • meta_Detector_TypeDiod-Array: 256 pixel thermoelectrically cooled, high-detectivity indium gallium aresenide (InGaAs)
  • meta_Geometrydiffuse reflectance (post-dispersive)
  • meta_Optical_Reference_MaterialTeflon coated ceramic reference
  • meta_Software_Used_for_AcquisitionPerten Software (Results Plus or Process Plus)
  • meta_Sampling_notesNo duplicated in provided data
  • axis_unitnm
  • axis_min950
  • axis_max1,650
  • licenseCC BY 4.0
  • license_urlhttps://creativecommons.org/licenses/by/4.0/
  • rights_statusexplicit_open
  • usage_scopepublic_reuse_possible
  • public_release_allowedTrue
  • doi_dataset10.5281/zenodo.15838136
  • notesTask-specific view of Perten source numeric axis, no interpolation or resampling by standardization.

Alignment

Alignment levelsample
Sample id availableyes
Samples150
Observations (total)150
Reps per samplemin 1 · mean 1 · max 1

Provenance & citation

ContributorsensAIfood cereal NIR data (wheat, corn, barley) and reference protein and moisture (Perten set)
Origin · zenodo [open]https://zenodo.org/records/15838136 — Zenodo
Origin · zenodo [open]https://zenodo.org/api/records/15838136 — Zenodo
Origin · zenodo [open]10.5281/zenodo.15838136 — Zenodo
Origin · script [manual]source_to_standard.py — standardization script (maintainer-only)

Governance & integrity

Tierpublic
LicenseCC-BY-4.0
Permitted useResearch and benchmarking.
Access policyOpen per source license.
RedistributionPublic redistribution is allowed under CC BY 4.0 with attribution, license link, and indication of modifications.
Content version1.0.0
Schema / protocol2.0
Content hash4ec5a9ac4820859e…
Processing hashdb226fe1aad0f467…
Metadata hash79efa483ed9ba63b…

Load this dataset

# pip install nirs4all-datasets
from nirs4all_datasets import get

ds = get("wheat_protein_perten")            # DOI-pinned, checksum-verified, cached
X, y = ds.x(), ds.y()
print(X.shape, y.shape)
card.jsoncroissant.jsonIdentity metadata only — the dataset bytes live at the origin / DOI.