SUNFLOWER MEAL IN BROILER DIETS
Data and calculation code

Companion to: Sunflower Meal in Broiler Diets: A Dose–Response Meta-Analysis
of Inclusion Rate, Residual Fibre, and Bird Age

SCOPE

This package contains the extracted treatment data and executable calculations
for an exploratory synthesis of literature published before 1 May 2022. It
accompanies the article and its separate supplementary PDF. The quantitative
analysis includes three independent experiments, 15 treatment arms, 80 pens
and 2,176 initially allocated birds. Twelve nonzero-dose contrasts contribute
to each phase. The same cohorts supply starter and grower observations.

CONTENTS

extraction.json — Treatment means, actual dietary inclusion, reported fibre
and protein values, pen replication, CVs or SEMs, source locations and
study-specific cautions. These are aggregate published data, not pen-level
observations.

analyse.py — Complete script for calculating shared-control log-response
ratios, within-study dose projections, pooled results and sensitivities.

results.json — Numerical results produced by the script, including all study
slopes, uncertainty, pooled estimates, heterogeneity, weights, leave-one-out
results and global sampling-variance sensitivity results.

requirements.txt — The external Python dependency, NumPy. The remaining
imports are from the Python standard library.

references.txt — The three primary data sources and methodological references
used for response ratios, heterogeneity and modified Knapp–Hartung inference.

RUNNING THE CALCULATIONS

1. Extract all files into one writable directory.
2. Use Python 3 with NumPy installed. If necessary, install NumPy with:
   python -m pip install -r requirements.txt
3. From that directory, run:
   python analyse.py

The script reads extraction.json beside itself, writes results.json in the
same directory, and prints the main study and pooled estimates. Running it
replaces the extracted copy of results.json. The supplied script was executed
with Python 3.12.14 and NumPy 2.3.5; its regenerated numerical results matched
the supplied results. No network connection is used by the calculation script.
An internet connection is only needed if installing a missing dependency or
opening source references. No additional data files are required.

DATA DEFINITIONS

The studies array contains the independent experiments. pens_per_arm is the
replication count used for uncertainty reconstruction. birds_per_pen describes
initial allocation and is not a count of independent dietary replicates.

Each study has starter (days 1–21) and grower (days 22–42) phase records.
dose_pct is actual sunflower-meal inclusion as a percentage of complete feed,
not percentage replacement of soybean protein. One 10-percentage-point dose
increment corresponds to 100 g meal/kg diet.

bwg is body-weight gain in grams per bird over the phase; fi is feed intake in
grams per bird; fcr is the reported feed-to-gain ratio. Positive changes in bwg
or fi mean larger values; negative changes in fcr mean less feed per unit gain.
means follows the treatment order given by dose_pct, with the zero-meal control
first. residual_cv_pct is the reported coefficient of variation interpreted
under the conditional residual-variance assumption below; sem is the reported
standard error of a treatment mean.

meal_cf_pct and diet_cf_pct denote meal and complete-diet crude fibre. Their
reported analytical bases are retained; no dry-matter conversion is imposed.
Missing composition entries remain absent rather than being assigned zero.
Source URLs, DOI identifiers and table locations are retained in each study.

CALCULATION METHODS

For Furlan et al. (2001) and Tavernari et al. (2009), the conditional residual
SD is CV times the arithmetic mean of the treatment means divided by 100.
The treatment-mean SE is this SD divided by the square root of pens per arm.
These reconstructed values are not observed treatment-arm standard deviations.
For Nassiri Moghaddam et al. (2012), the reported phase-specific SEM is treated
as the treatment-mean SE. The original phase means are retained despite
inconsistencies between some published cumulative and phase totals.

For a nonzero arm i and its same-study, same-phase control 0, the effect is
y_i = ln(mean_i / mean_0). Its sampling variance is
SE_i^2 / mean_i^2 + SE_0^2 / mean_0^2. Two contrasts sharing a control have
covariance SE_0^2 / mean_0^2. The covariance matrix is computed separately for
each study, outcome and phase. Treatment arms are assumed independent before
accounting for the shared control.

Actual dose is divided by 10 before fitting a generalised least-squares linear
projection through the zero-dose origin. For dose vector x and covariance V:
beta = (x' V^-1 x)^-1 x' V^-1 y; variance(beta) = (x' V^-1 x)^-1.
Each experiment contributes one slope per outcome and phase. Percentage
changes are 100 times [exp(beta) - 1]. The study intervals use a normal
quantile of 1.95996398454. Lack-of-fit statistics have the number of nonzero
doses minus one degrees of freedom. They are descriptive, with no asserted
p-values.

Restricted maximum likelihood estimates the nonnegative between-study
variance tau^2. Random-effects weights are 1 / (study variance + tau^2).
The modified Knapp–Hartung standard error is
sqrt(max(1, q) / sum(weights)), where q is the weighted squared deviation of
study slopes from their weighted mean divided by k - 1. Confidence limits use
the t distribution with k - 1 degrees of freedom. There are three independent
studies in the main analyses, hence two degrees of freedom. The leave-one-out
analyses retain two studies and use one degree of freedom.

The script implements the REML objective and its bounded golden-section
minimisation explicitly, including the comparison with a zero heterogeneity
estimate. Cochran Q uses fixed-effect inverse-variance weights; I^2 is
max(0, [Q - (k - 1)] / Q) times 100, or zero when Q is zero. Full log-scale
coefficients, sampling variances and transformed results are retained in
results.json.

SENSITIVITIES AND INTERPRETATION

The primary outcome window is days 22–42. Starter calculations use the same
cohorts and are pooled separately. No between-age significance test or joint
inclusion-by-fibre-by-age moderator model is fitted. The common phase and
analytical choices were selected during evidence synthesis, without a
prospectively registered protocol.

For days 22–42, each study is omitted in turn. The variance sensitivities
multiply ALL studies' treatment-mean sampling variances by 0.5 or 2, including
the study with reported SEM. These are overall precision sensitivities, not a
specific probability model for uncertainty in the CV reconstruction.

The slopes are linear projections over the observed doses. Nonlinear responses
mean that a slope is not necessarily an observed contrast at exactly 10%
inclusion or a constant biological dose effect. Only three independent
experiments were available, and gain and FCR slopes are heterogeneous. The
analysis does not demonstrate equivalence or identify an optimum or universal
maximum inclusion rate.

Reported meal crude fibre spans a narrow range, 21.20–22.37% on the reported
bases. Within each batch, sunflower-derived fibre is proportional to meal
inclusion. Differences in formulations, prior exposure and repeated phases
prevent independent identification of fibre and age effects. Targeted
retrieval, incomplete uncertainty reporting and missing eligible full texts
limit the evidence base; this is not an exhaustive systematic review.

The original articles and the manuscript's full reference list remain the
sources for interpretation. This package supplies no unreported pen-level
data and makes no correction to published treatment means.
