ArrayExpress/build/0000755000175100017510000000000014614325040015320 5ustar00biocbuildbiocbuildArrayExpress/build/vignette.rds0000644000175100017510000000041314614325040017655 0ustar00biocbuildbiocbuild}Qj0 u]+ FZîn Y۾$%`'Yz'rL0PZP+ Depends: R (>= 2.9.0), Biobase (>= 2.4.0) Imports: oligo, limma, httr, utils, jsonlite, rlang, tools, methods Description: Access the ArrayExpress Collection at EMBL-EBI Biostudies and build Bioconductor data structures: ExpressionSet, AffyBatch, NChannelSet. License: Artistic-2.0 biocViews: Microarray, DataImport, OneChannel, TwoChannel NeedsCompilation: no Suggests: affy git_url: https://git.bioconductor.org/packages/ArrayExpress git_branch: RELEASE_3_19 git_last_commit: d95a2bf git_last_commit_date: 2024-04-30 Repository: Bioconductor 3.19 Date/Publication: 2024-04-30 Packaged: 2024-05-01 02:34:09 UTC; biocbuild ArrayExpress/inst/0000755000175100017510000000000014614325040015176 5ustar00biocbuildbiocbuildArrayExpress/inst/CITATION0000644000175100017510000000141314614231214016331 0ustar00biocbuildbiocbuildcitEntry(entry="article", title = "Importing ArrayExpress datasets into R/Bioconductor", author = "Audrey Kauffmann and Tim F. Rayner and Helen Parkinson and Misha Kapushesky and Margus Lukk and Alvis Brazma and Wolfgang Huber", journal = "Bioinformatics", year = "2009", volume = "25", number = "16", pages ="2092--4", textVersion = paste("Kauffmann, A., Rayner, T.F., Parkinson, H., Kapushesky, M., Lukk, M., Brazma, A., Huber, W. (2009)", "Importing ArrayExpress datasets into R/Bioconductor.", "Bioinformatics, 25(16):2092-4.") ) citFooter("This free open-source software implements academic research by the authors and co-workers. If you use it, please support the project by citing the appropriate journal articles.") ArrayExpress/inst/doc/0000755000175100017510000000000014614325040015743 5ustar00biocbuildbiocbuildArrayExpress/inst/doc/ArrayExpress.pdf0000644000175100017510000026446514614325040021107 0ustar00biocbuildbiocbuild%PDF-1.5 % 1 0 obj << /Length 319 >> stream concordance:ArrayExpress.tex:ArrayExpress.Rnw:1 19 1 1 0 22 1 1 2 1 0 1 1 3 0 1 2 33 1 1 2 10 0 1 2 10 1 1 2 4 0 1 2 3 1 1 6 8 0 1 2 7 1 1 2 4 0 1 2 21 1 1 2 10 0 1 2 14 1 1 2 1 0 1 1 9 0 1 2 9 1 1 2 7 0 1 2 9 1 1 2 4 0 1 2 1 1 1 2 1 0 1 1 3 0 1 2 1 1 1 2 4 0 1 2 5 1 1 6 8 0 1 2 1 1 1 2 1 0 9 1 1 4 3 0 3 1 3 0 1 2 3 1 endstream endobj 4 0 obj << /Length 2281 /Filter /FlateDecode >> stream xڅXK8WriHVV9I'ӳUL_v@Kt=J @Yr4)A<>z͇8[[_Iz>(4_Y !VAWn^gTwq0mM1ɨJNB?Oa ?Fd~tn(Zw!a-P˦A)(!M/7? i"өI c?S{&ܦ~MI% z0[k ۆ5ouC{xSh,|3KEii;&ӰtA>~ZC˽MW}Z*&FUW%WGTأk({k{9nЈRq)TiHh ((ZSʦPD?H+O(Svå;t[>F 9Vv}%7}gSj6)кlM$#ɴ Q9!84aZq{p IKU,FNm]CF.k#s` , ocqx>QQ,#PA aKXd5>U #޲ӝ^ cߟys> ^/oc x.8[ԛ8)&Z.`hE~*bNp?I}|l#  CU8 9$[BR$s)Ukݻ=`"NaytvEkDoY ͒jJbA+CV _*п[1Ds-`  v.CXTbߜYtAq(ۂcCĞ_|;Ym:uPŴb7Tm/aVYa7D2e\Ug~9aDՐrUwqL ,fB0DD"x^rd3˅UV&!X qMd_h N//t.IjÖ?-8`,R'5nL'H+$M~oX *8_u?\`9N>U!ʸu''+Q67 +X :@XišՕ/x4\ ,  0}x yq`I瘲CtfqwRԥw^"{ B64:E}kk-2Y롂@WU24rO7:A4Z*rO%GxiCFvQi=UX#P6LׂI7y㍬&{ph-E|\~v&Y2o4tlU]lHu'Y({Y٨Hs 4OH[1ha}V]ągƕK~ 44яQKη.G]-DM=~QMw|xEݩQC6ZǁFf,"HJ A_-:yҪgK3ݜ@ [lK&Q8Ҹ?xiv]Ө~N=2Pbqp>cP7H7)|F >د8߼k>r>N#* .gLǯYsuNu gx8_{8Ƚ'iXω@D!ιC"/jGIlK|4fLB$}FIM.ŭdJwpP[/*Vqj>+G`2oqZb lζz~Mdf^3{[Ѷb, ,qA8dj8 ֺK8zl[*T.`C{EWmC2qO$pm:;^wv}pnG%Pg2$5~ &öcglAAdĩ K_d endstream endobj 13 0 obj << /Length 2582 /Filter /FlateDecode >> stream xڭYs۸“/Igɹǝ,(R9X|r/~a/dW\Uʮ Y$wWzcT7zHemYSmK]e2Kit4R&~ Ssqﳲ}~/ɠOUQCxG *GFcU=P(v50f,,ZNFuMk.=uĈEp@!( ҩR) \_5䀞ڙhfW0d~$ h޴?kGKHS:2EZ!<]uďCaW^oB`e2ImBFdqXK0̶ 8uDg5U\~hhvjW4*jufn)bR;બl`4\n@&[5N|{{;_=vvKy4# 6gu66$ Z0o7I2`>w n N40J UsF+4}-f]NH-kveNvvH >:BSKL{[3_I pE;PRc)t8P*J̇4CY#M²DCX!鄁F9AG[mQigg  ;5/%rAI:x8ێ$[P,SqP#؆I-ᖖD%4&4㬍3eIe5Gci=kJh65xr? `l"lY6N6RgAdd7_㩴dӺ?F[c|)a\ /0N.s^12pn(v餅)c:VCگ)vw5v19/%djvZȈNli(2b2{[4(9^nCO {`>uXF |ck;+ۚȦդ؉SpáhZ`S`ʩj}:PW/EX}0K5I0FЀ=qM{0권zJ7<өOMuB;7޳Fw$ 2$lP n{3`9sH2|RYumgDS.wۋl}0ϰJ X3BG _ܿ endstream endobj 17 0 obj << /Length 2545 /Filter /FlateDecode >> stream xYYo6~_aK,QWk]ؓ 0Iۭԫc<[uYK,Ūb*77*uXW+ 4 ^]=W:'Sm>R0% +'tQvRnw*M13݅r~*r ~cm9]Nw2e|]QLye"s:/M@suW$We7;UeGz`'+EW(4v'= ĩ6 вiX0YcKϗ0$]QWY%-ۦ/w/iەa{kk r}"%y [s 8&o9]B4t8-7V!mwy5^窬p "ob5`CZ x}ýy.*18Rc}OSq?86QZWHDl#Ϣ!-0th0Dk 5|Mcs#kM{ϦZե62^Bn2T'r.t P#-@[Ǻ5܇n}CnKt`ECh!R@$t/Lsh_RhL3j@o1}۱Qwiܾa:A2<݉[mb=DA vfLvŖ_zi ΆuE$(8tf'`>lAb3|tP僂AUS$ W%H[4^9ԅq 3 <u_xГ ˵Џ}Y~FC+[^?V༕*IDY67p}] @|6/~T ^*:|K'>Y6fp}wڔoW,Z?~G&N'7@ZS$'apYgNJjg^`BSSZac m^3FBHW_EF?sRa45k 0XՁn6vz< C ?3kh qhrG#h"p>˗E1Y}߅%Dn!ssiI2(S7HQ 8UXA.~H>uGgQmi'YHso@Y)( ,} 6`e▋ 1T0e*x$euٟtA%5> -nHdnrRrn bE1NdU'bpsyR}$h?ľX޲|rYKmHrkVˆű炅$.`IN+RF瞱fcAHrwݔy˽Æ7-6boEKpw2}X6woϵ,`c/{j)YKOMW5 @>4<~qYT<ldtTL1:&,Nr:YBiA.nBeTA͗[今챢 ZgLmL+ T&4ڗڂ ދˬ^A"LAE m; =/JlCqyVa]2-Sq_\Aۺo_ Vj)z k,)gd(*["5I|QW=@KQ Mw(:UL"x}v_? >` HgW~8@lSˊO[3/?eM%ItX2=c4jgHnI9Qy̥%ECnC1_>T,HYy(,PuIύ*ϧ";v"Lfڡv+ɄxD `I2hRPMR $HG/J}|c{|_0' endstream endobj 20 0 obj << /Length 2110 /Filter /FlateDecode >> stream xڝXms۸_PS&ig|9:&uܹ"! 5[%Sq|_D,,$CHvq(E~&g/< +y'5$}FVi;W(?U,W8-vj+v (e͗!Չ]۔Bk0jg\KCߙ5.μ[ i-HP+@l C0ڨ`w<) ~cEV*ML$ 9D"1,M3$ XQt0dǵXцRP-ɄyĘKe:.TkC:n:Y~bÌ%h܏Ykgq5ȄpCbC)ۍw- vqq'Lf`,_cp%[QvMwwN-LlO0 )my?HUimZNf-)Iz)P mjYbHHFY|rYW*GsHp(bh@r6_s+IO0f  Xzxwu5-#ڟ[0k9 r~S6$׈Z8A~ԓʢO# @czSGč?=AKMXz`~cr?឴E4i1藈wծlSVū՘#*NY Y?MM=u*_Yg%hʭϊl~Nh3cr}>F24T]+"B~~~n˺baU12i[_P-uU:cösI; "=ugQzdsWy(|5r|NɺYcZl3%D;FP|?Q/?e1[zX<" ~9}t4p Tki^M}3aq1sfіz7ks)07 Rg~12ˆPŹ[K3Z+,BK 993E5OJl,[)~",3x ]rIA9xسG؅8$Fk;;4,61t>Uu dž˘PB_5 ӫ_ֲt"?Nc{8 x݉LupZiM/y>Cc<*  0" LDw}% e lOi s*)RP^\XҪT&FYR75TGV%h'IqXj%}͏v\f]Ѫ;*WAU9 4A1[Yr8l]X61X,` Sd~+P^JخHLneO 74 P8։ClfZ=&b$Φ!ͧl>Yz`GxVިƵx)L"^x_cEU a0'L NBΗ,MNJךDږR\.в{3I,5M"m qF5pjxg݉Nnm@|e#m]͂0P^M%Ï fUQ 43l zhB+AN2i<_J;;T\M„D k}, xީg'h_;^>5DZߔ,>nx$nz 8n_] 21) TA]h8fq9 endstream endobj 23 0 obj << /Length 1039 /Filter /FlateDecode >> stream xڕVo6~_!ejl9փ4kb@,trȒFRqa{!Gtܸ}y}xGj}vͼ<[W^NtyK69-4ÆCɈly{'E[7t BTR% o#QxR>˵ ֿzċ$ΓKgeVQ!8' k6z&C9O=߀] @;H@67ބQPTwb!g/;M :,wOk䆷}xbbPZXŤ]1yTFGRk݌Kc 4-Lx$na>ͫp^Tѳ|7w޳ZyYm>?4 &! "$uR +&/pE)o]m5 :^M߽pp(vFRӴ;ai&Ts &5;C/B;q'Zit1uwТ.LD˴T2$xNO8< A)̲ڊ:tnd؅2l3 3n.SmlF 6 ^Vՠ́WՈ­A8ulƝT`^J@r/,^d)+N p endstream endobj 30 0 obj << /Length1 1612 /Length2 15009 /Length3 0 /Length 15846 /Filter /FlateDecode >> stream xڭeT^%;=>www =ث֬Y5k=6%)Pޅ3uuVpgTZ9()Ŝ&. {q @ h1GO' FCU,L=Ng=hzp,@@FJQ :]MmAfyH pp{0s7S3_,g h atp:ف@K'{=pql]!n/BN#);889]*K?Af/_^3O.S hk7_0G'пh:- hidn tv WzGG[vWrqZ0!i7%Apn?}n@5柙K`@`Vtp@2 "?qS= -jkhbw}0y?w+dZq1 {˿0ry͕A.fV ۿ]d U_0O dfcO9ڛ'":(ީR_bCT2s&ae?d L\@%?`$5{ \נ@3E3.58zݬU]ۼoաL |- tض]i˟=hTmĂgZ1W[P\,;*Eo0DmNpWOn_̾c6Q%?=R t@Sx;כ}@qV@24\ 4zC Fqƥ̘Qw)Uf3dQvf`tOITie ͐d)ȵ~'Qͱg(ֽŵLLকLڌܵ56ǿ{T23MNiSX2.U۸ӕ@;\)LN/hb; .3@`rMoeڤ}54" N81RȞ_#t: /3$EjPùʻm)]LTL~F2Hѥ4幘L^1%\:c[Ə#<3-z!]}jYXtzhEkMb΁ܓ.\~dM-ƌǺ$ uaү +XFXG1_oLeL 'ͺRHEfY:Cx 0;{RoE Ǽeem]!)І G]A3A"ʻHFqZzT%̨D(4Orrꋮ&IS"ޤ7DeKh&ӽx_[ypɆVY{dau@qa&hRN`Emg WL>v=T#K}*nrD~zogpvmXna5с3Ǥ6vDB8O%(B"< (QV.P7aC:7X%1$fOiZ>Tal 2 ;BT7OW}F??ߨ~x2<0GEWLcKQ:J #?+bLJqJ+AMs[隅U6U=#jkAcL~Q&1tcj,^4RjQ>j@CT &6IQ@_w+@0mW+!0gh%Vp3lamZY L#C>$.E;d6\ .\(@e':xn+qPdDڞdyUs@1-(Ha`=2|r\wd+&5 RՙNuT "_YYKҳ7763\R3,x-#)8jk`0C$C*/2Z9)'s}v1R;# fe^t?wʾe v PB 7]6b׻7C.3N]ε>IbmƐ@vA;ME"/0pkhpTQaŭ)_|{KZh-ЧgƵ |u/yet}Ip&{ZG3O(4Ip&VRΧG VtcHBeR!"`矵^@y%`*6%m}QZ6'@gKQ$hF!R2+\ŭ1 =';ma'Rol=+nA.j+9xT\Og>Il1p*g̙9=L~Kyd{m<,^+Y$Npƞ}a.2`!!#^!;>,nx'ZDBǓ" ZU˝Wn>kşm˰ɨg Q6̼*Q_9w͡[vy73+E2kBJYA ʂkFqgvpnPGK41" | n i3<?c:y3OO/Sr=1-dPj\o[wJdtar-Z?G8'."c&"Ҽ؟5 CxP%rIT727$ux_q[ivsx,fNߜcމjVR8X4D%k{QQq5;~$B?Ai$qaތB;s !٠'l>R9J^S(Zm@5i&F MlmO'QW 1W-EfYJG ; _Yq6I8pdǛbQxK-V^o,-[B'7@fTC%onh`Лn&Kq##zZLQ&:k1w׭!q)|{%Iλ3wR$PH+4A %FnOR*NW9,]{$x_P涊U6i\ܼ"l]*k\y*$>KeċOI4Z7u"t~kL,K-|RצLȊrz ~0ts0SQ:TO\qg*V80P4棤UE=XvžUHD+ϰ:6rR`BDQ['2gzG؊dܡ[2C/M4^u)#+ohS $]jy?7{KǞ,L"#GՈ:zZ;Sϸ7Ҝ1G q ~i:tWz#3d0WG ʐՖO[碚=+~\5TnI7͏\lg֢ !4.TJ`>v0md[I e/˜ ;8oay)=)k&ᄪt6>+ J7LX~l _!ts|- c>&(3ɭWf$x!_CF%tPA7gXxQRKSBR٠v EA}$O̹ [Ԡ*)O5rfhsMOlw~yᔯVI_SUÄh^7U[ ~r2oɞ01 )jb\KMEdž !}vY'Lp }ϧiSZ43Nt%LȐ/v̾,~ࢠސ}mHu!vPyFmޯFII5T?OnBO4!ou >9+ H~@;ׯtL%>~V&8DLDC_7H 3&oSg`<]u!HgvcSC|!S׿a{]`c*U` 2R"^ܚkU2RJW}'0pƺX1D=*TvO+EퟞE;%#Ӈ-**PSM2WpbWțEE)ut`EVS%*g+ K <6׼Ek`Pƀɱɇp!%:09x](qyG\%.)绎X/KxoV黵C?9S|"5J9ZA9ӤJd0ƨSF7\"JjV}k%U4*S|miqr9z!zv(_%Ѓ@{+>ej`{fPb{Ovgu2H\vQ̘F(g:g(0<{ӉO"$*)\6ԂH 2qTHPuMیa,=Px5V[`DjEoTS #Fo;3b X߷^ME셢%R!@ƀ(crs]5xIFЁHfz""Ў\\ ׳oBؗrlIo LVL2QH%ٖN-Է^7BZ4Cn.T/z2e CqYfn4 P-p&+]SVyc%EfHy:LfgI7ޒǕ׶77\kFoC_\E&DO\O>K@yj@*ȂE5Ny5_jɭazPjD [s<Fʩ.H3+yM"!d,{*ϤgB<[5lg`IVko >0C-,TR&:WG7%qP4e,cE\5zX%Й&x KyUx"GPZ6ݏ%gDOᒸ5׺XkS |6@kȝ|&%O8 N2_?:䶋骏DyGr/}˅ bH~eY"bp"BB2y&ƙצTp[x`'c| HM̈́Fse)ĮXo28Kmlr5)L#yKSCHo7|^Eju_kfbگ)b πU:/f,ؒYkek/NHEz,s1TUBQsϚm,SaGm!E5ótt;e޵2xQ3ٚs8$hcs%kul/Ru\kD2M_~Kћ1"UM^ވaM8LBOvUP}B[b.һz+2N;-,G,d^;pA+G,DsXC \<{oKTMJLjE.oPeVth3(.8%Eq|8Qtפ)ͰdWQ,]H ڠ4oAbCK6L lKV)}\~,OAz{"Rqu²:_`+\{K8"B!;D5B_r,$SĦדM$òK-5Xe?NlU'~)3ʻO!P:mx&gvj!aDYUek@U>DfC ޯg|.u/P;N:W%<HmNZAV>~vs0,Ss:8xx'"ncy݆ wWG*3^6)6Y7K?ܣ QZ.4o+5)'o"8?SAv :Aġ?ŰCNk۠34_w2tۇ%VP>[J䥾aMMg0{gGP<0#S'sǯDpf ܲZ9f^&T !d^~O6RXh3Ɨ@PIawiÇ#׻-WGjJ,"5},J]'#2P U*N&mOXwUwmIi|LUgVxq{p= /z?ehYVΙBB~JI0Nf mquR;RHMͭmX_u]y١5s qh&iuZ9`.6d'ˠAN|Y.,lvЖ64*7ʗ-&/gq$t]B}vO{%FӃZZ7#"'a B0 @ؗPs?"]sZr]ȿ30Uxd i 2x1;PS,'^åabex}IN'!0}u*AqŵyۿchkI VSEpCLΰ"LNiw}yĂk*p|*_Õ$ 6XB+ pmK|NL72!)M,]>z3|<-ؾ d1Y/ŵ2 їN`Oæf+;i (Od|Tٿzjt@SU]Swp\ll ?4UKz'66:Mҍ]/tʗHsQȬlpCBVƛT`qr+9PAcYq'u_ɃfϠ;z02N!/]Z.944 RZɴ_AxbF(jD:6]c[nˮ;8yxu&2Q-{)U Wbu`+VpRXRm,T$ѝsg``.?b>Y{:w <}iiLv#b+Y)%8WEuNP[k-{4_}+K4j ="RZ);g\Ґ;g\>(FTGrakIjłV+8tYYhY&I;e<{SPTX!T'{2C`Lp+ܒ`E l+7yW[5=Rv Mj;珞&\|daDĕt:X'Z^Qw':Х9%z2tLȪ]ѳRb9Vn)ZC|0AՖYAٚȷ& E@z@|!u|i?PrwI<#H`ccvYAT㝺L"ȚuGQV,.v W| )A=sf!Xa-)#BK~QS fHϩ+0+pOVBT׉$Jm߱,d7QvEv-sHJ YN4{0)d/3k?;"$1A_R~.McLf`6)W4{g|3`z ~~/#m}d:XBLP ukC|JȆ4{1E2dJ̩3_AA`DIH T#>5c9"XM$⍡A1;Ba\[V$D[&.әLvMփQBMhM95JM‚r'Zׄk&;.ڞV=.$~/P&xeMa,/dwIp9o`uI0] wd.zD+veN= _m~^qԠ g(:T="kƻdPo @7>t7+{QLUq RbCl*R,4m/ib9c%,F3sT|eq-6A{3Zjҏr5ĹR1)UFϏU[Ǽz,\p).339.Ua2LLW@{ۅc5ANj 5EI!Cn7Tg&0ky[+ƞmp*M̩Ԩ$` U TC}\!wq=/MUVaRppl;tW鏴oT:⯖i=׵8 i&أ lTpp+:T徆, ?e ~Nie[)?/ ݕXFpp w-)Yit"d(?vԈr<~d^Yߨ<QIV18hL.lC{ѱ^k=S.߾+Z}0*:nK3\7IޥrE&=-w #La NE&_O/Ⱥ6SGy3ܘv)8RZeT*Mذ)؀Rڪ7@N6z䤾ٚQuCPLW>AhvV`QCc<ϑ(Qg[&<[b68׿qHZFj;7hl,:j4UT'WRi{j9GfgvqE0[mHi; q>]b6KVz]Vo$9++/榿JV,j>cvԧj܁ocXaT3t%hSh(Ԩ8fYLߖ"_CKDOsЊ_ǹ+4y/y[@ğz#Ayr\f)(ux1L\pF4ۡ7Z+,Iy50s]>o:\^#5ҧKn8a},?Na #^7<<ǹĎDDY_Nf ۸hW6T;ǵuҩaq̸~x5Et?GU|9:# y>r=-'kkE3Fs|Q}7L• !NZ9oIC,\OdL#"?z:֣YQ,\Axq<3|fs%?ජe>OQqE75CagYډ4dw\ -׺%IӄC܁؃BX7=ٟ8di0H$[ VA#*eg>d!vEH.gu}Iƒ{" wj}KqA=AOR?mO}q)۩oN f[8>\.[2)LiHŎGG7w R/0\@T=,t๘$4>kԧQN ёkW (w JҚNL3*i,/$|́D:wHݛ7K{MZ6L^4Ũ OwgFDS\[ՈC[HPʤc^ÐusËGCT # ,A[&2 `D2FC5P"V`Q'bH Ƚ/ Δ0 WUX]{T&?'S9:;;o*lfCPj|'mriv}P@ ]4BJQ,NVM92Yλ+@I>B`e:Le:Cl TI,4Q*- d..XScrk4$ϑ l;]fw7hy ::NZRl*Kyp`t}M:cKMӢ5 ްZ h֧/FŪ{,U` !"]gGi&H%= 6`4#vdc3ZܡՊJ93:8C)3QQǾCTS??qT<1/K̯ͥ c̙@(ݮ2~<&gK <7౐'x䦝) -(e6 FbYlF7^t(v>f)Rf[z.H |d2n;ƈ#kG*EڿqF̉DY`/\etEߙ~P;Y'ЫyˉMBj<`a/ʹs7bӀ OsuHk`uН5߷9[uf[? \^m xaj#DRwN2~owGTy +5T]aS6!eizgW*JD)K)_XKo|P{6&R`X@T#;tgZJX+/N .+3^LfO#ޫ6.z.+`HI{-EYG}cpiŏLx>l"JB1TJQ D}{qUVֱg^l"}`?~.U v ]}dSTUw|VOKˈ}!zS?do9JAt3$;3hEg ϴdMcd:)* sl 2x[/ h)gv4""2p7N[vFvN@jYf)A'-vOM[0{ǻ`xAPii~-CɜiHLEQWtPa0;ŕm$:n,:هW5OK::m\l7>nRG%R܌h ۵ndvG׉lwo $Wmd8jthB.a=& 7!XlQ9<_ϪuuiG{iז؜0RΡ%y3s7lI"pNH\jjB#βűO@ D[Gf<.RlY-\.+3P_~2qc5  DaBFh_Ok8Q<_pG7p  "БDur xY t؜;R|QvApVV1E|?UՔ|TkŇI=17¨!#ɛKj@u+gUмcD "Kie^QH4%˶bbw u!s-NmH"\gHP WHa.E W Dc_@h&Xcil6&k\YD/ # =8͏ 9j5*Rn|ASYO7u4&|9)#&-4U!T) zTm={2bBin\7 :%,+ɕI]tK|`%:N66mC¢%hֆۍ2ۏ/'ۤS?5eazbVJOW4wX&N]G{'l{I.Q;FTvʗTtc'pHƃ?bF5UyZeqc@?T|(ZXd^k:gln_$3ޚKor⿀ӂGڽAO_Q>ۏ6iIrUzz$N 4 r6U` ӢUAށgK#TYӞFu"sWTBx2/iz31G8<ც'i.FI|^#O .gCԬ5 Ah endstream endobj 32 0 obj << /Length1 1630 /Length2 14432 /Length3 0 /Length 15282 /Filter /FlateDecode >> stream xڭctm-umTl۶mbVǶmvav:f_?{g:gZsaQdD*tB@q{;:&zFn,2U`!#qXۉ@S( `!;x:Y[(Ք5hhh ?Ζvn@{[_@ bY" ZRJ y5ddPtۊ @h ;l}ۙZӚ3_.!ghb7 at8l->,NFv.gb3q5v3d/L7t0r'_`oY9\.2L-l[F6` 1abonsK;Eo`n@ 򟝡['h o7%Ne9$D7qFK>wjqWy#ۿ Kgl5_!;j]ﰔߡٙfKgqKeW3:Xj bdo?"ڙTehO7<nhٛaa{7; db?d \,=:L37gsT\L.M\joq@_&c&'͘2Wqs<ʃ{ Z jno`r=KJnL̠YѦ+{je,~膠svl$3^ ^J"Rs6D[@V9bcJCj exPlHk{B R@5]>ōWչ{$0\9SUMv@DOO xV ~Z$UٳFvE3:0N> 类\맳%L3Σ 5YwA3\!WΙ6qf&å#R:5$S]ܸa l 2<+4Ρj -a-퀀"VSShX$aAּՔ`V|Y[5+rCoů#V ZL"Vm0ԄWu%8Sn*|+qRFש y,ݲ4~hag&H+5$wl8&վ{%s/z.B ҅7%vʪq3Nq̌dMEwjcdXG`OrI1 KKrS:f=0,jBݣ~E2RA\<wm\{Y`+XjaNV o;Q1a4I|b=2NJ5MnԷeaZ^= PK c fhP^̛ŋj9qK:+DKwQzbSbuX3b\``X8eTeG5F"/QqFVӦA3!$p '`$1R-{;a!MZ$>mܟX!)OEiM( x"wCΆ'O%|x̪өKUBD$ڠNS(y1"iUxz}OB3iؙ k#EX=n"Hi+ۖ='+ty|c ?\6Hy Ӟ|O`hAYۃ܇m:1d|EWQ3hvBDO `iu@46p^fէE<쟡][]a*"6@>>ocg5PR8j:Q7Ղv}439r^RHYsb2t p=KjI46a* T?TBGQ'SH2Nu6R1da.;BW0\*f^] KM!bBLܛ?˔_ܓp-#y`74b4p*G ;rrʹ_Bj1M #)͂g~9yųz]" oZ{Ɔ{@JMD#nc|p0V)b O{_$ .|VdU:c9qeRbiEuZs xc6sx4L,RԽNv 9>?#$J̛0~v1V/=Ќ`y49l(;Og9BLnr Ưڎ_rMluuV rK6FWj>ђ \4Cj#gPćƯ>=NG}h\2OьOD! YwQr1Z?@޲bH{]R$ [ J;!XJvl-kWq,+9 [ѣ4DBO Ɖ)ZfHy";5:NoY~@׌snC _9] 9ZG$ cb̑}v/kacM-)!ScuʊDCcFABgafE(!,{b[D2f8Oq v8$BY0B)Hv <rQ(q5`BZ].&=/#}oGcKw@'GXS˭$zWؗU:TJâXMk oq>&+%r|||І> aD̄/J%J[؋pBg=%U ; Q{?72GwC Ct/hM >.7s%CUH77aUx«isA}tLkPcE﻽3Y!aϗv.QcyJZl Iɋ'GxP`$ꑦO6F9%eSv/z7T/ې<}A->y`fQޡzBڠ.Ű]Bj2t!{Nh[;v&#2GR?~gY#Rge_,N@)fgj[CC.!'kG7AWkTMzziN/?]phӂo4&!?*8츲LAo9jWm 8 FI:O2!B<VybO Lyo*ZS8޶6t:׬`)y q^9:j1C7 iY!2ƓSvύEbriM&c*| |pJJ^yNj/U܅<9VaJG+W!t$3c7NY:\wIc$鶃%4MKo) |7)رra L U.nja\͕&y58byAI]vz$%+\WfII4K~wV*9LҼE46&+3EQ"4z}RƂЀV Is)4w_UR%Y?[c\o5a*K,p팙{$JU1$ PwAa9 75kAp$u~mR_|(|"Lj 68@ɈWRϭxH( BEv:bjzz|T\@^\ed~O?$"NGZ:p }ؖ{yΟSzA?v:OGuT.jZW~}I!_ .|nty\ʭ`)#(`x4ug48ƾ s:\:zCdž(T9r2)$3gQXJ4+q *^-xg)ƇhXOP%\]o ǩA5KJ5ar|.bc&ѪO na\N()U4g=v##َP{|n wE ΀lLϰ~1od]LՏuLODZ„7JTλܮ7a@Rp-*h5"h]bEB=}.^uP0:襅ye{nCl gw+G|XD1 ;RH= ?VA+BD)%5IC8u9$G_DgN4Pdm[c^e5麺(tn_![ÂoxU}ѠW@=K>jVu/ Q1K;!~C> ڪeRpw)zf\Rv&T]ejyClk2~ỶKfDApK(ѣ߽"}^@;q3DF*;ǒIv@$IN^@LFZY,f,׳Icf.qaJs"9QkڴcĤ-mAM{1O}뱫N#@[|t -~8OEԶ]5˃PVDϣvX/ %/4de.hVkaY57vXs.1Ҿ7#\Kߒ3g51V8xtn?gntBV] U1agHl3 'Xܵ: "A^ri@Ѱ 0>AMV}Zn t09ޯv!BmiػJv  8 5vd^AUB]N :W[_G80Գ"N>s $3m֣%>='ߒRDHTMѵ+ c'L!rrrjO >ʍ4BQy" ,s[>!^+ if=bآk\ɟ`= $kܖop[p26-)0ȅL;B'N| BP4 ~p܈qN܌/ k0Nxi!?;+oSB c씐[p19'缛]ܝ PU3|A)ˉ |-5@sD\Y.Bo!kmuʖz1Lc^5׽g(&֧jFn nb\{KOT_3sm Db7]*RΝmrPI&u&@fРPs F>!4UI[-osn7fNi8l47 vniUs,'Ryc9l E@oB2wpZݑJp1@ԳRܽ&f)٬Ps9}뗙sf7I:v"&Be~ ]Okk.gcr,sk`.<0Ӣ-LLs7jYO ~2ZG P5=űFz|{Q1o vh.XVPe_꼧 ÚÅQݼ4w w|DpV^ d7 pQCM$ds1rXϭ`pT-rћ\]PP<B.+ΖZ"ox_S#HgTCW U̜TSZ2<;y|5H)| Gq3T@.]EDA<ꦆ0ORT= Q]YƶUDm4AnYNYf==v7(/QX'uHHݽ2E‚6c9ѓx-t AxJuSDYnWé^Dj" R2gSMM#Jev?lPSak^> UH`rߝ=kO!7 Fvᛮ[B7`R|EȦ͌ sutuN0{d_ha-(edqkDd۟F} y3I,Jm*_~l 2<\ՍgJ0pM|GyaK"'=φRijSDQ6  X$_cR%⛥,پhB*~/7%6h'Q~$]+I5lԬjlB.~%\oXJ/&O1ı~6/&xcR$u%xgCpX$v%Qp4OXOn`< <|Uq}Ҿ<@Y+6q]Lv7@v)rI$iqQ+X)N!>9CUE.TQ0^YNuz>Br PZ\Ǹq;HX N!J4Kuy#I}x=L0"7m}ҠeSB_#ė1 ͻ Eq})"`wMHN zo{&[UO?\R/.(|ˈsS;;iQ̚m&^23_J]1ex +2Ϲ& }RhEBȰze\y eFx_,tҺgɣ:8Fpk UJ28WV3˓*jR;ح/ 0u8b,n;?uBŪq&3+Aklܼ *" -ub!1 t1foC- o.{#k>g"ӓOP؝bf{9CHHo;,6LڮlC *>GV7!1>J[kqBuƃ{&Uzv"w-Ӯxa/Tp~;7Zi;۱hxᣫRm=iJDN:_BFI6JmE3^=5~=p 7M?elas>Ϗ&E9i9*F-RvMux!i$Kht)B7MZpoIضJΗDEty#1CV2u(NxrH'1pjCgb%՟nck(~zͻ[)ӒK֗\[Od֐z"ӳAzHl )A3Swm#&Ucz ͦw ?r|P -;,dpBEgI2XwF/x;ҞZ\ɢc'SY<0NY̬Kicw&6]~~_ 1gv㍀JQ7ZֵFCߝ#|{iɣ_Q7UW =IzglW gn>R6,s:z`*[+\q\vHzs}TԱN\|mo^`sf\}u V |}ܞr Nֵq[2&sՁ1Y;4D. 5 ?GLny ,aoZ?c_?չ浼_ 2EPFuqpRLnZՙӛ,AB*"iE>*{Ks\}nƙ+]&qwfAG8(VndAS(,ǿ3k|nCh,Gw ,FEKT={@!v9(Z?0 Fj B8?xOqFQmK;'cF)ϙ-gs ӹ $+NT7jQ>[ǤѸ*-^DFLJ,':a ?p(6E>ݾ+{.@ZMwEr!P*;ڻ"}@&@LF)!)2Ztz'@=tD mqCvM^ɽ0Sc1?_OZ%bY_U#Q`*aܣ_ܛp#+6V5Mk]j wҀd bAt7V$j".&`2Lqdm M';jx{ Rj#jUA"\DJ 2I1SR[jC׏~1*ra8aL坮bnȗt emCMnCP c5O@YW)Q7GqgM-S=̈0Qk0NCmE0O)h5 '#6կF|,j丰ŖlTr4aIf:s3L頭بRq:٘. dS %f̳ojw ü: u]ư]/Wߺy[VEg!e-H5jV8zjNJQr2|WUt#`ڀVN&̕⟦!D*s1> endstream endobj 34 0 obj << /Length1 1626 /Length2 12495 /Length3 0 /Length 13323 /Filter /FlateDecode >> stream xڭxeP].d܂Cp6w ]w\/w̙:wcU~UUԙD`Ss) 3+@ dgS*0)Aw95 l/ab6$6^^^$j8 diTӦgd/_&Sj=A7s[{9`5+*I褕4N&WS[@dfnlN;lq큠Jsf~% 08;=R}8;ف g{\+/r ߀v`*`gg3' =?pX--`3׿J[]bw{9;ؚx~3_>-Mac՝ /՛88z ?1\m-s#5+`?@W̝n_3C-X.)t3H_zw%ZV}cKg bb9?Њmu1yo;-̬@@_5N {w^n)tV 3ߩ<\6Ty OwlQ"ˆ=LlܟLlw/7@l:+8<zu]<:[I{30Qw1O R:9g iellR;4!=PҠQͿ[a\8seOaϖ;,ؗM;~ a jvgnVjp$Nwnqnоh-8:I}wK;0:<4} ۻ1+"5 #$OcWG7QWr+ E L~* 5շ n%T]k~I;´ ,@4e>j4"MrqTֶEX`GB0{pƍz s%Oԙ~Rz2؏2= =ZA7[-)@$ll_r%AçǻEw9b:'r@?[mʇ?RtKQT={ smYɴ&m)yxhFU ]ܼ=IR0kh(7ԋ߿DS0wvH:܋+]ȩ ZJ*I<qzvQ $+_ՇO3;+B㔙XgfR/QdVM$axhf;6c 2Pg=w+ aВ52֟uL{ Zc %.Ͼ{Bhe-&- id A(+W1զˍ3v&u6Yχ`Uc8 wFw^>i68zcR NwDT"b,9%~]7⼞Fۈ`@]=zė>nCBoJKfF܏V ` ~rw6NƙVg."0mu0]_)"fEkUHKp!c:WpoC=w<9y hTqt@=t&\u3u+exծv I G3,1I/F9ф] 28>uYNU(8S.h6 ʼF7 =%5%DuEUgiR,j[B(dq{#9++?pD/r 5Z#1]49T,@OO~P(0zx0ߠRCYyopb=N8/:aZ^,r{,8T~@pM '+ɲB;lqz xϐ[dDFjJie.݉ax/>uo#btRȾnpIMK?X*qls&(P-6=ωŚk1ܣ:jVFUgt+#63O'Uoc KMJ}6) ? [UHҹ{J5c_Qri`\4zk)qG0RKepRQ*/u)=Ɛ{lCu/dQnĊ db1 E2!; 8<ԣNj8w^Odl\+ KבdhqTNRW?:qӽ7}AP"સ`Uxɳh,"Fw/ΦACH$9_r[ut" +aGGӈ @ƣS yվ"+`_WR*8jṖ6H0UZX Iʬt: ~;GT'A:e[+Dt]0T63zEG0+|>(ֿj|)gG34ݾjj!E!it$$|}hzp}{ €Hhʓ _ Lm#Vs(eS"Qx[,'JhMސ(jȤLFnVsUc5!N#ZTTdۓ+{U qz=:{44zmu bn?u.eklׇ̈́K0HJII$~{g%kb]N@dAp)ZeLAn]-3A$#C)qQd=^&#Ɇsw^% /|Ba ڜ[a1 tL\wkŵu}8NK5[ 2wc&ch^CrDpNZJ&#"E˅>80ƭe VL:h$Q#FFO簜p*>#m* _.KCۓ ~+F&RoAB&ҫ9O/iN2ChfN7kI"\[BBM&Ųl y2T]Qbb7u"&k̬ytP|aMٲk= ɑ4FЛ#y "΁+ ҒƂ'GϠMt6 ^ @0\EԸpDn,`H@!g29{j4 r ~Jy<*IV),'c Y02i kpˠ霧1j赢TMo=:n/$&(?'k\D3ꋩ}02xcޮ'QCPao^SwfF7 !ܒ6 -H; dI]|Z7jvmF5@`=6ʲGV웉\k !kHr9?nY`m #E(RE12aBj>P.B-NE A*).! *ndZ[܀l$dޡd7kaMe/ەd ?T7B|8t7;oZ?!,6eXHr͢tBwppqzV?|Ռ9"N kD\h @I`8FĢTWIo+> F_2v;vqX,;4y*F7Z4+64 KK?}m}XQJW,߽!Ƽo6H>6gGlkOrz>̨^BwABBX} (QўQg[eXlrY6;sٳSkք,&.ǐ+0?Ǡx/Sp8!w unTT$0.kz\4/]UiYr82A*3Hb<]5\+S cV8gX'XHR[|gGrq B;@n0FU);\UW$;9oU^S I63c*fΉ[Ju^5렃6aRbȂtx #\t h^+䣫WQ~|NCBUMo77ѷ?{p+_ µ9'yLnѧ,IJ1t!heyc6lx1 ON#FAxf8rʳڋ4>i,7570}VƊm$veٟE ]9ɩK&Yw8ycd$T*y)dDJ+r-f`eK(0![4\!^Q= n8dB4ŊBr^w=mD+ g3JWo"`L8FG N$`;NCc:|aMPJO&wh5nhdUJDc(RKoO5;hy|t^l9-qdTv Z[e~[/0/Qp]XLI#^be8tKeB~x6BxJ$_hC@}lہ* 'oɗBGhP]ĒjzOo3j59EQ ۯLqr2.~jGcuo\OIí2Os: 𕌳mYUĨS Pz&{:II#VңC :<桂6Q(k}zAis5+ВHQ:(pn}jLo,#cSjk,@أz)k?Njkiv1>Maaz_*ە &*t&Q>P 1ˇ ҥ'2' ٛȥDq?RƿVL"+b= ?;Szf~"codp#hZeV{>LTv=G~:c}=G  SfH󉬾~KLQq- w~3Exċobh^zB(Wv5X7!`SDgk%m`Rhςt|JȯMt˜KBFqia S DoN7F%..TA8y2c\6cI5̎xO1`-(%SI˱)|Zv Ã-tJ$-\EKuNCIs4`twJQQo2Qү7 [b~˭t($ł 1 GuȲBb)yDJW_vqBoӅoS5smrւE#"S܌RpSM%LDA(5iųsL `|-AtFgsO$᱖!p3}Dž% {oS.ѿ!- H^Iu YGC̟VGou/2hǰjROX߂_=CRm31Ϭpkh ioyB3~r,wIZ6_cXb00{Av{]Q`T>#5GRU9bUԞM$}Q-`QXmAbZ5| AE'_hEڱ@^}SEfDꍾU TR/d; kUbzςpVu@;hj †CHN<ĸBrԠTͦ0fzC=Du J?oJxKP\#^"- y0)= #|S$zpST#Zç"$3חd(lxGT7>=-Ӣe>⾥8:,%20;\umo r<v~zۖ?$KET7*BcR `E̒?)5:~-{q.ĶwE`sQ *z(0@c=qG,BG9'6L=S=lH+(2+㞦;n5A}Ь]DU(^#Apđ`.XE 'S^J$~&v})l9ncYGRcUx}Nd'~LbJcчQ%80eA3 y2"AV] z0܂7g",49s Sl-{ɯ P -bDуu-⌹p1e@V?BO%)i؜5<|J!q}kԼ~bCň KQxގ~F{)J᥄\uW W T'ŪYkH3)rQ1duio/3Q;z>ᇏ4;UH$E_'̚|rlNwHbY9<5)liI Z?9Z  ^-)Ac!qNNc}Mj0=I)E7@l&d%χ;}fxM畹ݹo*34c6XnvJw/yP Ɲ xɍ |_:Ā MxS볞UiH Yg'1nHxjƫ/+b_cHEB0#v9P;  ֺlG{hĄ=}ӄU(|vUǖ|o?04u ;k+~q8֯C1?eL` J?Vr hO!LbG.|YYƇp $'Հ;7ݘM2;~sڨi)jTVW7apjH[xyR+`}$fAQ\N:0s\{ㆪ}iYeo8wv`Ks@mS3"c@cv܂%A̺֕$i_ߢ_-IKŮR k$ j#[$ZR-zZ }sE2w /aƊ,y[yO8K|Ӎ~{{FI ӳ3۹b#e0v[ .x[4~r3Є=j)!*TkV4ErW0@0a,%.iO71-D8D|:`Hѣz.ԆHkSDZ A*S> ?cǚ22sP2 i:"MFjh5~ǏrqF11u;q2w8=෪[fTC,}ϊjبJ# u60{( klVyeՀFX/%]&=sM͟4'b36ٹ k%V9nX`0ˈ>̦ @3')fu:-痝Gճ]>&j3RKH 2,f!A#cs e7-l(gxOqoc-^ϫoz]0Qמ_WLa)#suEI/#1riF62i,APL:>}l0 9) u=P 'ZigtKz73Sl13#xUj.Nfz;lBSeߊq*j cŞ$t~&f {$Xԛ묟uje9}]&8=kEwۨ2?HK֙[~cU;v0Ύhcf$f,]Ile˹gDцfy-L~U R<Cm+ [ ]=")ojq U~Y_Yp&+C#/fYyɰ+yY_=ɡNnPgqA\ v* `ԕC'ڤ,gOL J 慨*3邎1km^}@ݯkoM|iVU-{5r*5])v@x\8p_.=1˫5>0w`Kw8wEC7YJ@StA+k=S}ѲT5~]')©ZO=8W/vϲۈ[5HLLsN-߉acO).l% w;x!Rg'򯺮x:=Z_%u[T ϧ 5'R8&Z7&>bly?jo<8;/WyMe$r`ZbeaO_ZwosEeL5ˆ+⤄Я")Y ,SRgI bSLV"_ wE߶G?iki/E&}N q. "IW3>;Obj )*=X)k)Xӽ7Y6mI1DP0-(%EE;o:{rBq# cEo+p$f;˅Z91%ݩ*DTب ɶr֮T_t{ug7V,m^: x 2Ɯ`TjJa2Nص:TDx0^zd_^IIjwyY.|& >Rc8D P}@+hj@:tlfbuC2?Y*K4e(k:؊75u\n 2=`҅jʔK9iWj?$V <(2ZUع3k~07GIyg%NxIzM%Oټ$>/rSkAW%^ؓ%Qh__սx7몽52&N>VldCw๙/n}5=ve:%Fn Ց!Ƴ*p.6t&^ضrQ|7#觑~JG/Ӱ@9 wI&Pe?׼>qؘ$+oZ9ցStETSjg:#6*@˩$7*$KsJJq %pr瘨S6Cf֚e!'!Z)|oCӣ@PFYCtA*f endstream endobj 36 0 obj << /Length1 1630 /Length2 16884 /Length3 0 /Length 17732 /Filter /FlateDecode >> stream xڬct]&vvlv*X*m۪f*}8_^5cQ3Y8AnLl̬%3wW5G%G>E&5;௜ Jhf4uI9LJ@ptvvji100hzXWhiw{{%SdLA{g؛|LlO^Zt`rn"K +3뿅66^@ 7skߞK ۀW[LlEamcn Z_?fP ix;Tw0qy޿ soB ?_L\lfeWϓ;Z3:n ?]\8k@/9ڲ@mzV[nOI>6ȑF5|&o!MK'NpizSDt?з;y~}g1*E8Վ\T܁fSUͨ x.GyZCvZF])uҟёkCB8x*S\d7oFתV$Mϯl$Vbfq aEŒ3F]rg vY|6GMQ2E\ZCYz ZhZQB3<"TR(Qu{1Fn$pB=`9*L#B6L1lGw΂/j圱"[M8SU#kа"ͱ赞 T/a[MryTnSZ{{ҥ#/hR(كnѕ9+SUL;}GY4njbԏc[I!ɽ,@x٧,H@CYÐ7fb?сotE[6<DJ9@ę+MmJBhC$Wzn;EQS9ZϫƦ8&YzvkI՝+6pjpڜH.23!NԘVm',Ұ~PVt*RiG (|c譖m(V̑r@s -3wB{ rb!hAD;/~&DŽP3WWZj=HTfʯ~<qlp8żo6mTLX? @ЄJNJ!m$nVC$P2ҍ xq*@|l: VǗrA[u E'S灍r,0Xb{!T ?L b2Ioʠ0RVܗuѨK:MWeS5UTͮ-j]%S4x ϕmcķA1b<–q`5c>)o͔0pPo1RTȍxG~Y`Y?4> Sβ5Z`-Pq`3?ȓ*] rTs,q[q_{G#Nȷc`潑 kw3;V>mrm]%U I12-];VT3@N= *L4e>q>[,ؑo%z=ղ 6dw+\/J`d-|t>@coQMz#8rEk1Q5,$Խ2ͫ?p~ DQob ?mwbOIIG$ai7?2vCzF4bD7-UB{KePBH:9 }OoX/kM>02]CR[*o%%DZ\16~j TiC;AEś:z 5bU Iajp^Ks0>7ϧOş. !/Y9O&w}&<ɵBm3җMe VlY(>ZM$]_syںYB;}d*zax3[P9KT lVJlǘm埩ǐ׿a=N<)dW @M)0'HJ!-躛7)~pinxɉpE17"dۼ)(f|~v J:1PrX>$L&k!{/Ŝŷ4S}1B0kDVOHj̈́^lffŽRSFQvj͙9tNݥ|ۤ0@i!S<6IU$kbzVXo/Εޱ)j/g$.?6 @=-OMƯX}paWU wت/Sn%:[:Å#F= .}<!r`J%)9hk,pIU."o%wt_ga+\_T_7(佋DjbxݹLWƨ"O DH6RсbG 9qعqaRPb##[ZfmxeA&dOEmVVdB;\V ]D,XҰ ʨ|´m8_|&-z}ErJE{eM̽Uȏps<*VHo682Sp8)&E^+L#=|ZKa1Y;ufuV7HF[f{&M2l)yGE&A6XO@WS{=ghIT6%7:c 6>)|x{qaOJ&%=h(27C3R6Gߧ|f(b_8g+a$pzyVG.IO'&ƱUWlu xOO,7;r z!E")F)pC [3CrLᆆx.(SzMNO_i]1YFM=.SOxQyc΅K*y Gz 簛N ^u&[%%ޕ͹`I6VAxvl GWbݚMYw[b=S+'%&r4:;q}i&N%ۂm AKP@]kdDZ:w`xWRϘLW-DbEga|ٻcvQ_]eݒ~)V{uHbҴ[YSnE 3~X(UyL@ID yugin-Yqz’WPǀ5ꍥJ.Gܙ1WLTMp_oiI7%:Jr^!&=F!lں{I8޿Q5vy)6FW⃂1r2nY-gƒ]+ȞٗdA>ׇ_~}7oQ^3$d:m/ct<~̜`&8wYE314xOHC'u@u$,ldz@ѡc~2*6ѶBh4e!Sf)͊ߩ+37Kx+l1KEkuu_cNfj-)LߠDQJd_|Tyѿ  (ɭ1Zy~).VBmλHo>;,QI ciR OCwȣ5(h8:B?FEoc2o=6z` a#'6EnX7""8SԆ$iAle?Gշ0dQU` dCR_ȵ!-ro[q>26} mGрë@.7 f8)^:t6)SFJ||/s8aM"#]!70A{X]P2]2W'H15;0]cD" 긜j: o_˶HAS,&R9 )kH 9떂Dɣ::!ɷJh95pR9݉GwvçѸܾ3šk>a=i6H7 Cx͵Aׂ6 u8) PI6>7E[+i0 {C L&F7嵨y| ~>9PF|+xHl74k^zص^MYiYoҸu!W msvs_ /)"6r,,6Oh@R6C̣+=El1("fp6 (WBoq("[]ȮI }=#qE|¡W :>ur6nw5tjTJj_ #TPLLgCI GY k`ɕk!RUN&aq-NWO`̷%Vp~m[*潵k]'iZ\)LI.~T툠x #} m 7$m3sfQJJGt5Ȕ(AbBaT̉%h䋬:PB}Q3X2AISom>㋬'7d> SCԛ63 b`^aBIs>R:fVj!tЎ⟻un~JqW)V2ߚ*ךzdD0L?;#/ ͘i ̵4)uYƨ >̽!ݧN뺄ϧ{H!bӂ@\ZuPen^TMd#McuI /ι%8z޻v9$K7^X <؋%4Ctߒn $]Z6W6 ~j139<7+ulŰ QnjNJ"d9;AV&@Ѝb.Ckp?r\3Iwk ;ß'G仫XPMvCEU9$Pr`E L>c\^7{) =(.l„[_^aj;O E{b4Etj l%錐𐱎j52Yo;/}U7 N.x0ʡDAFWuHz{b2v̸ɿJD_j3 l[u#cq{C'T坍t B@, A$n4{}`f /o'DXĀ-/ԞEJ?OhNh"hf%Rt?bn|oɡnyFsGQ?"pAT|y(e}ΏF%Y4cSʱ>)3$WeicOquW*s*y?؟KˁiL&`TIo0VO_ᒰ/6N! ȴ.2̟;7D"?Nq6drQ_A&L8GsXܠ~,faZV·{pܠ˪{u;$BB4p4g3+wVLkǴ"mߏm[qWE߆A % =;)V\SѲ R 2*n7h}2q/j߬cNGDYGS{E>g~蕕H,n"Y0O?v$I 86ΐ_rB!dxed@㤘aqje@t`\eC):E }#Q-[қcPyomJCڅU A8=Ml"`Xu$>"$ #XӢ,mEB^v9SOj>44Xn»ac]xVYV'||)Y:uxԵ%ߑo9+[NO/bk|#ˤ{=@SEVe$վoYݑ/v0_?x溥Mɶ0$YSbQ+H%Eumq~,Ș~I"$MxW|m9nxཕ-z&)Ry=\ɢ--L^lx{"2MkXɆ#͔Y?qNTO܈BViyk`5mw1i?QgJVdQOt2FOtHbK %"2G-vnK}qqِfOV$4\*€ EjGQ̀SX_5_P_Qf'ñ oYb?ҍw؇$Z; r٣]KJu^{K]:_0ڹ??>!̖>5L6fORȴ#hMIX6NeP ,Ҿ?Iq yϱE=f|ڎE(f,Ti%cI٫B|i5C7yԏLٔG>T>Cꉌ>AB}#J}N Kdi3UK s0E#C$:urUf!9}s9RKxGz1\f2W26_CiߠXZ,c-S[NNί>c&u 3S ~Qq{ӽ A5Ew7 KdQϕ]`: zR '*wL2y;;:0w05Ng^f,wt/`N:Np]㦍 T}D,C?^w3rg= c3aڠ ,\GγZbn%:STU˯wQ)ُX6iS5rRخf?FHtq3(v36ls[_77HS.M]Xi6R̓kQnNsuZ YwyJ= ?:-!8;DJ0g:';QJ\*3ԛYcQp lvhl О0Ȥۜb_πȀ<"%Ebf3|Ųn 5V;iؠ4:=vi<4|+5|naCXoz$[H!\ҭDVγ}]vֳJ0^C(G(K'tU$̳?mD> |̗8Xm@ 'NjOnTP]-c"sTIn$lScyqV&_Yigd(2Yg[ba˟ \G)׊AoH;uijJ'<-{Se ~)gn-Pu۶ao00^G\eQ=rr*fpדxupH?Rv*BhSʕ5'9eoazuPkC kNbpڙ!qB>9Ԇ܌etLuɜh֨+qzuԖ|eҼjF'*-]D5.٧RP;N |k7)^S.ySIh|WHL%- hhjo d9zgQGHXkUoQJ=j|NwzW-Y1BJVoA.G @l8P3h4NL- ǎi3: n,z0F8fV4TGȧRL?k>+,>LDZP~I+SmGs L.{:ܷvW77$}%hV\ub_] -e>)y2(M7>.n1\~mJ9"QTǑ_xfbv)f 'y_U4s'p= '|ڟ#,CioCݙlw<ס԰E|ҍ;yҰԛ꜀H^^ؘ+f0߅JLj7Rf ֗H P̘ jwzĮ,b} k < u&\mOl@qc)%;;$S׿jǕ2%6ch ӬrbL`W(aON(hۜb|e1 cj'z^V F+ hQ9k[2!rQ-.zzf@Kݍ|wkpnQXѴ$q 6.,"xRm1JbWlu=Vf*=0̟AmWEj^NZ;]I8[Z`M.m@ z<3q3]<8eߥTU|Vލ9mD'k"pQWMS h?=RRqkƙ.H\_ 1~ڢhxCʥBmOQ9[VO%I}иҥaI) NK!\]7Cz|J~su9?áħ+`|hUIu$^dӗ4F&g&F]?D1Mn @zPWBl\3K(Lxbَ2sGn>ئwpJ$8&TD-J'u% ~r^ ]*9LrTVqO^[,2K֧ŮrtGZʱShc( 0{j©?4k jϜt!?juLnhқfyE ~s(# E{%ALr mI-R 'P7J==:@]"!Ҳ"S3ƍm?UKm3m@}}WrwWyH}{QՔ:= ^{T; Y/E=Ɠiv(_Xdj~Jj ExTuCDSoȂ.䅒k` RWЗ)rn|J *v/eb-fbv '/uo![o 0>+7]&8E+~yK;˜Hhת76AMIxƏnA̶$!dM5")ѳecg$d C.Q;d7:`9ʎ P&J=_#d0 %$CC־?/ P0 6O(sJ%`9x3Na!A2"!ɫ8XA=չ#i:ORPpX?N/,Uɿ7&o ;F:jHtFZ,nCó1vD&0~ঙCƺ51ORA5T̔Њ9L>,Hh嶲>Zj?E 91lU$UcP?(0 M]u r0c JUºta!_pZ}Û`_ }l/Ֆ:A*O)O?^yjI=\S8SC k77gi \\C8"?x~aF OJ Y#n2.)VPݯJ eʟrDri%B']kG7a %QAy(Iݺ[+לq=`H T2@Y׷}(fԨ5,=SǺM0sWm~۰\'=^S y 1l rV{e0\>g_3p8-MVͿF:H]C07">0U0=@8[@\@<ѕTJy2`Fh,6AK~'cW9^S$bu$=<WuN ֺr`6#圾իBT*gB+ES[/'K؋u9P-k|gUFw.WWFuh7?kKO"_-kHw$1ᒧV.lhi5{!r(K|/QN1RZ&JXw2xs(RPX{AeI8BP7&RM / o5م5˺+‹4eW=NiJ:8pp1szU0 ׁvȟPc_Satnx9y}?; M)(}ktj,jdJ:odΒ9+sQa'S,~%P6r!^.lVDZΰm!Ǻ,Tr"%tt&.ő>Ӕiq;=>}-=xn7WˊY`b6dj;#ޱJ\رEUKkI:$~MdGtԅ~;Hl*~Wtz;'v\ BiGfPD ^Up*Po+B)Iא{["MD;vcѱ=1lmBf3gJ9|Eh 7H,)쉓 T;CcTİR#-.uEql#ZwHα@ V]O 'Eќ}iMMS≌{_jO߻&2s!ǒ y|T?tJ-E,d{ð\P\?mc=1΅#/`iH +nM{cD&߰y~u@JIH'.._SXC_Qǒd!-;.>E;=40]DJU}}90kJ>RW7Yh71D`bQVʚI .b_ӽe@[{!9㡳 Kj]pJ5&nD^4NDjvL`# 8Hsop;gŌP90?tfql_.fLq(t[Phۘ o47.q'~8#V]^ƂE@Z}ၙX8.Ñ.Oˏbuhi9Ǎ5ڟ﯃[cyc? D9+[t)ĭR,e7TK'5~5}4SqHppP,-ֶ?4`WϞoES\zт-aU*2]6$+­C Bt3*b7s^⭇h~O|#'Vӂ!T=p3V-X!_AÝvfKC*fs"br(j^A;ick'e7TEүM-W .MeP }<{#lڊ3޴(󢧉O#@} RxqRã)z(RV;&ꎷ95YA@JHT(U Qq#}h mPHY̾ƍjG.|'iTlcE9'v`E4ohӦxGWB;ƓS7(" ;#Qy@G)K"8odo1W~CWՑ|G.'Ј<( xBm&N3ִ/2{p k"J]i(@2ͮIʩ7HSh3;G#6):ʳ 1.Pz=6ZO]US$ޗlftY{ uZqƖg\tFr  u]^^ݽDZs+jgd&,Z j?]*`7Ɛpj: n =}~[4FNRosDOMܺO @`3o0{8Gǀn@hӄPNQ{g%~¼z#;8UxڷݖbjɆ:/ObΛ0K2xtplKUVന,nЏ,ߢp+2ku|Y(9qB_Sen@݊q0Ě0 Şy^,Qn- t\8D+|?<=849V<{rTC=ˬgGiQnzJڨBsh`[{grwbwFvq:72h#wl]:wuUR^L˼7f 7,J-9V(634a8laT9N~ɚm`%'嶡 IlC[,HfkB2KsOf[tHP-R(>*u3'țtlj-w endstream endobj 38 0 obj << /Length1 1647 /Length2 11281 /Length3 0 /Length 12129 /Filter /FlateDecode >> stream xڭwUT]-6l݂;;w`O>=νҷ+UͪcQ39]YXJVvn.jvJ j 7YW[Rdj`/a h ˋ@ wprthi3K 럚O+ {LJ;d?vT - #$ VHAEZ V@ ` t74,Q pyA g;+o \V@[7;Ç݇Ll "!<]-M\b8X9*ȯ t+)`fhk4\-dalf rqvU'TohV ֜ #&#=_"ko`e:wDW~$ab`o0#0+9~Xf#W#9/C;-fkdb3Ecb5_±_&vV^[k`!D->bddEdb ~\r {3=Ét-6k $TťmGW~r#s0rٸY>cy8? '@H#uW{O_joy{@ OaibZ;<) 9X ơ?-b6ikuGnwǖ'tO􅜶}~7ٰ9X+|NaJEswsRUͰx6ܽ ݉QWxtLxpG=862|c).H' } #]]ߢ%idtk6NAba822lZQ[!DTsSm9'J^t󕤶A^:9`l@Wq;m%w|!݉Z9QJKIR̕K%ߴV7f>/U#-5=k]x9\?C sDUovb^Ԕl£}$~(T 02lmsBb*7HUd?vD9YkpQbV:)q'pSldAHĨ]j|ײ)2p ;D"u~7HuQG}.r$EuyPK1G2^<8-tYvt%ϫ!{zRqQ'Mί%Q> ]uSx'I36"E|O/S}~g/_931|'K+h!qdCªZ˫mWVrАi=kE?\N$fI,˲װ: E ?1V*,O ȵzgQ bifл9MJhG;4qCg_%{jQ_PgϪ]TTk=144ݢsM:./_N7718듷S+ZE݈ k]E\&ϣO![Pw/vc .˴ {JbWYhKQ(G9)́ ͽf{ :h,ނ`]!c$;}kkx*.M+8"+[sSY9oZ.uFK_0[CE%~Q/\>;OP`,D4v5HE(ݴ Am0=ސ Rάa"„nʮw 6Gă!S2O ƚ'T@ZV6jTı(?7+8d}dQ>=iP=%Rܠ(bJd IЊ& ApҚVaZVg鼪ic=M[=~ =B_ZǨ=~ "pHoȹu VVЯV"ϊ*[kpZaCRsTs?~:GL)yH;ſvQKW_DS!DM]Kq;R47B1OSz(NX'eY.1]RdQ4}4,â]q09jRضV{OvD>.21c]DJQ: D8W5 m %KeۀsU~NoM净y?YVнrD~iY*!J]A.H{tMg{êJ MCuv5F7;mCuP(BH!ک}wkdUXpx*6Blt\B 1I-/ʾ??{o?^$ޠHGH8y&&mQ ܒ j _] dILSz4x*cuolG[*U'_C\vsёA1We}y65{:NZd\fe2mòCaVwfF֦jIpͬ C`k)o9}zdR3k}v-4WkF6AcR}`c›ZrM2;՞wjZU*)e^͡Y/͉ FW˞{+r6LF)O4k1]nʅw'oWib(w* HhZ_+yP7%b|NŎlJO0G.Ջ= Յ^)~܅ QVF ҩQis\#"zb0uZ1o:12;faT_WvWyw!0k)igReFdNb;#]%Z5 tN S]I--v'Joq<5iE+u݅kb~NJS<2ig"ח?C|~%P¾tȮs*Bt*h7*'XEl^/wm־(F@R=U ;zfK<`L_q0{&dr!c_ עn_ ѸH6űmxT(8dZҢbXR1 bnf\-dh)Ԗ^;lϤ&ǟSn< bfrxNs"KÄGn}N%:s"mhH<^>{¥l׵eNJ<0&6h;G0e-{?Gf8NocO͎g*tjt` +;INh'(o<+?%׬|x`U{"`e#+xx3j׵සidG|PjmhPfL/ `|/ ľ7w94EmX4F/N#\':X+ m0^D KN-;t@ *ǒbLЁXduk38_<^=,+fUAXc\Fi%9_-QO&Y"ّo?S51 ~K@b5w$_܆'z}-" ?p:]?)!B^)8LBh0UDŽKo+ׂ>="9VG4QܭW8U;J!?!֋;XQq/?H#-ڐӯleŇ*PQZ Q;gikbDÇ.q}p@d^FzSUd󪼫H].'N9=X L}MIƻ8)d]D+<X1w ]XܴKl[:RXpN{7^6iE+IT<9+!EC6lXR#wb_fʩ78a.9ĄizXaI ă3ӋWE07b8QLZm̙0H7qʉ&jkʗgnl 28b*WmCu.O 6of*5/whjX'Yoؓ#sl e".2- ͊3'K Ȓ\hа +Kr3&}}ו=+uc B5*Qx(*S*s[zȻu$=+ 7Q{P8[9zpcxB*e]f r&۝pA6%OFt= ZL.N;sSޱ¹V-.,yL7dT4  {GK >Y 1`z@搲dش"[L,o"M.7 YaӼQdjvaD9焠KMɛ|{15ړ͂^b1OߤgD8(Y&U /ψgenQ#99uA@,jड5&#'*+vオ) F呂];w,m]/q%p]9˷S9J+Äi[&lFbxbzdvH=s%bǏr;M6vT/Y !ʹŀb쎦5qifc:j+vg0kvаS@MǦC`ΦrVƁ[|_r|_%+YpeP}7׆/d&C]7Q0߇!j+`rɵIG #\}YxGks=\R'H/X(7U@q-ʛ)qڿvGUFCʵ{ؕOJrViZ=3g6XG}*ݏII5Ӱ5Gn'8 1M;˲6әT5#|Gd=yX;7d[_=_A1J:leꗾjt Ĥ ɻY[ID0Ln3W[&кp>|B:6p.C5|qU ɑEqyt0I&ąvVۻ5βYR"8ڳG#"i8^k{Sw֠5cI{$vu]m7E|nKdD}:yOR6c-F:d {I[ ͢.OhmdJ;" g6ycYþm7&Լb/.(#rI~Mk!z#k;#&nnQ) OA)UH)O D3d52yF LLu8T6A~?H&I7|:_B I iH#DKh{NkRp7WY.my@%qS4ᴪ_Jԥ$ke\:$OWjH~ayyo}.~'4[&hd8noC@\/$g=?@U26 (Sz 7<k :Lvk<,_f+ "sYVi :x#9e[L͙̻~rߚZpZeY۬V󢴏HҖHK3c 81ؑ1=gAݵ*oTiGqU(^"%sFa ג]~F/Ѣ.cpwϓw$fI8Gt9OR(Pp(BBH@ 8 D6O4XfZJiWd\]F^lG^K1SE"+Xs-O''rN>1] LwSp3Lcg,](u}J5b joK}%u1Hg By~<'CAI^&T#*z^2ps0( j3Ňq\L&\!anq^Y{0:m\DMd:VYa?k- &\Xq/M>R#ĸZH"aNB|2qD2TzKla3?)6gQMq#A;d‚ð;2627pN0(ɯ0,uq2hCP|^-4h9ifcH0bRsaa1=J!fg] vW/m"Ff~|O{MsiEJ^PiM?ݬK 9 i“db8G MPU ;O1*8hE ~熰g%$6P7X17nm'qY;0t#~F㶚|3,. N*۩c\mJY^!ѡbFZ mOgS6#_]wQ%vC)~+XvuJ$HNE/P2^YmN5 @4WB-F.fxldYPG9vfyq(,Vy72 39+'_=% 1Px3;< M:i~[}=+eE9 X^.:MH&r_BU/@ۻk=V69BC/0&$DkF Ϲwi i# `!, ~ᖾb749F`$ZG91EoMB)=TkV,g*P5 @iR1![c619[>DTji3*`bza81Ƨq90Iv(fOuT\uZ1J>4զ7"cգlX{/|N?ˤd= d}6N\B#*=QDHNjY?X^.{+t܄sW }QݧmOz`RHbLnQ[2uRlƨ7Ɲn+'oGr'Ħx^ߒ%Lt۪ ɤEF2D>k>_J&8b:*'%MI˜̷f[/`{wݲbrwԈ!gG#"(%u*UQ2;-܋ ʈa71 {4I? >۹1.Wٮ;!nW2"RT[9Rz3N1E⨶~9̋%UI }.s>%6f~g#RCQ]@;/퓚q@"+]U,BtG +3Bv/&B_}"QQ;"= Տ#)gB9ڃɘCr4N2\yQZQeS्_Γ:mhA|%l96T 0 5^Y͹M$}E]Wi3bK5ˋ*V6q2Gګ27Pt_8Ϻ nOj;q#o4' Z(oO{tP^Ș:C{ȵzlu傋$kvpGc/>*+iM>M\Y B|'_uP˯{.b#H,#Qmfs-d@{kӥ]dXJ?KGYZ5тTȰaVɪDPƈl֔X%>U~ I#47 qfHދFrה*#~bkz ++Uuo1 f[崂|ӵY_<1E Q @+Y~M.OM%[#ND,u2yL:g:,\_\ endstream endobj 40 0 obj << /Length 664 /Filter /FlateDecode >> stream xmTMo0WxNB+8l[+ML7RI";onDo3ތ?n~<&yݽIr/ŋ=wWIG77eW]Nm=ij몝m-m3Q/oMq'}vIֿ/ ˺sӵBK)ɱn;A9n1vAxHŢn!XN4$>΃=mc-bB}hjM^Uwww BF˥푊QM]1ʫڞCeݡ}BʥXl6ȶ5R^clFrJՒk ;%9& }8K|y091x&GϹPT#Z%)&!lRvDr䨑\#G|bǚHUʸ4'22| ^Dm=^sS<cLUي_3;S}Ш2?}LN=8g,u..Q/)87l _??q Zqб<4 4谡Цg~ѧ,I 4sY^y?4hv5O#ܵy7S4 &*s0P.9S0׬p~ne8|p\ouqn6|kq_^~& am endstream endobj 41 0 obj << /Length 665 /Filter /FlateDecode >> stream xmTn0CB*D rضj^SpH ;olvR3ތm~<&yݽIr+œG۞m=ģ몝=b[ntC۶z;vʾ6%:svI>77 N!._ M u+$bEw!y1 vxHŢnSX: {Nm]XNDW[״bݹ,,-FVL"~C۷6ZHfٶ )/16X9CjIxļ$Bi#cΓ@l MDϹPT#ZC%)&!lR&TG5k䨑}WLԌ]Uz@K~bo#?қHљ<-+`q}ʂbI2_́Y_%X?Na~ZjGcrj59c+ϳEHDܰ%~WLz9ܓ2ƛFϲ`'I&se?zyxмj5F̹k#niM7>T20P-9SA˰֬p~ne8|p99[ڴw=ߣ& c endstream endobj 42 0 obj << /Length 664 /Filter /FlateDecode >> stream xmTMo0WxvB+8l[jWHL7RI;onDo3ތ?n~<&Y$ŝK_IsE77E[^N\5sߖ;7|[lzmS_*7F?h3΃;mc-bB`ew\_7oK׽;(2Z.ETz}ܟ~o9V^MVK7-\f\S}[S!pcSs|TXo1/ȡ aeuC> stream xmTMo0WxvB+8l[+ML7RI;onDo3ތ?n~<&YվI|/ŋ;t硋nn\3<:Wj\=?-wn6pGۦ|Tnʽgxté7~qzxKlqrnX7UޞMjuSAxHiQ,'wͱ 1}hW7q{UEݥ-rG*F>NNL7u]tNhWS;wE )b,#TTHy=)9>*QKr7P:MȡQ^s$LD6aȑ*s.$S56`>ƄmÁ#TL 5kd}WXssc*zRh/#? bE$L|ږ8^y>eSQc̯bV̯cNa'_OAJ195kd3EH@8ܰ%~As*=F 0`{RLPh33Y$LƹǬ oqMsȼ tx\ \cΜ-eksL ?"@>qhx ׷=l~1֍>*]!MBa endstream endobj 44 0 obj << /Length 665 /Filter /FlateDecode >> stream xmTn0C6U@"mTt@;olvR3ތm~<&YվI|+œ;t羋<]3;Wj|{}[ mmᆂMv{Kt=c_~B?zxoBS6wBJ)X7UaMuSxHiQV,4$O;nC-bD/OCnC_n^ѻs׽9X2Z.ET~{~ʶrn_~߼h!R,6ew*ؔb%k e+Kӄ$a"1x*s.$S56P>Ƅm„A Fs 5577vرϾ+uaя6R:!,əCxg+ѧy*JcL|*m:fvuiWUꧏɩ\g%<Ϛ"sÖ0_:3x0kjhyIYx0aCnOg3$cx0<<v5O#ܵu7A 6*sZ ZcΜ-ܠeYksL ?"@>qh|tngk;dGGM@c endstream endobj 46 0 obj << /Producer (pdfTeX-1.40.22) /Creator (TeX) /CreationDate (D:20240430223408-04'00') /ModDate (D:20240430223408-04'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2022/dev/Debian) kpathsea version 6.3.4/dev) >> endobj 9 0 obj << /Type /ObjStm /N 28 /First 204 /Length 1695 /Filter /FlateDecode >> stream xYn8}Wq &-6 <(6mUTt~g(Q[ ,P4)^sB)sˢqc37Ħϼa\2DGL8%d~3eA YxWHD\\7  ! '?L8(sD8$mp&a>dn|Jq "fRM˂ {^8n<>71 F٨MڅkFam' ./а.ꗣ (xVt"4!h O$)< 'u1mv(R"bonfM̘VHe}JY4\y8E8,C;WM&sa2&{mCYiSCwfQQâ]Lmg{V`ubg#mHZ n1afhóEV!msXg0|A+_vsA-4LǩbNzp}1sVpG;838p=G *S5*M;'y0AfSa >0Q`WF&?&j |a d AI6tV76J5K! 4.&PB9ɕ{3x?gVJ(X4Zm^O0h8qjHKżi++6PqL\j؄[[67m (*Cm/Su\#1:β@*]\o )EFZ狁]6&0J;̳ĨeE#ݕ::q77/q%rׁӸ~. J夠zឹ4>w. D ?ow)G6Vw^Pݡn=-F"CCv-ֶF֬wE>/}ҝ!8!6}.\C`rgN%|ׅw? !&k_ endstream endobj 47 0 obj << /Type /XRef /Index [0 48] /Size 48 /W [1 3 1] /Root 45 0 R /Info 46 0 R /ID [ ] /Length 156 /Filter /FlateDecode >> stream x9 `&.q[   xԩk;;O`)1^13@)@0:#!y>= library("ArrayExpress") sets = queryAE(keywords = "pneumonia", species = "homo+sapiens") @ % In March 2023, this query retrieved 87 identifiers. The output is a dataframe with the identifiers and 9 columns giving the information about these datasets, such as the number of files, the release date on the database, the title, the author and content. For a more extended querying mode, the Biostudies/ArrayExpress website offers an advanced query interface with detailed results. \section{Import an ArrayExpress dataset into R} \subsection{Call of the function ArrayExpress} Once you know which identifier you wish to retrieve, the function \Rfunction{ArrayExpress} can be called, using the following arguments: \begin{itemize} \item \emph{accession}: an ArrayExpress experiment identifier for which the raw data are available. \item \emph{path}: the name of the directory in which the files downloaded from the ArrayExpress repository will be extracted. The default is the current directory. \item \emph{save}: if TRUE, the files downloaded from the database will not be deleted from 'path' after executing the function. \item \emph{dataCols}: by default, the columns are automatically selected according to the scanner type. If the scanner is unknown or if the user wants to use different columns than the default, the argument 'dataCols' can be set. For two colour arrays it must be a list with the fields 'R', 'G', 'Rb' and 'Gb' giving the column names to be used for red and green foreground and background. For one colour arrays, it must be a character string with the column name to be used. These column names must correspond to existing column names of the expression files. \end{itemize} You still need to be connected to Internet to have access to the database. \subsection{Examples and ouput format} \paragraph{Simple example} The output object is an \Rclass{AffyBatch} if the ArrayExpress identifier corresponds to an Affymetrix experiment, it is an \Rclass{ExpressionSet} if the identifier corresponds to a one colour non Affymetrix experiment and it is a \Rclass{NChannelSet} if the identifier corresponds to a two colours experiment. <>= rawset = ArrayExpress("E-MEXP-21") @ % In this example, \emph{'E-MEXP-21'} being an Affymetrix experiment, 'rawset' is an \Rclass{AffyBatch}. The expression values of 'rawset' are the content from the CEL files. The \Rclass{phenoData} of 'rawset' contains the whole sample annotation file content from the MAGE-TAB sdrf file. The \Rclass{featureData} of 'rawset' contains the whole feature annotation file content from the MAGE-TAB adf file. The \Rclass{experimentData} of 'rawset' contains the experiment annotation file content from the MAGE-TAB idf file. \paragraph{Example when the column names are needed} In the case of non Affymetrix experiments, \Rfunction{ArrayExpress} decides automatically, based on known quantitation types, which column from the scan files are to be used to fill the \Rclass{exprs}. However, in some cases the scanner software is not recognized or unknown and this decision cannot be made automatically. The argument 'rawcol' is then needed. Here is an example. <>= eset = try(ArrayExpress("E-MEXP-1870")) @ % Here, the object cannot be built because the columns are not recognized. The error message also gives a list of possible column names. We can then call the function again, feeding the argument 'dataCols' with the appropriate column names. <>= eset = ArrayExpress("E-MEXP-1870", dataCols=list(R="ScanArray Express:F650 Mean", G="ScanArray Express:F550 Mean", Rb="ScanArray Express:B650 Mean", Gb="ScanArray Express:B550 Mean")) @ Then \Robject{eset} is created. However, there is still a warning, the \Rclass{phenoData} cannot be built. This means that the object is correctly created but the sample annotation has not been attached to it. It is still possible to manually correct the files and try to build the object. To do so, the functions \Rfunction{getAE} and \Rfunction{ae2bioc}, used by the \Rfunction{ArrayExpress} function, can be called separately. \section{Download an ArrayExpress dataset on your local machine} It is possible to only download the data, by calling the function \Rfunction{getAE}. The arguments 'input' and 'path' are the same than for the \Rfunction{ArrayExpress} function. The argument 'type' determines if you retrieve the MAGE-TAB files with the raw data only (by setting 'type' to 'raw'), the MAGE-TAB files with the processed data only (by setting 'type' to 'processed') or if you retrieve all the MAGE-TAB files, both raw and processed (by setting 'type' to 'full'). Here, you also need Internet connection to access the database. <>= mexp1422 = getAE("E-MEXP-21", type = "full") @ Here, the output is a list of all the files that have been downloaded and extracted in the directory 'path'. \section{Build an R object from local raw MAGE-TAB} If you have your own raw MAGE-TAB data or if you want to build an R object from existing MAGE-TAB data that are stored locally on your computer. The function \Rfunction{ae2bioc} can convert them into an R object. The arguments for the \Rfunction{ae2bioc} are: \begin{itemize} \item \emph{mageFiles} A list as given from \Rfunction{getAE} function. Containing the elements 'rawFiles' (the expression files to use to create the object), 'sdrf' (name of the sdrf file), 'idf' (name of the idf file), 'adf' (name of the adf file) and 'path' (the name of the directory containing these files). \item \emph{dataCols} by default, the columns are automatically selected according to the scanner type. If the scanner is unknown, the argument 'dataCols' can be set. For two colour arrays it must be a list with the fields 'R', 'G', 'Rb' and 'Gb' giving the column names to be used for red and green foreground and background. For one colour arrays, it must be a character string with the column name to be used. These column names must correspond to existing column names of the expression files. \end{itemize} As an example, we can use the files that we have downloaded in the previous example. <>= rawset= ae2bioc(mageFiles = mexp1422) @ % The object \Robject{rawset} is an \Rclass{AffyBatch}. \section{Build an R object from local processed MAGE-TAB} Processed data in the database are less uniform as processing methods vary a lot. To import a processed dataset from ArrayExpress, three steps are required: (i) download the dataset using \Rfunction{getAE}, (ii) identify which column is of interest thanks to \Rfunction{getcolproc}, (iii) create the R object with \Rfunction{procset}. \subsection{Identification of the columns to extract} Once the data are downloaded, we need to know the different column names available in the processed file to be able to choose a relevant one to extract. The function \Rfunction{getcolproc} needs, as an input, a list containing two slots: \begin{itemize} \item \emph{procfile} the name of the processed expression file. \item \emph{path} the name of the directory containing the 'procfile'. \end{itemize} This kind of list is given as an output from the function \Rfunction{getAE}. <>= cn = getcolproc(mexp1422) show(cn) @ \Robject{cn} is a character vector with the available column names in the 'procfile'. \subsection{Creation of the object} We can now create the \Rclass{ExpressionSet} using \Rfunction{procset}. This function has two arguments: \begin{itemize} \item \emph{files} a list as given by \Rfunction{getAE} containing the names of the processed, sdrf, idf, adf files and the path. \item \emph{procol} the name of the column chosen after using \Rfunction{getcolproc}. \end{itemize} <>= proset = procset(mexp1422, cn[2]) @ \Robject{proset} is an \Rclass{ExpressionSet} containing the processed log(ratio) of the dataset E-MEXP-21. %Turning off evaluation of this section for now (Oct 26, 2011) %until ArrayExpress server failure is fixed \section{Example of a standard microarray analysis using data from ArrayExpress} In this section, we are briefly describing an analysis from the data import to the identification of differentially expressed genes, of data publicly available on ArrayExpress. The first step consists of importing a dataset from ArrayExpress. We chose E-MEXP-1416. This dataset studies the transcription profiling of melanized dopamine neurons isolated from male and female patients with Parkinson disease to investigate gender differences. <>= AEset = ArrayExpress("E-MEXP-1416") @ As AEset is an Affymetrix experiment, we can use RMA normalisation to process the raw data, please read the rma function help. <>= library("affy") AEsetnorm = rma(AEset) @ To check the normalisation efficiency, we can run a quality assessment. For details on the arguments used, please read the arrayQualityMetrics vignette. Please note that, at the time of its release (Oct 2010), Bioconductor 2.7 didn't include a 64-bit Windows binary version of the \Rpackage{arrayQualityMetrics} package (but this might change in the future). <>= fac = grep("Factor.Value",colnames(pData(AEsetnorm)), value=T) @ %Turning off evaluation for now (Oct 15, 2010) until someone has the time to %troubleshoot the following error on Windows: % Error: processing vignette 'ArrayExpress.Rnw' failed with diagnostics: % chunk 11 (label=qanorm) % Error in aqm.report.qm(p, obj[[i]], i, names(obj)[i]) : % could not find function "svg" <>= if (suppressWarnings(require("arrayQualityMetrics", quietly=TRUE))) { qanorm = arrayQualityMetrics(AEsetnorm, outdir = "QAnorm", intgroup = fac) } @ Now that we have ensured that the data are well processed, we can search for differentially expressed genes using the package \Rpackage{limma}. To understand the details of each steps, please see the limma user guide. <>= library("limma") facs = pData(AEsetnorm)[,fac] facs[facs[,2]=="female",2]="F" facs[facs[,2]=="male",2]="M" facs[facs[,1]=="Parkinson disease",1]="parkinson" facs = paste(facs[,1],facs[,2], sep=".") f = factor(facs) design = model.matrix(~0+f) colnames(design) = levels(f) fit = lmFit(AEsetnorm, design) cont.matrix = makeContrasts(normal.FvsM = normal.F-normal.M, parkinson.FvsM = parkinson.F-parkinson.M, Diff=(parkinson.F-parkinson.M)-(normal.F-normal.M), levels=design) fit2 = contrasts.fit(fit, cont.matrix) fit2 = eBayes(fit2) res = topTable(fit2, coef = "parkinson.FvsM", adjust = "BH") @ Here we end up with a list of genes that are differentially expressed between the female and the male patients having Parkinson's disease, which was the topic of the paper, but one can perform other comparisons with the same data. \end{document} ArrayExpress/man/0000755000175100017510000000000014614231214014773 5ustar00biocbuildbiocbuildArrayExpress/man/ae2bioc.Rd0000644000175100017510000000444014614231214016570 0ustar00biocbuildbiocbuild\name{ae2bioc} \alias{ae2bioc} \docType{data} \title{ Convert MAGE-TAB files from raw data into a Bioconductor object } \description{ \code{ae2bioc} converts local MAGE-TAB files into a AffyBatch, an ExpressionSet or a NChannelSet. } \usage{ ae2bioc(mageFiles, dataCols = NULL, drop = TRUE) } \arguments{ \item{mageFiles}{ A list as given from \code{\link[ArrayExpress]{getAE}} function. Containing the following elements: \describe{ \item{rawFiles}{all the expression files to use to create the object. The content of the raw.zip MAGE-TAB file.} \item{sdrf}{the name of the sdrf file from MAGE-TAB.} \item{idf}{the name of the idf file from MAGE-TAB.} \item{adf}{the name of the adf file from MAGE-TAB.} \item{path}{is the name of the directory containing these files.}}} \item{dataCols}{by default, the columns are automatically selected according to the scanner type. If the scanner is unknown or if the user wants to use different columns than the default, the argument 'dataCols' can be set. For two colour arrays it must be a list with the fields 'R', 'G', 'Rb' and 'Gb' giving the column names to be used for red and green foreground and background. For one colour arrays, it must be a character string with the column name to be used. These column names must correspond to existing column names of the expression files.} \item{drop}{ if TRUE and only one platform in series, the platform name will be dropped.} } \value{ An object of class \code{\link[affy:AffyBatch-class]{AffyBatch}}, \code{\link[Biobase:class.ExpressionSet]{ExpressionSet}} or \code{\link[Biobase:class.NChannelSet]{NChannelSet}} with the raw expression values in the 'assayData' of the object, the information contained in the sdrf file in the 'phenoData', the adf file content in the 'featureData' and the idf file content in the 'experimentData'. If several array designs are used in the dataset, the output is a list with an object for each array design. } \seealso{\code{\link[ArrayExpress]{ArrayExpress}}, \code{\link[ArrayExpress]{queryAE}}, \code{\link[ArrayExpress]{getAE}}} \author{ Ibrahim Emam Maintainer: Jose Marugan } \examples{ # An example can be found in the help of the getAE function. } \keyword{datasets} ArrayExpress/man/ArrayExpress.Rd0000644000175100017510000000512714614231214017717 0ustar00biocbuildbiocbuild\name{ArrayExpress} \alias{ArrayExpress} \docType{data} \title{ R objects from ArrayExpress collection } \description{ \code{ArrayExpress} produces an \code{\link[affy:AffyBatch-class]{AffyBatch}}, an \code{\link[Biobase:class.ExpressionSet]{ExpressionSet}} or a \code{\link[Biobase:class.NChannelSet]{NChannelSet}} from a raw dataset from the ArrayExpress collection of the Biostudies database. \code{ArrayExpress} needs an Internet connection. } \usage{ ArrayExpress(accession, path = tempdir(), save = FALSE, dataCols = NULL, drop = TRUE) } \arguments{ \item{accession}{ an ArrayExpress experiment identifier.} \item{path}{ the name of the directory in which the files downloaded on the ArrayExpress repository will be extracted. The default is the current directory.} \item{save}{ if TRUE, the files downloaded from the database will not be deleted from path after executing the function.} \item{dataCols}{ by default, for the raw data, the columns are automatically selected according to the scanner type. If the scanner is unknown or if the user wants to use different columns than the default, the argument 'dataCols' can be set. For two colour arrays it must be a list with the fields 'R', 'G', 'Rb' and 'Gb' giving the column names to be used for red and green foreground and background. For one colour arrays, it must be a character string with the column name to be used. These column names must correspond to existing column names of the expression files.} \item{drop}{ if TRUE and only one platform in series, the platform name will be dropped.} } \value{ The output is an object of class \code{\link[affy:AffyBatch-class]{AffyBatch}} or \code{\link[Biobase:class.ExpressionSet]{ExpressionSet}} or \code{\link[Biobase:class.NChannelSet]{NChannelSet}} with the raw expression values in the assayData of the object, the information contained in the .sdrf file in the phenoData, the adf file in the featureData and the idf file content in the experimentData. If several array designs are used in the data set, the output is a list with an object for each array design. } \seealso{ \code{\link[ArrayExpress]{queryAE}}, \code{\link[ArrayExpress]{getAE}}, \code{\link[ArrayExpress]{ae2bioc}}, \code{\link[ArrayExpress]{getcolproc}}, \code{\link[ArrayExpress]{procset}}} \author{ Audrey Kauffmann, Ibrahim Emam Maintainer: Jose Marugan } \examples{ ETABM25.affybatch = ArrayExpress("E-TABM-25") print(ETABM25.affybatch) sampleNames(ETABM25.affybatch) colnames(pData(ETABM25.affybatch)) } \keyword{datasets} ArrayExpress/man/extract.zip.Rd0000644000175100017510000000122314614231214017533 0ustar00biocbuildbiocbuild\name{extract.zip} \alias{extract.zip} \docType{data} \title{ Unzip archives in a specified directory } \description{ \code{extract.zip} extracts the files from a .zip archive in a specific directory. } \usage{ extract.zip(file, extractpath = dirname(file)[1]) } \arguments{ \item{file}{ A file name. } \item{extractpath}{ A path to define where the files are to be extracted. } } \value{ \code{ Success is indicated by returning the directory in which the files have been extracted. If it fails, it returns an empty character string. } } \author{ Audrey Kauffmann Maintainer: Jose Marugan } \keyword{datasets} ArrayExpress/man/getAE.Rd0000644000175100017510000000316114614231214016250 0ustar00biocbuildbiocbuild\name{getAE} \alias{getAE} \docType{data} \title{ Download MAGE-TAB files from the ArrayExpress collection in a specified directory } \description{ \code{getAE} downloads and extracts the MAGE-TAB files from an ArrayExpress dataset. } \usage{ getAE(accession, path = getwd(), type = "full", extract = TRUE, sourcedir = path, overwrite = FALSE) } \arguments{ \item{accession}{ is an ArrayExpress experiment identifier. } \item{path}{ is the name of the directory in which the files downloaded on the ArrayExpress repository will be extracted.} \item{type}{ can be 'raw' to download and extract only the raw data, 'processed' to download and extract only the processed data or 'full' to have both raw and processed data.} \item{extract}{ if FALSE, the files are not extracted from the zip archive.} \item{sourcedir}{ when local = TRUE, files will be read from this directory.} \item{overwrite}{ if TRUE, overwrite files if they already exist in path, default FALSE.} } \value{ \code{ A list with the names of the files that have been downloaded and extracted. } } \seealso{\code{\link[ArrayExpress]{ArrayExpress}}, \code{\link[ArrayExpress]{ae2bioc}}, \code{\link[ArrayExpress]{getcolproc}}, \code{\link[ArrayExpress]{procset}}} \author{ Ibrahim Emam, Audrey Kauffmann Maintainer: Jose Marugan } \examples{ mexp21 = getAE("E-MEXP-21", type = "full") ## Build a an ExpressionSet from the raw data MEXP21raw = ae2bioc(mageFiles = mexp21) ## Build a an ExpressionSet from the processed data cnames = getcolproc(mexp21) MEXP21proc = procset(mexp21, cnames[2]) } \keyword{datasets} ArrayExpress/man/getcolproc.Rd0000644000175100017510000000172114614231214017424 0ustar00biocbuildbiocbuild\name{getcolproc} \alias{getcolproc} \docType{data} \title{ Return the possible column names from processed MAGE-TAB files } \description{ \code{getcolproc} extracts the column names from processed MAGE-TAB and return them. The output is needed to call the function \code{procset}. } \usage{ getcolproc(files) } \arguments{ \item{files}{ A list as given from \code{\link[ArrayExpress]{getAE}} function. Containing the following elements: \describe{ \item{procfile}{procfile is the name of the processed MAGE-TAB file to be read.} \item{path}{is the name of the directory where to find this file.} } } } \seealso{\code{\link[ArrayExpress]{ArrayExpress}}, \code{\link[ArrayExpress]{queryAE}}, \code{\link[ArrayExpress]{getAE}}, \code{\link[ArrayExpress]{procset}}} \author{ Audrey Kauffmann Maintainer: Jose Marugan } %\examples{ %# An example can be found in the help of the getAE function. %} \keyword{datasets} ArrayExpress/man/getcolraw.Rd0000644000175100017510000000122614614231214017252 0ustar00biocbuildbiocbuild\name{getcolraw} \alias{getcolraw} \docType{data} \title{ Return the possible column names from raw MAGE-TAB files } \description{ \code{getcolraw} extracts the column names from raw MAGE-TAB and return them. The output can be use to set the argument 'rawcol' of the function \code{magetab2bioc}. } \usage{ getcolraw(rawfiles) } \arguments{ \item{rawfiles}{rawfiles are the name of the raw MAGE-TAB files to be read.} } \seealso{\code{\link[ArrayExpress]{ArrayExpress}}, \code{\link[ArrayExpress]{queryAE}}, \code{\link[ArrayExpress]{getAE}}} \author{ Audrey Kauffmann Maintainer: Jose Marugan } \keyword{datasets} ArrayExpress/man/procset.Rd0000644000175100017510000000163114614231214016742 0ustar00biocbuildbiocbuild\name{procset} \alias{procset} \docType{data} \title{ Convert processed MAGE-TAB files into a Bioconductor object} \description{ \code{procset} converts local MAGE-TAB files into an \code{\link[Biobase:class.ExpressionSet]{ExpressionSet}}. } \usage{ procset(files, procol) } \arguments{ \item{files}{ is the list with the names of the processed, the sdrf, the adf and the idf files and the path of the data as given by \code{\link[ArrayExpress]{getAE}}. } \item{procol}{ the name of the column to be extracted from the file. Obtained using \code{\link[ArrayExpress]{getcolproc}}.} } \seealso{\code{\link[ArrayExpress]{queryAE}}, \code{\link[ArrayExpress]{getAE}}, \code{\link[ArrayExpress]{getcolproc}}} \author{ Ibrahim Emam, Audrey Kauffmann Maintainer: Jose Marugan } \examples{ # An example can be found in the help of the getAE function. } \keyword{datasets} ArrayExpress/man/queryAE.Rd0000644000175100017510000000244614614231214016643 0ustar00biocbuildbiocbuild\name{queryAE} \alias{queryAE} \docType{data} \title{ Query of the ArrayExpress collection in Biostudies } \description{ \code{queryAE} queries the ArrayExpress collection with keywords and give a dataframe with ArrayExpress identifiers and related information, as an output. } \usage{ queryAE(keywords = NULL, species = NULL) } \arguments{ \item{keywords}{ the keyword(s) of interest. To use several words, they must be separated by a "+" as shown in the examples. } \item{species}{ the specie(s) of interest.} } \value{ \code{ A dataframe with all the ArrayExpress dataset identifiers which correspond to the query in the first column. The following columns contain information about these datasets, such as the number of files, the release date on the database, the title, the author and content.} } \seealso{\code{\link[ArrayExpress]{ArrayExpress}}, \code{\link[ArrayExpress]{getAE}}} \author{ Ibrahim Emam, Audrey Kauffmann Maintainer: Jose Marugan } \examples{ ## To retrieve all the identifiers of pneumonia data sets pneumo = queryAE(keywords = "pneumonia") ## To retrieve all the identifiers of pneumonia data sets studied in human pneumoHS = queryAE(keywords = "pneumonia", species = "homo+sapiens") } \keyword{datasets} ArrayExpress/NAMESPACE0000644000175100017510000000152114614231214015436 0ustar00biocbuildbiocbuildimportFrom("Biobase", "pData", "pData<-", "phenoData", "phenoData<-", "sampleNames", "sampleNames<-", "read.AnnotatedDataFrame", "varLabels", "exprs", "assayDataNew", "featureData", "featureData<-", "featureNames", "assayData") importFrom("limma", "read.maimages") importFrom("httr", "GET", "status_code", "content") importFrom("oligo", "read.celfiles") importFrom("utils","URLencode", "download.file", "read.delim", "read.table", "unzip", "write.table") importFrom("jsonlite", "fromJSON" ) importFrom("rlang", "is_empty" ) importFrom("tools", "file_ext" ) importFrom("methods", "new") export("ArrayExpress", "getAE", "queryAE", "ae2bioc", "getcolproc", "getcolraw", "procset", "extract.zip") ArrayExpress/NEWS0000644000175100017510000000016414614231214014720 0ustar00biocbuildbiocbuildCHANGES IN VERSION 1.58.0 ------------------------ o Update to access ArrayExpress Collection at BioStudies. ArrayExpress/R/0000755000175100017510000000000014614231214014421 5ustar00biocbuildbiocbuildArrayExpress/R/ae2bioc.r0000644000175100017510000001437314614231214016120 0ustar00biocbuildbiocbuild# A function that takes ArrayExpress MAGETAB files for a specific experiment and returns an equivalent R object representation (NChannelSet, ExpressionSet or AffyBatch) # # Author: iemam # Maintainer: Jose Marugan ############################################################################### ae2bioc = function(mageFiles, dataCols=NULL, drop=TRUE){ dataFiles <- NULL sdrf <- NULL idf <- NULL adf <- NULL path <- NULL dataFiles = lapply(mageFiles$rawArchive, function(x){ if (!is_empty(x)){ return(basename(x)) } }) if (!is_empty(mageFiles$mageTabFiles)){ sdrf = basename(mageFiles$mageTabFiles[grep(mageFiles$mageTabFiles, pattern = "sdrf.txt$")]) idf = basename(mageFiles$mageTabFiles[grep(mageFiles$mageTabFiles, pattern = "idf.txt$")]) } else{ stop("No SDRF file found.") } adf = mageFiles$adf path = mageFiles$path notuse = grep(dataFiles, pattern = "info.txt$|idf.txt$|processed|sdrf.txt$|.log$|RData|class|txt.magetab") if (length(notuse) != 0) dataFiles = dataFiles[-notuse] dataFiles = dataFiles[dataFiles != ""] allDataFiles = dataFiles; if(length(dataFiles)==0) stop("ArrayExpress: Experiment has no raw files available. Consider using processed data instead by following procedure in the vignette") #check for duplicates in sdrf sdrfData<-read.delim(paste(path,sdrf,sep='/'), check.names=FALSE) if(!'Array Data File' %in% colnames(sdrfData)){ stop("ArrayExpress: 'Array Data File' column not found in the SDRF file. Please make sure the assay is an array assay") } if(any(duplicated(sdrfData[, 'Array Data File']))){ message("Duplicates found in SDRF file") #remove duplicates based on Array Data Files and update SDRF sdrfData<-sdrfData[!duplicated(sdrfData[, 'Array Data File']), ] write.table(sdrfData, file=sdrf, row.names=FALSE, quote=FALSE, sep='\t') message("Removed duplicates in SDRF file") } #read sample annotations ph = readPhenoData(sdrf,path) if(inherits(ph, 'try-error')){ ph=NULL stop("ArrayExpress: Parsing SDRF failed. Please make sure SDRF file ",sdrf," exists in ",path, " and is not corrupt.") } fullPhenoData = ph; #Checks arrayDataCol = getSDRFcolumn("ArrayDataFile",varLabels(ph)) # labelCol = getSDRFcolumn("label",varLabels(ph)) #ArrayDesign REF in SDRF adr = unique(pData(ph)[,getSDRFcolumn("ArrayDesignREF",varLabels(ph))]) adr = adr[adr != ""] if(!all(dataFiles %in% ph[[arrayDataCol]])) warning("Some data files in the zip archive are missing from the SDRF. The object may not be built.") if(length(adr)>1) message("ArrayExpress: Experiment uses multiple Array Designs. A separate expressionSet will be created for each") if((length(adr) == 0 || is.na(adr)) && length(grep(".cel",dataFiles, ignore.case = TRUE)) != 0) warning("ArrayExpress: Cannot find the array design reference in the sdrf file. The object may not be built.") if((length(adr) == 0 || is.na(adr)) && length(grep(".cel",dataFiles, ignore.case = TRUE)) == 0) stop("ArrayExpress: Cannot find the array design reference in the sdrf file. The object cannot be built.") #list of return R objects robjs=list(); for (ad in adr){ #Subselect SDRF data for current ArrayDesign REF if(length(adr)>1){ res=getPhenoDataPerAD(ad,fullPhenoData,allDataFiles) dataFiles = unique(res$dataFiles) ph = res$pheno } #read data files green.only = isOneChannel(sdrf,path) rawdata= try(readAEdata(path = path,files = dataFiles,dataCols=dataCols,green.only=green.only)) if(inherits(rawdata, "try-error")) stop("ArrayExpress: Unable to read assay data") #read and match array feature metadata to raw data if(!inherits(rawdata,"FeatureSet")){ adfFile = adf[grep(ad,adf)] features= try(readFeatures(adf=adfFile,path=path)) if(inherits(features, "try-error")){ warning("ArrayExpress: Unable to read feature data") features = NULL; } } #read experiment meta data experimentData = try(readExperimentData(idf=idf,path=path)) if(inherits(experimentData, "try-error")){ warning("ArrayExpress: Unable to read experiment data"); experimentData = new("MIAME"); } #Finally build ExpressionSet #Attach pheno and feature data to oligo::FeatureSet if(inherits(rawdata,"FeatureSet")){ raweset=rawdata phenoData(raweset) = ph[sampleNames(rawdata)] } if(class(rawdata) == "RGList" | class(rawdata) == "EListRaw"){ #construct nchannelset if(class(rawdata) == "RGList"){ assayData = if("Rb" %in% names(rawdata)) #FIXME: keep all with(rawdata, assayDataNew(R = R, G = G, Rb = Rb, Gb = Gb)) #will not work if datacolumns where user specified else with(rawdata, assayDataNew(G = G, R = R)) raweset = new("NChannelSet", assayData = assayData, experimentData = experimentData) } #construct expressionSet if(class(rawdata) == "EListRaw"){ assayData = with(rawdata, assayDataNew(E = E, Eb = Eb)) raweset = new("NChannelSet", assayData = assayData, experimentData = experimentData) } #Attach pheno data if(!is.null(ph)){ #FIXME:? #imagene doesnt have targets slot ph = ph[rawdata$targets$FileName,] phenoData(raweset) = ph } #Attach features if(!is.null(rawdata$genes) && rawdata$source != "ae1"){ features2 = new("AnnotatedDataFrame",rawdata$genes) featureData(raweset) = features2; } else if(!is.null(features)) featureData(raweset) = features; #consistency of order between features in featureData and assayData is established via previous sorting of feature columns if(length(featureNames(assayData(raweset))) != length(featureNames(featureData(raweset)))) warning("Number of features in assayData and featureData are not equal. Check control features (NA) that might have been removed from either assayData or featureData."); } robjs[[ad]]=raweset } if(drop && length(robjs) == 1) robjs = robjs[[1]] return(robjs) } ArrayExpress/R/ArrayExpress.r0000644000175100017510000000125614614231214017240 0ustar00biocbuildbiocbuildArrayExpress = function(accession, path = tempdir(), save = FALSE, dataCols = NULL, drop = TRUE){ expFiles = getAE(accession, path = path, type = "full") raweset = try(ae2bioc(mageFiles = expFiles, dataCols = dataCols, drop=drop)) if(inherits(raweset, 'try-error')){ save = TRUE raweset = NULL } else{ if(!is.list(raweset)){ message(paste("\n",accession," was successfully loaded into ",class(raweset),"\n")) } else { message(paste("\n",accession," was successfully loaded into ",length(raweset)," ",unlist(lapply(raweset,function(x){class(x)})),"\n")) } } if(!save) on.exit(cleanupAE(expFiles)) return(raweset) }ArrayExpress/R/extract.zip.r0000644000175100017510000000140514614231214017057 0ustar00biocbuildbiocbuildextract.zip = function (file, extractpath = dirname(file)[1]) { topic = basename(file) path = dirname(file) if (file.exists(file.path(path, topic))){ lapply(1:length(file), function(i) unzip(zipfile = file.path(path[i], topic[i]), exdir = extractpath)) rc = lapply(1:length(file), function(i) unzip(zipfile = file.path(path[i], topic[i]), list = TRUE, exdir = extractpath)) if(length(rc) > 1) rc = do.call(c, sapply(1:length(file), function(i) as.character(rc[[i]][,1]))) else rc = as.character(rc[[1]][,1]) if(inherits(rc,"try-error")) stop("Cannot extract the files the downloaded archive. Please install unzip on your machine") }else stop(sprintf("%s does not exist",file.path(path, topic))) return(rc) } ArrayExpress/R/getAE.r0000644000175100017510000001451114614231214015573 0ustar00biocbuildbiocbuildget_request <-function(url){ qr = URLencode(url) response <- GET( qr ) if(status_code(response) != 200) { stop( paste( "Error running query. Received HTTP error code", status_code(response), "from server. Please try again later. If you continue to experience problems please contact us at https://www.ebi.ac.uk/about/contact/support/arrayexpress" ) ) } json_parsed <- fromJSON(txt = qr) return(json_parsed) } download_file <- function(url, filedest, overwrite){ if (file.exists(filedest) && overwrite == FALSE){ message(paste(filedest, ' already exists, skipping.', sep ="")) retVal <- filedest } else{ dnld = try(download.file(url, filedest)) if(inherits(dnld, 'try-error') || file.info(filedest)$size == 0) { retVal <- NULL } else { retVal <- filedest } } return(retVal) } get_filenames <-function(jsonData, ftpUrl, type){ subsections = jsonData$section$subsections fileNames = data.frame(matrix(ncol = 3, nrow = 0)) colnames(fileNames) <- c("type", "file", "url") for (s in subsections) { if (s$type[1] == "Assays and Data"){ data_files = s$subsections break } } for (row in 1:nrow(data_files)){ file_type = data_files[row, "type"] files=data_files[row, "files"] for (i in files){ if (is.data.frame(i)){ df=i } else{ for (n in i){ df=n } } } for(f in df$path){ if (file_type %in% c("Processed Data","MAGE-TAB Files", "Raw Data")) { fileNames[nrow(fileNames) + 1,] = c(file_type, f, paste(ftpUrl,"Files",f,sep="/")) } } if (file_type == "Array Designs"){ for (i in data_files[row, "links"]){ for (n in i){ adf_accession = n$url if(!is_empty(adf_accession)){ adf_name = paste(adf_accession, "adf","txt", sep=".") adf_link = paste("https://www.ebi.ac.uk/biostudies/files", adf_accession, adf_name, sep="/") fileNames[nrow(fileNames) + 1,] = c(file_type, adf_name, adf_link) } } } } } if (tolower(type)=='raw' || tolower(type) == 'full'){ enaAccession <- NULL jsonLinks = unlist(jsonData$section$links) if(!is_empty(jsonLinks)){ if (toupper(jsonLinks['attributes.value']) == 'ENA'){ enaAccession = jsonLinks['url'] } } if (!is_empty(enaAccession)){ enaUrl=paste("https://www.ebi.ac.uk/ena/portal/api/filereport?accession=",enaAccession,"&download=false&fields=fastq_ftp&format=json&limit=0&result=read_run", sep="") enaData= get_request(enaUrl) for(i in 1:nrow(enaData)) { ftpLikns = strsplit(enaData[i, "fastq_ftp"], split = ";") for (enaFileLinkList in ftpLikns){ for (enaFileLink in enaFileLinkList){ enaFileName = sub(".*/", "", enaFileLink) fileNames[nrow(fileNames) + 1,] = c("Raw Data", enaFileName, paste("ftp:", enaFileLink, sep="//")) } } } } if (tolower(type)=='raw'){ fileNames= fileNames[fileNames$type == "Raw Data", ] } } else if (tolower(type)=='processed'){ fileNames= fileNames[fileNames$type == "Processed Data", ] } else if (tolower(type)=='mage'){ fileNames= fileNames[fileNames$type == "MAGE-TAB Files", ] } return(fileNames) } getAE = function (accession, path = getwd(), type = "full", extract = TRUE, sourcedir=path, overwrite = FALSE) { typeOptions <- c("raw", "full", "processed", "mage") if (!tolower(type) %in% typeOptions){ print(paste("Option'",type,"is not a valid option for parameter 'type'", sep=" ")) return() } baseURL = "https://www.ebi.ac.uk/biostudies/api/v1/studies" httpURL = paste(baseURL, accession, sep="/") submissionMetaData = get_request(httpURL) infoURL = paste(baseURL, accession, "info", sep="/") infoData = get_request(infoURL) ftpLink = infoData$ftpLink allFileNames = get_filenames(submissionMetaData, ftpLink, type) #Download files rawArchive <- NULL processedArchive <- NULL mageTabFiles <- NULL adfFiles <- NULL for (row_file in 1:nrow(allFileNames)){ filedest = paste(path,allFileNames[row_file,"file"],sep="/") url = allFileNames[row_file,"url"] message(paste("Downloading file: ", allFileNames[row_file,"file"], "\n", sep="")) file_ok <- download_file(url, filedest, overwrite) if (is.null(file_ok)){ warning(paste(url, " does not exist or is empty. \n"),sep="") } else{ if (allFileNames[row_file,"type"] == 'Raw Data'){ rawArchive <- c(rawArchive, file_ok) } else if(allFileNames[row_file,"type"] == 'MAGE-TAB Files'){ mageTabFiles <- c(mageTabFiles, file_ok) } else if(allFileNames[row_file,"type"] == 'Processed Data'){ processedArchive <- c(processedArchive, file_ok) } else if(allFileNames[row_file,"type"] == 'Array Designs'){ adfFiles <- c(adfFiles, file_ok) } } } rawFiles = NULL processedFiles = NULL if(extract){ message("Unpacking data files") if(!is.null(rawArchive)) rawFiles<-lapply(rawArchive, function(zipfile){ rFiles = zipfile if (file_ext(zipfile) == "zip"){ rFiles = extract.zip(file = zipfile) } return(rFiles) }) if(!is.null(processedArchive)) processedFiles<-lapply(processedArchive, function(zipfile){ procFiles = zipfile if (file_ext(zipfile) == "zip"){ procFiles = extract.zip(file = zipfile) } return(procFiles) }) if(!is.null(rawFiles)) rawFiles = unlist(rawFiles) if(!is.null(processedFiles)) processedFiles = unlist(processedFiles) } sdrfFile <- NULL idfFile <- NULL if (!is_empty(mageTabFiles)){ sdrfFile = mageTabFiles[grep(mageTabFiles, pattern = "sdrf.txt$")] idfFile = mageTabFiles[grep(mageTabFiles, pattern = "idf.txt$")] } res = list(path = path, rawFiles = rawFiles, rawArchive = rawArchive, processedFiles = processedFiles, processedArchive = processedArchive, mageTabFiles = mageTabFiles, sdrf = sdrfFile, idf = idfFile, adf = adfFiles, dataFiles = allFileNames) return(res) }ArrayExpress/R/getcolproc.r0000644000175100017510000000151314614231214016745 0ustar00biocbuildbiocbuildgetcolproc = function(files){ path = paste(files$path, "/", sep="") procfile = files$processedArchive[1] ph = try(read.AnnotatedDataFrame(basename(files$sdrf), path = path, row.names = NULL, blank.lines.skip = TRUE, fill = TRUE, varMetadata.char = "$", quote="\"")) derivedMatrixCol = getSDRFcolumn("DerivedArrayMatrix",varLabels(ph)) derivedFileCol = getSDRFcolumn("DerivedArrayFile",varLabels(ph)) if(length(derivedMatrixCol) != 0) skiplines = 1 else if(length(derivedFileCol) != 0) skiplines = 0 else warning("Unable to find Derived Data column in SDRF") coln = scan(file.path(procfile),what = "",nlines = 1, skip = skiplines, sep = "\t") return(unique(coln)) } getcolraw = function(rawfiles){ rawfile = rawfiles[1] coln = scan(file.path(rawfile),what = "",nlines = 1, sep = "\t") return(coln) }ArrayExpress/R/parseMAGE.r0000644000175100017510000005310314614231214016352 0ustar00biocbuildbiocbuild# TODO: Add comment # # Author: iemam ############################################################################### headers<-list( ae1=c("metaColumn","metaRow","row","column"), genepix=c("Block","Column","Row","X","Y"), arrayvision=c("Primary","Secondary"), agilent=c("Row","Col","PositionX","PositionY"), scanalyze=c("GRID","COL","ROW","LEFT","TOP","RIGHT","BOT"), scanarray=c('Array Column','Array Row','Spot Column','Spot Row','X','Y'), quantarray=c('Array Column', 'Array Row', 'Column', 'Row'), spotfinder=c("MC","MR","SC","SR","C","R"), mev=c("MC","MR","C","R","UID"), codelink=c("Logical_row","Logical_col","Center_X","Center_Y"), bluefuse=c("COL","ROW","SUBGRIDCOL","SUBGRIDROW"), UCSFSpot=c("Arr-colx","Arr-rowy","Spot-colx","Spot-rowy"), NimbleScanFeature=c("X","Y","PROBE_ID","X_PIXEL","Y_PIXEL"), NimblegenNASA=c("X_BC","Y_BC","Feature_ID","ProbID_BC"), imagene=c('Meta Column', 'Meta Row', 'Column', 'Row', 'Field', 'Gene ID'), ImaGene3=c("Meta_col","Meta_row","Sub_col","Sub_row","Name","Selected"), ImaGene7=c("Block","Column","Row","Ch1 XCoord","Ch1 YCoord", "Ch2 XCoord", "Ch2 YCoord"), ImaGeneFields=c("Field","Column","Row","XCoord","YCoord"), CSIRO_Spot=c("grid_c","grid_r","spot_c","spot_r","indexs") #add illumina ) isOneChannel = function(sdrf,path){ ph = try(read.AnnotatedDataFrame(sdrf, path = path, row.names = NULL, blank.lines.skip = TRUE, fill = TRUE, varMetadata.char = "$", quote="\"")) labelCol = getSDRFcolumn("label",varLabels(ph)) if(length(labelCol)==0) return(TRUE) # assume 1-color if no label reported - we warn the user in readPhenoData else return(length(unique(tolower(ph[[labelCol]])))==1) } readPhenoData = function(sdrf,path){ message("ArrayExpress: Reading pheno data from SDRF") ph = try(read.AnnotatedDataFrame(sdrf, path = path, row.names = NULL, blank.lines.skip = TRUE, fill = TRUE, varMetadata.char = "$", quote="\"")) arrayDataCol = getSDRFcolumn("ArrayDataFile",varLabels(ph)) labelCol = getSDRFcolumn("label",varLabels(ph)) if(length(arrayDataCol)==0) warning("ArrayExpress: Cannot find 'Array Data File' column in SDRF. Object might not be created correctly.") if(length(labelCol)==0) warning("ArrayExpress: Cannot find 'Label' column in SDRF. Object might not be created correctly.") ph = ph[gsub(" ", "", ph$Array.Data.File) != ""] sampleNames(ph) = ph$Array.Data.File ph@varMetadata['Array.Data.File','labelDescription'] = "Index" ph@varMetadata['Array.Data.File','channel'] = as.factor("_ALL_") #Remove empty rows from pheno data emptylines = which(sapply(seq_len(nrow(pData(ph))), function(i) all(pData(ph)[i,] == "",na.rm = TRUE))) if(length(emptylines) != 0) pData(ph) = pData(ph)[-emptylines,] phenoData = pData(ph) if(length(arrayDataCol)!=0 && length(labelCol)!=0){ #filter out duplicated rows where multiple derived data files are available per one array data file ph=ph[!duplicated(phenoData[,c(arrayDataCol,labelCol)])] } #treat SDRF for two channel experiments if(length(labelCol)==1 && length(unique(tolower(ph[[labelCol]])))==2){ arrayFilesNum = length(unique(ph[[arrayDataCol]])) si = pData(ph)[1:(arrayFilesNum*2),] lab = split(si,si[,"Label"]) if(nrow(lab[[1]]) != nrow(lab[[2]])){ stop("Number of CY3/CY5 is not equal") } #Reorder rows in each group (Cy3,Cy5) to the same order lab[[1]] = lab[[1]][order(lab[[1]][,arrayDataCol]),] lab[[2]] = lab[[2]][order(lab[[2]][,arrayDataCol]),] same = which(lapply(1:ncol(lab[[1]]), function(i) all(lab[[1]][i] == lab[[2]][i])) == TRUE) all = lab[[1]][same] gspe = lab[[1]][-same] colnames(gspe) = paste(colnames(gspe),names(lab)[1],sep = ".") rspe = lab[[2]][-same] colnames(rspe) = paste(colnames(rspe),names(lab)[2],sep = ".") metaData = data.frame(labelDescription = c(rep("_ALL_",ncol(all)),rep("G",ncol(gspe)),rep("R",ncol(rspe)))) ph = new("AnnotatedDataFrame", data = cbind(all,gspe,rspe), varMetadata = metaData) arrayDataCol = getSDRFcolumn("ArrayDataFile",varLabels(ph)) rownames(pData(ph)) = gsub(".[a-z][a-z][a-z]$","",ph[[arrayDataCol]],ignore.case=T) } # if(!all(basename(files) %in% pData(ph)[,getSDRFcolumn("ArrayDataFile",varLabels(ph))])) # warning("Some data files in the zip archive are missing from the SDRF. The object may not be built.") return(ph) } readAEdata = function(path,files,dataCols,green.only){ message("ArrayExpress: Reading data files") source = getDataFormat(path,files) #process extra arguments passed to read.maimages # if (!is.null(dataCols)) { # if (length(rawcol) > 1 && !is(rawcol, "list")) # stop("The argument 'rawcol' must be a list if multiple column name are given.") # if (length(rawcol) == 1 && !is(rawcol, "character")) # stop("The argument 'rawcol' must be a character if one column name is given.") # if (is(rawcol, "list") && !("R" %in% names(rawcol) && "G" %in% names(rawcol))) # stop("The names of the columns must contain R and G.") # } if(source == "affy"){ if (.Platform$OS.type == "windows"){ rawdata = try(oligo::read.celfiles(filenames = file.path(path,unique(files), fsep='\\'))) } else{ rawdata = try(oligo::read.celfiles(filenames = file.path(path,unique(files)))) } if(inherits(rawdata, 'try-error')){ stop("Unable to read cel files in ",path) } return(rawdata) }else if(source=="ae1"){ #Old AE1 formatted data files if (is.null(dataCols)){ dataCols= try(getDataColsForAE1(path,files)) if(inherits(dataCols,'try-error')) return() } rawdata = try(read.maimages(files=files,path=path,source="generic",columns=dataCols,annotation=headers$ae1)) if(!inherits(rawdata, 'try-error')) rawdata$source="ae1" }else if(source %in% c("agilent","arrayvision","bluefuse","genepix","bluefuse","imagene","quantarray")){ #data format can be directly read by limma rawdata = try(read.maimages(files=files,path=path,source=source,columns=dataCols,green.only=green.only)) }else if(!is.null(dataCols) && source=="unknown"){ #read generic source given columns specified by user rawdata = try(read.maimages(files=files,path=path,source="generic",columns=dataCols,green.only=green.only)) }else # TODO: add more formats (illumina) stop("Unable to recognize data file format") if(inherits(rawdata, 'try-error')){ stop("Unable to read data files in",path) } #reorder rows of RGList to reflect the same order in ADF as Block Row/Block Column/Row/Column if(is.null(rawdata$genes)) stop("Unable to read probe annotation from RGList") if(is.null(rawdata$source)) stop("Unable to read source from RGList") rawdata<-switch(source, agilent = rawdata<-rawdata[with(rawdata$genes,order(Row,Col)),], genepix = rawdata<-rawdata[with(rawdata$genes,order(Block,Row,Column)),], ae1 = rawdata<-rawdata[with(rawdata$genes,order(metaRow,metaColumn,row,column)),], rawdata) #if generic user has to specify feature columns in data return(rawdata) } readFeatures<-function(adf,path,procADFref=NULL){ message("ArrayExpress: Reading feature metadata from ADF") lines2skip = skipADFheader(adf,path,!is.null(procADFref)) features = try(read.table(file.path(path, adf), row.names = NULL, blank.lines.skip = TRUE, fill = TRUE, sep="\t", na.strings=c('?','NA'), skip = lines2skip, header=TRUE, quote="")) if('Block.Column' %in% colnames(features) & 'Reporter.Name' %in% colnames(features)){ ommittedRows = which(is.na(features[,'Block.Column']) | is.na(features[,'Reporter.Name'])) if(length(ommittedRows)!=0){ message("ArrayExpress: Ommitting NA rows from ADF") features = features[-ommittedRows,] } } if(!is.null(procADFref)){ if(procADFref %in% colnames(features)) rownames(features) = features[,procADFref] else{ repCol = getSDRFcolumn("reporter",colnames(features)) if(length(repCol) != 0) repCol= repCol[1] else repCol = getSDRFcolumn("composite",colnames(features)) if(length(repCol) != 0) repCol = repCol[1] else repCol = NULL if(!is.null(repCol)) rownames(features) = features[[repCol]] } } #Sort ADF features by columns Block row/Block column/Row/Column (only applicable for raw data exps, processed data is ordered by reporter/composite name) if("Block.Row" %in% colnames(features)) features = features[with(features,order(Block.Row,Block.Column,Row,Column)),] #Row names of featureData must match row names of the matrix / matricies in assayData # ri1 = grep("reporter.identifier|reporter.name", colnames(adff), ignore.case=TRUE) # ri2 = grep("reporter.identifier|reporter.name", colnames(fn), ignore.case=TRUE) # if(all(adff2[,ri1] == fn[,ri2])) # featureData(eset) = new("AnnotatedDataFrame",adff2) # else stop("Do not manage to map the reporter identifier between the annotation and the data files.\n") return(new("AnnotatedDataFrame",features)) } ## Assign experiment Data ## By Juok Cho readExperimentData = function(idf, path){ idffile = scan(file.path(path,idf),character(),sep = "\n",encoding="UTF-8") idf.data = list() for(g in idffile) { e = unlist(strsplit(g,"\t")) key = e[1] if(length(e)>1) values = e[2:length(e)] else values = NA idf.data[[key]] = values } ## making key matches # ## (Person Last Name, Person First Name, Person Mid Initials), Person Email, Person Phone, Person Address, Person Affiliation, Person_Name = c(idf.data$"Person First Name", idf.data$"Person Last Name",idf.data$"Person Mid Initials") Personal_contact = c(idf.data$"Person Email", idf.data$"Person Phone", idf.data$"Person Address") ## making experimentData object # SubmitterIndex = which(idf.data$"Person Roles"=="submitter") experimentData = new("MIAME", name = as.character(paste(idf.data$"Person Last Name"[SubmitterIndex],", ",idf.data$"Person First Name"[SubmitterIndex], sep = "")), #performer lab = as.character(idf.data$"Person Affiliation"[SubmitterIndex]) , #Person Affiliation contact = as.character(idf.data$"Person Email"[SubmitterIndex]), # Person Email(Person Phone, Person Address) title = as.character(idf.data$"Investigation Title") , #description #Investigation Title ##abstract= "", #not provided in the idf.data ##url = "", other = list( accession = gsub(".sdrf.txt","",idf.data$"SDRF File"), #Experiment Name identifier = gsub(".sdrf.txt","",idf.data$"SDRF File"), #Experiment Name ##Experimental Factor Type experimentalFactor = c(idf.data$"Experimental Factor Type"), ##Experimental Design type = c(idf.data$"Experimental Design") #measurementType = experimentData(eset)@other$measurementType #from processed data.zip depending on user answer about QT type ) ) #experimentData(eset) = experimentData return(experimentData) } skipADFheader<-function(adf,path,proc=F){ if(!proc) columns = list('Block Column','Block Row','Column','Row') else columns = list('Composite Element Name') con = file(file.path(path, adf), "r") on.exit(close(con)) Found = FALSE i = 0 repeat { i = i+1 txt <- readLines(con,n=1) if(!length(txt)) stop("Failed to recognize ADF file format") Found = TRUE for(a in columns) Found = Found && length(grep(a,txt)) Found2 = length(grep("^Reporter[[:punct:]|[:blank:]]*Name",txt,ignore.case=TRUE)) if(Found || Found2) break } return(i-1) } getPhenoDataPerAD<-function(ad,ph,dataFiles){ phenoData = pData(ph) arrayDataCol = getSDRFcolumn("ArrayDataFile",varLabels(ph)) arrayDesignRefCol = getSDRFcolumn("ArrayDesignREF",varLabels(ph)) if(length(arrayDataCol)==0) stop("Cannot find 'Array.Data.File' column in SDRF. Experiment uses multiple array designs. Cannot distinguish arrays with similar array design.") if(length(arrayDesignRefCol)==0) stop("Cannot find 'Array.Design.REF' column in SDRF. Experiment uses multiple array designs. Cannot distinguish arrays with similar array design.") if(length(phenoData[phenoData[arrayDesignRefCol]==ad,arrayDataCol]) == 0) stop("Cannot find array data file names in the sdrf file. Experiment uses multiple array designs. Cannot distinguish arrays with similar array design.") #Subselect data files for current ArrayDesign REF selectFiles = phenoData[phenoData[arrayDesignRefCol]==ad,arrayDataCol] if(!all(selectFiles %in% dataFiles)){ stop("Some or all data files for ",ad," array are missing.") } #subselect phenoData Frame for files ph = ph[phenoData[arrayDesignRefCol]==ad] phenoData = pData(ph) return(list(pheno=ph,dataFiles=selectFiles)) } getDataFormat=function(path,files){ if(length(grep(".cel",files, ignore.case = TRUE)) == length(files)){ return("affy") } else{ #Retrieve Column names from first data file allcnames = scan(file.path(path,files[1]),what = "",nlines = 200, sep = "\t",quiet=TRUE) allcnamesL = try(tolower(gsub("^\\s","",allcnames)),silent=TRUE) if(inherits(allcnamesL, 'try-error')){ allcnames = scan(file.path(path,files[1]),what = "",nlines = 200, sep = "\t",quiet=TRUE,encoding="latin1") allcnamesL = try(tolower(gsub("^\\s","",allcnames))) if(inherits(allcnamesL, 'try-error')){ allcnamesL = allcnames } } #Find source of data for(source in names(headers)){ allthere<-tolower(headers[[source]]) %in% allcnamesL if(all(allthere)) return(source) } } #Unable to detect source allcnames = scan(file.path(path,files[1]),what = "",nlines = 1, sep = "\n",quiet=TRUE) return("unknown") #stop("Unable to recognize data file format. First line:\n",allcnames) } getDataColsForAE1 = function(path,files){ url2 = "http://sourceforge.net/p/tab2mage/code/HEAD/tree/trunk/Tab2MAGE/lib/ArrayExpress/Datafile/QT_list.txt?format=raw" qt = try(read.table(url2, sep = "\t", quote = "", check.names = FALSE, fill = TRUE, comment.char = "#", stringsAsFactors = FALSE, encoding = "UTF-8")) ##read the QT file from the web if(inherits(qt, "try-error")) qt = try(read.table( file.path(system.file("doc", package = "ArrayExpress"),"QT_list.txt"), sep = "\t", quote = "", check.names = FALSE, fill = TRUE, comment.char = "#", stringsAsFactors = FALSE, encoding = "UTF-8")) ##read the QT file from the package scanners = grep(">>>",qt[,1],value = TRUE) ## list all the scanner names sl = grep(">>>",qt[,1]) ## list all the line numbers wherea scanner type starts scanners = gsub(">","",scanners) ## Parsing the first line of the expression file allcnames = scan(file.path(path,files[1]),what = "",nlines = 1, sep = "\t",quiet=TRUE) ## Looking for the right column to use scanname = allcnames[grep(":",allcnames)] if(length(grep("Database|Reporter",scanname)) != 0) scanname = scanname[-grep("Database|Reporter",scanname)] ##Feature is a problem because of Feature Extraction feature = grep("^Feature^",scanname) fe = grep("Feature Extraction",scanname) if(length(feature) != 0) scanname = scanname[-feature[!feature %in% fe]] ##Ready to read data if(length(scanname) == 0) stop(sprintf("No scanner name is given. It is not possible to handle such a case. Try to set the argument 'dataCols' by choosing among the following columns names: \n") , sprintf("\"%s\" \n",allcnames)) ##Image Analysis Program software = unique(sapply(seq_len(length(scanname)), function(i) strsplit(scanname,":")[[i]][1])) st = NULL for(x in software){ if(length(grep(x, scanners)) != 0){ st = x break } } #if(length(grep(st, scanners)) == 0) if(is.null(st)) stop(sprintf("Scanner name is, ",software,". This scanner type is not valid. \nTry to set the argument 'dataCols' by choosing among the following columns names: \n", st),sprintf("\"%s\" \n",scanname)) if(length(st) != 1) stop(sprintf("%s scanner names are given ( ",length(st)), sprintf("\"%s\" ",st), sprintf("). It is not possible to handle such a case. Try to set the argument 'dataCols' by choosing among the following columns names: \n") ,sprintf("\"%s\" \n",scanname)) if(length(grep(st, scanners)) > 1) stop(sprintf("Scanner name can be '%s'. \nTry to set the argument 'dataCols' by choosing among the following columns names: \n", scanners[grep(st, scanners)]),sprintf("\"%s\" \n",scanname)) gs = qt[((sl[grep(st,scanners)]+1):(sl[grep(st,scanners)+1]-1)),] ## extract the QTs of the specific scanner type foreground = gs[(gs[,4] == "MeasuredSignal" & (is.na(gs[,5]) | gs[,5] == 0)),c(1,7)] ## the colnames to use in the read.column background = gs[(gs[,4] == "MeasuredSignal" & (gs[,5] == 1)),c(1,7)] ## the colnames to use in the read.column foreground[,1] = paste(st,":",foreground[,1],sep = "") colnamesf = foreground[which(foreground[,1] %in% allcnames),] df = dim(colnamesf) if(dim(background)[1] != 0){ background[,1] = paste(st,":",background[,1],sep = "") colnamesb = background[which(background[,1] %in% allcnames),] db = dim(colnamesb) }else db = 0 if(length(files) != 1){ if(!all(sapply(2:length(files), function(i) readLines(file.path(path,files[1]),1) == readLines(file.path(path,files[i]),1)))) warning(sprintf("The files do not all have the same headings whereas the array design is the same. It may cause the object not being created.")) } #Two channel data if(df[1] == 2){ rawcol = if(db[1] == 2) list(R = colnamesf[colnamesf[,2] == "Cy5",1], G = colnamesf[colnamesf[,2] == "Cy3",1], Rb = colnamesb[colnamesb[,2] == "Cy5",1], Gb = colnamesb[colnamesb[,2] == "Cy3",1]) else list(R = colnamesf[colnamesf[,2] == "Cy5",1], G = colnamesf[colnamesf[,2] == "Cy3",1]) if(length(rawcol) == 0 || (0 %in% sapply(seq_len(length(rawcol)), function(i) length(rawcol[[i]])))) stop(sprintf("The known column names for this scanner are not in the heading of the files.\nTry to set the argument 'rawcol' by choosing among the following columns names: \n"), sprintf("\"%s\" \n",scanname)) } ## one channel data if(df[1] == 1){ rawcol = if(db != 0) list(G = colnamesf[,1], Gb = colnamesb[,1]) else list(G = colnamesf[,1]) } if(df[1] == 0) stop(sprintf("None of the columns names of the expression files is matching a valid known quantitation type.\nTry to set the argument 'rawcol' by choosing among the following columns names: \n"), sprintf("\"%s\" \n",scanname)) if(df[1] > 2) stop(sprintf("There are too many columns that could be read in the files.\n Try to set the argument 'rawcol' by choosing among the following columns names: \n"),sprintf("\"%s\" \n",scanname)) return(rawcol) } ## assign phenoData to Nchannelset preparePhenoDataFor2channel = function(ph,files){ #if(length(unique(tolower(ph[[labelCol]])))==2){ arrayFilesNum = length(unique(ph[[arrayDataCol]])) si = pData(ph)[1:(arrayFilesNum*2),] lab = split(si,si[,"Label"]) if(nrow(lab[[1]]) != nrow(lab[[2]])){ stop("Number of CY3/CY5 is not equal") } #Reorder rows in each group (Cy3,Cy5) to the same order lab[[1]] = lab[[1]][order(lab[[1]][,arrayDataCol]),] lab[[2]] = lab[[2]][order(lab[[2]][,arrayDataCol]),] same = which(lapply(1:ncol(lab[[1]]), function(i) all(lab[[1]][i] == lab[[2]][i])) == TRUE) all = lab[[1]][same] gspe = lab[[1]][-same] colnames(gspe) = paste(colnames(gspe),names(lab)[1],sep = ".") rspe = lab[[2]][-same] colnames(rspe) = paste(colnames(rspe),names(lab)[2],sep = ".") metaData = data.frame(labelDescription = c(rep("_ALL_",ncol(all)),rep("G",ncol(gspe)),rep("R",ncol(rspe)))) ph = new("AnnotatedDataFrame", data = cbind(all,gspe,rspe), varMetadata = metaData) arrayDataCol = getSDRFcolumn("ArrayDataFile",varLabels(ph)) rownames(pData(ph)) = gsub(".[a-z][a-z][a-z]$","",ph[[arrayDataCol]],ignore.case=T) #} return(ph) } getSDRFcolumn = function(col,headers){ pattern<-switch(col, ArrayDataFile = "^Array[[:punct:]|[:blank:]]*Data[[:punct:]|[:blank:]]*File", ArrayDesignREF = "^Array[[:punct:]|[:blank:]]*Design[[:punct:]|[:blank:]]*REF", ArrayDataMatrixFile = "^Array[[:punct:]|[:blank:]]*Data[[:punct:]|[:blank:]]*Matrix[[:punct:]|[:blank:]]*File", label = "^Label$", factorValues = "^Factor[[:punct:]|[:blank:]]*Value", DerivedArrayMatrix = "^Derived[[:punct:]|[:blank:]]*Array[[:punct:]|[:blank:]]*Data[[:punct:]|[:blank:]]*Matrix[[:punct:]|[:blank:]]*File", DerivedArrayFile = "^Derived[[:punct:]|[:blank:]]*Array[[:punct:]|[:blank:]]*Data[[:punct:]|[:blank:]]*File", reporter = "^Reporter[[:punct:]|[:blank:]]*[Name | Identifier]", composite = "^Composite[[:punct:]|[:blank:]]*Element[[:punct:]|[:blank:]]*[Name | Identifier]") colIndex = grep(pattern,headers,ignore.case = TRUE) return(colIndex) } ## remove all downloaded files cleanupAE = function(mageFiles){ path = mageFiles$path if (.Platform$OS.type == "windows"){ sep = '\\' } else{ sep = '/' } try(file.remove(file.path(path, basename(mageFiles$rawFiles), fsep = sep))) try(file.remove(file.path(path, basename(mageFiles$processedFiles), fsep = sep))) try(file.remove(file.path(path, basename(mageFiles$sdrf), fsep = sep))) try(file.remove(file.path(path, basename(mageFiles$idf), fsep = sep))) try(file.remove(file.path(path, basename(mageFiles$adf), fsep = sep))) try(file.remove(file.path(path, basename(mageFiles$rawArchive), fsep = sep))) try(file.remove(file.path(path, basename(mageFiles$processedArchive), fsep = sep))) } ArrayExpress/R/procset.r0000644000175100017510000001625414614231214016273 0ustar00biocbuildbiocbuildprocset = function(files, procol){ stopifnot(length(procol)==1) with(files, { #ph = try(read.AnnotatedDataFrame(sdrf, path = path, row.names = NULL, blank.lines.skip = TRUE, fill = TRUE, varMetadata.char = "$", quote="\"")) #Read SDRF sdrf = basename(sdrf) samples = readPhenoData(sdrf,path); if(!inherits(samples, 'try-error')){ derivedMatrixCol = getSDRFcolumn("DerivedArrayMatrix",varLabels(samples)) derivedFileCol = getSDRFcolumn("DerivedArrayFile",varLabels(samples)) } else warning("Unable to read SDRF") if(length(processedFiles) > 1 && length(derivedFileCol) != 0){ #stop("The processed files contain different numbers/subsets of reporters and cannot be automatically assembled.") # READ individual files for each assay proceset = readDerivedDataFiles(basename(processedFiles),procol,path) assayCol = derivedFileCol ADFrefCol = "Reporter.Name" } else if(length(processedFiles) == 1 && length(derivedMatrixCol) != 0){ #Read Processed data file res = readDerivedDataMatrixFile(basename(processedFiles),procol,path) proceset = res$proceset assayREF = res$assayREF assayCol = grep(assayREF,varLabels(samples)) ADFrefCol = res$ADFrefCol } else stop("Unable to read processed data") #attach sample data dataSamples = gsub("\\.[a-z][a-z][a-z]$","",sampleNames(proceset),ignore.case=T) SDRFsamples = gsub("\\.[a-z][a-z][a-z]$","",pData(samples)[[assayCol]]) if(all(dataSamples %in% SDRFsamples)){ #if(all(dataSamples %in% rownames(pData(samples)))){ rownames(pData(samples)) = SDRFsamples samples = samples[dataSamples,] #Reorder samples in phenoData to match those in data phenoData(proceset) = samples } else warning("Cannot attach phenoData") #read and attach feature data features= try(readFeatures(adf=basename(adf),path=path, procADFref=ADFrefCol)) if(inherits(features, "try-error")){ warning("ArrayExpress: Unable to attach feature data") }else{ if(all(featureNames(proceset) %in% featureNames(features))){ features = features[featureNames(proceset),] featureData(proceset) = features } else warning("Cannot attach feature data") } #read and attach experiment meta data experimentData = try(readExperimentData(idf=basename(idf),path=path)) if(inherits(experimentData, "try-error")){ warning("ArrayExpress: Unable to read experiment data"); experimentData = new("MIAME"); } experimentData(proceset) = experimentData; if(!validObject(proceset)) warning(validObject(proceset)) else message(paste("\n",gsub(".sdrf.txt","",basename(sdrf))," processed data was successfully loaded into ",class(proceset),"\n")) return(proceset) }) ## with } readDerivedDataFiles = function(processedFiles,procol,path){ for(procFile in processedFiles){ cat("Reading processed File: ",procFile,"\n") procData <- try(read.table(file.path(path, basename(procFile)), sep = "\t", header = TRUE, # interpret header row.names = 1, # header located in line 1 stringsAsFactors = FALSE, na.strings = c('NA','NULL','null'))); procsel = matrix(as.numeric(as.matrix(procData[, procol == colnames(procData)])), nrow = nrow(procData)) if(grep(procFile,processedFiles) == 1){ E = matrix(procsel) rownames(E) = rownames(procData) }else E = cbind(E,procsel) } ###TEMP### colnames(E) = gsub("\\.txt","",processedFiles) ########## proceset = new("ExpressionSet", exprs = E) return(proceset) } readDerivedDataMatrixFile = function(processedFile,procol,path){ #Convention for ArrayDataMatrix file # First row contains assay refs (eg. SCAN REF) # Second row contains gene annotation values (eg. GEO:AFFYMETRIX_VALUE) # avoided using header=T because of automatic name cat("Reading processed data matrix file, ",file.path(path,basename(processedFile)), "\n") #READ HEADER matrix.header <- try(read.table(file.path(path, basename(processedFile)), sep = "\t", header = FALSE, # read in and interprete header row.names = 1, # header located in row 1 nrows = 2, # num rows after header stringsAsFactors = FALSE)); if (inherits(matrix.header, "try-error")) { stop("Cannot read header ", file.path(path, basename(processedFile))); } #READ a few rows to determine column classes for faster read.table proctot.class <- try(read.table(file.path(path, basename(processedFile)), sep = "\t", header = TRUE, # interprete header skip = 1, # starting from second line row.names = 1, # header located in line 1 nrows = 5, # read in 5 lines stringsAsFactors = FALSE)); if (inherits(proctot.class, "try-error")) { stop("Cannot read classes ", file.path(path, basename(processedFile))); } classes <- sapply(proctot.class, class) # figure out classes #now read all table data.matrix <- try(read.table(file.path(path, basename(processedFile)), sep = "\t", header = TRUE, # interpret header skip = 1, # starting from second line row.names = 1, # header located in line 1 stringsAsFactors = FALSE, na.strings = c('NA','NULL','null'), colClasses = classes)); if(inherits(data.matrix, 'try-error')) if(length(grep("duplicate",data.matrix)) != 0) stop("The probe identifiers are not unique. The processed file cannot automatically be treated.") else stop("Cannot read the processed file automatically.") #Create matrix of data and construct an expressionSet datasel = matrix(as.numeric(as.matrix(data.matrix[, procol == matrix.header[2, ]])), nrow = nrow(data.matrix)) #colnames(datasel) = colnames(proctot.header[, procol == proctot.header[1, ]]) colnames(datasel) = matrix.header[, procol == matrix.header[2, ]][1,] rownames(datasel) = rownames(data.matrix) proceset = new("ExpressionSet", exprs = datasel) assayREF = rownames(matrix.header)[1] assayREF = gsub('\\sREF','',assayREF) #Choose ADF ref column in processed data matrix to link to from ADF ADFrefCol = rownames(matrix.header)[2] ADFrefCol = gsub(" ",".",gsub(" REF"," Name",ADFrefCol)) res = list() res$proceset = proceset res$assayREF = assayREF res$ADFrefCol = ADFrefCol return(res) } ArrayExpress/R/queryAE.r0000644000175100017510000000224514614231214016162 0ustar00biocbuildbiocbuildget_request <-function(url){ qr = URLencode(url) response <- GET( qr ) if(status_code(response) != 200) { stop( paste( "Error running query. Received HTTP error code", status_code(response), "from server. Please try again later. If you continue to experience problems please contact us at https://www.ebi.ac.uk/about/contact/support/arrayexpress" ) ) } json_parsed <- fromJSON(txt = qr) return(json_parsed) } queryAE = function(keywords = NULL, species = NULL){ if(is.null(keywords) && is.null(species)) stop("No keywords or species specified") baseURL <- "https://www.ebi.ac.uk/biostudies/api/v1/arrayexpress/search"; page_size <- 100 page=1 query <- paste(baseURL,"?query=",keywords,"&organism=",species,"&pageSize=", page_size,sep="") json_data <- get_request(paste(query,"&page=",page,sep="")) df_hits <- json_data$hits while (length(json_data$hits) > 0) { page <- page + 1 json_data <- get_request(paste(query,"&page=",page,sep="")) if (length(json_data$hits) > 0) { df_hits <- rbind(df_hits, json_data$hits) } } return(df_hits) }ArrayExpress/vignettes/0000755000175100017510000000000014614325040016231 5ustar00biocbuildbiocbuildArrayExpress/vignettes/ArrayExpress.Rnw0000644000175100017510000003355414614231214021362 0ustar00biocbuildbiocbuild%\VignetteIndexEntry{ArrayExpress: Import and convert ArrayExpress data sets into R object} %\VignetteDepends{Biobase,oligo,limma} %\VignetteKeywords{ImportData} %\VignettePackage{ArrayExpress} \documentclass[a4paper]{article} \usepackage{times} \usepackage{a4wide} \usepackage{verbatim} \newcommand{\Robject}[1]{\texttt{#1}} \newcommand{\Rpackage}[1]{\textit{#1}} \newcommand{\Rclass}[1]{\textit{#1}} \newcommand{\Rfunction}[1]{{\small\texttt{#1}}} \clearpage \SweaveOpts{keep.source=TRUE,eps=FALSE,include=FALSE,width=4,height=4.5} \begin{document} \SweaveOpts{concordance=TRUE} \title{ Building R objects from ArrayExpress datasets } \author{Audrey Kauffmann} \maketitle \section{ArrayExpress Collection in Biostudies database} ArrayExpress is a public Collection of datasets for transcriptomics and related data, which is aimed at storing MIAME-compliant data in accordance with MGED recommendations. The Gene Expression Atlas stores gene-condition summary expression profiles from a curated subset of experiments in the repository. Currently, around 76,635 studies are represented in the ArrayExpress Collection. Please visit https://www.ebi.ac.uk/biostudies/arrayexpress for more information on the collection. \section{MAGE-TAB format} In the repository, for each dataset, ArrayExpress stores a MAGE-TAB document with standardized format. A MAGE-TAB document contains five different types of files Investigation Description Format (IDF), Array Design Format (ADF), Sample and Data Relationship Format (SDRF), the raw data files and the processed data files. The tab-delimited IDF file contains top level information about the experiment including title, description, submitter contact details and protocols. The tab-delimited ADF file describes the design of an array, e.g., what sequence is located at each position on an array and what the annotation of this sequence is. The tab-delimited SDRF file contains the sample annotation and the relationship between arrays as provided by the submitter. The raw zip file contains the raw files (like the CEL files for Affymetrix chips or the GPR files from the GenePix scanner for instance), and the processed zip file contains all processed data in one generic tab delimited text format. \section{Querying ArrayExpress Collection} It is possible to query the ArrayExpress collection, using the \Rfunction{queryAE} function. Two arguments are available, 'keywords' and 'species'. You can use both of them simultaneously or each of them independently, according to your needs. If you want to use several words, they need to be separated by a '+' without any space. Here is an example where the object \Robject{sets} contains the identifiers of all the datasets for which the word 'pneumonia' was found in the description and for which the Homo sapiens is the studied species. You need to be connected to Internet to have access to the database. <>= library("ArrayExpress") sets = queryAE(keywords = "pneumonia", species = "homo+sapiens") @ % In March 2023, this query retrieved 87 identifiers. The output is a dataframe with the identifiers and 9 columns giving the information about these datasets, such as the number of files, the release date on the database, the title, the author and content. For a more extended querying mode, the Biostudies/ArrayExpress website offers an advanced query interface with detailed results. \section{Import an ArrayExpress dataset into R} \subsection{Call of the function ArrayExpress} Once you know which identifier you wish to retrieve, the function \Rfunction{ArrayExpress} can be called, using the following arguments: \begin{itemize} \item \emph{accession}: an ArrayExpress experiment identifier for which the raw data are available. \item \emph{path}: the name of the directory in which the files downloaded from the ArrayExpress repository will be extracted. The default is the current directory. \item \emph{save}: if TRUE, the files downloaded from the database will not be deleted from 'path' after executing the function. \item \emph{dataCols}: by default, the columns are automatically selected according to the scanner type. If the scanner is unknown or if the user wants to use different columns than the default, the argument 'dataCols' can be set. For two colour arrays it must be a list with the fields 'R', 'G', 'Rb' and 'Gb' giving the column names to be used for red and green foreground and background. For one colour arrays, it must be a character string with the column name to be used. These column names must correspond to existing column names of the expression files. \end{itemize} You still need to be connected to Internet to have access to the database. \subsection{Examples and ouput format} \paragraph{Simple example} The output object is an \Rclass{AffyBatch} if the ArrayExpress identifier corresponds to an Affymetrix experiment, it is an \Rclass{ExpressionSet} if the identifier corresponds to a one colour non Affymetrix experiment and it is a \Rclass{NChannelSet} if the identifier corresponds to a two colours experiment. <>= rawset = ArrayExpress("E-MEXP-21") @ % In this example, \emph{'E-MEXP-21'} being an Affymetrix experiment, 'rawset' is an \Rclass{AffyBatch}. The expression values of 'rawset' are the content from the CEL files. The \Rclass{phenoData} of 'rawset' contains the whole sample annotation file content from the MAGE-TAB sdrf file. The \Rclass{featureData} of 'rawset' contains the whole feature annotation file content from the MAGE-TAB adf file. The \Rclass{experimentData} of 'rawset' contains the experiment annotation file content from the MAGE-TAB idf file. \paragraph{Example when the column names are needed} In the case of non Affymetrix experiments, \Rfunction{ArrayExpress} decides automatically, based on known quantitation types, which column from the scan files are to be used to fill the \Rclass{exprs}. However, in some cases the scanner software is not recognized or unknown and this decision cannot be made automatically. The argument 'rawcol' is then needed. Here is an example. <>= eset = try(ArrayExpress("E-MEXP-1870")) @ % Here, the object cannot be built because the columns are not recognized. The error message also gives a list of possible column names. We can then call the function again, feeding the argument 'dataCols' with the appropriate column names. <>= eset = ArrayExpress("E-MEXP-1870", dataCols=list(R="ScanArray Express:F650 Mean", G="ScanArray Express:F550 Mean", Rb="ScanArray Express:B650 Mean", Gb="ScanArray Express:B550 Mean")) @ Then \Robject{eset} is created. However, there is still a warning, the \Rclass{phenoData} cannot be built. This means that the object is correctly created but the sample annotation has not been attached to it. It is still possible to manually correct the files and try to build the object. To do so, the functions \Rfunction{getAE} and \Rfunction{ae2bioc}, used by the \Rfunction{ArrayExpress} function, can be called separately. \section{Download an ArrayExpress dataset on your local machine} It is possible to only download the data, by calling the function \Rfunction{getAE}. The arguments 'input' and 'path' are the same than for the \Rfunction{ArrayExpress} function. The argument 'type' determines if you retrieve the MAGE-TAB files with the raw data only (by setting 'type' to 'raw'), the MAGE-TAB files with the processed data only (by setting 'type' to 'processed') or if you retrieve all the MAGE-TAB files, both raw and processed (by setting 'type' to 'full'). Here, you also need Internet connection to access the database. <>= mexp1422 = getAE("E-MEXP-21", type = "full") @ Here, the output is a list of all the files that have been downloaded and extracted in the directory 'path'. \section{Build an R object from local raw MAGE-TAB} If you have your own raw MAGE-TAB data or if you want to build an R object from existing MAGE-TAB data that are stored locally on your computer. The function \Rfunction{ae2bioc} can convert them into an R object. The arguments for the \Rfunction{ae2bioc} are: \begin{itemize} \item \emph{mageFiles} A list as given from \Rfunction{getAE} function. Containing the elements 'rawFiles' (the expression files to use to create the object), 'sdrf' (name of the sdrf file), 'idf' (name of the idf file), 'adf' (name of the adf file) and 'path' (the name of the directory containing these files). \item \emph{dataCols} by default, the columns are automatically selected according to the scanner type. If the scanner is unknown, the argument 'dataCols' can be set. For two colour arrays it must be a list with the fields 'R', 'G', 'Rb' and 'Gb' giving the column names to be used for red and green foreground and background. For one colour arrays, it must be a character string with the column name to be used. These column names must correspond to existing column names of the expression files. \end{itemize} As an example, we can use the files that we have downloaded in the previous example. <>= rawset= ae2bioc(mageFiles = mexp1422) @ % The object \Robject{rawset} is an \Rclass{AffyBatch}. \section{Build an R object from local processed MAGE-TAB} Processed data in the database are less uniform as processing methods vary a lot. To import a processed dataset from ArrayExpress, three steps are required: (i) download the dataset using \Rfunction{getAE}, (ii) identify which column is of interest thanks to \Rfunction{getcolproc}, (iii) create the R object with \Rfunction{procset}. \subsection{Identification of the columns to extract} Once the data are downloaded, we need to know the different column names available in the processed file to be able to choose a relevant one to extract. The function \Rfunction{getcolproc} needs, as an input, a list containing two slots: \begin{itemize} \item \emph{procfile} the name of the processed expression file. \item \emph{path} the name of the directory containing the 'procfile'. \end{itemize} This kind of list is given as an output from the function \Rfunction{getAE}. <>= cn = getcolproc(mexp1422) show(cn) @ \Robject{cn} is a character vector with the available column names in the 'procfile'. \subsection{Creation of the object} We can now create the \Rclass{ExpressionSet} using \Rfunction{procset}. This function has two arguments: \begin{itemize} \item \emph{files} a list as given by \Rfunction{getAE} containing the names of the processed, sdrf, idf, adf files and the path. \item \emph{procol} the name of the column chosen after using \Rfunction{getcolproc}. \end{itemize} <>= proset = procset(mexp1422, cn[2]) @ \Robject{proset} is an \Rclass{ExpressionSet} containing the processed log(ratio) of the dataset E-MEXP-21. %Turning off evaluation of this section for now (Oct 26, 2011) %until ArrayExpress server failure is fixed \section{Example of a standard microarray analysis using data from ArrayExpress} In this section, we are briefly describing an analysis from the data import to the identification of differentially expressed genes, of data publicly available on ArrayExpress. The first step consists of importing a dataset from ArrayExpress. We chose E-MEXP-1416. This dataset studies the transcription profiling of melanized dopamine neurons isolated from male and female patients with Parkinson disease to investigate gender differences. <>= AEset = ArrayExpress("E-MEXP-1416") @ As AEset is an Affymetrix experiment, we can use RMA normalisation to process the raw data, please read the rma function help. <>= library("affy") AEsetnorm = rma(AEset) @ To check the normalisation efficiency, we can run a quality assessment. For details on the arguments used, please read the arrayQualityMetrics vignette. Please note that, at the time of its release (Oct 2010), Bioconductor 2.7 didn't include a 64-bit Windows binary version of the \Rpackage{arrayQualityMetrics} package (but this might change in the future). <>= fac = grep("Factor.Value",colnames(pData(AEsetnorm)), value=T) @ %Turning off evaluation for now (Oct 15, 2010) until someone has the time to %troubleshoot the following error on Windows: % Error: processing vignette 'ArrayExpress.Rnw' failed with diagnostics: % chunk 11 (label=qanorm) % Error in aqm.report.qm(p, obj[[i]], i, names(obj)[i]) : % could not find function "svg" <>= if (suppressWarnings(require("arrayQualityMetrics", quietly=TRUE))) { qanorm = arrayQualityMetrics(AEsetnorm, outdir = "QAnorm", intgroup = fac) } @ Now that we have ensured that the data are well processed, we can search for differentially expressed genes using the package \Rpackage{limma}. To understand the details of each steps, please see the limma user guide. <>= library("limma") facs = pData(AEsetnorm)[,fac] facs[facs[,2]=="female",2]="F" facs[facs[,2]=="male",2]="M" facs[facs[,1]=="Parkinson disease",1]="parkinson" facs = paste(facs[,1],facs[,2], sep=".") f = factor(facs) design = model.matrix(~0+f) colnames(design) = levels(f) fit = lmFit(AEsetnorm, design) cont.matrix = makeContrasts(normal.FvsM = normal.F-normal.M, parkinson.FvsM = parkinson.F-parkinson.M, Diff=(parkinson.F-parkinson.M)-(normal.F-normal.M), levels=design) fit2 = contrasts.fit(fit, cont.matrix) fit2 = eBayes(fit2) res = topTable(fit2, coef = "parkinson.FvsM", adjust = "BH") @ Here we end up with a list of genes that are differentially expressed between the female and the male patients having Parkinson's disease, which was the topic of the paper, but one can perform other comparisons with the same data. \end{document} ArrayExpress/vignettes/QT_list.txt0000644000175100017510000042117414614231214020361 0ustar00biocbuildbiocbuild# # $Id$ # # ----------------------------------------------------------------------------------------------------- # # This first section includes a set of "custom" QTs # which are commonly used but not defined elsewhere. # # Name DataType Scale MAGE Subclass isBackground ConfidenceIndicator target QT Channel Description >>>Tab2MAGE_FGEM[ebi.ac.uk] RMA float linear_scale DerivedSignal Normalized float linear_scale DerivedSignal Ratio float linear_scale Ratio # ----------------------------------------------------------------------------------------------------- # # Below is the curated list of QTs as prepared and maintained by the ArrayExpress curators. # This will be updated periodically with new releases of this package. # # NOTE TO SELF - this part of the file will be automatically generated by Datafiles::write_QTs. # Attempt no changes here unless you are sure they won't be overwritten. # # Name DataType Scale MAGE Subclass isBackground ConfidenceIndicator target QT Channel Description >>>AIDA[Raytest] Area [pixel] float linear_scale SpecializedQuantitationType Spot area in pixels. Bkg SD Cy3 float linear_scale Error 1 Bkg [QL] Cy3 Cy3 Standard deviation of background channel Cy3. Bkg SD Cy5 float linear_scale Error 1 Bkg [QL] Cy5 Cy5 Standard deviation of background channel Cy5. Bkg [QL] Cy3 float linear_scale SpecializedQuantitationType 1 Cy3 Standard deviation of background channel Cy3. Bkg [QL] Cy5 float linear_scale SpecializedQuantitationType 1 Cy5 Standard deviation of background channel Cy5. Homogeneity [%] Cy3 float linear_scale SpecializedQuantitationType Cy3 Percentage of dot deviation from homogenous intensity distribution channel Cy3. Homogeneity [%] Cy5 float linear_scale SpecializedQuantitationType Cy5 Percentage of dot deviation from homogenous intensity distribution channel Cy5. Integral SD Cy3 float linear_scale Error Integral [QL] Cy3 Cy3 Standard deviation of integrated raw intensity channel Cy3. Integral SD Cy5 float linear_scale Error Integral [QL] Cy5 Cy5 Standard deviation of integrated raw intensity channel Cy5. Integral [QL] Cy3 float linear_scale MeasuredSignal Cy3 Integrated raw intensity of spot Channel Cy3. Integral [QL] Cy5 float linear_scale MeasuredSignal Cy5 Integrated raw intensity of spot Channel Cy5. Mean [QL] Cy3 float linear_scale MeasuredSignal Cy3 Mean (Integral/Area) Channel Cy3. Mean [QL] Cy5 float linear_scale MeasuredSignal Cy5 Mean (Integral/Area) Channel Cy5. Median [QL] Cy3 float linear_scale SpecializedQuantitationType Cy3 Median of the raw pixel intensity of spot Channel Cy3. Median [QL] Cy5 float linear_scale SpecializedQuantitationType Cy5 Median of the raw pixel intensity of spot Channel Cy5. Quality Cy3 boolean unscaled SpecializedQuantitationType Cy3 Quality flag Channel Cy3. Quality Cy5 boolean unscaled SpecializedQuantitationType Cy5 Quality flag Channel Cy5. Saturated [pixel] Cy3 float linear_scale SpecializedQuantitationType Cy3 Measure of saturation pixels channel Cy3. Saturated [pixel] Cy5 float linear_scale SpecializedQuantitationType Cy5 Measure of saturation pixels channel Cy5. >>>Affymetrix[Affymetrix] Probe Set Name string_datatype unscaled SpecializedQuantitationType The name of the probe set. Detection string_datatype unscaled PresentAbsent A measurement indicating if the transcript was detected (Present), not detected (Absent) or marginally detected (Marginal). Can be one of "Absent", "Marginal", "Present" or "No Call". Detection p-value float linear_scale PValue Detection The p-value calculated for a given detection call. Signal float linear_scale DerivedSignal A measure of the relative abundance of a transcript. Number of Pairs integer linear_scale SpecializedQuantitationType The number of probe pairs in the probe set. Number of Pairs Used integer linear_scale SpecializedQuantitationType The number of probe pairs in the probe set used in the Detection call. CELIntensity float linear_scale MeasuredSignal The intensity value of the probe. Represents the 75th percentile among the DAT file intensity values of the pixels in the feature. CELIntensityStdev float linear_scale SpecializedQuantitationType The standard deviation of the intensity of the probe. CELMask boolean linear_scale SpecializedQuantitationType A flag indicating that the probe was masked by the user. CELOutlier boolean linear_scale SpecializedQuantitationType A flag indicating that the software called this probe an outlier. CELPixels integer linear_scale SpecializedQuantitationType The number of pixels used to calculate the intensity. CELX integer linear_scale SpecializedQuantitationType The x coordinate of the probe. CELY integer linear_scale SpecializedQuantitationType The y coordinate of the probe. CHPAbsCall string_datatype unscaled PresentAbsent The call in an absolute analysis that indicates if the transcript was present (P), absent (A), or marginal (M). CHPAllele string_datatype unscaled SpecializedQuantitationType The allele call in a SNP analysis: AA, BB, AB, AB_A, AB_B, or "No call". CHPAllelePvalue float linear_scale PValue CHPAllele The p-value calculated for a given allele call. CHPAllelePvalueAA float linear_scale PValue CHPAllele The p-value calculated for a given AA allele call. CHPAllelePvalueAB float linear_scale PValue CHPAllele The p-value calculated for a given AB allele call. CHPAllelePvalueBB float linear_scale PValue CHPAllele The p-value calculated for a given BB allele call. CHPAllelePvalueNoCall float linear_scale PValue CHPAllele The p-value calculated for a given NoCall allele call. CHPAlleleRAS1 float linear_scale SpecializedQuantitationType CHPAlleleRAS2 float linear_scale SpecializedQuantitationType CHPAvgDiff float linear_scale DerivedSignal Average intensity difference CHPAvgDiffChange float linear_scale SpecializedQuantitationType The change in average difference CHPBaselineAbsent float linear_scale SpecializedQuantitationType Flag indicating if the baseline call was absent. CHPChange string_datatype unscaled PresentAbsent A call indicating an Increase (I), Marginal Increase (MI), No Change (NC), Decrease (D), or Marginal Decrease (MD) in transcript level between a baseline array and an experiment array. May also have the value "No Call". CHPChangePvalue float linear_scale PValue CHPChange Measures the probability that the expression levels of a probe set in two different arrays are the same or not. When the p-value is close to 0.5 they are likely to be the same. When the p-value is close to 0 the expression level in the experiment array is CHPCommonPairs integer linear_scale SpecializedQuantitationType The number of common probe pairs on two arrays (experiment versus baseline) after saturation across the probe set is determined. CHPDPos-DNegRatio float linear_scale Ratio The ratio of the change in positive to the change in negative pairs CHPDec integer linear_scale SpecializedQuantitationType The number of decreasing pairs CHPDecRatio float linear_scale Ratio The ratio of decreasing pairs to the total number of pairs. CHPDetection string_datatype unscaled PresentAbsent A measurement indicating if the transcript was detected (Present), not detected (Absent) or marginally detected (Marginal). Can be one of "A", "M", "P" or "No Call". CHPDetectionPvalue float linear_scale PValue CHPDetection See Detection p-value CHPDiffCall string_datatype unscaled PresentAbsent The comparison change call CHPFoldChange float linear_scale Ratio The fold change CHPInc integer linear_scale SpecializedQuantitationType The number of increasing pairs. CHPIncDecRatio float linear_scale Ratio The ratio of increase to decrease pairs. CHPIncRatio float linear_scale Ratio The ratio of increasing pairs to the total number of pairs CHPLogAvg float log_base_10 DerivedSignal Average log ratio CHPLogAvgRatioChange float log_base_10 SpecializedQuantitationType The change in log average ratio CHPNegChange integer linear_scale SpecializedQuantitationType The change in negative pairs CHPNegative integer linear_scale SpecializedQuantitationType Number of negative probe pairs CHPPairs integer linear_scale SpecializedQuantitationType The number of probe pairs in the probe set. CHPPairsInAvg integer linear_scale SpecializedQuantitationType Number of probe pairs used in computing the average intensity difference CHPPairsUsed integer linear_scale SpecializedQuantitationType The number of probe pairs in the probe set used in the Detection call. CHPPosChange float linear_scale SpecializedQuantitationType The change in positive pairs. CHPPosFraction float linear_scale Ratio The fraction of positive pairs CHPPosNegRatio float linear_scale Ratio The ratio of the positive to the negative pairs CHPPositive integer linear_scale SpecializedQuantitationType Number of positive probe pairs CHPSignal float linear_scale DerivedSignal A measure of the relative abundance of a transcript. CHPSignalLogRatio float log_base_2 Ratio The change in expression level for a transcript between a baseline and an experiment array. This change is expressed as the Log2 ratio. CHPSignalLogRatioHigh float log_base_2 Ratio The upper limit of the Signal Log Ratio within a 95% confidence interval. CHPSignalLogRatioLow float log_base_2 Ratio The lower limit of the Signal Log Ratio within a 95% confidence interval. CHPSortScore float linear_scale SpecializedQuantitationType The sort score. ProbeSetName string_datatype unscaled SpecializedQuantitationType The name of the probe set. Stat Pairs integer linear_scale SpecializedQuantitationType The number of probe pairs in the probe set. Stat Pairs Used integer linear_scale SpecializedQuantitationType The number of probe pairs in the probe set used in the Detection call. >>>AppliedBiosystems[Celera] Assay_Normalized_Signal float DerivedSignal CV float SpecializedQuantitationType Flags integer unscaled SpecializedQuantitationType SDEV float linear_scale MeasuredSignal S_N float SpecializedQuantitationType Signal float linear_scale MeasuredSignal >>>ArrayGauge[FUJIFILM] Dens.(Total PSL) float linear_scale MeasuredSignal 0 Total phospho stimulated luminescence. Norm Data float log_base_2 DerivedSignal Overshining Status boolean unscaled SpecializedQuantitationType During quantification the analysis spots that display false positive intensity due to non-specific signal from neighboring clones are excluded. Total PSL float linear_scale SpecializedQuantitationType 0 Total phospho stimulated luminescence. >>>ArrayVision[Imaging Research] % At Ceiling - Bkgd_Cy3 float linear_scale SpecializedQuantitationType Cy3 Clipped pixels - A quality control measure that reports the proportion of pixels at the uppermost limit (ceiling) of the density scale. The presence of clipped pixels suggest a problem during image formation, and can affect the validity of density data. V % At Ceiling - Bkgd_Cy5 float linear_scale SpecializedQuantitationType Cy5 Clipped pixels - A quality control measure that reports the proportion of pixels at the uppermost limit (ceiling) of the density scale. The presence of clipped pixels suggest a problem during image formation, and can affect the validity of density data. V % At Ceiling_Cy3 float linear_scale SpecializedQuantitationType Cy3 Clipped pixels - A quality control measure that reports the proportion of pixels at the uppermost limit (ceiling) of the density scale. The presence of clipped pixels suggest a problem during image formation, and can affect the validity of density data. % At Ceiling_Cy5 float linear_scale SpecializedQuantitationType Cy5 Clipped pixels - A quality control measure that reports the proportion of pixels at the uppermost limit (ceiling) of the density scale. The presence of clipped pixels suggest a problem during image formation, and can affect the validity of density data. % At Floor - Bkgd_Cy3 float linear_scale SpecializedQuantitationType Cy3 Clipped pixels - A quality control measure that reports the proportion of pixels at the lowermost limit (floor) of the density scale. The presence of clipped pixels suggest a problem during image formation, and can affect the validity of density data. Val % At Floor - Bkgd_Cy5 float linear_scale SpecializedQuantitationType Cy5 Clipped pixels - A quality control measure that reports the proportion of pixels at the lowermost limit (floor) of the density scale. The presence of clipped pixels suggest a problem during image formation, and can affect the validity of density data. Val % At Floor_Cy3 float linear_scale SpecializedQuantitationType Cy3 Clipped pixels - A quality control measure that reports the proportion of pixels at the lowermost limit (floor) of the density scale. The presence of clipped pixels suggest a problem during image formation, and can affect the validity of density data. % At Floor_Cy5 float linear_scale SpecializedQuantitationType Cy5 Clipped pixels - A quality control measure that reports the proportion of pixels at the lowermost limit (floor) of the density scale. The presence of clipped pixels suggest a problem during image formation, and can affect the validity of density data. % Replaced (AR VOL)_Cy3 float linear_scale SpecializedQuantitationType Cy3 Percentage of pixels replaced with estimated values in the calculation of AR volume. % Replaced (AR VOL)_Cy5 float linear_scale SpecializedQuantitationType Cy5 Percentage of pixels replaced with estimated values in the calculation of AR volume. AR VOL - RFU_Cy3 float linear_scale SpecializedQuantitationType Cy3 Artifact-removed density value for each spot, multiplied by its area. AR VOL - RFU_Cy5 float linear_scale SpecializedQuantitationType Cy5 Artifact-removed density value for each spot, multiplied by its area. Area - 5m2_Cy3 integer linear_scale SpecializedQuantitationType Cy3 Area of the spot, background and/or reference region. Area - 5m2_Cy5 integer linear_scale SpecializedQuantitationType Cy5 Area of the spot, background and/or reference region. Area - mm2_Cy3 integer linear_scale SpecializedQuantitationType Cy3 Area of the spot, background and/or reference region. Area - mm2_Cy5 integer linear_scale SpecializedQuantitationType Cy5 Area of the spot, background and/or reference region. Area - m2_Cy3 linear_scale SpecializedQuantitationType Cy3 Area of the spot, background and/or reference region. Area - m2_Cy5 linear_scale SpecializedQuantitationType Cy5 Area of the spot, background and/or reference region. Bkgd_Cy3 float linear_scale MeasuredSignal 1 Cy3 Background density or volume; background volume value is adjusted to the size of spot, where applicable. Bkgd_Cy5 float linear_scale MeasuredSignal 1 Cy5 Background density or volume; background volume value is adjusted to the size of spot, where applicable. Flag_Cy3 boolean linear_scale PresentAbsent Cy3 Select this measure to manually flag data in the data table. The value of this measure can be 0 or 1. Flag_Cy5 boolean linear_scale PresentAbsent Cy5 Select this measure to manually flag data in the data table. The value of this measure can be 0 or 1. MAD - RFU / 5m2_Cy3 float linear_scale SpecializedQuantitationType Cy3 Median of absolute deviation - median of the absolute values of deviations from the median density (i.e., the absolute values of pixel densities median density); it is a measure of the variation around the median density value of the spot. MAD - RFU / 5m2_Cy5 float linear_scale SpecializedQuantitationType Cy5 Median of absolute deviation - median of the absolute values of deviations from the median density (i.e., the absolute values of pixel densities median density); it is a measure of the variation around the median density value of the spot. MAD - RFU / mm2_Cy3 float linear_scale SpecializedQuantitationType Cy3 Median of absolute deviation - median of the absolute values of deviations from the median density (i.e., the absolute values of pixel densities median density); it is a measure of the variation around the median density value of the spot. MAD - RFU / mm2_Cy5 float linear_scale SpecializedQuantitationType Cy5 Median of absolute deviation - median of the absolute values of deviations from the median density (i.e., the absolute values of pixel densities median density); it is a measure of the variation around the median density value of the spot. MAD - RFU / m2_Cy3 float linear_scale SpecializedQuantitationType Cy3 Median of absolute deviation - median of the absolute values of deviations from the median density (i.e., the absolute values of pixel densities median density); it is a measure of the variation around the median density value of the spot. MAD - RFU / m2_Cy5 float linear_scale SpecializedQuantitationType Cy5 Median of absolute deviation - median of the absolute values of deviations from the median density (i.e., the absolute values of pixel densities median density); it is a measure of the variation around the median density value of the spot. Median Dens - Levels_Cy3 float linear_scale SpecializedQuantitationType Cy3 Median Density value of the spot Levels. ['Gray levels' (Levels) are the raw pixel intensity values upon which all other density/intensity scales are based.] Median Dens - Levels_Cy5 float linear_scale SpecializedQuantitationType Cy5 Median Density value of the spot Levels. ['Gray levels' (Levels) are the raw pixel intensity values upon which all other density/intensity scales are based.] Median Dens - RFU / m2_Cy3 float linear_scale SpecializedQuantitationType Cy3 Median Dens - RFU / m2_Cy5 float linear_scale SpecializedQuantitationType Cy5 S/N_Cy3 float linear_scale Ratio 1 Cy3 Signal-to-noise ratio - spot density minus background density, divided by the SD of the background density. S/N_Cy5 float linear_scale Ratio 1 Cy5 Signal-to-noise ratio - spot density minus background density, divided by the SD of the background density. SD - Levels_Cy3 float linear_scale SpecializedQuantitationType Cy3 Standard deviation of the pixel Levels values. SD - Levels_Cy5 float linear_scale SpecializedQuantitationType Cy5 Standard deviation of the pixel Levels values. SD - RFU / 5m2_Cy3 float linear_scale SpecializedQuantitationType Cy3 Standard deviation of the pixel density values. SD - RFU / 5m2_Cy5 float linear_scale SpecializedQuantitationType Cy5 Standard deviation of the pixel density values. SD - RFU / mm2_Cy3 float linear_scale SpecializedQuantitationType Cy3 Standard deviation of the pixel density values. SD - RFU / mm2_Cy5 float linear_scale SpecializedQuantitationType Cy5 Standard deviation of the pixel density values. SD - RFU / m2_Cy3 float linear_scale SpecializedQuantitationType Cy3 Standard deviation of the pixel density values. SD - RFU / m2_Cy5 float linear_scale SpecializedQuantitationType Cy5 Standard deviation of the pixel density values. SPOTLABEL Spot labels integer linear_scale SpecializedQuantitationType VOL - Levels x mm2_Cy3 float linear_scale SpecializedQuantitationType Cy3 VOL - Levels x mm2_Cy5 float linear_scale SpecializedQuantitationType Cy5 sARMDens_Cy3 float linear_scale MeasuredSignal Cy3 Background corrected ARM Density value. ARM Density value of the spot, minus the background Density value. sARMDens_Cy5 float linear_scale MeasuredSignal Cy5 Background corrected ARM Density value. ARM Density value of the spot, minus the background Density value. sARVOL_Cy3 float linear_scale SpecializedQuantitationType Cy3 Subtracted AR volume value (AR volume value of the spot minus the background volume value); the background value is adjusted to the size of the spot when applicable. sARVOL_Cy5 float linear_scale SpecializedQuantitationType Cy5 Subtracted AR volume value (AR volume value of the spot minus the background volume value); the background value is adjusted to the size of the spot when applicable. sMedianDens_Cy3 float linear_scale SpecializedQuantitationType Cy3 Background corrected Median Density value. Median Density value of the spot, minus the background Density value. sMedianDens_Cy5 float linear_scale SpecializedQuantitationType Cy5 Background corrected Median Density value. Median Density value of the spot, minus the background Density value. sVOL_Cy3 float linear_scale SpecializedQuantitationType Cy3 Background corrected Volume value. Volume value of the spot, minus the background Volume value. The background value is adjusted to the size of the spot when applicable. sVOL = DxA_data - ((DxA_bkgd * Area_data)/Area_bkgd)). sVOL_Cy5 float linear_scale SpecializedQuantitationType Cy5 Background corrected Volume value. Volume value of the spot, minus the background Volume value. The background value is adjusted to the size of the spot when applicable. sVOL = DxA_data - ((DxA_bkgd * Area_data)/Area_bkgd)). >>>BZScan[TAGC ERM206] Diameter float linear_scale SpecializedQuantitationType Automatically computed spot diameter. Fit_correction float linear_scale SpecializedQuantitationType 1 Background level by unit surface. Overshining_correction float linear_scale SpecializedQuantitationType Correction for overshining by unit radius. Q(fit,const) float linear_scale SpecializedQuantitationType Spot intensity based on user-provided diameter and theoretical fit to the data. Q(fit,var) float linear_scale SpecializedQuantitationType Spot intensity based on computed diameter and and theoretical fit to the data. Q(image,const) float linear_scale MeasuredSignal Spot intensity based on user-provided diameter and measured data. Q(image,var) float linear_scale SpecializedQuantitationType Spot intensity based on computed diameter and measured data. QM float linear_scale PValue Q(image,const) Quality metric: distance between measured data and theoretical fit. SpotQuality boolean unscaled PresentAbsent Present/Absent (automatic guess). >>>BeadStudio[Illumina] MIN_Signal float linear_scale SpecializedQuantitationType Minimum intensity of the Bead Type/target in the group. AVG_Signal float linear_scale MeasuredSignal Average intensity of the Bead Type/target in the group. MAX_Signal float linear_scale SpecializedQuantitationType Maximum intensity of the Bead Type/target in the group. NARRAYS integer linear_scale SpecializedQuantitationType Number of samples in the group. ARRAY_STDEV SpecializedQuantitationType Standard deviation associated with sample-to-sample variability within the group (undefined when the group contains a single sample). BEAD_STDEV float linear_scale Error AVG_Signal Average standard deviation associated with bead-to-bead variability for the samples in the group. Avg_NBEADS integer linear_scale SpecializedQuantitationType Average number of beads per bead type representing probes for the gene. Detection float SpecializedQuantitationType 1-p-value computed from the background model characterizing the chance that the target sequence signal was distinguishable from the negative controls. Detection Pval float SpecializedQuantitationType DiffScore float SpecializedQuantitationType Statistical confidence that the gene's expression has changed with respect to a reference group. Concordance float SpecializedQuantitationType Number of probes showing upregulated signal compared to the number of probes showing downregulated signal. >>>BlueFuse[BlueGnome] AMPCH1 float linear_scale MeasuredSignal Cy3 Total signal in Cy3 channel. AMPCH2 float linear_scale MeasuredSignal Cy5 Total signal in Cy5 channel. AUTO EXCL string_datatype unscaled SpecializedQuantitationType Indication of whether a spot has been automatically excluded. Yes - it has been excluded, no - it has not been excluded. BLOCK integer linear_scale SpecializedQuantitationType The sequential number of the block on the array. CIRCULARITY float linear_scale SpecializedQuantitationType Estimate of the circularity of the spot, between 0 and 1. The nearer to 1, the more circular the spot. CONFIDENCE float linear_scale SpecializedQuantitationType The Confidence Estimate in the calculated ratio, between 0 and 1. FLAG string_datatype unscaled SpecializedQuantitationType The Confidence Flag calculated from the Confidence Estimate. GRID OFFSET float linear_scale SpecializedQuantitationType Distance in pixels of the spot from the ideal grid position. ID string_datatype unscaled SpecializedQuantitationType The ID of the spot, taken from ID field in GAL file. LOG10PRODUCT float log_base_10 SpecializedQuantitationType Log base 10 of the product of total signal in Cy3 channel multiplied by total signal in Cy5 channel. LOG10RATIO CH1/CH2 float log_base_10 SpecializedQuantitationType Log base 10 of the ratio of total signal in Cy3 channel divided by total signal in Cy5 channel. LOG10RATIO CH2/CH1 float log_base_10 SpecializedQuantitationType Log base 10 of the ratio of total signal in Cy5 channel divided by total signal in Cy3 channel. LOG10SUM float log_base_10 SpecializedQuantitationType Log base 10 of the sum of total signal in Cy3 channel plus total signal in Cy5 channel. LOG2PRODUCT float log_base_2 SpecializedQuantitationType Log base 2 of the product of total signal in Cy3 channel multiplied by total signal in Cy5 channel. LOG2RATIO CH1/CH2 float log_base_2 Ratio Log base 2 of the ratio of total signal in Cy3 channel divided by total signal in Cy5 channel. LOG2RATIO CH2/CH1 float log_base_2 SpecializedQuantitationType Log base 2 of the ratio of total signal in Cy5 channel divided by total signal in Cy3 channel. LOG2SUM float log_base_2 SpecializedQuantitationType Log base 2 of the sum of total signal in Cy3 channel plus total signal in Cy5 channel. MAN EXCL string_datatype unscaled SpecializedQuantitationType Indication of whether a spot has been manually excluded. Yes - it has been manually excluded, no - it has not been manually excluded. NAME string_datatype unscaled SpecializedQuantitationType The name of the spot, taken from Name field in GAL file. P ON CH1 float linear_scale SpecializedQuantitationType Cy3 Estimate of whether there is a biological signal in Cy3 channel, between 0 and 1. P ON CH2 float linear_scale SpecializedQuantitationType Cy5 Estimate of whether there is a biological signal in Cy5 channel, between 0 and 1. PELCOL integer linear_scale SpecializedQuantitationType Calculated horizontal position of the spot on image in pixels. 1 is the left column of pixels. PELROW integer linear_scale SpecializedQuantitationType Calculated vertical position of the spot on image in pixels. 1 is the top row of pixels. PRODUCT float linear_scale SpecializedQuantitationType Product of total signal in Cy3 channel multiplied by total signal in Cy5 channel. QUALITY SpecializedQuantitationType RADIUS float linear_scale SpecializedQuantitationType Estimate of the radius of the spot in pixels. RATIO CH1/CH2 float linear_scale SpecializedQuantitationType Ratio of total signal in Cy3 channel divided by total signal channel in Cy5 channel. RATIO CH2/CH1 float linear_scale SpecializedQuantitationType Ratio of total signal in Cy5 channel divided by total signal channel in Cy3 channel. SPOTNUM integer linear_scale SpecializedQuantitationType The sequential number of the spot on the array. SUM float linear_scale SpecializedQuantitationType Sum of total signal in Cy3 channel plus total signal in Cy5 channel. UNIFORMITY float linear_scale SpecializedQuantitationType Estimate of the uniformity of the spot, between 0 and 1. The nearer to 1 the more coin-shaped the spot, i.e. vertical sides and horizontal surface. >>>ChipSkipper[EMBL] Comment string_datatype unscaled SpecializedQuantitationType Additional description of spot. Comp_Channel Cy3 float linear_scale DerivedSignal Cy3 Normalised intensity of Cy3_Vol-BG. Comp_Channel Cy5 float linear_scale DerivedSignal Cy5 Normalised intensity of Cy5_Vol-BG. Comp_Directional_Ratio-Cy5/Cy3 float linear_scale SpecializedQuantitationType Compensated directional ratio: if Comp_Ratio > 1 then Directional = Ratio, if Ratio < 1 then Directional = -1/Ratio. Comp_Log2_Ratio float log_base_2 SpecializedQuantitationType Compensated Log2 ratio: log2 (Comp_Ratio-Cy5/Cy3). Comp_Ratio-Cy5/Cy3 float linear_scale Ratio Compensated ratio ( = Comp_Channel Cy5 / Comp_Channel Cy3 ). Cy3_Av-Vol/pixel float linear_scale SpecializedQuantitationType Cy3 Average intensity per pixel in color channel Cy3. Cy3_BG-Arith float linear_scale SpecializedQuantitationType 1 Cy3 Arithmetic average for local background in color channel Cy3. Cy3_BG-Geom float linear_scale SpecializedQuantitationType 1 Cy3 Geometric average for local background in color channel Cy3. Cy3_BG-Median float linear_scale SpecializedQuantitationType 1 Cy3 Median average for local background in color channel Cy3. Cy3_BG_Tot float linear_scale MeasuredSignal 1 Cy3 Total integrated background in color channel Cy3. Cy3_SNR1 float linear_scale Error Cy3_Vol-BG Cy3 Sdev of local background average in color channel Cy3. Cy3_SNR1_Score float linear_scale Error Cy3_Vol-BG Cy3 Quality value based on intensity and background for color channel Cy3 (range: 0 = bad....1 = good). Cy3_Sat-pixel float linear_scale SpecializedQuantitationType Cy3 Number of saturated pixel in color channel Cy3. Cy3_Spot-area float linear_scale SpecializedQuantitationType Cy3 Area of spot in colour channel Cy3 in pixels. Cy3_Vol-BG float linear_scale SpecializedQuantitationType 1 Cy3 Background reduced intensity of colour channel Cy3. Cy3_Volume integer linear_scale MeasuredSignal Cy3 Total integrated signal intensity in color channel Cy3. Cy5_Av-Vol/pixel float linear_scale SpecializedQuantitationType Cy5 Average intensity per pixel in color channel Cy5. Cy5_BG-Arith float linear_scale SpecializedQuantitationType 1 Cy5 Arithmetic average for local background in color channel Cy5. Cy5_BG-Geom float linear_scale SpecializedQuantitationType 1 Cy5 Geometric average for local background in color channel Cy5. Cy5_BG-Median float linear_scale SpecializedQuantitationType 1 Cy5 Median average for local background in color channel Cy5. Cy5_BG_Tot float linear_scale MeasuredSignal 1 Cy5 Total integrated background in color channel Cy5. Cy5_SNR1 float linear_scale Error Cy5_Vol-BG Cy5 Sdev of local background average in color channel Cy5. Cy5_SNR1_Score float linear_scale Error Cy5_Vol-BG Cy5 Quality value based on intensity and background for color channel Cy5 (range: 0 = bad....1 = good). Cy5_Sat-pixel float linear_scale SpecializedQuantitationType Cy5 Number of saturated pixel in color channel Cy5. Cy5_Spot-area float linear_scale SpecializedQuantitationType Cy5 Area of spot in colour channel Cy5 in pixels. Cy5_Vol-BG float linear_scale SpecializedQuantitationType 1 Cy5 Background reduced intensity of colour channel Cy5. Cy5_Volume integer linear_scale MeasuredSignal Cy5 Total integrated signal intensity in color channel Cy5. Directional_Ratio-Cy5/Cy3 float linear_scale SpecializedQuantitationType Directional ratio: if Ratio > 1 then Directional = Ratio, if Ratio < 1 then Directional = -1/Ratio. Flags string_datatype unscaled SpecializedQuantitationType Quality Flags: SNR1,SNR2 = low signal quality in color channel Cy5, Cy3; GS = low geometric score; MB = manually flagged bad. GS_Flags string_datatype linear_scale SpecializedQuantitationType P = pass or M = marginal flag. Group name string_datatype unscaled SpecializedQuantitationType Group name for this spot. Image-x-Pos integer linear_scale SpecializedQuantitationType Image coordinate of spot. Image-y-Pos integer linear_scale SpecializedQuantitationType Image coordinate of spot. Line_Counter integer unscaled SpecializedQuantitationType Line counter Log2_Ratio-Cy5/Cy3 float log_base_2 Ratio Log2 ratio: log2 (Ratio-Cy5/Cy3) Median of ratios float linear_scale SpecializedQuantitationType Median of ratios (Cy5/Cy3) from all pixel in this spot. Median of ratios % SDev float linear_scale SpecializedQuantitationType Standard deviation of Median of ratios in percent. Ratio of medians float linear_scale SpecializedQuantitationType Ratio of Medians (Cy5/Cy3) from all pixel in this spot. Ratio of medians % SDev float linear_scale SpecializedQuantitationType Standard deviation of Ratio of medians in percent. Ratio-Cy5/Cy3 float linear_scale SpecializedQuantitationType Direct ratio ( = Cy5_Vol-BG / Cy3_Vol-BG ) Regulation string_datatype unscaled SpecializedQuantitationType If Flag = SNR1 then Regulation=>Down; if Flag = SNR2 then Regulation=>up; if Flag = SNR1 AND SNR2 then Regulation=>weak; else Regulation = Ratio-Cy5/Cy3. Rep_vol_BG2 float linear_scale SpecializedQuantitationType Average of background reduced volume for onchip replicas (when calculated). Replicas float linear_scale SpecializedQuantitationType SNR*GS float linear_scale SpecializedQuantitationType Number of saturated pixel in both colors (logical or). SNR-tot float linear_scale SpecializedQuantitationType Squared average of Cy5_SNR and Cy3_SNR. SNR-tot_Score float linear_scale SpecializedQuantitationType Squared average of Cy5_%SNR and Cy3_%SNR. Tot_Sat-pixel float linear_scale SpecializedQuantitationType Number of saturated pixel in color channel Cy5 OR color channel Cy3. >>>CodeLink[Motorola Life Sciences] Cy3 BG Mean float linear_scale MeasuredSignal 1 Cy3 Background mean in Cy3 channel. Cy3 BG Median integer linear_scale SpecializedQuantitationType 1 Cy3 Background median in Cy3 channel. Cy3 Mean float linear_scale SpecializedQuantitationType Cy3 Statistical mean (average) of the raw intensity signal (i.e. mean of all the pixels belonging to the feature region) in Cy3 channel. Cy3 Raw Intensity float linear_scale MeasuredSignal Cy3 The signal from the spot minus the median background in Cy3 channel. Cy5 BG Mean float linear_scale MeasuredSignal 1 Cy5 Background mean in Cy5 channel. Cy5 BG Median integer linear_scale SpecializedQuantitationType 1 Cy5 Background median in Cy5 channel. Cy5 Mean float linear_scale SpecializedQuantitationType Cy5 Statistical mean (average) of the raw intensity signal (i.e. mean of all the pixels belonging to the feature region) in Cy5 channel. Cy5 Raw Intensity float linear_scale MeasuredSignal Cy5 The signal from the spot minus the median background in Cy5 channel. Flag boolean unscaled SpecializedQuantitationType Flag indicates if the spot matched with quality measures (i.e shape, low signal, saturated). TRUE corresponds to features that have to be discarded according to the quality measures, while FALSE is the opposite. >>>Spot[CSIRO] # These first are just feature coordinate/index columns, and should be discarded. #indexs The index of the spot. #grid_r The row index of the grid. #grid_c The column index of the grid. #spot_r The row index of the spot within the its grid. #spot_c The column index of the spot within the its grid. area integer linear_scale SpecializedQuantitationType The number of pixels in the segmented spot. Gmean float linear_scale SpecializedQuantitationType 0 Cy3 The average pixel value within the spot: green band. Gmedian float linear_scale MeasuredSignal 0 Cy3 The median pixel value within the spot: green band. GIQR float 0 Cy3 The interquartile range of the logged pixel values within the spot: green band. Rmean float linear_scale SpecializedQuantitationType 0 Cy5 The average pixel value within the spot: red band. Rmedian float linear_scale MeasuredSignal 0 Cy5 The median pixel value within the spot: red band. RIQR float 0 Cy5 The interquartile range of the logged pixel values within the spot: red band. bg.Gmean float linear_scale SpecializedQuantitationType 1 Cy3 The average pixel value in the background region: green band. bg.Gmedian float linear_scale MeasuredSignal 1 Cy3 The median pixel value in the background region: green band. bg.Gsd float 1 Cy3 bg.GIQR float 1 Cy3 The interquartile range of the logged pixel values in the background region: green band. bg.Rmean float linear_scale SpecializedQuantitationType 1 Cy5 The average pixel value in the background region: red band. bg.Rmedian float linear_scale MeasuredSignal 1 Cy5 The median pixel value in the background region: red band. bg.Rsd float 1 Cy5 bg.RIQR float 1 Cy5 The interquartile range of the logged pixel values in the background region: red band. valleyG SpecializedQuantitationType Cy3 Median of median image values in four neighbouring "valley" regions: green band. "Valley" regions are square regions between spots. valleyR SpecializedQuantitationType Cy5 Median of median image values in four neighbouring "valley" regions: red band. morphG integer linear_scale SpecializedQuantitationType Cy3 Value of a morphological opening of the green band image at the nominal spot centre. Openings and erosions (see below) use a rectangular structuring element with side lengths equal to twice the average horizontal and vertical distances between spots. morphG.erode SpecializedQuantitationType Cy3 Value of a morphological erosion of the green band image at the nominal spot centre. morphG.close.open integer linear_scale SpecializedQuantitationType Cy3 Value of a morphological closing followed by a morphological opening of the green band image at the nominal spot centre. morphR integer linear_scale SpecializedQuantitationType Cy5 Value of a morphological opening of the red band image at the nominal spot centre. morphR.erode SpecializedQuantitationType Cy5 Value of a morphological erosion of the red band image at the nominal spot centre. morphR.close.open integer linear_scale SpecializedQuantitationType Cy5 Value of a morphological closing followed by a morphological opening of the red band image at the nominal spot centre. logratios float log_base_2 Ratio 0 The base-2 log of the background-adjusted ratio, R/G, using R/Gmedian for spot value and morphR/G for background. perimeter integer linear_scale SpecializedQuantitationType The perimeter of the spot as measured by the number of pixels in the spot which have a neighbouring pixel outside the spot. Each pixel is considered to have 8 neighbours in this process. circularity SpecializedQuantitationType A measure of circularity of the spot equal to area times four pi divided by perimeter squared. This is ideally one for circles and more than one for other shapes. badspot SpecializedQuantitationType A flag which is one if the spot area is greater than the product of the horizontal and vertical average spot separations, and zero otherwise. >>>CodeLink Expression Analysis[GE Healthcare] Raw_intensity float linear_scale SpecializedQuantitationType 0 Spot density, which is the difference between the spot mean and the local background median. Normalized_intensity float linear_scale DerivedSignal 0 Normalized intensity value (the raw intensity divided by the normalization factor). Quality_flag string_datatype unscaled SpecializedQuantitationType 0 Metrics the software uses to indicate the quality of a spot. Signal_strength float linear_scale Ratio 0 Estimated signal above its local background noise level. The ratio is expressed as the spot mean divided by the local background standard deviation. Spot_mean float linear_scale MeasuredSignal 0 Sum of all pixel values in the spot area divided by the number of pixels. Spot_median integer linear_scale SpecializedQuantitationType 0 Median pixel intensity computed over the spot area. Spot_stdev float linear_scale Error 0 Spot_mean Standard deviation of the pixel intensity in the spot. Spot_area integer linear_scale SpecializedQuantitationType 0 Number of pixels in the spot. Spot_diameter float linear_scale SpecializedQuantitationType 0 Spot diameter (in pixels) that the software calculates during data extraction. Spot_noise_level float linear_scale SpecializedQuantitationType 1 Local background noise level, given by the median signal of the pixels within the baackground ring. Bkgd_mean float linear_scale MeasuredSignal 1 Estimate of the background mean that the software computes, using the pixel intensities in the background area surrounding the spot. Bkgd_median integer linear_scale SpecializedQuantitationType 1 Estimate of the background median the software computes, using the pixel intensities inside the background area surrounding the spot. Bkgd_stdev float linear_scale Error 1 Bkgd_mean Estimate of the background standard deviation that the software computes, using the pixel intensities inside the background area surrounding the spot. Bkgd_area float linear_scale SpecializedQuantitationType 1 Number of pixels that the software includes to compute the estimated local background mean, median, and standard deviation. >>>Feature Extraction Software[Agilent Technologies] BGPixCorrelation float linear_scale SpecializedQuantitationType Ratio of estimated feature covariance in RedGreen space to product of feature Standard Deviation in Red Green space. The covariance of two features measures their tendency to vary together, i.e. to co-vary. In this case, it is a cumulative quantitation of BGSubSigCorrelation float linear_scale SpecializedQuantitationType Ratio of estimated background subtracted feature signal covariance in RG space to product of background subtracted feature Standard Deviation in RG space. DyeNormCorrelation float linear_scale SpecializedQuantitationType Dye normalized red and green pixel correlation. ErrorModel integer linear_scale SpecializedQuantitationType ErrorModel Indicates the error model that the user chose for feature extraction. A 0 indicates use of the Propogated Error Model. A 1 indicates use of the Universal Error Model. Failed boolean linear_scale Failed Set to one if the quantitation values of a feature are considered bad enough to thrown out in the higher level analysis. Features are thrown out if both channels are saturated or if either channel is a non-uniform outlier. A feature can be failed from out Green.BGPixSDev float linear_scale Error Green.Background Cy3 Green.Background float linear_scale MeasuredSignal 1 Cy3 Green.DerivedSignal float linear_scale DerivedSignal Cy3 Green.DyeNormSignal float linear_scale SpecializedQuantitationType Cy3 Green.MeasuredSignal float linear_scale MeasuredSignal Cy3 Green.PixSDev float linear_scale Error Green.MeasuredSignal Cy3 Green.ProcessedSigError float linear_scale Error Green.DerivedSignal Cy3 HighEndCorrDNCorrelation float linear_scale SpecializedQuantitationType HighEndDyeNormApplied boolean linear_scale SpecializedQuantitationType Has a value of 0 or 1. IsManualFlag boolean linear_scale SpecializedQuantitationType If a feature has been moved manually this flag will be set to 1. IsNormalization boolean linear_scale SpecializedQuantitationType A boolean flag which indicates if a feature is used to measure dye bias. A 1 incidates the value was used. IsUsedBGAdjust float linear_scale SpecializedQuantitationType A boolean used to flag features used for computation of global BG offset. A 1 indicates the feature was used. LogRatio float log_base_10 Ratio log(REDsignal/GREENsignal) per feature. Signals in both channels are post dye normalization If SURROGATES are disabled, then this value will be set to: -2 if DyeNormRedSig <= 0.0 &DyeNormGreenSig > 0.0; 2 if DyeNormRedSig > 0.0 & DyeNormGreenSi LogRatioError float log_base_10 Error LogRatio LogRatioError = error of the log ratio calculated according to the error model chosen. If SURROGATES are disabled, then this value will be set to if DyeNormRedSig <= 0.0 OR DyeNormGreenSig <= 0.0 PValueLogRatio float percent PValue LogRatio Significance level of the Log Ratio computed for a feature PixCorrelation float linear_scale SpecializedQuantitationType Ratio of estimated feature covariance in RedGreen space to product of feature Standard Deviation in Red Green space. The covariance of two features measures their tendency to vary together, i.e. to co-vary. In this case, it is a cumulative quantitation of PositionX float linear_scale SpecializedQuantitationType Found X coordinate of the feature centroid currently reported in pixels. PositionY float linear_scale SpecializedQuantitationType Found Y coordinate of the feature centroid currently reported in pixels. Red.BGPixSDev float linear_scale Error Red.Background Cy5 Red.Background float linear_scale MeasuredSignal 1 Cy5 Red.DerivedSignal float linear_scale DerivedSignal Cy5 Red.DyeNormSignal float linear_scale SpecializedQuantitationType Cy5 Red.MeasuredSignal float linear_scale MeasuredSignal Cy5 Red.PixSDev float linear_scale Error Red.MeasuredSignal Cy5 Red.ProcessedSigError float linear_scale Error Red.DerivedSignal Cy5 SpotExtentX float linear_scale SpecializedQuantitationType The size of a spot in X in microns. SpotExtentY float linear_scale SpecializedQuantitationType The size of a spot in Y in microns. gBGMeanSignal float linear_scale MeasuredSignal 1 Cy3 Mean local background signal (local to corresponding feature) computed per channel. gBGMedianSignal float linear_scale SpecializedQuantitationType 1 Cy3 Median local background signal (local to corresponding feature) computed per channel. gBGNumPix integer linear_scale SpecializedQuantitationType 1 Cy3 Total number of pixels used to compute Local BG statistics per spot; ie. Total number of BG inlier pixels. This number is computed independently in each channel. gBGPixSDev float linear_scale Error 1 gBGMeanSignal Cy3 Standard deviation of all inlier pixels per Local BG of each feature, computed independently in each channel. gBGSDUsed float linear_scale Error 1 gBGUsed Cy3 Standard deviation of background used in green channel. gBGSubSigError float linear_scale Error gBGSubSignal Cy3 Propagated standard error as computed on net green background subtracted signal. gBGSubSignal float linear_scale SpecializedQuantitationType Cy3 The net green signal following the subtraction of the background from the raw mean green signal. gBGUsed float linear_scale SpecializedQuantitationType 1 Cy3 Background value subtracted from the raw mean signal to generate the BG subtracted signal; this value is computed per channel. If global BG subtraction is used the column is identical for every feature in a given channel. gBackground float linear_scale MeasuredSignal 1 Cy3 Mean local background signal (local to corresponding feature) computed per channel. gDerivedSignal float linear_scale DerivedSignal Cy3 The propagated feature signal, per channel, used for computation of log ratio. gDyeNormError float linear_scale Error gDyeNormSignal Cy3 The standard error associated with the dye normalized signal. gDyeNormSignal float linear_scale SpecializedQuantitationType Cy3 The dye normalized signal in the indicated channel. gHighEndCorrDNError float linear_scale Error gHighEndCorrDNSig Cy3 gHighEndCorrDNSig float linear_scale SpecializedQuantitationType Cy3 gIsBGNonUnifOL boolean linear_scale SpecializedQuantitationType Cy3 Boolean flag indicating if a background is a NonUniformity Outlier or not. A feature is non-uniform if the pixel noise of feature exceeds a threshold established for a "uniform" feature. A 1 indicates Feature is a non-uniformity outlier. gIsBGPopnOL boolean linear_scale SpecializedQuantitationType Cy3 Boolean flag indicating if a background is a Population Outlier or not. Probes with replicate features on a microarray are examined using population statistics. A feature is a population outlier if its signal is less than a lower threshold or exceeds an u gIsFeatNonUnifOL boolean linear_scale SpecializedQuantitationType Cy3 Boolean flag indicating if a feature is a NonUniformity Outlier or not. A feature is non-uniform if the pixel noise of feature exceeds a threshold established for a "uniform" feature. A 1 indicates Feature is a non-uniformity outlier. gIsFeatPopnOL boolean linear_scale SpecializedQuantitationType Cy3 Boolean flag indicating if a feature is a Population Outlier or not. Probes with replicate features on a microarray are examined using population statistics. A feature is a population outlier if its signal is less than a lower threshold or exceeds an uppe gIsFound boolean linear_scale SpecializedQuantitationType Cy3 A boolean used to flag found (strong) features. The flag is applied independently in each channel. A feature is considered found if the found spot centroid is within the bounds of the spot deviation limit with respect to corresponding nominal centroid. NO gIsInNegCtrlRange boolean linear_scale SpecializedQuantitationType Cy3 Boolean that identifies this spot as being in the range of background. gIsPosAndSignif boolean linear_scale SpecializedQuantitationType Cy3 Boolean flag indicating if the mean signal of a feature is greater than the corresponding background and if this difference is significant. Significance is established via a 2-sided t-test against the user-settable maximum p-value. A 1 indicates Feature i gIsSaturated boolean linear_scale SpecializedQuantitationType Cy3 Boolean flag indicating if a feature is saturated or not. A feature is saturated if 50% of the pixels in a feature are above the saturation threshold. A value of 1 means saturated. gIsWellAboveBG boolean linear_scale SpecializedQuantitationType Cy3 Boolean flag indicating if a feature is well above background or not. A feature must be gIsPosAndSignif and additionally the gBGSubSignal must be greater than 2.6*g(r)BG_SD. A 1 indicates a feature IsWellAboveBG. gMeanSignal float linear_scale MeasuredSignal Cy3 Raw mean signal of feature in green channel. gMeasuredSignal float linear_scale MeasuredSignal Cy3 Raw mean signal of feature in green channel. gMedianSignal float linear_scale SpecializedQuantitationType Cy3 Raw median signal of feature in green channel. gNetSignal float linear_scale SpecializedQuantitationType Cy3 The meanSignal - the scanner offset. gNumBGUsed integer linear_scale SpecializedQuantitationType 1 Cy3 A count of the number of background pixels used in the green channel. gNumPix integer linear_scale SpecializedQuantitationType Cy3 Total number of pixels used to compute feature statistics; ie. total number of inlier pixels/per spot, computed independently in each channel. The number of inlier pixels are the same in both channels. gNumPixOLHi integer linear_scale SpecializedQuantitationType Cy3 Number of outlier pixels per feature with intensity > upper threshold set via the pixel outlier rejection method. The number is computed independently in each channel. These pixels are omitted from all subsequent calculations. gNumPixOLLo integer linear_scale SpecializedQuantitationType Cy3 Number of outlier pixels per feature with intensity < lower threshold set via the pixel outlier rejection method. The number is computed independently in each channel. NOTE: The pixel outlier method is the ONLY step that removes data in Feature Extract gNumSatPix integer linear_scale SpecializedQuantitationType Cy3 Total number of saturated pixels per feature, computed per channel. gPValFeatEqBG float linear_scale SpecializedQuantitationType Cy3 P-value from t-test of significance between green Mean signal and green background. gPixSDev float linear_scale Error gMeanSignal Cy3 Standard deviation of all inlier pixels per feature; this is computed independently in each channel. gProcessedSigError float linear_scale Error gProcessedSignal Cy3 Standard error of propagated feature signal, per channel. gProcessedSignal float linear_scale DerivedSignal Cy3 The propagated feature signal, per channel, used for computation of log ratio. gSpatialDetrendIsInFilteredSet boolean linear_scale SpecializedQuantitationType Cy3 Set to true for a given feature if it is part of the filtered set used to fit the surface measuring the spatial trend across the microarray. This feature is considered part of the locally weighted x% of the features. gSpatialDetrendSurfaceValue float linear_scale SpecializedQuantitationType Cy3 Value of the smoothed surface derived from the set of features that are part of SpatialDetrendIsInFilteredSet. gSurrogateUsed float linear_scale SpecializedQuantitationType Cy3 The green surrogate value used. rBGMeanSignal float linear_scale MeasuredSignal 1 Cy5 Mean local background signal (local to corresponding feature) computed per channel. rBGMedianSignal float linear_scale SpecializedQuantitationType 1 Cy5 Median local background signal (local to corresponding feature) computed per channel. rBGNumPix integer linear_scale SpecializedQuantitationType 1 Cy5 Total number of pixels used to compute Local BG statistics per spot; ie. Total number of BG inlier pixels. This number is computed independently in each channel. rBGPixSDev float linear_scale Error 1 rBGMeanSignal Cy5 Standard deviation of all inlier pixels per Local BG of each feature, computed independently in each channel. rBGSDUsed float linear_scale Error 1 rBGUsed Cy5 Standard deviation of background used in red channel. rBGSubSigError float linear_scale Error rBGSubSignal Cy5 Propagated standard error as computed on net red background subtracted signal. rBGSubSignal float linear_scale SpecializedQuantitationType Cy5 The net red signal following the subtraction of the background from the raw mean red signal. rBGUsed float linear_scale SpecializedQuantitationType 1 Cy5 Background value subtracted from the raw mean signal to generate the BG subtracted signal; this value is computed per channel. If global BG subtraction is used the column is identical for every feature in a given channel. rBackground float linear_scale MeasuredSignal 1 Cy5 Mean local background signal (local to corresponding feature) computed per channel. rDerivedSignal float linear_scale DerivedSignal Cy5 The propagated feature signal, per channel, used for computation of log ratio. rDyeNormError float linear_scale Error rDyeNormSignal Cy5 The standard error associated with the dye normalized signal. rDyeNormSignal float linear_scale SpecializedQuantitationType Cy5 The dye normalized signal in the indicated channel. rHighEndCorrDNError float linear_scale Error rHighEndCorrDNSig Cy5 rHighEndCorrDNSig float linear_scale SpecializedQuantitationType Cy5 rIsBGNonUnifOL boolean linear_scale SpecializedQuantitationType Cy5 Boolean flag indicating if a background is a NonUniformity Outlier or not. A feature is non-uniform if the pixel noise of feature exceeds a threshold established for a "uniform" feature. A 1 indicates Feature is a non-uniformity outlier. rIsBGPopnOL boolean linear_scale SpecializedQuantitationType Cy5 Boolean flag indicating if a background is a Population Outlier or not. Probes with replicate features on a microarray are examined using population statistics. A feature is a population outlier if its signal is less than a lower threshold or exceeds an u rIsFeatNonUnifOL boolean linear_scale SpecializedQuantitationType Cy5 Boolean flag indicating if a feature is a NonUniformity Outlier or not. A feature is non-uniform if the pixel noise of feature exceeds a threshold established for a "uniform" feature. A 1 indicates Feature is a non-uniformity outlier. rIsFeatPopnOL boolean linear_scale SpecializedQuantitationType Cy5 Boolean flag indicating if a feature is a Population Outlier or not. Probes with replicate features on a microarray are examined using population statistics. A feature is a population outlier if its signal is less than a lower threshold or exceeds an uppe rIsFound boolean linear_scale SpecializedQuantitationType Cy5 A boolean used to flag found (strong) features. The flag is applied independently in each channel. A feature is considered found if the found spot centroid is within the bounds of the spot deviation limit with respect to corresponding nominal centroid. NO rIsInNegCtrlRange boolean linear_scale SpecializedQuantitationType Cy5 Boolean that identifies this spot as being in the range of background. rIsPosAndSignif boolean linear_scale SpecializedQuantitationType Cy5 Boolean flag indicating if the mean signal of a feature is greater than the corresponding background and if this difference is significant. Significance is established via a 2-sided t-test against the user-settable maximum p-value. A 1 indicates Feature i rIsSaturated boolean linear_scale SpecializedQuantitationType Cy5 Boolean flag indicating if a feature is saturated or not. A feature is saturated if 50% of the pixels in a feature are above the saturation threshold. A value of 1 means saturated. rIsWellAboveBG boolean linear_scale SpecializedQuantitationType Cy5 Boolean flag indicating if a feature is well above background or not. A feature must be gIsPosAndSignif and additionally the gBGSubSignal must be greater than 2.6*g(r)BG_SD. A 1 indicates a feature IsWellAboveBG. rMeanSignal float linear_scale MeasuredSignal Cy5 Raw mean signal of feature in red channel. rMeasuredSignal float linear_scale MeasuredSignal Cy5 Raw mean signal of feature in red channel. rMedianSignal float linear_scale SpecializedQuantitationType Cy5 Raw median signal of feature in red channel. rNetSignal float linear_scale SpecializedQuantitationType Cy5 The meanSignal - the scanner offset. rNumBGUsed integer linear_scale SpecializedQuantitationType 1 Cy5 A count of the number of background pixels used in the red channel. rNumPix integer linear_scale SpecializedQuantitationType Cy5 Total number of pixels used to compute feature statistics; ie. total number of inlier pixels/per spot, computed independently in each channel. The number of inlier pixels are the same in both channels. rNumPixOLHi integer linear_scale SpecializedQuantitationType Cy5 Number of outlier pixels per feature with intensity > upper threshold set via the pixel outlier rejection method. The number is computed independently in each channel. These pixels are omitted from all subsequent calculations. rNumPixOLLo integer linear_scale SpecializedQuantitationType Cy5 Number of outlier pixels per feature with intensity < lower threshold set via the pixel outlier rejection method. The number is computed independently in each channel. NOTE: The pixel outlier method is the ONLY step that removes data in Feature Extract rNumSatPix integer linear_scale SpecializedQuantitationType Cy5 Total number of saturated pixels per feature, computed per channel. rPValFeatEqBG float linear_scale SpecializedQuantitationType Cy5 P-value from t-test of significance between red Mean signal and red background. rPixSDev float linear_scale Error rMeanSignal Cy5 Standard deviation of all inlier pixels per feature; this is computed independently in each channel. rProcessedSigError float linear_scale Error rProcessedSignal Cy5 Standard error of propagated feature signal, per channel. rProcessedSignal float linear_scale DerivedSignal Cy5 The propagated feature signal, per channel, used for computation of log ratio. rSpatialDetrendIsInFilteredSet boolean linear_scale SpecializedQuantitationType Cy5 Set to true for a given feature if it is part of the filtered set used to fit the surface measuring the spatial trend across the microarray. This feature is considered part of the locally weighted x% of the features. rSpatialDetrendSurfaceValue float linear_scale SpecializedQuantitationType Cy5 Value of the smoothed surface derived from the set of features that are part of SpatialDetrendIsInFilteredSet. rSurrogateUsed float linear_scale SpecializedQuantitationType Cy5 The red surrogate value used. xDev float log_base_10 SpecializedQuantitationType Used to compute the Log Ratio PValue. >>>GEMTools[Incyte Genomics] BalancedDiffExpr float linear_scale SpecializedQuantitationType Balanced fold change. CloneID string_datatype unscaled SpecializedQuantitationType Incyte identifier for individual clone spotted on the array. CloneSource string_datatype unscaled SpecializedQuantitationType All arrayed elements were either clones derived from Incyte cDNA libraries, or sequences generated specifically to be used as hybridization and/or signal balancing controls. DiffExpr float linear_scale SpecializedQuantitationType Unbalanced fold change. GEMID string_datatype unscaled SpecializedQuantitationType Unique identifier. GeneID string_datatype unscaled SpecializedQuantitationType Incyte unique identifier for a sequence contig. GeneName string_datatype unscaled SpecializedQuantitationType Genbank annotation of Incyte sequence contig. IncyteCloneID string_datatype unscaled SpecializedQuantitationType Incyte identifier for individual clone spotted on the array. Location integer linear_scale SpecializedQuantitationType An Incyte code that can be used to determine the location of the spot on the array. P1Area% integer linear_scale SpecializedQuantitationType Cy5 Area of spot coverage. P1Description string_datatype unscaled SpecializedQuantitationType Cy5 Identifier or code name for Cy5 labeled probe. P1S/B float linear_scale SpecializedQuantitationType 1 Cy5 Element signal to background in the Cy5 channel. P1Signal integer linear_scale MeasuredSignal Cy5 Signal intensity in the Cy5 channel. P2Area% integer linear_scale SpecializedQuantitationType Cy3 Area of spot coverage. P2BalancedSignal integer linear_scale SpecializedQuantitationType Balanced Cy3 signal (balanced by total average signal intensity in both channels). P2Description string_datatype unscaled SpecializedQuantitationType Cy3 Identifier or code name for Cy3 labeled probe. P2S/B float linear_scale SpecializedQuantitationType 1 Cy3 Element signal to background in the Cy3 channel. P2Signal integer linear_scale MeasuredSignal Cy3 Signal intensity in the Cy3 channel. PCRStatus string_datatype unscaled SpecializedQuantitationType An indicator of the quality of the spotted cDNA. Probe1 string_datatype unscaled SpecializedQuantitationType Cy5 Unique identifier for Cy5 labeled probe. Probe2 string_datatype unscaled SpecializedQuantitationType Cy3 Unique identifier for Cy3 labeled probe. >>>GLEAMS[NuTec Sciences] BG.Cy3 float linear_scale MeasuredSignal 1 Cy3 Median pixel intensity computed over the local background region for Cy3. BG.Cy5 float linear_scale MeasuredSignal 1 Cy5 Median pixel intensity computed over the local background region for Cy5. Mean.Sig.Cy3 float linear_scale SpecializedQuantitationType Cy3 Pixel intensity averaged over the local signal region for Cy3. Mean.Sig.Cy5 float linear_scale SpecializedQuantitationType Cy5 Pixel intensity averaged over the local signal region for Cy5. Med.Sig.Cy3 integer linear_scale MeasuredSignal Cy3 Median pixel intensity computed over the local signal region for Cy3. Med.Sig.Cy5 integer linear_scale MeasuredSignal Cy5 Median pixel intensity computed over the local signal region for Cy5. SD.Cy3 float linear_scale Error Mean.Sig.Cy3 Cy3 Standard deviation of pixel intensities over the local signal region for Cy3. SD.Cy5 float linear_scale Error Mean.Sig.Cy5 Cy5 Standard deviation of pixel intensities over the local signal region for Cy5. Sig.Area integer linear_scale SpecializedQuantitationType Number of pixels in the local signal region. X integer linear_scale SpecializedQuantitationType Location of the center of the spot on the array on the X-axis. Y integer linear_scale SpecializedQuantitationType Location of the center of the spot on the array on the Y-axis. >>>GenePix[Axon Instruments] % > B595+1SD integer linear_scale SpecializedQuantitationType Cy3 The percentage of feature pixels with intensities more than one standard deviation above the background pixel intensity, at wavelength 595 nm. % > B595+2SD integer linear_scale SpecializedQuantitationType Cy3 The percentage of feature pixels with intensities more than two standard deviations above the background pixel intensity, at wavelength 595 nm. % > B685+1SD integer linear_scale SpecializedQuantitationType Cy5 The percentage of feature pixels with intensities more than one standard deviation above the background pixel intensity, at wavelength 685 nm. % > B685+2SD integer linear_scale SpecializedQuantitationType Cy5 The percentage of feature pixels with intensities more than two standard deviations above the background pixel intensity, at wavelength 685 nm. B595 integer linear_scale SpecializedQuantitationType 1 Cy3 The actual background value used for the feature in GenePix Pro calculations (as opposed to B595 Median, for example, which is the local median background.) This column is required because GenePix Pro 5.0 has global and negative control background subtrac B595 CV integer linear_scale SpecializedQuantitationType 1 Cy3 The coefficient of variation of local background pixel intensity. B595 Mean integer linear_scale MeasuredSignal 1 Cy3 The mean feature background intensity at wavelength 595 nm. B595 Median integer linear_scale SpecializedQuantitationType 1 Cy3 The median feature background intensity at wavelength 595 nm. B595 SD integer linear_scale Error 1 B595 Median Cy3 The standard deviation of the feature background intensity at wavelength 595 nm. B685 integer linear_scale SpecializedQuantitationType 1 Cy5 The actual background value used for the feature in GenePix Pro calculations (as opposed to B685 Median, for example, which is the local median background.) This column is required because GenePix Pro 5.0 has global and negative control background subtrac B685 CV integer linear_scale SpecializedQuantitationType 1 Cy5 The coefficient of variation of local background pixel intensity. B685 Mean integer linear_scale MeasuredSignal 1 Cy5 The mean feature background intensity at wavelength 685 nm. B685 Median integer linear_scale SpecializedQuantitationType 1 Cy5 The median feature background intensity at wavelength 685 nm. B685 SD integer linear_scale Error 1 B685 Median Cy5 The standard deviation of the feature background intensity at wavelength 685 nm. F595 % Sat. integer linear_scale SpecializedQuantitationType Cy3 The percentage of feature pixels at wavelength 595 nm that are saturated. F595 CV integer linear_scale SpecializedQuantitationType Cy3 The coefficient of variation of feature pixel intensity. F595 Mean integer linear_scale MeasuredSignal Cy3 Mean feature pixel intensity at wavelength 595 nm. F595 Mean - B595 integer linear_scale SpecializedQuantitationType Cy3 The mean feature pixel intensity at wavelength 595 nm with the median background subtracted. F595 Median integer linear_scale SpecializedQuantitationType Cy3 Median feature pixel intensity at wavelength 595 nm. F595 Median - B595 integer linear_scale SpecializedQuantitationType Cy3 The median feature pixel intensity at wavelength 595 nm with the median background subtracted. F595 SD integer linear_scale Error F595 Median Cy3 The standard deviation of the feature intensity at wavelength 595 nm. F595 Total Intensity integer linear_scale SpecializedQuantitationType Cy3 The sum of feature pixel intensities at 595 nm. F685 % Sat. integer linear_scale SpecializedQuantitationType Cy5 The percentage of feature pixels at wavelength 685 nm that are saturated. F685 CV integer linear_scale SpecializedQuantitationType Cy5 The coefficient of variation of feature pixel intensity. F685 Mean integer linear_scale MeasuredSignal Cy5 Mean feature pixel intensity at wavelength 685 nm. F685 Mean - B685 integer linear_scale SpecializedQuantitationType Cy5 The mean feature pixel intensity at wavelength 685 nm with the median background subtracted. F685 Median integer linear_scale SpecializedQuantitationType Cy5 Median feature pixel intensity at wavelength 685 nm. F685 Median - B685 integer linear_scale SpecializedQuantitationType Cy5 The median feature pixel intensity at wavelength 685 nm with the median background subtracted. F685 SD integer linear_scale Error F685 Median Cy5 The standard deviation of the feature intensity at wavelength 685 nm. F685 Total Intensity integer linear_scale SpecializedQuantitationType Cy5 The sum of feature pixel intensities at 685 nm. Log Ratio (685/595) float log_base_2 Ratio Log (base 2) transform of the ratio of the medians. Mean of Ratios (685/595) float linear_scale SpecializedQuantitationType The geometric mean of the pixel-by-pixel ratios of pixel intensities, with the median background subtracted. Median of Ratios (685/595) float linear_scale SpecializedQuantitationType The median of pixel-by-pixel ratios of pixel intensities, with the median background subtracted. Ratio of Means (685/595) float linear_scale SpecializedQuantitationType The ratio of the arithmetic mean intensities of each feature for each wavelength, with the median background subtracted. Ratio of Medians (685/595) float linear_scale SpecializedQuantitationType The ratio of the median intensities of each feature for each wavelength, with the median background subtracted. Ratios SD (685/595) float linear_scale Error Median of Ratios (685/595) The geometric standard deviation of the pixel intensity ratios. Rgn R2 (685/595) float linear_scale SpecializedQuantitationType The coefficient of determination for the current regression value. Rgn Ratio (685/595) float linear_scale SpecializedQuantitationType The regression ratio of every pixel in a 2-feature-diameter circle around the center of the feature. SNR 595 float linear_scale SpecializedQuantitationType 1 Cy5 The signal-to-noise ratio at 595 nm, defined by (F595 Mean - B595 Mean) / (B595 SD) SNR 685 float linear_scale SpecializedQuantitationType 1 Cy5 The signal-to-noise ratio at 685 nm, defined by (F685 Mean - B685 Mean) / (B685 SD) Sum of Means (685/595) integer linear_scale SpecializedQuantitationType The sum of the arithmetic mean intensities for each wavelength, with the median background subtracted. Sum of Medians (685/595) integer linear_scale SpecializedQuantitationType The sum of the median intensities for each wavelength, with the median background subtracted. % > B633+1SD integer linear_scale SpecializedQuantitationType Cy5 The percentage of feature pixels with intensities more than one standard deviation above the background pixel intensity, at wavelength 633 nm. % > B633+2SD integer linear_scale SpecializedQuantitationType Cy5 The percentage of feature pixels with intensities more than two standard deviations above the background pixel intensity, at wavelength 633 nm. B633 integer linear_scale SpecializedQuantitationType 1 Cy5 The actual background value used for the feature in GenePix Pro calculations (as opposed to B633 Median, for example, which is the local median background.) This column is required because GenePix Pro 5.0 has global and negative control background subtrac B633 CV integer linear_scale SpecializedQuantitationType 1 Cy5 The coefficient of variation of local background pixel intensity. B633 Mean integer linear_scale MeasuredSignal 1 Cy5 The mean feature background intensity at wavelength 633 nm. B633 Median integer linear_scale SpecializedQuantitationType 1 Cy5 The median feature background intensity at wavelength 633 nm. B633 SD integer linear_scale Error 1 B633 Median Cy5 The standard deviation of the feature background intensity at wavelength 633 nm. F633 % Sat. integer linear_scale SpecializedQuantitationType Cy5 The percentage of feature pixels at wavelength 633 nm that are saturated. F633 CV integer linear_scale SpecializedQuantitationType Cy5 The coefficient of variation of feature pixel intensity. F633 Mean integer linear_scale MeasuredSignal Cy5 Mean feature pixel intensity at wavelength 633 nm. F633 Mean - B633 integer linear_scale SpecializedQuantitationType Cy5 The mean feature pixel intensity at wavelength 633 nm with the median background subtracted. F633 Median integer linear_scale SpecializedQuantitationType Cy5 Median feature pixel intensity at wavelength 633 nm. F633 Median - B633 integer linear_scale SpecializedQuantitationType Cy5 The median feature pixel intensity at wavelength 633 nm with the median background subtracted. F633 SD integer linear_scale Error F633 Median Cy5 The standard deviation of the feature intensity at wavelength 633 nm. F633 Total Intensity integer linear_scale SpecializedQuantitationType Cy5 The sum of feature pixel intensities at 633 nm. Log Ratio (633/532) float log_base_2 Ratio Log (base 2) transform of the ratio of the medians. Mean of Ratios (633/532) float linear_scale SpecializedQuantitationType The geometric mean of the pixel-by-pixel ratios of pixel intensities, with the median background subtracted. Median of Ratios (633/532) float linear_scale SpecializedQuantitationType The median of pixel-by-pixel ratios of pixel intensities, with the median background subtracted. Ratio of Means (633/532) float linear_scale SpecializedQuantitationType The ratio of the arithmetic mean intensities of each feature for each wavelength, with the median background subtracted. Ratio of Medians (633/532) float linear_scale SpecializedQuantitationType The ratio of the median intensities of each feature for each wavelength, with the median background subtracted. Ratios SD (633/532) float linear_scale Error Median of Ratios (633/532) The geometric standard deviation of the pixel intensity ratios. Rgn R2 (633/532) float linear_scale SpecializedQuantitationType The coefficient of determination for the current regression value. Rgn Ratio (633/532) float linear_scale SpecializedQuantitationType The regression ratio of every pixel in a 2-feature-diameter circle around the center of the feature. SNR 633 float linear_scale SpecializedQuantitationType 1 Cy5 The signal-to-noise ratio at 633 nm, defined by (F633 Mean - B633 Mean) / (B633 SD) Sum of Means (633/532) integer linear_scale SpecializedQuantitationType The sum of the arithmetic mean intensities for each wavelength, with the median background subtracted. Sum of Medians (633/532) integer linear_scale SpecializedQuantitationType The sum of the median intensities for each wavelength, with the median background subtracted. % > B532+1SD integer linear_scale SpecializedQuantitationType Cy3 The percentage of feature pixels with intensities more than one standard deviation above the background pixel intensity, at wavelength 532 nm. % > B532+1SD2 integer linear_scale SpecializedQuantitationType Cy3 % > B532+2SD integer linear_scale SpecializedQuantitationType Cy3 The percentage of feature pixels with intensities more than two standard deviations above the background pixel intensity, at wavelength 532 nm. % > B532+2SD2 integer linear_scale SpecializedQuantitationType Cy3 % > B563+1SD integer linear_scale SpecializedQuantitationType Cy3 The percentage of feature pixels with intensities more than one standard deviation above the background pixel intensity, at wavelength 563 nm. % > B563+2SD integer linear_scale SpecializedQuantitationType Cy3 The percentage of feature pixels with intensities more than two standard deviations above the background pixel intensity, at wavelength 563 nm. % > B635+1SD integer linear_scale SpecializedQuantitationType Cy5 The percentage of feature pixels with intensities more than one standard deviation above the background pixel intensity, at wavelength 635 nm. % > B635+1SD2 integer linear_scale SpecializedQuantitationType Cy5 % > B635+2SD integer linear_scale SpecializedQuantitationType Cy5 The percentage of feature pixels with intensities more than two standard deviations above the background pixel intensity, at wavelength 635 nm. % > B635+2SD2 integer linear_scale SpecializedQuantitationType Cy5 Autoflag boolean linear_scale SpecializedQuantitationType Reports whether or not a feature has been flagged from the Flag Features dialog box. It applies to good and bad flags only. B Pixels integer linear_scale SpecializedQuantitationType The total number of background pixels. B532 integer linear_scale SpecializedQuantitationType 1 Cy3 The actual background value used for the feature in GenePix Pro calculations (as opposed to B532 Median, for example, which is the local median background.) This column is required because GenePix Pro 5.0 has global and negative control background subtrac B532 CV integer linear_scale SpecializedQuantitationType 1 Cy3 The coefficient of variation of local background pixel intensity. B532 Mean integer linear_scale MeasuredSignal 1 Cy3 The mean feature background intensity at wavelength 532 nm. B532 Median integer linear_scale SpecializedQuantitationType 1 Cy3 The median feature background intensity at wavelength 532 nm. B532 SD integer linear_scale Error 1 B532 Median Cy3 The standard deviation of the feature background intensity at wavelength 532 nm. B532 SD2 float linear_scale Error 1 B532 Median Cy3 B563 Mean integer linear_scale MeasuredSignal 1 Cy3 The mean feature background intensity at wavelength 563 nm. B563 Median integer linear_scale SpecializedQuantitationType 1 Cy3 The median feature background intensity at wavelength 563 nm. B563 SD integer linear_scale Error 1 B563 Median Cy3 The standard deviation of the feature background intensity at wavelength 563 nm. B635 integer linear_scale SpecializedQuantitationType 1 Cy5 The actual background value used for the feature in GenePix Pro calculations (as opposed to B635 Median, for example, which is the local median background.) This column is required because GenePix Pro 5.0 has global and negative control background subtrac B635 CV integer linear_scale SpecializedQuantitationType 1 Cy5 The coefficient of variation of local background pixel intensity. B635 Mean integer linear_scale MeasuredSignal 1 Cy5 The mean feature background intensity at wavelength 635 nm. B635 Median integer linear_scale SpecializedQuantitationType 1 Cy5 The median feature background intensity at wavelength 635 nm. B635 SD integer linear_scale Error 1 B635 Median Cy5 The standard deviation of the feature background intensity at wavelength 635 nm. B635 SD2 float linear_scale Error 1 B635 Median Cy5 Circularity integer linear_scale SpecializedQuantitationType A measure of circularity from 0 to 100, using a metric based on the variance of the distance of each boundary pixel to the centroid of the feature: 100 is most circular, 0 is most non-circular. Circular features always have a circularity of 100, square fe Dia. integer linear_scale SpecializedQuantitationType The diameter in um of the feature-indicator. F Pixels integer linear_scale SpecializedQuantitationType The total number of feature pixels. F532 % Sat. integer linear_scale SpecializedQuantitationType Cy3 The percentage of feature pixels at wavelength 532 nm that are saturated. F532 CV integer linear_scale SpecializedQuantitationType Cy3 The coefficient of variation of feature pixel intensity. F532 Mean integer linear_scale MeasuredSignal Cy3 Mean feature pixel intensity at wavelength 532 nm. F532 Mean - B532 integer linear_scale SpecializedQuantitationType Cy3 The mean feature pixel intensity at wavelength 532 nm with the median background subtracted. F532 Median integer linear_scale SpecializedQuantitationType Cy3 Median feature pixel intensity at wavelength 532 nm. F532 Median - B532 integer linear_scale SpecializedQuantitationType Cy3 The median feature pixel intensity at wavelength 532 nm with the median background subtracted. F532 SD integer linear_scale Error F532 Median Cy3 The standard deviation of the feature intensity at wavelength 532 nm. F532 Total Intensity integer linear_scale SpecializedQuantitationType Cy3 The sum of feature pixel intensities at 532 nm. F563 % Sat. integer linear_scale SpecializedQuantitationType Cy3 The percentage of feature pixels at wavelength 563 nm that are saturated. F563 Mean integer linear_scale MeasuredSignal Cy3 Mean feature pixel intensity at wavelength 563 nm. F563 Mean - B563 integer linear_scale SpecializedQuantitationType Cy3 The mean feature pixel intensity at wavelength 563 nm with the median background subtracted. F563 Median integer linear_scale SpecializedQuantitationType Cy3 Median feature pixel intensity at wavelength 563 nm. F563 Median - B563 integer linear_scale SpecializedQuantitationType Cy3 The median feature pixel intensity at wavelength 563 nm with the median background subtracted. F563 SD integer linear_scale Error F563 Median Cy3 The standard deviation of the feature intensity at wavelength 563 nm. F635 % Sat. integer linear_scale SpecializedQuantitationType Cy5 The percentage of feature pixels at wavelength 635 nm that are saturated. F635 CV integer linear_scale SpecializedQuantitationType Cy5 The coefficient of variation of feature pixel intensity. F635 Mean integer linear_scale MeasuredSignal Cy5 Mean feature pixel intensity at wavelength 635 nm. F635 Mean - B635 integer linear_scale SpecializedQuantitationType Cy5 The mean feature pixel intensity at wavelength 635 nm with the median background subtracted. F635 Median integer linear_scale SpecializedQuantitationType Cy5 Median feature pixel intensity at wavelength 635 nm. F635 Median - B635 integer linear_scale SpecializedQuantitationType Cy5 The median feature pixel intensity at wavelength 635 nm with the median background subtracted. F635 SD integer linear_scale Error F635 Median Cy5 The standard deviation of the feature intensity at wavelength 635 nm. F635 Total Intensity integer linear_scale SpecializedQuantitationType Cy5 The sum of feature pixel intensities at 635 nm. Flags integer linear_scale SpecializedQuantitationType The type of flag associated with a feature: -100 = user-flagged null spot; -50 = software-flagged null spot; 0 = spot valid. Log Ratio float log_base_2 Ratio Log (base 2) transform of the ratio of the medians. Log Ratio (532/635) float log_base_2 Ratio log (base 2) transform of the ratio of the medians. Log Ratio (635/532) float log_base_2 Ratio Log (base 2) transform of the ratio of the medians. Mean of Ratios float linear_scale SpecializedQuantitationType The geometric mean of the pixel-by-pixel ratios of pixel intensities, with the median background subtracted. Mean of Ratios (532/635) float linear_scale SpecializedQuantitationType The geometric mean of the pixel-by-pixel ratios of pixel intensities, with the median background subtracted. Mean of Ratios (635/532) float linear_scale SpecializedQuantitationType The geometric mean of the pixel-by-pixel ratios of pixel intensities, with the median background subtracted. Median of Ratios float linear_scale SpecializedQuantitationType The median of pixel-by-pixel ratios of pixel intensities, with the median background subtracted. Median of Ratios (532/635) float linear_scale SpecializedQuantitationType The median of pixel-by-pixel ratios of pixel intensities, with the median background subtracted. Median of Ratios (635/532) float linear_scale SpecializedQuantitationType The median of pixel-by-pixel ratios of pixel intensities, with the median background subtracted. Normalize integer unscaled PresentAbsent The normalization status of the feature (included/not included). Ratio of Means float linear_scale SpecializedQuantitationType The ratio of the arithmetic mean intensities of each feature for each wavelength, with the median background subtracted. Ratio of Means (532/635) float linear_scale SpecializedQuantitationType The ratio of the arithmetic mean intensities of each feature for each wavelength, with the median background subtracted. Ratio of Means (635/532) float linear_scale SpecializedQuantitationType The ratio of the arithmetic mean intensities of each feature for each wavelength, with the median background subtracted. Ratio of Medians float linear_scale SpecializedQuantitationType The ratio of the median intensities of each feature for each wavelength, with the median background subtracted. Ratio of Medians (532/635) float linear_scale SpecializedQuantitationType The ratio of the median intensities of each feature for each wavelength, with the median background subtracted. Ratio of Medians (635/532) float linear_scale SpecializedQuantitationType The ratio of the median intensities of each feature for each wavelength, with the median background subtracted. Ratios SD float linear_scale Error Median of Ratios The geometric standard deviation of the pixel intensity ratios. Ratios SD (532/635) float linear_scale Error Median of Ratios (532/635) The geometric standard deviation of the pixel intensity ratios. Ratios SD (635/532) float linear_scale Error Median of Ratios (635/532) The geometric standard deviation of the pixel intensity ratios. Rgn R (532/635) float linear_scale SpecializedQuantitationType Rgn R2 float linear_scale SpecializedQuantitationType The coefficient of determination for the current regression value. Rgn R2 (532/635) float linear_scale SpecializedQuantitationType The coefficient of determination for the current regression value. Rgn R2 (635/532) float linear_scale SpecializedQuantitationType The coefficient of determination for the current regression value. Rgn Ratio float linear_scale SpecializedQuantitationType The regression ratio of every pixel in a 2-feature-diameter circle around the center of the feature. Rgn Ratio (532/635) float linear_scale SpecializedQuantitationType The regression ratio of every pixel in a 2-feature-diameter circle around the center of the feature. Rgn Ratio (635/532) float linear_scale SpecializedQuantitationType The regression ratio of every pixel in a 2-feature-diameter circle around the center of the feature. Rgn R float linear_scale SpecializedQuantitationType Rgn R (635/532) float linear_scale SpecializedQuantitationType Rgn R (532/635) float linear_scale SpecializedQuantitationType SNR 532 float linear_scale SpecializedQuantitationType 1 Cy3 The signal-to-noise ratio at 532 nm, defined by (F532 Mean - B532 Mean) / (B532 SD) SNR 635 float linear_scale SpecializedQuantitationType 1 Cy5 The signal-to-noise ratio at 635 nm, defined by (F635 Mean - B635 Mean) / (B635 SD) Sum of Means integer linear_scale SpecializedQuantitationType The sum of the arithmetic mean intensities for each wavelength, with the median background subtracted. Sum of Means (532/635) integer linear_scale SpecializedQuantitationType The sum of the arithmetic mean intensities for each wavelength, with the median background subtracted. Sum of Means (635/532) integer linear_scale SpecializedQuantitationType The sum of the arithmetic mean intensities for each wavelength, with the median background subtracted. Sum of Medians integer linear_scale SpecializedQuantitationType The sum of the median intensities for each wavelength, with the median background subtracted. Sum of Medians (532/635) integer linear_scale SpecializedQuantitationType The sum of the median intensities for each wavelength, with the median background subtracted. Sum of Medians (635/532) integer linear_scale SpecializedQuantitationType The sum of the median intensities for each wavelength, with the median background subtracted. X integer linear_scale SpecializedQuantitationType The X-coordinate in um of the center of the feature-indicator associated with the feature, where (0,0) is the top left of the image. Y integer linear_scale SpecializedQuantitationType The Y-coordinate in um of the center of the feature-indicator associated with the feature, where (0,0) is the top left of the image. >>>GeneTAC Background med Cy3 float linear_scale MeasuredSignal 1 Cy3 Background med Cy5 float linear_scale MeasuredSignal 1 Cy5 Background med ratio float linear_scale Ratio 1 Background st dev Cy3 float linear_scale Error 1 Background med Cy3 Cy3 Background st dev Cy5 float linear_scale Error 1 Background med Cy5 Cy5 Signal med Cy3 float linear_scale MeasuredSignal Cy3 Signal med Cy5 float linear_scale MeasuredSignal Cy5 Signal med ratio float linear_scale Ratio Signal st dev Cy3 float linear_scale Error Signal med Cy3 Cy3 Signal st dev Cy5 float linear_scale Error Signal med Cy5 Cy5 >>>ImaGene[BioDiscovery] Area To Perimeter_Cy3 float linear_scale SpecializedQuantitationType Cy3 This quality measure defines the spot's circularity. Area of a spot is divided by a square of spot perimeter and multiplied by 4π. As a result, this measure ranges from 0 (highly non-circular shape) to 1 (a perfect circle). Area To Perimeter_Cy5 float linear_scale SpecializedQuantitationType Cy5 This quality measure defines the spot's circularity. Area of a spot is divided by a square of spot perimeter and multiplied by 4π. As a result, this measure ranges from 0 (highly non-circular shape) to 1 (a perfect circle). Background Area_Cy3 integer linear_scale SpecializedQuantitationType 1 Cy3 Number of pixels in the local background region. Background Area_Cy5 integer linear_scale SpecializedQuantitationType 1 Cy5 Number of pixels in the local background region. Background Contamination Present_Cy3 boolean linear_scale SpecializedQuantitationType Cy3 Background Contamination Present_Cy5 boolean linear_scale SpecializedQuantitationType Cy5 Background Mean float linear_scale MeasuredSignal 1 Background Mean_Cy3 float linear_scale MeasuredSignal 1 Cy3 Pixel intensity averaged over the local background region. Background Mean_Cy5 float linear_scale MeasuredSignal 1 Cy5 Pixel intensity averaged over the local background region. Background Median_Cy3 float linear_scale SpecializedQuantitationType 1 Cy3 Median pixel intensity computed over the local background region. Background Median_Cy5 float linear_scale SpecializedQuantitationType 1 Cy5 Median pixel intensity computed over the local background region. Background Mode_Cy3 float linear_scale SpecializedQuantitationType 1 Cy3 Mode pixel intensity computed over the local background region. Background Mode_Cy5 float linear_scale SpecializedQuantitationType 1 Cy5 Mode pixel intensity computed over the local background region. Background Stdev float linear_scale Error 1 Background Mean Background Stdev_Cy3 float linear_scale Error 1 Background Mean_Cy3 Cy3 Standard deviation of pixel intensities over the local background region. Background Stdev_Cy5 float linear_scale Error 1 Background Mean_Cy5 Cy5 Standard deviation of pixel intensities over the local background region. Background Total_Cy3 integer linear_scale SpecializedQuantitationType 1 Cy3 Total pixel intensity summed over the local background region. Background Total_Cy5 integer linear_scale SpecializedQuantitationType 1 Cy5 Total pixel intensity summed over the local background region. Background contamination present_Cy3 boolean linear_scale SpecializedQuantitationType Cy3 0 if the spot passed background contamination test, 1 if it did not. Background contamination present_Cy5 boolean linear_scale SpecializedQuantitationType Cy5 0 if the spot passed background contamination test, 1 if it did not. CM Offset-X_Cy3 float linear_scale SpecializedQuantitationType Cy3 X offset (in pixels) of the spot's center of the mass from the expected position in the grid. CM Offset-X_Cy5 float linear_scale SpecializedQuantitationType Cy5 X offset (in pixels) of the spot's center of the mass from the expected position in the grid. CM Offset-Y_Cy3 float linear_scale SpecializedQuantitationType Cy3 Y offset (in pixels) of the spot's center of the mass from the expected position in the grid. CM Offset-Y_Cy5 float linear_scale SpecializedQuantitationType Cy5 Y offset (in pixels) of the spot's center of the mass from the expected position in the grid. CM Offset_Cy3 float linear_scale SpecializedQuantitationType Cy3 Offset (in pixels) of the spot's center of the mass from the expected position in the grid. CM Offset_Cy5 float linear_scale SpecializedQuantitationType Cy5 Offset (in pixels) of the spot's center of the mass from the expected position in the grid. CM-X_Cy3 float linear_scale SpecializedQuantitationType Cy3 X coordinate of the center of the mass of spot's signal region. CM-X_Cy5 float linear_scale SpecializedQuantitationType Cy5 X coordinate of the center of the mass of spot's signal region. CM-Y_Cy3 float linear_scale SpecializedQuantitationType Cy3 Y coordinate of the center of the mass of spot's signal region. CM-Y_Cy5 float linear_scale SpecializedQuantitationType Cy5 Y coordinate of the center of the mass of spot's signal region. Control_Cy3 string_datatype unscaled SpecializedQuantitationType Cy3 Name of a control type for current spot (no name means the spot is not a control spot). Control_Cy5 string_datatype unscaled SpecializedQuantitationType Cy5 Name of a control type for current spot (no name means the spot is not a control spot). Diameter integer linear_scale SpecializedQuantitationType Diameter_Cy3 integer linear_scale SpecializedQuantitationType Cy3 Diameter (in pixels) of grid circle corresponding to the spot. Diameter_Cy5 integer linear_scale SpecializedQuantitationType Cy5 Diameter (in pixels) of grid circle corresponding to the spot. Empty spot_Cy3 boolean linear_scale SpecializedQuantitationType Cy3 0 if the spot passed offset test, 1 if it did not. Empty spot_Cy5 boolean linear_scale SpecializedQuantitationType Cy5 0 if the spot passed offset test, 1 if it did not. Expected X_Cy3 float linear_scale SpecializedQuantitationType Cy3 X coordinate of expected position of the circle in the grid. Expected position in the grid is computed fitting least square lines to circle centers in every row and column. Expected X_Cy5 float linear_scale SpecializedQuantitationType Cy5 X coordinate of expected position of the circle in the grid. Expected position in the grid is computed fitting least square lines to circle centers in every row and column. Expected Y_Cy3 float linear_scale SpecializedQuantitationType Cy3 Y coordinate of expected position of the circle in the grid. Expected position in the grid is computed fitting least square lines to circle centers in every row and column. Expected Y_Cy5 float linear_scale SpecializedQuantitationType Cy5 Y coordinate of expected position of the circle in the grid. Expected position in the grid is computed fitting least square lines to circle centers in every row and column. Failed Control_Cy3 boolean linear_scale SpecializedQuantitationType Cy3 0 if the control passed all tests, 1 if at least one of the tests failed. Failed Control_Cy5 boolean linear_scale SpecializedQuantitationType Cy5 0 if the control passed all tests, 1 if at least one of the tests failed. Field string_datatype unscaled SpecializedQuantitationType Name of a field where the spot is located. Flag boolean unscaled PresentAbsent Flag_Cy3 integer linear_scale SpecializedQuantitationType Cy3 Numeric code for the spot (0 - no flag, flag codes 1,...,7). Flag_Cy5 integer linear_scale SpecializedQuantitationType Cy5 Numeric code for the spot (0 - no flag, flag codes 1,...,7). Gene ID string_datatype unscaled SpecializedQuantitationType Gene ID information for the spot. Ignored % failed_Cy3 boolean linear_scale SpecializedQuantitationType Cy3 0 if the spot passed ignored percentage test, 1 if it did not. Ignored % failed_Cy5 boolean linear_scale SpecializedQuantitationType Cy5 0 if the spot passed ignored percentage test, 1 if it did not. Ignored Area_Cy3 integer linear_scale SpecializedQuantitationType Cy3 Area of ignored regions directly neighboring ("touching") the signal area is computed. Ignored Area_Cy5 integer linear_scale SpecializedQuantitationType Cy5 Area of ignored regions directly neighboring ("touching") the signal area is computed. Ignored Median_Cy3 float linear_scale SpecializedQuantitationType Cy3 Median pixel intensity computed over the local ignored region. Ignored Median_Cy5 float linear_scale SpecializedQuantitationType Cy5 Median pixel intensity computed over the local ignored region. Max Diam_Cy3 float linear_scale SpecializedQuantitationType Cy3 Diameter of the circle, the spot's signal region can be inscribed in. Max Diam_Cy5 float linear_scale SpecializedQuantitationType Cy5 Diameter of the circle, the spot's signal region can be inscribed in. Min Diam_Cy3 float linear_scale SpecializedQuantitationType Cy3 Diameter of the circle inscribed into the spot's signal region. Min Diam_Cy5 float linear_scale SpecializedQuantitationType Cy5 Diameter of the circle inscribed into the spot's signal region. Negative spot_Cy3 boolean linear_scale SpecializedQuantitationType Cy3 1 if the spot was qualified as negative, 0 if it was not. Negative spot_Cy5 boolean linear_scale SpecializedQuantitationType Cy5 1 if the spot was qualified as negative, 0 if it was not. Offset X_Cy3 float linear_scale SpecializedQuantitationType Cy3 X Offset (in pixels) of the center of the grid circle from the expected position in the grid. Offset X_Cy5 float linear_scale SpecializedQuantitationType Cy5 X Offset (in pixels) of the center of the grid circle from the expected position in the grid. Offset Y_Cy3 float linear_scale SpecializedQuantitationType Cy3 Y Offset (in pixels) of the center of the grid circle from the expected position in the grid. Offset Y_Cy5 float linear_scale SpecializedQuantitationType Cy5 Y Offset (in pixels) of the center of the grid circle from the expected position in the grid. Offset failed_Cy3 boolean linear_scale SpecializedQuantitationType Cy3 0 if the spot passed offset test, 1 if it did not. Offset failed_Cy5 boolean linear_scale SpecializedQuantitationType Cy5 0 if the spot passed offset test, 1 if it did not. Open Perimeter Failed_Cy3 boolean linear_scale SpecializedQuantitationType Cy3 Open Perimeter Failed_Cy5 boolean linear_scale SpecializedQuantitationType Cy5 Open Perimeter_Cy3 float linear_scale SpecializedQuantitationType Cy3 Computes the proportion of signal perimeter that touches the border of rectangular snip around the spot. Open Perimeter_Cy5 float linear_scale SpecializedQuantitationType Cy5 Computes the proportion of signal perimeter that touches the border of rectangular snip around the spot. Open perimeter failed_Cy3 boolean linear_scale SpecializedQuantitationType Cy3 0 if the spot open perimeter test, 1 if it did not. Open perimeter failed_Cy5 boolean linear_scale SpecializedQuantitationType Cy5 0 if the spot open perimeter test, 1 if it did not. Perim-To-Area_Cy3 boolean linear_scale SpecializedQuantitationType Cy3 Perim-To-Area_Cy5 boolean linear_scale SpecializedQuantitationType Cy5 Perim-to-area failed_Cy3 boolean linear_scale SpecializedQuantitationType Cy3 0 if the spot passed perimeter-to-area test, 1 if it did not. Perim-to-area failed_Cy5 boolean linear_scale SpecializedQuantitationType Cy5 0 if the spot passed perimeter-to-area test, 1 if it did not. Position Offset_Cy3 float linear_scale SpecializedQuantitationType Cy3 Position Offset_Cy5 float linear_scale SpecializedQuantitationType Cy5 Position offset_Cy3 float linear_scale SpecializedQuantitationType Cy3 Offset (in pixels) of the center of the grid circle from the expected position in the grid. Position offset_Cy5 float linear_scale SpecializedQuantitationType Cy5 Offset (in pixels) of the center of the grid circle from the expected position in the grid. Saturated spot_Cy3 boolean linear_scale SpecializedQuantitationType Cy3 1 if the spot was qualified as saturated, 0 if it was not. Saturated spot_Cy5 boolean linear_scale SpecializedQuantitationType Cy5 1 if the spot was qualified as saturated, 0 if it was not. Selected spot_Cy3 boolean linear_scale SpecializedQuantitationType Cy3 1 if the spot was selected in the software view at time of save, 0 if not. Selected spot_Cy5 boolean linear_scale SpecializedQuantitationType Cy5 1 if the spot was selected in the software view at time of save, 0 if not. Shape Regularity float linear_scale SpecializedQuantitationType Shape Regularity Failed_Cy3 boolean linear_scale SpecializedQuantitationType Cy3 Shape Regularity Failed_Cy5 boolean linear_scale SpecializedQuantitationType Cy5 Shape Regularity_Cy3 float linear_scale SpecializedQuantitationType Cy3 The signal area of a spot is inscribed into a circle, then the number of non-signal pixels that fall within this circle is computed and divided by area of circle. This ratio is subtracted from 1 to give the Shape Regularity. Shape Regularity_Cy5 float linear_scale SpecializedQuantitationType Cy5 The signal area of a spot is inscribed into a circle, then the number of non-signal pixels that fall within this circle is computed and divided by area of circle. This ratio is subtracted from 1 to give the Shape Regularity. Shape regularity failed_Cy3 boolean linear_scale SpecializedQuantitationType Cy3 0 if the spot passed shape regularity test, 1 if it did not. Shape regularity failed_Cy5 boolean linear_scale SpecializedQuantitationType Cy5 0 if the spot passed shape regularity test, 1 if it did not. Signal Area_Cy3 integer linear_scale SpecializedQuantitationType Cy3 Number of pixels in the local signal region. Signal Area_Cy5 integer linear_scale SpecializedQuantitationType Cy5 Number of pixels in the local signal region. Signal Contamination Present_Cy3 boolean linear_scale SpecializedQuantitationType Cy3 Signal Contamination Present_Cy5 boolean linear_scale SpecializedQuantitationType Cy5 Signal Mean float linear_scale MeasuredSignal Signal Mean_Cy3 float linear_scale MeasuredSignal Cy3 Pixel intensity averaged over the local signal region. Signal Mean_Cy5 float linear_scale MeasuredSignal Cy5 Pixel intensity averaged over the local signal region. Signal Median_Cy3 float linear_scale SpecializedQuantitationType Cy3 Median pixel intensity computed over the local signal region. Signal Median_Cy5 float linear_scale SpecializedQuantitationType Cy5 Median pixel intensity computed over the local signal region. Signal Mode_Cy3 float linear_scale SpecializedQuantitationType Cy3 Mode pixel intensity computed over the local signal region (mode corresponds to the pick location in intensity distribution). Signal Mode_Cy5 float linear_scale SpecializedQuantitationType Cy5 Mode pixel intensity computed over the local signal region (mode corresponds to the pick location in intensity distribution). Signal Stdev float linear_scale Error Signal Mean Signal Stdev_Cy3 float linear_scale Error Signal Mean_Cy3 Cy3 Standard deviation of pixel intensities over the local signal region. Signal Stdev_Cy5 float linear_scale Error Signal Mean_Cy5 Cy5 Standard deviation of pixel intensities over the local signal region. Signal Total_Cy3 integer linear_scale SpecializedQuantitationType Cy3 Total pixel intensity summed over the local signal region. Signal Total_Cy5 integer linear_scale SpecializedQuantitationType Cy5 Total pixel intensity summed over the local signal region. Signal contamination present_Cy3 boolean linear_scale SpecializedQuantitationType Cy3 0 if the spot passed signal contamination test, 1 if it did not. Signal contamination present_Cy5 boolean linear_scale SpecializedQuantitationType Cy5 0 if the spot passed signal contamination test, 1 if it did not. Spot Area_Cy3 integer linear_scale SpecializedQuantitationType Cy3 Signal Area plus Ignored Area. Spot Area_Cy5 integer linear_scale SpecializedQuantitationType Cy5 Signal Area plus Ignored Area. XCoord float linear_scale SpecializedQuantitationType XCoord_Cy3 float linear_scale SpecializedQuantitationType Cy3 X coordinate (in pixels) of grid circle corresponding to the spot. XCoord_Cy5 float linear_scale SpecializedQuantitationType Cy5 X coordinate (in pixels) of grid circle corresponding to the spot. YCoord float linear_scale SpecializedQuantitationType YCoord_Cy3 float linear_scale SpecializedQuantitationType Cy3 Y coordinate (in pixels) of grid circle corresponding to the spot. YCoord_Cy5 float linear_scale SpecializedQuantitationType Cy5 Y coordinate (in pixels) of grid circle corresponding to the spot. >>>NimbleScan[NimbleGen Systems] GENE_EXPR_OPTION string_datatype unscaled SpecializedQuantitationType The CONTAINER name from the design file, if analysis was done by container or WHOLE_ARRAY if all replicate probe sets were combined into a single set. The default analysis is normally by container. CONTAINER names are generally named FORWARD/REVERSE/BLOCK IMAGE_ID_CY3 string_datatype unscaled SpecializedQuantitationType Cy3 The name of the image the data was extracted from, minus the .tif extension. For NimbleGen data sets, this will be the array identifier plus any additional information, like wavelength used to scan the array, or photomultiplier tube setting. The array ID IMAGE_ID_CY5 string_datatype unscaled SpecializedQuantitationType Cy5 The name of the image the data was extracted from, minus the .tif extension. For NimbleGen data sets, this will be the array identifier plus any additional information, like wavelength used to scan the array, or photomultiplier tube setting. The array ID IMAGE_ID string_datatype unscaled SpecializedQuantitationType The name of the image the data was extracted from, minus the .tif extension. For NimbleGen data sets, this will be the array identifier plus any additional information, like wavelength used to scan the array, or photomultiplier tube setting. The array ID MATCH_INDEX integer linear_scale SpecializedQuantitationType Integer number that ties probe pairs together. Using the combination of MATCH_INDEX and MISMATCH you can retrieve and distinguish the members of the probe pair. Required for expression arrays with mismatches. Must be unique for each probe pair of a given MM_CY3 float linear_scale SpecializedQuantitationType Cy3 The mismatch signal intensity for the probe pair. Will range from 0 to 65536. Will be zero for perfect match only designs. MM_CY5 float linear_scale SpecializedQuantitationType Cy5 The mismatch signal intensity for the probe pair. Will range from 0 to 65536. Will be zero for perfect match only designs. PM_CY3 float linear_scale MeasuredSignal Cy3 The perfect match signal intensity for the probe pair. Will range from 0 to 65536. PM_CY5 float linear_scale MeasuredSignal Cy5 The perfect match signal intensity for the probe pair. Will range from 0 to 65536. MM float linear_scale SpecializedQuantitationType The mismatch signal intensity for the probe pair. Will range from 0 to 65536. Will be zero for perfect match only designs. PM float linear_scale MeasuredSignal The perfect match signal intensity for the probe pair. Will range from 0 to 65536. POSITION integer linear_scale SpecializedQuantitationType Position of the PROBE_SEQUENCE in the sequence/region of interest, starting from the left/5-prime end. PROBE_ID string_datatype unscaled SpecializedQuantitationType The NimbleGen probe identifier. Used to identify a probe sequence within a design. Limited to 50 characters. For expression designs, a PROBE_ID is a 17 character string that looks like HSAP00P0001724033. The first four letters (HSAP) are the species code. SEQ_ID string_datatype unscaled SpecializedQuantitationType The NimbleGen sequence identifier. Used to group the probe pairs together for determining gene expression summary values. Required - must be unique for each sequence/region of interest. Limited to 50 characters. SEQ_URL string_datatype unscaled SpecializedQuantitationType When populated, URL to sequence information for the SEQ_ID. >>>QuantArray[PerkinElmer] Cy3 Area integer linear_scale SpecializedQuantitationType Cy3 The area of the spot given as the number of pixels (in sq. microns). Used to determine whether the spot is close to the expected size or is an artifact on the slide. Cy3 Area Filter boolean linear_scale SpecializedQuantitationType Cy3 Cy3 Background float linear_scale MeasuredSignal 1 Cy3 Mean pixel Cy3 background intensity in Channel Cy3. Cy3 Background Std Dev float linear_scale Error 1 Cy3 Background Cy3 Standard deviation of the raw Cy3 background pixel intensity. Cy3 Background Subtr 1 Cy3 Cy3 Bkg. Uniformity float linear_scale SpecializedQuantitationType 1 Cy3 The uniformity of the pixels used in the background intensity calculation. Cy3 Bkg. Uniformity Filter boolean linear_scale SpecializedQuantitationType Cy3 Cy3 Circularity float linear_scale SpecializedQuantitationType Cy3 Reports the degree to which a spot is close to a perfect circle. This measurement is used to determine the print quality of the microarray. Cy3 Circularity Filter boolean linear_scale SpecializedQuantitationType Cy3 Cy3 Confidence integer linear_scale SpecializedQuantitationType Cy3 Unused QuantArray feature, will always = 1. Cy3 Diameter float linear_scale SpecializedQuantitationType Cy3 Average diameter of the spot (in microns). Used to determine whether the spot is close to the expected size or is perhaps an artifact on the slide. Cy3 Diameter Filter boolean linear_scale SpecializedQuantitationType Cy3 Cy3 Footprint float linear_scale SpecializedQuantitationType Cy3 The distance between the expected position of a spot and its actual measured position (in microns). Cy3 Footprint Filter boolean linear_scale SpecializedQuantitationType Cy3 Cy3 Intensity float linear_scale MeasuredSignal Cy3 Mean pixel Cy3 foreground intensity in Channel Cy3. Cy3 Intensity Std Dev float linear_scale Error Cy3 Intensity Cy3 Standard deviation of the raw Cy3 foreground pixel intensity. Cy3 Normalized & BackSubtr 1 Cy3 Cy3 Normalized & BackSubtr Ratio 1 Cy3 Cy3 Percent float linear_scale SpecializedQuantitationType Cy3 The portion of the overall spot fluorescence contributed by channel Cy3 (in percent). Cy3 Ratio float linear_scale SpecializedQuantitationType Cy3 The portion of the overall spot fluorescence contributed by channel Cy3 (normalized so that channel Cy3 contribution equals 1). Cy3 Replicate Filter boolean linear_scale SpecializedQuantitationType Cy3 Cy3 Signal Noise Ratio float linear_scale Ratio 1 Cy3 The ratio of spot intensity to the standard deviation of the local background of all spots in the microarray. Spots with a low Signal/Noise Ratio can be quickly identified for later reviews. Cy3 Signal Noise Ratio Filter float linear_scale SpecializedQuantitationType Cy3 Cy3 Spot Uniformity float linear_scale SpecializedQuantitationType Cy3 The uniformity of the pixels used in the spot foreground intensity calculation.This helps in determining the quality of the spot and aids in selecting the correct quantification output method. Cy3 Spot Uniformity Filter boolean linear_scale SpecializedQuantitationType Cy3 Cy5 Area integer linear_scale SpecializedQuantitationType Cy5 The area of the spot given as the number of pixels (in sq. microns). Used to determine whether the spot is close to the expected size or is an artifact on the slide. Cy5 Area Filter boolean linear_scale SpecializedQuantitationType Cy5 Cy5 Background float linear_scale MeasuredSignal 1 Cy5 Mean pixel Cy5 background intensity in Channel Cy5. Cy5 Background Std Dev float linear_scale Error 1 Cy5 Background Cy5 Standard deviation of the raw Cy5 background pixel intensity. Cy5 Background Subtr 1 Cy5 Cy5 Bkg. Uniformity float linear_scale SpecializedQuantitationType 1 Cy5 The uniformity of the pixels used in the background intensity calculation. Cy5 Bkg. Uniformity Filter boolean linear_scale SpecializedQuantitationType Cy5 Cy5 Circularity float linear_scale SpecializedQuantitationType Cy5 Reports the degree to which a spot is close to a perfect circle. This measurement is used to determine the print quality of the microarray. Cy5 Circularity Filter boolean linear_scale SpecializedQuantitationType Cy5 Cy5 Confidence integer linear_scale SpecializedQuantitationType Cy5 Unused QuantArray feature, will always = 1. Cy5 Diameter float linear_scale SpecializedQuantitationType Cy5 Average diameter of the spot (in microns). Used to determine whether the spot is close to the expected size or is perhaps an artifact on the slide. Cy5 Diameter Filter boolean linear_scale SpecializedQuantitationType Cy5 Cy5 Footprint float linear_scale SpecializedQuantitationType Cy5 The distance between the expected position of a spot and its actual measured position (in microns). Cy5 Footprint Filter boolean linear_scale SpecializedQuantitationType Cy5 Cy5 Intensity float linear_scale MeasuredSignal Cy5 Mean pixel Cy5 foreground intensity in Channel Cy5. Cy5 Intensity Std Dev float linear_scale Error Cy5 Intensity Cy5 Standard deviation of the raw Cy5 foreground pixel intensity. Cy5 Normalized & BackSubtr 1 Cy5 Cy5 Normalized & BackSubtr Ratio 1 Cy5 Cy5 Percent float linear_scale SpecializedQuantitationType Cy5 The portion of the overall spot fluorescence contributed by channel Cy5 (in percent). Cy5 Ratio float linear_scale SpecializedQuantitationType Cy5 The portion of the overall spot fluorescence contributed by channel Cy5 (normalized so that channel Cy5 contribution equals 1). Cy5 Replicate Filter boolean linear_scale SpecializedQuantitationType Cy5 Cy5 Signal Noise Ratio float linear_scale Ratio 1 Cy5 The ratio of spot intensity to the standard deviation of the local background of all spots in the microarray. Spots with a low Signal/Noise Ratio can be quickly identified for later reviews. Cy5 Signal Noise Ratio Filter float linear_scale SpecializedQuantitationType Cy5 Cy5 Spot Uniformity float linear_scale SpecializedQuantitationType Cy5 The uniformity of the pixels used in the spot foreground intensity calculation.This helps in determining the quality of the spot and aids in selecting the correct quantification output method. Cy5 Spot Uniformity Filter boolean linear_scale SpecializedQuantitationType Cy5 Ignore Filter integer linear_scale SpecializedQuantitationType Whether the feature quantitation is used in down-stream analysis (flagging feature as valid): 0 = feature invalid (null data); 1 = feature valid. Number integer linear_scale SpecializedQuantitationType Unique integer for each spot. X Location integer linear_scale SpecializedQuantitationType X pixel coordinate of spot center. Y Location integer linear_scale SpecializedQuantitationType Y pixel coordinate of spot center. log_normalised float log_base_2 Ratio Ratio = log2 Cy5 - log2 Cy3, for dyeswap ratio *-1 normalised log(cy3/cy5) ratio float log Ratio 0 normalised log(cy5/cy3) ratio float log Ratio 0 Cy3 Background Mean float linear_scale MeasuredSignal 1 Cy3 Mean pixel Cy3 background intensity in Channel Cy3. Cy3 Background Median integer linear_scale SpecializedQuantitationType 1 Cy3 Median pixel Cy3 background intensity in Channel Cy3. Cy3 Background Mode float linear_scale SpecializedQuantitationType 1 Cy3 Mode of pixel Cy3 background intensity in Channel Cy3. Cy3 Background Total integer linear_scale SpecializedQuantitationType 1 Cy3 Total pixel Cy3 background intensity in Channel Cy3. Cy3 Flag integer unscaled SpecializedQuantitationType Cy3 Cy3 Signal Mean float linear_scale MeasuredSignal Cy3 Mean pixel Cy3 foreground intensity in Channel Cy3. Cy3 Signal Median integer linear_scale SpecializedQuantitationType Cy3 Median pixel Cy3 foreground intensity in Channel Cy3. Cy3 Signal Mode float linear_scale SpecializedQuantitationType Cy3 Mode of pixel Cy3 foreground intensity in Channel Cy3. Cy3 Signal Total integer linear_scale SpecializedQuantitationType Cy3 Total pixel Cy3 foreground intensity in Channel Cy3. Cy5 Background Mean float linear_scale MeasuredSignal 1 Cy5 Mean pixel Cy5 background intensity in Channel Cy5. Cy5 Background Median integer linear_scale SpecializedQuantitationType 1 Cy5 Median pixel Cy5 background intensity in Channel Cy5. Cy5 Background Mode float linear_scale SpecializedQuantitationType 1 Cy5 Mode of pixel Cy5 background intensity in Channel Cy5. Cy5 Background Total integer linear_scale SpecializedQuantitationType 1 Cy5 Total pixel Cy5 background intensity in Channel Cy5. Cy5 Flag integer unscaled SpecializedQuantitationType Cy5 Cy5 Signal Mean float linear_scale MeasuredSignal Cy5 Mean pixel Cy5 foreground intensity in Channel Cy5. Cy5 Signal Median integer linear_scale SpecializedQuantitationType Cy5 Median pixel Cy5 foreground intensity in Channel Cy5. Cy5 Signal Mode float linear_scale SpecializedQuantitationType Cy5 Mode of pixel Cy5 foreground intensity in Channel Cy5. Cy5 Signal Total integer linear_scale SpecializedQuantitationType Cy5 Total pixel Cy5 foreground intensity in Channel Cy5. >>>ScanAlyze[Stanford University] BGPIX integer linear_scale SpecializedQuantitationType 1 Number of background pixels. BOT integer linear_scale SpecializedQuantitationType Box bottom: int(((centerX + radius) - Xoffset) / pixelSize). CH1AB float linear_scale SpecializedQuantitationType 1 Cy3 Mean intensities of background pixels of Cy3. CH1B float linear_scale MeasuredSignal 1 Cy3 Median intensities of background pixels of Cy3. CH1EDGEA float linear_scale SpecializedQuantitationType Cy3 Mean magnitude of the horizontal & vertical Sobel edge vectors contained within each spot, for Cy3. CH1GTB1 float linear_scale SpecializedQuantitationType Cy3 Fraction of pixels in the spot greater than background (CH1B) of Cy3. CH1GTB2 float linear_scale SpecializedQuantitationType Cy3 Fraction of pixels in the spot greater than 1.5x the background (CH1B) for Cy3. CH1I float linear_scale MeasuredSignal Cy3 Uncorrected Cy3 mean pixel intensity. CH1KSD float linear_scale SpecializedQuantitationType Cy3 Value of Komogorov-Smirnov statistic that assesses the likelihood that the spot pixel intensity is drawn from the background distribution, for Cy3. CH1KSP float linear_scale SpecializedQuantitationType Cy3 Probability value of Komogorov-Smirnov statistic that assesses the likelihood that the spot pixel intensity is drawn from the background distribution, for Cy3. CH2AB float linear_scale SpecializedQuantitationType 1 Cy5 Mean intensities of background pixels of Cy5. CH2B float linear_scale MeasuredSignal 1 Cy5 Median intensities of background pixels of Cy5. CH2EDGEA float linear_scale SpecializedQuantitationType Cy5 Mean magnitude of the horizontal & vertical Sobel edge vectors contained within each spot, for Cy5. CH2GTB1 float linear_scale SpecializedQuantitationType Cy5 Fraction of pixels in the spot greater than background (CH2B) of Cy5. CH2GTB2 float linear_scale SpecializedQuantitationType Cy5 Fraction of pixels in the spot greater than 1.5x the background (CH2B) for Cy5. CH2I float linear_scale MeasuredSignal Cy5 Uncorrected Cy5 mean pixel intensity. CH2KSD float linear_scale SpecializedQuantitationType Cy5 Value of Komogorov-Smirnov statistic that assesses the likelihood that the spot pixel intensity is drawn from the background distribution, for Cy5. CH2KSP float linear_scale SpecializedQuantitationType Cy5 Probability value of Komogorov-Smirnov statistic that assesses the likelihood that the spot pixel intensity is drawn from the background distribution, for Cy5. COL integer linear_scale SpecializedQuantitationType The column within the grid that the spot is contained. CORR float linear_scale SpecializedQuantitationType The correlation between channel1 (Cy3) & Channel 2 (Cy5) pixels within the spot, and is a useful quality control parameter. Generally, high values imply better fit & good spot quality. EDGE integer unscaled SpecializedQuantitationType FLAG integer unscaled Failed User defined spot flag (default 0). GRID integer linear_scale SpecializedQuantitationType The grid in which the spot is contained. LEFT integer linear_scale SpecializedQuantitationType Box left: int(((centerY - radius) - yoffset) / pixelSize). LFRAT float linear_scale SpecializedQuantitationType When single pixel intensities on channel 1 (Cy3) are plotted against those in channel 2 (Cy5) they fall on a straight line with a slope equal to the ratio. The least-squares fit of a line to the points, minimizing the sum of the squares shortest distance MRAT float linear_scale SpecializedQuantitationType Contains median of Ch2PI-CH2B/Ch1PI-CH1B where Ch1PI & Ch2PI represent single pixel intensities. RAT2 float linear_scale Ratio Ratio of the arithmetic mean intensities of each spot for each wavelength, with the median background subtracted. Channel 2/Channel 1 ratio, (CH2I - CH2B)/(CH1 - CH1B) or Red/Green ratio. REGR float linear_scale SpecializedQuantitationType When single pixel intensities on channel 1 (Cy3) are plotted against those in channel 2 (Cy5) they fall on a straight line with a slope equal to the ratio. This represents the linear regression of Cy5 on Cy3. RIGHT integer linear_scale SpecializedQuantitationType Box right: int(((centerY + radius) - yoffset) / pixelSize). SPIX integer linear_scale SpecializedQuantitationType Count of the number of pixels in the spot. SPOT integer linear_scale SpecializedQuantitationType Unique index of spot in file - counting starts with grid1, moves along row1 from column1 until the last column, then advances to the next row; after all rows in grid1 are assigned an index, counting proceeds to grid2, etc... TOP integer linear_scale SpecializedQuantitationType Box top: int(((centerX - radius) - Xoffset) / pixelSize). >>>ScanArray Express[PerkinElmer] % > B543+1SD float linear_scale SpecializedQuantitationType Cy3 The percentage of feature pixels with intensities more than one standard deviation above the background pixel intensity, in the 543nm channel. % > B543+2SD float linear_scale SpecializedQuantitationType Cy3 The percentage of feature pixels with intensities more than two standard deviations above the background pixel intensity, in the 543nm channel. % > B633+1SD float linear_scale SpecializedQuantitationType Cy5 The percentage of feature pixels with intensities more than one standard deviation above the background pixel intensity, in the 633nm channel. % > B633+2SD float linear_scale SpecializedQuantitationType Cy5 The percentage of feature pixels with intensities more than two standard deviations above the background pixel intensity, in the 633nm channel. B Pixels integer linear_scale SpecializedQuantitationType The total number of background pixels. B543 Mean float linear_scale MeasuredSignal 1 Cy3 Mean pixel background intensity in 543nm channel. B543 Median float linear_scale SpecializedQuantitationType 1 Cy3 Median pixel background intensity in 543nm channel. B543 SD float linear_scale Error 1 B543 Median Cy3 Standard deviation of the raw 543nm background pixel intensity. B633 Mean float linear_scale MeasuredSignal 1 Cy5 Mean pixel background intensity in 633nm channel. B633 Median float linear_scale SpecializedQuantitationType 1 Cy5 Median pixel background intensity in 633nm channel. B633 SD float linear_scale Error 1 B633 Median Cy5 Standard deviation of the raw 633nm background pixel intensity. Cy3 % > B + 1 SD float linear_scale SpecializedQuantitationType Cy3 The percentage of feature pixels with intensities more than one standard deviation above the background pixel intensity, in the Cy3 channel. Cy3 % > B + 2 SD float linear_scale SpecializedQuantitationType Cy3 The percentage of feature pixels with intensities more than two standard deviations above the background pixel intensity, in the Cy3 channel. Cy3 B Mean float linear_scale MeasuredSignal 1 Cy3 Mean pixel Cy3 background intensity in Channel Cy3. Cy3 B Median float linear_scale SpecializedQuantitationType 1 Cy3 Median pixel Cy3 background intensity in Channel Cy3. Cy3 B SD float linear_scale Error 1 Cy3 B Median Cy3 Standard deviation of the raw Cy3 background pixel intensity. Cy3 F % Sat. float linear_scale SpecializedQuantitationType Cy3 The percentage of feature pixels in the Cy3 channel that are saturated. Cy3 Log Ratio Cy3 Mean float linear_scale MeasuredSignal Cy3 Mean pixel Cy3 foreground intensity in Channel Cy3. Cy3 Mean - B float linear_scale SpecializedQuantitationType Cy3 The mean feature pixel intensity in the Cy3 channel with the mean background subtracted. Cy3 Mean of Ratios Cy3 Median float linear_scale SpecializedQuantitationType Cy3 Median pixel Cy3 foreground intensity in Channel Cy3. Cy3 Median - B float linear_scale SpecializedQuantitationType Cy3 The median feature pixel intensity in the Cy3 channel with the median background subtracted. Cy3 Median of Ratios Cy3 N (Mean-B) float linear_scale DerivedSignal Cy3 Mean pixel Cy3 foreground intensity in Channel Cy3 with the mean background subtracted, globally normalized. Cy3 N (Median-B) float linear_scale SpecializedQuantitationType Cy3 Median pixel Cy3 foreground intensity in Channel Cy3 with the median background subtracted, globally normalized. Cy3 N Log Ratio Cy3 N Mean float linear_scale DerivedSignal Cy3 Globally normalized mean pixel Cy3 foreground intensity in Channel Cy3. Cy3 N Mean of Ratios Cy3 N Median float linear_scale SpecializedQuantitationType Cy3 Globally normalized median pixel Cy3 foreground intensity in Channel Cy3. Cy3 N Median of Ratios Cy3 N Ratio of Means Cy3 N Ratio of Medians Cy3 N Rgn Ratio Cy3 Ratio of Means Cy3 Ratio of Medians Cy3 Ratios SD Cy3 Rgn Ratio Cy3 Rgn R Cy3 SD float linear_scale Error Cy3 Median Cy3 Standard deviation of the raw Cy3 foreground pixel intensity. Cy3 SignalNoiseRatio float linear_scale Ratio Cy3 The ratio of spot Cy3 intensity to the standard deviation of the local Cy3 background of all spots in the microarray. Spots with a low Signal/Noise Ratio can be quickly identified for later reviews. Cy5 % > B + 1 SD float linear_scale SpecializedQuantitationType Cy5 The percentage of feature pixels with intensities more than one standard deviation above the background pixel intensity, in the Cy5 channel. Cy5 % > B + 2 SD float linear_scale SpecializedQuantitationType Cy5 The percentage of feature pixels with intensities more than two standard deviations above the background pixel intensity, in the Cy5 channel. Cy5 B Mean float linear_scale MeasuredSignal 1 Cy5 Mean pixel Cy5 background intensity in Channel Cy5. Cy5 B Median float linear_scale SpecializedQuantitationType 1 Cy5 Median pixel Cy5 background intensity in Channel Cy5. Cy5 B SD float linear_scale Error 1 Cy5 B Median Cy5 Standard deviation of the raw Cy5 background pixel intensity. Cy5 F % Sat. float linear_scale SpecializedQuantitationType Cy5 The percentage of feature pixels in the Cy5 channel that are saturated. Cy5 Log Ratio Cy5 Mean float linear_scale MeasuredSignal Cy5 Mean pixel Cy5 foreground intensity in Channel Cy5. Cy5 Mean - B float linear_scale SpecializedQuantitationType Cy5 The mean feature pixel intensity in the Cy5 channel with the mean background subtracted. Cy5 Mean of Ratios Cy5 Median float linear_scale SpecializedQuantitationType Cy5 Median pixel Cy5 foreground intensity in Channel Cy5. Cy5 Median - B float linear_scale SpecializedQuantitationType Cy5 The median feature pixel intensity in the Cy5 channel with the median background subtracted. Cy5 Median of Ratios Cy5 N (Mean-B) float linear_scale DerivedSignal Cy5 Mean pixel Cy5 foreground intensity in Channel Cy5 with the mean background subtracted, globally normalized. Cy5 N (Median-B) float linear_scale SpecializedQuantitationType Cy5 Median pixel Cy5 foreground intensity in Channel Cy5 with the median background subtracted, globally normalized. Cy5 N Log Ratio Cy5 N Mean float linear_scale DerivedSignal Cy5 Globally normalized mean pixel Cy5 foreground intensity in Channel Cy5. Cy5 N Mean of Ratios Cy5 N Median float linear_scale SpecializedQuantitationType Cy5 Globally normalized median pixel Cy5 foreground intensity in Channel Cy5. Cy5 N Median of Ratios Cy5 N Ratio of Means Cy5 N Ratio of Medians Cy5 N Rgn Ratio Cy5 Ratio of Means Cy5 Ratio of Medians Cy5 Ratios SD Cy5 Rgn Ratio Cy5 Rgn R Cy5 SD float linear_scale Error Cy5 Median Cy5 Standard deviation of the raw Cy5 foreground pixel intensity. Cy5 SignalNoiseRatio float linear_scale Ratio Cy5 The ratio of spot Cy5 intensity to the standard deviation of the local Cy5 background of all spots in the microarray. Spots with a low Signal/Noise Ratio can be quickly identified for later reviews. Dia. integer linear_scale SpecializedQuantitationType The diameter in um of the feature-indicator. Diameter integer linear_scale SpecializedQuantitationType The diameter in um of the feature-indicator. F Pixels integer linear_scale SpecializedQuantitationType The total number of feature pixels. F543 % Sat. float linear_scale SpecializedQuantitationType Cy3 The percentage of feature pixels in the 543nm channel that are saturated. F543 Mean float linear_scale MeasuredSignal Cy3 Mean pixel foreground intensity in 543nm channel. F543 Mean - B543 float linear_scale SpecializedQuantitationType Cy3 The mean feature pixel intensity in the 543nm channel with the mean background subtracted. F543 Median float linear_scale SpecializedQuantitationType Cy3 Median pixel foreground intensity in 543nm channel. F543 Median - B543 float linear_scale SpecializedQuantitationType Cy3 The median feature pixel intensity in the 543nm channel with the median background subtracted. F543 SD float linear_scale Error F543 Median Cy3 Standard deviation of the raw 543nm foreground pixel intensity. F633 % Sat. float linear_scale SpecializedQuantitationType Cy5 The percentage of feature pixels in the 633nm channel that are saturated. F633 Mean float linear_scale MeasuredSignal Cy5 Mean pixel foreground intensity in 633nm channel. F633 Mean - B633 float linear_scale SpecializedQuantitationType Cy5 The mean feature pixel intensity in the 633nm channel with the mean background subtracted. F633 Median float linear_scale SpecializedQuantitationType Cy5 Median pixel foreground intensity in 633nm channel. F633 Median - B633 float linear_scale SpecializedQuantitationType Cy5 The median feature pixel intensity in the 633nm channel with the median background subtracted. F633 SD float linear_scale Error F633 Median Cy5 Standard deviation of the raw 633nm foreground pixel intensity. Flags integer unscaled SpecializedQuantitationType Footprint integer linear_scale SpecializedQuantitationType ID string_datatype unscaled SpecializedQuantitationType Index integer linear_scale SpecializedQuantitationType Log Ratio float log_base_2 Ratio Log Ratio (633/543) float log_base_2 Ratio Mean of Ratios float linear_scale SpecializedQuantitationType The mean of pixel-by-pixel ratios of pixel intensities. Mean of Ratios (633/543) float linear_scale SpecializedQuantitationType The mean of pixel-by-pixel ratios of pixel intensities. Median of Ratios float linear_scale SpecializedQuantitationType The median of pixel-by-pixel ratios of pixel intensities. Median of Ratios (633/543) float linear_scale SpecializedQuantitationType The median of pixel-by-pixel ratios of pixel intensities. N Log Ratio float linear_scale SpecializedQuantitationType N Mean of Ratios float linear_scale SpecializedQuantitationType N Median of Ratios float linear_scale SpecializedQuantitationType N Ratio of Means float linear_scale SpecializedQuantitationType N Ratio of Medians float linear_scale SpecializedQuantitationType N Rgn Ratio float linear_scale SpecializedQuantitationType Name string_datatype unscaled SpecializedQuantitationType Normalize integer unscaled PresentAbsent The normalization status of the feature (included/not included). Ratio of Means float linear_scale SpecializedQuantitationType The ratio of the mean intensities of each feature for each wavelength. Ratio of Means (633/543) float linear_scale SpecializedQuantitationType The ratio of the mean intensities of each feature for each wavelength. Ratio of Medians float linear_scale SpecializedQuantitationType The ratio of the median intensities of each feature for each wavelength. Ratio of Medians (633/543) float linear_scale SpecializedQuantitationType The ratio of the median intensities of each feature for each wavelength. Ratios SD float linear_scale SpecializedQuantitationType Median of Ratios Ratios SD (633/543) float linear_scale SpecializedQuantitationType Median of Ratios (633/543) Rgn R2 float linear_scale SpecializedQuantitationType Rgn R2 (633/543) float linear_scale SpecializedQuantitationType Rgn Ratio float linear_scale SpecializedQuantitationType Rgn Ratio (633/543) float linear_scale SpecializedQuantitationType Rgn R (633/543) float linear_scale SpecializedQuantitationType Sum of Means float linear_scale SpecializedQuantitationType The sum of the mean intensities for each wavelength. Sum of Medians float linear_scale SpecializedQuantitationType The sum of the median intensities for each wavelength. X integer linear_scale SpecializedQuantitationType X coordinate of spot center. Y integer linear_scale SpecializedQuantitationType Y coordinate of spot center. >>>SpotFinder[TIGR] BGA integer linear_scale MeasuredSignal 1 Cy3 Spot background in Cy3 channel. BGB integer linear_scale MeasuredSignal 1 Cy5 Spot background in Cy5 channel. BkgA integer linear_scale MeasuredSignal 1 Cy3 Spot background in Cy3 channel. BkgB integer linear_scale MeasuredSignal 1 Cy5 Spot background in Cy5 channel. Flag string_datatype unscaled SpecializedQuantitationType Flag values are generated based on next conditions: A - the number of non-saturated pixels in spot is 0; B- number of non-saturated pixels in spot is between 30 and 50; C- number of non saturated pixels in spot is more then 50; S- fully or partially satur Flag A string_datatype unscaled SpecializedQuantitationType Cy3 Spot flag in channel A. This flag is set by QC filter. Flag B string_datatype unscaled SpecializedQuantitationType Cy5 Spot flag in channel B. This flag is set by QC filter. FlagA string_datatype unscaled SpecializedQuantitationType Cy3 Spot flag in channel A. This flag is set by QC filter. FlagB string_datatype unscaled SpecializedQuantitationType Cy5 Spot flag in channel B. This flag is set by QC filter. IA integer linear_scale MeasuredSignal Cy3 Spot intensity in Cy3 channel corrected for background. IB integer linear_scale MeasuredSignal Cy5 Spot intensity in Cy5 channel corrected for background. MNA integer linear_scale SpecializedQuantitationType Cy3 Mean intensity value in Cy3 channel. MNB integer linear_scale SpecializedQuantitationType Cy5 Mean intensity value in Cy5 channel. MeanR float linear_scale Ratio Spot mean ratio MedA integer linear_scale SpecializedQuantitationType Cy3 Median intensity in Cy3 channel. MedB integer linear_scale SpecializedQuantitationType Cy5 Median intensity in Cy5 channel. MedBkgA integer linear_scale SpecializedQuantitationType Cy3 Median background intensity in Cy3 channel. MedBkgB integer linear_scale SpecializedQuantitationType Cy5 Median background intensity in Cy5 channel. MedianR float linear_scale Ratio Spot median ratio. ModeR float linear_scale Ratio Spot mode ratio. PValueA float linear_scale SpecializedQuantitationType Cy3 P-value in Cy3 channel. PValueB float linear_scale SpecializedQuantitationType Cy5 P-value in Cy5 channel. QC float linear_scale SpecializedQuantitationType Spot total QC score. This is a mean of QC scores in Cy3 and Cy5 channels. QCA float linear_scale SpecializedQuantitationType Cy3 Spot QC score in channel A. This is a geometric mean of shape and S/N QC scores in channel A. S/N QC score is calculated as percentage of pixels in a spot with values higher than 2*median(local BKG). Spot shape QC score is defined as ratio of spot area to QCB float linear_scale SpecializedQuantitationType Cy5 Spot QC score in channel B. This is a geometric mean of shape and S/N QC scores in channel B. S/N QC score is calculated as percentage of pixels in a spot with values higher than 2*median(local BKG). Spot shape QC score is defined as ratio of spot area to QCscore float linear_scale SpecializedQuantitationType SA integer linear_scale SpecializedQuantitationType Spot total area in pixels. SC integer unscaled SpecializedQuantitationType SDA float linear_scale Error IA Cy3 Standard deviation for spot pixels in Cy3 channel. SDB float linear_scale Error IB Cy5 Standard deviation for spot pixels in Cy5 channel. SDBkgA float linear_scale Error 1 BkgA Cy3 Standard deviation of the background value in Cy3 channel. SDBkgB float linear_scale Error 1 BkgB Cy5 Standard deviation of the background value in Cy5 channel. SF float linear_scale SpecializedQuantitationType SR integer unscaled SpecializedQuantitationType Sat float linear_scale SpecializedQuantitationType Spot saturation factor. This measure shows the percentage of non-saturated pixels in the spot used for integration. UID integer linear_scale SpecializedQuantitationType Unique identifier for this spot. >>>UCSF Spot Dapi float linear_scale MeasuredSignal DAPI DapiBack float linear_scale MeasuredSignal 1 DAPI DapiFore float linear_scale SpecializedQuantitationType DAPI Flag integer linear_scale Failed Log2MedRat float log_base_2 Ratio Log2Rat float log_base_2 Ratio Log2Slope float log_base_2 SpecializedQuantitationType MeanLog2Rat float log_base_2 SpecializedQuantitationType MeanRat float linear_scale SpecializedQuantitationType MedianRatio float Ratio MinF-B float SpecializedQuantitationType OriginDist float SpecializedQuantitationType RawRat float linear_scale Ratio Ref float linear_scale MeasuredSignal RefBack float linear_scale MeasuredSignal 1 RefBackSD linear_scale Error 1 RefBack RefFore float linear_scale SpecializedQuantitationType RefForeSD linear_scale Error RefFore RefIntercept float SpecializedQuantitationType RefZstat PValue Slope float linear_scale SpecializedQuantitationType SpotCorr float DerivedSignal Test float linear_scale MeasuredSignal 1 TestBack float linear_scale MeasuredSignal 1 TestBackSD linear_scale Error 1 TestBack TestFore float linear_scale SpecializedQuantitationType TestForeSD linear_scale Error TestFore TestIntercept float SpecializedQuantitationType TestZstat PValue nback integer linear_scale SpecializedQuantitationType 1 nfore integer linear_scale SpecializedQuantitationType >>>Uni of Toronto in-house analysis software B532 Location float linear_scale MeasuredSignal 1 Cy3 B635 Location float linear_scale MeasuredSignal 1 Cy5 F532 Location float linear_scale MeasuredSignal Cy3 F635 Location float linear_scale MeasuredSignal Cy5 Intensity float log_base_10 SpecializedQuantitationType Raw Log Ratio float log_base_10 Ratio 1