def testStudyVariance(self):
        alnFileName = "../../alignmentFiles/mmult.list-FINAL.aln"
        workingDirectory = "../../alignmentFiles/"
        resultsFileName2 = "../../alignmentFiles/results2.results"
        generateMultipleAlignment.getResidues(0.8, resultsFileName2, alnFileName, workingDirectory, False, True, False)
        AtomicresultsFileName = "../../alignmentFiles/results2.Atomic"
        generateMultipleAlignment.composeAtomicMatrix(resultsFileName2, AtomicresultsFileName)
        filteredAtomicMatrixFileName = "../../alignmentFiles/filteredResults2.Atomic"
        generateMultipleAlignment.filterAtomicMatrix(AtomicresultsFileName, filteredAtomicMatrixFileName)
        caMatrixFileName = "../../alignmentFiles/filteredResults2.Atomic"
        dimensions = generateMultipleAlignment.getDimensions(caMatrixFileName)
        (mask, matrix) = svdAnalysis.loadCAmatrix(caMatrixFileName, dimensions)
        (caMatrix, caMask) = svdAnalysis.getCovarianceMatrix(mask, matrix)
        (atoms_variance, atoms_variance_mask) = svdAnalysis.getAtomsVariance(caMatrix, caMask)
        (max, min, mean, normalizedAtoms) = svdAnalysis.atoms_variance_statistics(atoms_variance, atoms_variance_mask)
        print ("max %f \n" % (max,))
        print ("min %f \n" % (min,))
        print ("mean %f \n" % (mean,))
        print normalizedAtoms

        print "\n\n"
        workingDirectory = "../../alignmentFiles/"
        varianceFileName = workingDirectory + "variance.atomic"
        maskFileName = workingDirectory + "variance_mask.atomic"
        svdAnalysis.serializeAtomsVariance(atoms_variance, atoms_variance_mask, varianceFileName, maskFileName)
        (atoms_variance, atoms_variance_mask) = svdAnalysis.encarnateAtomsVariance(varianceFileName, maskFileName)
        assert 30 == len(atoms_variance[0])
        for variance in atoms_variance[0]:
            print ("%3.f \n" % (variance,))
 def __load_variability_data(self, minimumPercentage):
     """
     __alphaCarbonsFileName  where to write the aligned C_alphas for each pdb.
     __alnFileName           the alignment filename. No need to be already formatted 
     __workingDirectory      where the pdbs are stored
     onlyBackbone          select only the backbone. Default False
     onlyAlphaCarbon       select only the alphaCarbons. Default True. Consider that all the latter programs work over this option and no other!!!!
     
     self.removedLines contains the removed lines, that is if a residue position is not aligned over a percentage for all
     the pdbs, this line is removed, and its order is this array        
     """
     self.__mmult = generateMultipleAlignment.getResidues(minimumPercentage, self.__alphaCarbonsFileName, self.__alnFileName, 
                                            self.__workingDirectory, False, True, False)
     
     generateMultipleAlignment.composeAtomicMatrix(self.__alphaCarbonsFileName, self.__rawAtomicMatrixFileName)
     self.removedLines = generateMultipleAlignment.filterAtomicMatrix(self.__rawAtomicMatrixFileName, self.__filteredAtomicMatrixFileName)
     self.dimensions   = generateMultipleAlignment.getDimensions(self.__filteredAtomicMatrixFileName)
 def testGlobal(self):
     caMatrixFileName = "../../alignmentFiles/filteredResults2.Atomic"
     dimensions = generateMultipleAlignment.getDimensions(caMatrixFileName)
     print ("%d %d\n" % (dimensions[0], dimensions[1]))
     (mask, matrix) = svdAnalysis.loadCAmatrix(caMatrixFileName, dimensions)
     (caMatrix, caMask) = svdAnalysis.getCovarianceMatrix(mask, matrix)
     print ("%d %d\n" % (caMatrix.shape[0], caMatrix.shape[1]))
     matrixFileName = "../../alignmentFiles/matrix.float"
     maskFileName = "../../alignmentFiles/mask.float"
     # print("\n caMatrix\n")
     # print caMatrix
     # print("\ncaMask\n")
     # print caMask
     svdAnalysis.serialize_matrix(caMatrix, matrixFileName)
     diagonalFileName = "../../alignmentFiles/diagonal.float"
     (ca_atoms, ca_mask) = svdAnalysis.getAtomsVariance(caMatrix, caMask)
     svdAnalysis.serialize_matrix(ca_atoms, diagonalFileName)
     svdAnalysis.serialize_matrix(ca_mask, maskFileName)
 def testGlobalReal(self):
     alnFileName = "../../alignmentFiles/mmult3.aux"
     workingDirectory = "../../alignmentFiles/"
     resultsFileName2 = "../../alignmentFiles/results2.results"
     generateMultipleAlignment.getResidues(0.4, resultsFileName2, alnFileName, workingDirectory, False, True, False)
     AtomicresultsFileName = "../../alignmentFiles/results2.Atomic"
     generateMultipleAlignment.composeAtomicMatrix(resultsFileName2, AtomicresultsFileName)
     filteredAtomicMatrixFileName = "../../alignmentFiles/filteredResults2.Atomic"
     generateMultipleAlignment.filterAtomicMatrix(AtomicresultsFileName, filteredAtomicMatrixFileName)
     caMatrixFileName = "../../alignmentFiles/filteredResults2.Atomic"
     dimensions = generateMultipleAlignment.getDimensions(caMatrixFileName)
     print "dimensions\n"
     print ("%d %d \n" % (dimensions[0], dimensions[1]))
     (mask, matrix) = svdAnalysis.loadCAmatrix(caMatrixFileName, dimensions)
     (caMatrix, caMask) = svdAnalysis.getCovarianceMatrix(mask, matrix)
     print ("matrix.shape %d %d" % (caMatrix.shape[0], caMatrix.shape[1]))
     maskFileName = workingDirectory + "mask.atomic"
     matrixFileName = workingDirectory + "matrix.atomic"
     svdAnalysis.serializeCAMaskAndCAMatrix(mask, matrix, maskFileName, matrixFileName)
     realCAMatrixFileName = workingDirectory + "caMatrix.atomic"
     realCAMaskFileName = workingDirectory + "caMask.atomic"
     svdAnalysis.serializeCAMaskAndCAMatrix(caMask, caMatrix, realCAMaskFileName, realCAMatrixFileName)
    def test1loadCAmatrix(self):
        """To generate filteredResults2.Atomic:
        1.-generateMultipleAlignment.
            alnFileName = "../../alignmentFiles/mmult3.aux"
            resultsFileName2 = "../../alignmentFiles/results2.results"
            generateMultipleAlignment.getResidues(0.8, resultsFileName2, alnFileName, workingDirectory, False,True, False)
            AtomicresultsFileName = "../../alignmentFiles/results2.Atomic"
            generateMultipleAlignment.composeAtomicMatrix(resultsFileName2, AtomicresultsFileName)
            filteredAtomicMatrixFileName = "../../alignmentFiles/filteredResults2.Atomic"
            generateMultipleAlignment.filterAtomicMatrix(AtomicresultsFileName, filteredAtomicMatrixFileName)
         """
        caMatrixFileName = "../../alignmentFiles/filteredResults2.Atomic"
        dimensions = generateMultipleAlignment.getDimensions(caMatrixFileName)
        (mask, cAmatrix) = svdAnalysis.loadCAmatrix(caMatrixFileName, dimensions)

        # assert (70,9) == mask.shape
        # assert (70,9) == cAmatrix.shape
        print ("\n")
        print cAmatrix
        print ("\n")
        print mask
        print ("\n")