retina
Class PCAWindow

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--java.awt.Window
                    |
                    +--java.awt.Frame
                          |
                          +--ij.gui.ImageWindow
                                |
                                +--ij.gui.StackWindow
                                      |
                                      +--retina.PCAWindow
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.event.ActionListener, java.awt.event.AdjustmentListener, java.util.EventListener, java.awt.event.FocusListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.lang.Runnable, java.io.Serializable, java.awt.event.WindowListener

public class PCAWindow
extends ij.gui.StackWindow
implements java.awt.event.AdjustmentListener, java.awt.event.ActionListener

Window to do various types of PCA analysis. Adds several methods to PCA_ for OID analysis. (c) 2003 Michael Abramoff. All rights reserved.

See Also:
Serialized Form

Inner classes inherited from class java.awt.Frame
java.awt.Frame.AccessibleAWTFrame
 
Inner classes inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
Inner classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Inner classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.AWTTreeLock
 
Field Summary
protected  java.awt.Button buttonCopy
           
protected  java.awt.Button buttonMapAll
           
protected  java.awt.Button buttonMapCleaned
           
protected  java.awt.Button buttonMapCoordinates
           
protected  java.awt.Button buttonMapIndicatorFunction
           
protected  java.awt.Button buttonMapTruncDif
           
protected  java.awt.Button buttonProjectImage
           
protected  java.awt.Button buttonProjectTimecourse
           
protected  java.awt.Button buttonSpectrum
           
protected  java.awt.Button buttonTimeCourses
           
protected  float confMax
           
protected  float[] confs
           
protected  java.awt.TextField fieldEnd
           
protected  java.awt.TextField fieldStart
           
protected  ij.gui.ImageCanvas ic
           
protected  ij.process.ImageProcessor ip
           
protected  java.awt.Label labelConf
           
protected  java.awt.Label labelRMSE
           
protected  java.awt.Label labelVar
           
protected  BIJpca pca
           
protected  ij.ImagePlus pimp
           
protected  float[] stim
           
 
Fields inherited from class ij.gui.StackWindow
done, slice, sliceSelector, thread
 
Fields inherited from class ij.gui.ImageWindow
closed, ij, imp, running, running2
 
Fields inherited from class java.awt.Frame
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, icon, ICONIFIED, mbManagement, menuBar, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, ownedWindows, resizable, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, title, W_RESIZE_CURSOR, WAIT_CURSOR
 
Fields inherited from class java.awt.Window
inputContext, OPENED, ownedWindowList, state, warningString, windowListener
 
Fields inherited from class java.awt.Container
component, containerListener, layoutMgr, listeningBoundsChildren, listeningChildren, ncomponents
 
Fields inherited from class java.awt.Component
accessibleContext, actionListenerK, adjustmentListenerK, appContext, background, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, componentListener, componentListenerK, componentOrientation, containerListenerK, cursor, dropTarget, enabled, eventMask, focusListener, focusListenerK, font, foreground, graphicsConfig, hasFocus, height, hierarchyBoundsListener, hierarchyBoundsListenerK, hierarchyListener, hierarchyListenerK, incRate, inputMethodListener, inputMethodListenerK, isInc, isPacked, itemListenerK, keyListener, keyListenerK, LEFT_ALIGNMENT, locale, LOCK, metrics, minSize, mouseListener, mouseListenerK, mouseMotionListener, mouseMotionListenerK, newEventsOnly, ownedWindowK, parent, peer, peerFont, popups, prefSize, RIGHT_ALIGNMENT, textListenerK, TOP_ALIGNMENT, valid, visible, width, windowClosingException, windowListenerK, x, y
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
PCAWindow(ij.ImagePlus imp, ij.gui.ImageCanvas ic, BIJpca pca)
          Create an extended PCA window from a StackWindow.
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent e)
          Act upon buttons pressed.
 void addPanel()
          Add the GUI items to this Window.
 void adjustmentValueChanged(java.awt.event.AdjustmentEvent e)
          User has moved the slider on the StackWindow.
protected  void analyzeTimecourse(float[] t, java.lang.String name)
          Analyze the coordinates of the PCA basis (the time courses of the components), with a timecourse vector t.
protected  float[] computeDeltas(float[] s)
          Compute deltas, the difference of the means of the time-coordinates an's over the conditions s = -1 and s = +1.
protected  ij.process.ImageProcessor getCoordinatesImageProcessor(int j)
          Create a plot (as ImageProcessor) of the j'th PCA coordinates.
protected  double getDoubleField(java.awt.TextField t)
           
