14. API Documentation

MOSAIC is designed using object oriented tools, which makes it easy to extend. The API documentation provides class level descriptions of the different modules that can be used in customized code. Meta-Classes (blue) define interfaces to five key parts of MOSAIC: time-series IO (metaTrajIO), time-series filtering (metaIOFilter), analysis output (metaMDIO), event partition and segmenting (metaEventPartition), and event processing (metaEventProcessor). Sub-classing any of these meta classes and implementing their interface functions allows one to extend MOSAIC, while maintaining compatibility with other parts of the program. The diagram below shows the class inheritence in MOSAIC, with top-level classes in gray.

digraph "Graphical Class Hierarchy" { graph [ dpi = 1200 ]; size="1,0.75"; ratio="fill"; edge [fontname="Helvetica",fontsize="20",labelfontname="Helvetica",labelfontsize="20"]; node [fontname="Helvetica",fontsize="20",shape=record]; rankdir="LR"; Node1 [label="object",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"]; Node1 -> Node2 [dir="back", width=1.0, penwidth=2.5,color="midnightblue",fontsize="20",style="solid",fontname="Helvetica"]; Node2 [label="mosaic.ConvertToCSV.Convert\lToCSV",height=0.2,width=0.4,color="black", fillcolor="grey88", style="filled"]; Node1 -> Node3 [dir="back", width=1.0, penwidth=2.5,color="midnightblue",fontsize="20",style="solid",fontname="Helvetica"]; Node3 [label="mosaic.metaEventPartition.meta\lEventPartition",height=0.2,width=0.4,color="black", fillcolor="aliceblue", style="filled"]; Node3 -> Node4 [dir="back", width=1.0, penwidth=2.5,color="midnightblue",fontsize="20",style="solid",fontname="Helvetica"]; Node4 [label="mosaic.eventSegment.event\lSegment",height=0.2,width=0.4,color="black", fillcolor="white", style="filled"]; Node1 -> Node5 [dir="back", width=1.0, penwidth=2.5,color="midnightblue",fontsize="20",style="solid",fontname="Helvetica"]; Node5 [label="mosaic.metaEventProcessor.meta\lEventProcessor",height=0.2,width=0.4,color="black", fillcolor="aliceblue", style="filled"]; Node5 -> Node6 [dir="back", width=1.0, penwidth=2.5,color="midnightblue",fontsize="20",style="solid",fontname="Helvetica"]; Node6 [label="mosaic.adept.adept",height=0.2,width=0.4,color="black", fillcolor="white", style="filled"]; Node5 -> Node7 [dir="back", width=1.0, penwidth=2.5,color="midnightblue",fontsize="20",style="solid",fontname="Helvetica"]; Node7 [label="mosaic.cusumPlus.cusumPlus",height=0.2,width=0.4,color="black", fillcolor="white", style="filled"]; Node5 -> Node8 [dir="back", width=1.0, penwidth=2.5,color="midnightblue",fontsize="20",style="solid",fontname="Helvetica"]; Node8 [label="mosaic.adept2State.adept2State",height=0.2,width=0.4,color="black", fillcolor="white", style="filled"]; Node1 -> Node9 [dir="back", width=1.0, penwidth=2.5,color="midnightblue",fontsize="20",style="solid",fontname="Helvetica"]; Node9 [label="mosaic.metaIOFilter.meta\lIOFilter",height=0.2,width=0.4,color="black", fillcolor="aliceblue", style="filled"]; Node9 -> Node10 [dir="back", width=1.0, penwidth=2.5,color="midnightblue",fontsize="20",style="solid",fontname="Helvetica"]; Node10 [label="mosaic.besselLowpassFilter.bessel\lLowpassFilter",height=0.2,width=0.4,color="black", fillcolor="white", style="filled"]; Node9 -> Node11 [dir="back", width=1.0, penwidth=2.5,color="midnightblue",fontsize="20",style="solid",fontname="Helvetica"]; Node11 [label="mosaic.convolutionFilter.convolution\lFilter",height=0.2,width=0.4,color="black", fillcolor="white", style="filled"]; Node9 -> Node12 [dir="back", width=1.0, penwidth=2.5,color="midnightblue",fontsize="20",style="solid",fontname="Helvetica"]; Node12 [label="mosaic.waveletDenoiseFilter.wavelet\lDenoiseFilter",height=0.2,width=0.4,color="black", fillcolor="white", style="filled"]; Node1 -> Node13 [dir="back", width=1.0, penwidth=2.5,color="midnightblue",fontsize="20",style="solid",fontname="Helvetica"]; Node13 [label="mosaic.metaMDIO.metaMDIO",height=0.2,width=0.4,color="black", fillcolor="aliceblue", style="filled"]; Node13 -> Node14 [dir="back", width=1.0, penwidth=2.5,color="midnightblue",fontsize="20",style="solid",fontname="Helvetica"]; Node14 [label="mosaic.sqlite3MDIO.sqlite3MDIO",height=0.2,width=0.4,color="black", fillcolor="white", style="filled"]; Node1 -> Node15 [dir="back", width=1.0, penwidth=2.5,color="midnightblue",fontsize="20",style="solid",fontname="Helvetica"]; Node15 [label="mosaic.metaTrajIO.metaTrajIO",height=0.2,width=0.4,color="black", fillcolor="aliceblue", style="filled"]; Node15 -> Node16 [dir="back", width=1.0, penwidth=2.5,color="midnightblue",fontsize="20",style="solid",fontname="Helvetica"]; Node16 [label="mosaic.abfTrajIO.abfTrajIO",height=0.2,width=0.4,color="black", fillcolor="white", style="filled"]; Node15 -> Node17 [dir="back", width=1.0, penwidth=2.5,color="midnightblue",fontsize="20",style="solid",fontname="Helvetica"]; Node17 [label="mosaic.binTrajIO.binTrajIO",height=0.2,width=0.4,color="black", fillcolor="white", style="filled"]; Node15 -> Node18 [dir="back", width=1.0, penwidth=2.5,color="midnightblue",fontsize="20",style="solid",fontname="Helvetica"]; Node18 [label="mosaic.qdfTrajIO.qdfTrajIO",height=0.2,width=0.4,color="black", fillcolor="white", style="filled"]; Node15 -> Node19 [dir="back", width=1.0, penwidth=2.5,color="midnightblue",fontsize="20",style="solid",fontname="Helvetica"]; Node19 [label="mosaic.tsvTrajIO.tsvTrajIO",height=0.2,width=0.4,color="black", fillcolor="white", style="filled"]; Node1 -> Node20 [dir="back", width=1.0, penwidth=2.5,color="midnightblue",fontsize="20",style="solid",fontname="Helvetica"]; Node20 [label="mosaic.SingleChannelAnalysis.\lSingleChannelAnalysis",height=0.2,width=0.4,color="black", fillcolor="grey88", style="filled"]; }

14.1. MOSAIC Modules