Exemple #1
0
 def getBoundingCEllipsoidVol(self, transformedCP, ET=None, retA=False):
     """Return the volume of the minimum bounding coverage ellipsoid"""
     if ET is None:
         ET = EllipsoidTool()
     (A, center, radii, _rotation) = self.getBoundingEllipsoid(transformedCP, ET=ET, retA=True)
     if retA:
         return ((A, center), ET.getEllipsoidVolume(radii))
     else:
         return ET.getEllipsoidVolume(radii)
Exemple #2
0
 def getBoundingCEllipsoidVol(self, transformedCP, ET=None, retA=False):
     """Return the volume of the minimum bounding coverage ellipsoid"""
     if ET is None:
         ET = EllipsoidTool()
     (A, center, radii,
      _rotation) = self.getBoundingEllipsoid(transformedCP,
                                             ET=ET,
                                             retA=True)
     if retA:
         return ((A, center), ET.getEllipsoidVolume(radii))
     else:
         return ET.getEllipsoidVolume(radii)
Exemple #3
0
 def getBoundingKEllipseArea(self, KPCAs, ET=None, retA=False):
     """Return the area of the minimum bounding kmer PCA ellipse"""
     if len(KPCAs) > 1:
         if ET is None:
             ET = EllipsoidTool()
         (A, center, radii, _rotation) = ET.getMinVolEllipse(KPCAs, retA=True)
         if retA:
             return ((A, center), ET.getEllipsoidVolume(radii))
         else:
             return ET.getEllipsoidVolume(radii)
     else: # minimum bounding ellipse of a point is 0
         if retA:
             return ((np.zeros((2,2)), KPCAs[0]), 0)
         else:
             return 0
Exemple #4
0
 def getBoundingKEllipseArea(self, KPCAs, ET=None, retA=False):
     """Return the area of the minimum bounding kmer PCA ellipse"""
     if len(KPCAs) > 1:
         if ET is None:
             ET = EllipsoidTool()
         (A, center, radii, _rotation) = ET.getMinVolEllipse(KPCAs,
                                                             retA=True)
         if retA:
             return ((A, center), ET.getEllipsoidVolume(radii))
         else:
             return ET.getEllipsoidVolume(radii)
     else:  # minimum bounding ellipse of a point is 0
         if retA:
             return ((np.zeros((2, 2)), KPCAs[0]), 0)
         else:
             return 0
Exemple #5
0
    def getBoundingEllipsoid(self, transformedCP, ET=None, retA=False):
        """Return the minimum bounding ellipsoid

        returns (center, radii, rotation) or (A, center, radii, rotation)
        """
        bin_points = np.array([transformedCP[i] for i in self.rowIndices])
        if len(bin_points) > 1:
            if ET is None:
                ET = EllipsoidTool()
            try:
                return ET.getMinVolEllipse(bin_points, retA=retA)
            except:
                print bin_points
                raise
        else: # minimum bounding ellipse of a point is 0
            if retA:
                return (np.zeros((3,3)), transformedCP[self.rowIndices[0]], np.zeros((3)), np.eye(3))
            else:
                return (transformedCP[self.rowIndices[0]], np.zeros((3)), np.eye(3))
Exemple #6
0
    def getBoundingEllipsoid(self, transformedCP, ET=None, retA=False):
        """Return the minimum bounding ellipsoid

        returns (center, radii, rotation) or (A, center, radii, rotation)
        """
        bin_points = np.array([transformedCP[i] for i in self.rowIndices])
        if len(bin_points) > 1:
            if ET is None:
                ET = EllipsoidTool()
            try:
                return ET.getMinVolEllipse(bin_points, retA=retA)
            except:
                print(bin_points)
                raise
        else:  # minimum bounding ellipse of a point is 0
            if retA:
                return (np.zeros(
                    (3, 3)), transformedCP[self.rowIndices[0]], np.zeros(
                        (3)), np.eye(3))
            else:
                return (transformedCP[self.rowIndices[0]], np.zeros(
                    (3)), np.eye(3))