protected  int getIntField(java.awt.TextField t)
           
protected  void makeCopies()
           
 void mapClean()
          Compute a cleaned image sequence from only the attractive eigenvalues.
 void mapCoordinates()
          Map the eigenvector matrix into an image.
protected  void mapImageCorrelations(float[] image, java.lang.String name)
          Show the correlations and projection coordinates of an image with the PCA eigenimages.
 void mapIndicatorFunction()
          Compute the indicator function image for two conditions.
 void mapTruncatedDifference()
          Compute an image that is the truncated difference of the stimulus and non-stimulus conditions stim.
protected  void mapVariance()
          Map the variances and fractional variances for each component.
protected  ij.ImagePlus userSelectImagePlus(java.lang.String label)
          Allows user to select an image from all open images in a dialog.
protected  void writeDeltas(float[] deltas, java.lang.String title)
          Print the averages of each an (the eigenvectors in the ata covariance) for conditions s = -1 and s = +1.
 
Methods inherited from class ij.gui.StackWindow
close, run, showSlice, updateSliceSelector
 
Methods inherited from class ij.gui.ImageWindow
, centerNextImage, copy, drawInfo, focusGained, focusLost, getCanvas, getClipboard, getImagePlus, getInitialMagnification, getInsets, isClosed, mouseMoved, paint, paste, setImagePlus, toString, updateImage, windowActivated, windowClosed, windowClosing, windowDeactivated, windowDeiconified, windowIconified, windowOpened
 
Methods inherited from class java.awt.Frame
addNotify, addToFrameList, constructComponentName, finalize, getAccessibleContext, getCursorType, getFrames, getIconImage, getMenuBar, getState, getTitle, isResizable, paramString, postProcessKeyEvent, remove, removeFromFrameList, removeNotify, setCursor, setIconImage, setMenuBar, setResizable, setState, setTitle
 
Methods inherited from class java.awt.Window
addOwnedWindow, addWindowListener, adjustListeningChildren, applyResourceBundle, applyResourceBundle, connectOwnedWindow, dispatchEventImpl, dispose, eventEnabled, getFocusOwner, getGraphicsConfiguration, getInputContext, getListeners, getLocale, getOwnedWindows, getOwner, getToolkit, getWarningString, hide, isActive, isShowing, nextFocus, pack, postEvent, postWindowEvent, preProcessKeyEvent, processEvent, processWindowEvent, removeOwnedWindow, removeWindowListener, resetGC, setCursor, setFocusOwner, show, toBack, toFront, transferFocus
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, applyOrientation, checkGD, countComponents, createChildHierarchyEvents, createHierarchyEvents, deliverEvent, dispatchEventToSelf, doLayout, findComponentAt, findComponentAt, findComponentAt, getAccessibleAt, getAccessibleChild, getAccessibleChildrenCount, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents_NoClientCode, getComponents, getLayout, getMaximumSize, getMinimumSize, getMouseEventTarget, getPreferredSize, getWindow, insets, invalidate, invalidateTree, isAncestorOf, layout, lightweightPaint, lightweightPrint, list, list, locate, minimumSize, numListening, paintComponents, paintHeavyweightComponents, postsOldMouseEvents, preferredSize, print, printComponents, printHeavyweightComponents, processContainerEvent, proxyEnableEvents, proxyRequestFocus, remove, remove, removeAll, removeContainerListener, setFont, setLayout, update, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addPropertyChangeListener, addPropertyChangeListener, areInputMethodsEnabled, bounds, checkImage, checkImage, checkWindowClosingException, coalesceEvents, contains, contains, createImage, createImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, getAccessibleIndexInParent, getAccessibleStateSet, getBackground, getBounds, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont_NoClientCode, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getInputMethodRequests, getLocation, getLocation, getLocationOnScreen_NoTreeLock, getLocationOnScreen, getName, getNativeContainer, getParent_NoClientCode, getParent, getPeer, getSize, getSize, getToolkitImpl, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isDisplayable, isDoubleBuffered, isEnabled, isEnabledImpl, isFocusTraversable, isLightweight, isOpaque, isRecursivelyVisible, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setDropTarget, setEnabled, setForeground, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, size, transferFocus
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Field Detail

ip

protected ij.process.ImageProcessor ip

pca

protected BIJpca pca

fieldStart

protected java.awt.TextField fieldStart

fieldEnd

protected java.awt.TextField fieldEnd

labelConf

protected java.awt.Label labelConf

labelRMSE

protected java.awt.Label labelRMSE

labelVar

