########################################
# The contents of this file are subject to the MLX PUBLIC LICENSE version
# 1.0 (the "License"); you may not use this file except in
# compliance with the License.
# 
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See
# the License for the specific language governing rights and limitations
# under the License.
# 
# The Original Source Code is "compClust", released 2003 September 03.
# 
# The Original Source Code was developed by the California Institute of
# Technology (Caltech).  Portions created by Caltech are Copyright (C)
# 2002-2003 California Institute of Technology. All Rights Reserved.
########################################
#
#       Authors: Lucas Scharenbroich
#                Christopher Hart
# Last Modified: Dec 13 23:41:29 PST 2001
#

from compClust.mlx.views import TransposeView
from compClust.mlx.views import RowPCAView

class ColumnPCAView(TransposeView):

  """
  Provides a PCA rotated view of the column space of a dataset. Note, this
  operation invalidates all row labelings.
  """

  #
  # This should be re-written to avoid the Transpose Views
  #

  def __init__(self, dataset, name=None):

    #
    # Chain together a few views
    #

    TransposeView.__init__(self, RowPCAView(TransposeView(dataset)), name=name)


  def getVariances(self):
    return self.dataset.getVariances()
