here

advertisement
J. L. Wilcox et al. Supplementary material 1
Experimental Procedures Supplement
Array Construction, continued
We designed PCR primer pairs from the Buchnera(Sg) annotated genomic sequence
(Genbank Accession #NC004061) to yield product sizes of 200-1500 bp (excepting
tRNA genes, for which product sizes were 100 bp). We amplified genes in multiple 50 l
reactions to yield a minimum 3.0 g. Reactions included 2.5 mM MgCl2, 0.8 mM
dNTP’s, 0.5 M each primer, 1x reaction buffer, and 1.5 units Taq DNA polymerase
(Gibco). Cycling conditions were: initial 2min denaturation step (94oC); 35 cycles of a
30sec denaturation (94oC), 30sec annealing (ranging 55-59oC), and 45sec elongation
(72oC); final 72oC elongation step for 8min. We pooled separate PCR reactions for
individual genes and electrophoresed products to verify expected size, purity, and yield.
After automated purification, we verified yields again for a random subset of genes with
an Eppendorf Biophotometer. For each gene, ~0.8 g of purified PCR product was
resuspended in 50% DMSO to yield concentrations ranging 200-250 ng/l. We used a
Virtek robot to stamp each gene as two sets of spatially disjunct spot pairs onto
SigmaScreen microarray slides (Sigma).
RNA Preparation and Hybridization
Frozen aphid/symbiont tissues were ground in liquid nitrogen with sterile micropestles,
and total RNA was extracted in parallel sets using the Qiagen RNeasy kit with
adaptations to the animal tissue protocol. Samples were DNased on the extraction
column, and eluted RNA was tested for DNA contamination using PCR. For each
treatment, we pooled parallel extractions and checked RNA purity and yield by
electrophoresing samples on agarose gels and measuring photometric absorbance. We
constructed cDNA from 8-10 g of total RNA using Omniscript Reverse Transcriptase
and reaction buffer (Qiagen), 6 ng random hexamer primers, 0.5 mM each dATP, dCTP,
dGTP, 0.3 mM dTTP, and 0.2 mM amino-allyl linked dUTP. RNA was hydrolyzed, and
purified cDNA populations were coupled to Cy3 or Cy5 fluors (Amersham). We flipped
dye labels between treatments across experimental replicates. Purified, labeled cDNA
populations were suspended in 80l Sigma Hybridization buffer with 20 g Human
COT1 DNA. Microarray slides were rehydrated, UV crosslinked, and denatured
immediately before hybridization. Target samples were combined, denatured for 10min at
94oC, and pipetted into sealed, microvolume slide manifolds. We ran hybridizations in a
GeneTAC automated station at 47oC for 16hrs and programmed 3 washes of variablestringency SDS/SSC solutions (Sigma).
J. L. Wilcox et al. Supplementary material 2
SAS code for v6.12
/* Code for analysis of B. aphidicola(Sg) transcriptome harvested from reference vs. HS
treatments. All data are included except: tRNA and rRNA genes; control DNA or genes
with insufficient replicates; genes exhibiting consistently low signal intensities. */
data BuchHeat;
infile 'macintosh hd:HSData.prn';
input Slide $ Number $ Name $ Dye $ Treat $ Med;
logMed=log2(Med);
run;
data Detail;
infile 'macintosh hd:ArrayDetails.prn';
input Name $ Code $ Order Length Yield;
run;
proc sort data=BuchHeat;
by Name;
proc sort data=Detail;
by Name;
data HeatMerg;
merge BuchHeat Detail;
by Name;
run;
/* First ANOVA, Normalization Step */
proc mixed data=HeatMerg covtest cl;
class Slide Dye Treat;
model logMed=Treat Dye Yield Length Length*Yield / p;
random Slide Slide*Dye;
lsmeans Treat / diff cl;
make 'predicted' out=pHS2 noprint;
run;
/* Merge in annotation */
data HSIOut;
merge HeatMerg pHS2;
run;
/* Second ANOVA, gene-by-gene, including slide*number random effect to account for
within-slide replicates; output least-squares means and their differences */
proc mixed data=HSIOut covtest cl;
by name;
class slide dye treat number;
model _resid_ = treat dye / p;
random slide slide*dye slide*number;
lsmeans treat / diff cl;
make 'lsmeans' out=LSMean noprint;
make 'diffs' out=DifName noprint;
run;
J. L. Wilcox et al. Supplementary material 3
/* Second ANOVA, COG analysis: pairwise tests of differences in reference and HS
LSMeans for each functional category */
proc sort data=HSIOut;
by code;
run;
proc mixed data=HSIOut covtest cl;
by code;
class slide name dye treat code;
model _RESID_= treat / p;
random slide name*dye;
lsmeans treat/ diff cl;
make 'diffs' out=DifCode noprint;
run;
/* SAS 6.12 Code for E. coli MG1655 Reanalysis (nearly entire genome) */
data EcolRean;
infile 'macintosh hd:EcoliRean.prn';
input Slide $ Name $ Number $ Treat $ Med;
logMed=log(Med);
run;
data Detail;
infile 'macintosh hd:EcoliDetail.prn';
input Number $ Length;
run;
proc sort data=EcolRean;
by Number;
proc sort data=Detail;
by Number;
data EcolMerg;
merge EcolRean Detail;
by Number;
run;
proc sort data=EcolMerg;
by name;
run;
proc mixed data=EcolMerg covtest cl;
class Slide Treat;
model logMed = Treat Length / p;
random Slide Slide*Treat;
lsmeans Treat / diff cl;
make 'predicted' out=pEcHS noprint;
run;
data HSEcOut;
merge EcolMerg pEcHS;
run;
proc mixed data=HSEcOut covtest cl;
J. L. Wilcox et al. Supplementary material 4
by name;
class slide name treat;
model _RESID_= treat;
random slide;
lsmeans treat;
make 'diffs' out=EcDifNam noprint;
run;
/* SAS 6.12 Code for Buchnera(Sg)/E. coli MG1655 orthologs only: This program
conducts analysis on Buchnera(Sg) "Pared" ortholog dataset */
data BuchHeat;
infile 'macintosh hd:HSData.prn';
input Slide $ Number $ Name $ Dye $ Treat $ Med;
logMed= log2(Med);
run;
/* Uses file of shared orthologous genes and associated info from respective arrays to
normalize for gene length effect and array effects ONLY; Name=Gene name in Buchnera
*/
data Detail;
infile 'macintosh hd:ParedEcDetail.prn';
input Name $ EcName $ Number $ Length;
run;
proc sort data=BuchHeat;
by Name;
proc sort data=Detail;
by Name;
data BuchPare;
merge BuchHeat Detail;
by Name;
run;
proc mixed data=BuchPare covtest cl;
class Slide Dye Treat;
model logMed = Treat Dye Length / p;
random Slide Slide*Dye;
lsmeans Treat / diff cl;
make 'predicted' out=PBuchPar noprint;
run;
data PareBOut;
merge BuchPare PBuchPar;
run;
proc mixed data=PareBOut covtest cl;
by name;
class slide name dye treat number;
model _RESID_ = treat;
random slide slide*dye slide*number;
lsmeans treat;
J. L. Wilcox et al. Supplementary material 5
make 'diffs' out=PareDifB noprint;
run;
/* Code for E. coli MG1655 "Pared" Analysis */
data EcolRean;
infile 'macintosh hd:EcoliRean.prn';
input Slide $ Name $ Number $ Treat $ Med;
logMed=log2(Med);
run;
/* File of shared orthologous genes and associated info from respective arrays; Gene=
Gene name in E. coli MG1655; Number is BNumber */
data Detail;
infile 'macintosh hd:ParedEcDetail.prn';
input BuchGene $ Gene $ Number $ Length;
run;
proc sort data=EcolRean;
by Number;
proc sort data=Detail;
by Number;
data EcolPare;
merge EcolRean Detail;
by Number;
run;
proc sort data=EcolPare;
by name;
run;
proc mixed data=EcolPare covtest cl;
class Slide Treat;
model logMed= Treat Length / p;
random Slide Slide*Treat;
lsmeans Treat / diff cl;
make 'predicted' out= PEcolPar noprint;
run;
data PareEOut;
merge EcolPare PEcolPar;
run;
proc mixed data= PareEOut covtest cl;
by name;
class slide name treat;
model _RESID_= treat / p;
random slide;
lsmeans treat / diff cl;
make 'diffs' out=PareDifE noprint;
run;
Download