protected java.awt.Label labelVar

buttonSpectrum

protected java.awt.Button buttonSpectrum

buttonTimeCourses

protected java.awt.Button buttonTimeCourses

buttonMapCleaned

protected java.awt.Button buttonMapCleaned

buttonMapTruncDif

protected java.awt.Button buttonMapTruncDif

buttonMapAll

protected java.awt.Button buttonMapAll

buttonMapIndicatorFunction

protected java.awt.Button buttonMapIndicatorFunction

buttonCopy

protected java.awt.Button buttonCopy

buttonProjectImage

protected java.awt.Button buttonProjectImage

buttonProjectTimecourse

protected java.awt.Button buttonProjectTimecourse

buttonMapCoordinates

protected java.awt.Button buttonMapCoordinates

ic

protected ij.gui.ImageCanvas ic

pimp

protected ij.ImagePlus pimp

stim

protected float[] stim

confMax

protected float confMax

confs

protected float[] confs
Constructor Detail

PCAWindow

public PCAWindow(ij.ImagePlus imp,
                 ij.gui.ImageCanvas ic,
                 BIJpca pca)
Create an extended PCA window from a StackWindow.
Parameters:
imp - the ImagePlus to create the PCAWindow from
an - ImageCanvas that adds a second window for displaying plots.
pca - the BIJpca containing a pca analysis with all variables.
Method Detail

addPanel

public void addPanel()
Add the GUI items to this Window. Creates a second ImageCanvas to the panel, and some TextFields and buttons for interfacing.

adjustmentValueChanged

public void adjustmentValueChanged(java.awt.event.AdjustmentEvent e)
User has moved the slider on the StackWindow. Make sure you also update the plot window.
Specified by:
adjustmentValueChanged in interface java.awt.event.AdjustmentListener
Overrides:
adjustmentValueChanged in class ij.gui.StackWindow

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent e)
Act upon buttons pressed.
Specified by:
actionPerformed in interface java.awt.event.ActionListener
Overrides:
actionPerformed in class ij.gui.StackWindow

makeCopies

protected void makeCopies()

getCoordinatesImageProcessor

protected ij.process.ImageProcessor getCoordinatesImageProcessor(int j)
Create a plot (as ImageProcessor) of the j'th PCA coordinates.
Parameters:
j - the desired eigenvector coordinates
Returns:
an ImageProcessor containing the plot.

mapVariance

protected void mapVariance()
Map the variances and fractional variances for each component.

mapCoordinates

public void mapCoordinates()
Map the eigenvector matrix into an image.

mapClean

public void mapClean()
Compute a cleaned image sequence from only the attractive eigenvalues.

mapTruncatedDifference

public void mapTruncatedDifference()
Compute an image that is the truncated difference of the stimulus and non-stimulus conditions stim.

mapIndicatorFunction

public void mapIndicatorFunction()
Compute the indicator function image for two conditions. Everson, 1997. Uses stim, the condition indicator, which is known to have zero mean unit variance.

analyzeTimecourse

protected void analyzeTimecourse(float[] t,
                                 java.lang.String name)
Analyze the coordinates of the PCA basis (the time courses of the components), with a timecourse vector t.
Parameters:
t - a float[] containing a timecourse.
name - the name of the timecourse (file).

computeDeltas

protected float[] computeDeltas(float[] s)
Compute deltas, the difference of the means of the time-coordinates an's over the conditions s = -1 and s = +1. Deltan = Avg(an stim) - Avg(an non-stim)
Parameters:
s - a vector containing the time-course of the two conditions in the an (-1 or +1).
Returns:
a vector containing the difference of the averaged coordinates for the two conditions.

writeDeltas

protected void writeDeltas(float[] deltas,
                           java.lang.String title)
Print the averages of each an (the eigenvectors in the ata covariance) for conditions s = -1 and s = +1.
Parameters:
s - a vectors containing to the two conditions in the images (-1 or +1).
the - title of the PCA image.

mapImageCorrelations

protected void mapImageCorrelations(float[] image,
                                    java.lang.String name)
Show the correlations and projection coordinates of an image with the PCA eigenimages.
Parameters:
image - an image
name - the name of the image that was projected.

userSelectImagePlus

protected ij.ImagePlus userSelectImagePlus(java.lang.String label)
Allows user to select an image from all open images in a dialog.
Parameters:
label - the cue text.
Returns:
an ImagePlus, null if an error.

getDoubleField

protected double getDoubleField(java.awt.TextField t)

getIntField

protected int getIntField(java.awt.TextField t)