@@ -674,6 +674,36 @@ getMethod("marray", "MArray")
674
674
675
675
\section {Conclusion }\label {sec:ccl }
676
676
677
+ The Bioconductor project provides S4 implementations for microarray data.
678
+ As a conclusion to our exercise, let's use the class introspection tools seen in section \ref {sec:introspec }
679
+ to study the \Robject {ExpressionSet} implementation available in the \Rpackage {Biobase} package.
680
+
681
+ <<bioenv , echo =FALSE >>=
682
+ suppressPackageStartupMessages(library(" Biobase" ))
683
+ @
684
+
685
+ <<biob >>=
686
+ library(" Biobase" )
687
+ getClass(" ExpressionSet" )
688
+ @
689
+
690
+ There are of course many more slots, to support description of the
691
+ experiment itself as well as the microarray platform.
692
+ The expression data itself is stored in the \Robject {assayData} slot
693
+ that is of class \Robject {AssayData}. In practice, this generally
694
+ equates to an environment that contains one or multiple expression matrices.
695
+ The feature and sample annotations are stored in the \Robject {featureData}
696
+ and \Robject {phenoData} slots, both of class \Robject {AnnotatedDataFrame}.
697
+ An \Robject {AnnotatedDataFrame} is a \Robject {data.frame} that supports
698
+ additional variable names annotation. Each of these classes can in turn be
699
+ inspected with \Rfunction {getClass} or, better, by reading the respective documentation.
700
+
701
+ We also see that the \Robject {ExpressionSet} class extends the \Robject {eSet}
702
+ class, i.e. \Robject {ExpressionSet} is a sub-class of the \Robject {eSet} class.
703
+ See the \Robject {contains} field in \Rfunction {?setClass} to read more about
704
+ class sub/super-class extensions.
705
+
706
+ \bigskip
677
707
Although the verbosity of the S4 system might seem like a little overhead in the beginning,
678
708
it provides improved stability and usability for the future.
679
709
The design and usage of an efficient class system requires one to think about
0 commit comments