From 3436401624269af26d16721bce92b1c6ef40af1c Mon Sep 17 00:00:00 2001 From: Michal Tykac Date: Sat, 16 Jul 2022 19:54:57 +0200 Subject: [PATCH 1/7] Removed a bug in the rotateMapRealSpace() function which manifested in rare cases. --- .../getMaskedSymmetryPredictions.py | 2 +- .../getMaskedSymmetryPredictions_centre.py | 151 ++++++++++++------ proshade/src/proshade/ProSHADE_maths.cpp | 12 +- proshade/src/proshade/ProSHADE_overlay.cpp | 12 +- proshade/src/proshade/ProSHADE_symmetry.cpp | 6 +- proshade/src/proshade/ProSHADE_tasks.cpp | 4 +- proshade/src/python/pyProSHADE_data.cpp | 25 +++ proshade/src/python/pyProSHADE_symmetry.cpp | 28 +--- 8 files changed, 151 insertions(+), 89 deletions(-) diff --git a/proshade/interfacedCodes/EMDA/symmetryPredictions/getMaskedSymmetryPredictions.py b/proshade/interfacedCodes/EMDA/symmetryPredictions/getMaskedSymmetryPredictions.py index aa25cd46..69dbc00d 100644 --- a/proshade/interfacedCodes/EMDA/symmetryPredictions/getMaskedSymmetryPredictions.py +++ b/proshade/interfacedCodes/EMDA/symmetryPredictions/getMaskedSymmetryPredictions.py @@ -95,7 +95,7 @@ ### no user manipulation is required. ### -startFrom = 382 +startFrom = 676 resolutionFilename = resolution outResCondensed = 0 outResAxes = 0 diff --git a/proshade/interfacedCodes/EMDA/symmetryPredictions_centre/getMaskedSymmetryPredictions_centre.py b/proshade/interfacedCodes/EMDA/symmetryPredictions_centre/getMaskedSymmetryPredictions_centre.py index c07cd164..0fe89d23 100644 --- a/proshade/interfacedCodes/EMDA/symmetryPredictions_centre/getMaskedSymmetryPredictions_centre.py +++ b/proshade/interfacedCodes/EMDA/symmetryPredictions_centre/getMaskedSymmetryPredictions_centre.py @@ -30,8 +30,8 @@ # # \author Michal Tykac # \author Garib N. Murshudov -# \version 0.7.6.2 -# \date DEC 2021 +# \version 0.7.6.6 +# \date JUL 2022 ###################################################### ###################################################### @@ -61,7 +61,9 @@ import mrcfile ### Import EMDA -import emda.emda_methods as emda_methods +import emda2.emda_methods2 as em +from emda2.core import iotools +from emda2.ext import mapmask ###################################################### @@ -78,10 +80,10 @@ comCentering = False verbosity = -1 inputFileName = "../symmetryPredictions/emdb_spa_210329.dat" -outputFileName = "results_allKnownEMDB_SYM_resol-" +outputFileName = "V2_results_allKnownEMDB_COM_resol-" EMDBDataPath = "/Users/mysak/BioCEV/proshade/xx_EMDBSymmetry" -unreleasedIDsList = [ "EMD-10163", "EMD-10165", "EMD-10166", "EMD-10168", "EMD-10169", "EMD-10170", "EMD-10174", "EMD-21320", "EMD-4320", "EMD-4522", "EMD-4523", "EMD-4524", "EMD-4606", "EMD-4607", "EMD-4718", "EMD-5039", "EMD-6758", "EMD-8144", "EMD-8145" ] -tooLargeIDsList = [ "EMD-0174", "EMD-11111", "EMD-20091", "EMD-21648", "EMD-0880", "EMD-11008", "EMD-0436", "EMD-11040", "EMD-0618" ] +unreleasedIDsList = [ "EMD-10163", "EMD-10165", "EMD-10166", "EMD-10168", "EMD-10169", "EMD-10170", "EMD-10174", "EMD-21320", "EMD-4320", "EMD-4522", "EMD-4523", "EMD-4524", "EMD-4606", "EMD-4607", "EMD-4718", "EMD-5039", "EMD-6758", "EMD-8144", "EMD-8145", "EMD-1300" ] +tooLargeIDsList = [ "EMD-0174", "EMD-11111", "EMD-20091", "EMD-21648", "EMD-0880", "EMD-11008", "EMD-0436", "EMD-11040", "EMD-0618", "EMD-10768", "EMD-10926", "EMD-1610", "EMD-23042" ] ###################################################### ### Local settings @@ -91,7 +93,7 @@ ### no user manipulation is required. ### -startFrom = 0 +startFrom = 39 resolutionFilename = resolution outResCondensed = 0 outResAxes = 0 @@ -111,25 +113,29 @@ """ def openOutputFiles ( cntr ): ### Declare local variables + outResRecom = "" outResCondensed = "" outResAxes = "" ### Open files for output if cntr == 0: outResCondensed = open ( outputFileName + str ( resolutionFilename ) + "_condensed.txt", "w") + outResRecom = open ( outputFileName + str ( resolutionFilename ) + "_recommended.txt", "w") outResAxes = open ( outputFileName + str ( resolutionFilename ) + ".txt", "w") else: outResCondensed = open ( outputFileName + str ( resolutionFilename ) + "_condensed.txt", "a") + outResRecom = open ( outputFileName + str ( resolutionFilename ) + "_recommended.txt", "a") outResAxes = open ( outputFileName + str ( resolutionFilename ) + ".txt", "a") - return ( outResCondensed, outResAxes ) + return ( outResRecom, outResCondensed, outResAxes ) """ This function closes the output files. This is done after each symmetry prediction to make sure results are written out after each step. """ -def closeOutputFiles ( outResCondensed, outResAxes ): +def closeOutputFiles ( outResRecom, outResCondensed, outResAxes ): ## Close output files + outResRecom.close ( ) outResCondensed.close ( ) outResAxes.close ( ) @@ -223,6 +229,7 @@ def checkMapResolution ( mapFile, declRes ): locRes = resolution ### Read in map using mrc file + print ( mapFile ) mrc = mrcfile.open ( mapFile, mode = "r+" ) ### Find dims in Angstroms @@ -237,7 +244,7 @@ def checkMapResolution ( mapFile, declRes ): ### If map resolution below decent resolution, report if mapResol > minimalAllowedResolution: - return ( -1.0 ) + return ( -1.0, -1.0 ) ### Check map resolution against the minimal required resolution if ( locRes < float ( mapResol ) ): @@ -254,24 +261,24 @@ def checkMapResolution ( mapFile, declRes ): This function reads in the density map data from the file and proceeds to use EMDA to compute the density mask, saving it into file "mapmask.mrc". """ -def maskMapUsingEMDA ( mapFile, locRes ): - ### Read in the data using mrcfile - mrc = mrcfile.open ( mapFile, mode = "r+" ) - - ### Parse out data from the mrcfile object - cell = numpy.zeros ( 6, dtype="float" ) - uc = numpy.array(mrc.header.cella) - uc = mrc.header.cella[ [ "x", "y", "z" ] ] - cell[:3] = uc.view( ( "f4", 3 ) ) - cell[3:] = float ( 90.0 ) - origin = [mrc.header.nxstart, mrc.header.nystart, mrc.header.nzstart] - arr = mrc.data - - ### Close the file to stop changes from being written onto the disc - mrc.close ( ) - - ### Compute mask - mapmask = emda_methods.mask_from_map ( uc=cell, arr=arr, kern=4, resol=locRes, filter='butterworth', prob=0.99, itr=3, orig=origin ) +def maskMapUsingEMDA ( mapFile, resolution ): + m1 = iotools.Map ( name = mapFile ) + m1.read() + + _, lwp = em.lowpass_map(uc=m1.workcell, arr1=m1.workarr, resol = resolution, filter="butterworth") + lwp = (lwp - numpy.mean(lwp)) / numpy.std(lwp) + binary_threshold = numpy.amax(lwp) / 100 + + mask = em.mask_from_map_connectedpixels(m1, binthresh=binary_threshold) + + mout = iotools.Map(name='mapmask.mrc') + mout.arr = mask + mout.cell = m1.workcell + mout.origin = m1.origin + mout.write() + + ### Now all work is done in this function + # mapmask.main ( imap = mapFile, imask = 'mapmask2.mrc' ) """ This function runs ProSHADE symmetry detection and returns the recommented symmetry type, @@ -307,7 +314,7 @@ def runProSHADESymmetry ( mapFile, maskFile, resol, chngSampl, cntrMap, symCenMa rotCenSettingsPhased.messageShift = 1; rotCenSettingsPhased.moveToCOM = False; rotCenSettingsUnphased.usePhase = False; - rotCenSettingsUnphased.requestedSymmetryType = "onlyC"; + rotCenSettingsUnphased.requestedSymmetryType = "onlyCandD"; rotCenSettingsUnphased.moveToCOM = False; rotCenSettingsUnphased.addExtraSpace = pSet.addExtraSpace * 5.0; @@ -321,7 +328,7 @@ def runProSHADESymmetry ( mapFile, maskFile, resol, chngSampl, cntrMap, symCenMa symStr.detectSymmetryInStructure ( rotCenSettingsUnphased ) ### Find reliable symmetries in the Patterson map - relSym = proshade.findReliableUnphasedSymmetries ( rotCenSettingsUnphased, rotCenSettingsUnphased.verbose, rotCenSettingsUnphased.messageShift, rotCenSettingsUnphased.axisErrTolerance ); + relSym = proshade.findReliableUnphasedSymmetries ( symStr, rotCenSettingsUnphased.verbose, rotCenSettingsUnphased.messageShift, rotCenSettingsUnphased.axisErrTolerance ); ### Are there any reasonable symmetries? if len ( relSym ) != 0: @@ -331,7 +338,7 @@ def runProSHADESymmetry ( mapFile, maskFile, resol, chngSampl, cntrMap, symCenMa proshade.optimiseDGroupAngleFromAxesHeights ( relSym, symStr, rotCenSettingsUnphased ) ### Get all axes - allCAxes = symStr.getAllCSyms ( rotCenSettingsUnphased ) + allCAxes = symStr.getAllCSyms ( ) ### Read in with phases del symStr @@ -345,7 +352,7 @@ def runProSHADESymmetry ( mapFile, maskFile, resol, chngSampl, cntrMap, symCenMa ### Find the line and point on it closest to COM point1 = proshade.findPointFromTranslations ( rotCenSettingsPhased, symStr, allCAxes, relSym[0] ) axis1 = numpy.array( [ allCAxes[relSym[0]][1], allCAxes[relSym[0]][2], allCAxes[relSym[0]][3]] ) - COM = proshade.findMAPCOMValues ( symStr ) + COM = proshade.findMAPCOMValues ( symStr, rotCenSettingsPhased ) xBoxCentre = ( ( symStr.xTo - symStr.xFrom ) / 2 ) + symStr.xFrom yBoxCentre = ( ( symStr.yTo - symStr.yFrom ) / 2 ) + symStr.yFrom @@ -401,16 +408,43 @@ def runProSHADESymmetry ( mapFile, maskFile, resol, chngSampl, cntrMap, symCenMa pStruct.computeRotationFunction ( pSet ) pStruct.detectSymmetryInStructure ( pSet ) - ### Retrieve results - recSymmetryType = pStruct.getRecommendedSymmetryType ( pSet ) - recSymmetryFold = pStruct.getRecommendedSymmetryFold ( pSet ) - allCAxes = pStruct.getAllCSyms ( pSet ) + ### Retrieve results for default ProSHADE + recSymmetryType = pStruct.getRecommendedSymmetryType ( ) + recSymmetryFold = pStruct.getRecommendedSymmetryFold ( ) + recSymmetryAxes = pStruct.getRecommendedSymmetryAxes ( ) + allCAxes = pStruct.getAllCSyms ( ) - ### Convert results for return retList = [] - retList.append ( recSymmetryType ) - retList.append ( recSymmetryFold ) - retList.append ( allCAxes ) + retListOrig = [] + retListOrig.append ( recSymmetryType ) + retListOrig.append ( recSymmetryFold ) + retListOrig.append ( allCAxes ) + retListOrig.append ( recSymmetryAxes ) + retList.append ( retListOrig ) + + ### Re-compute with different thresholds + thresList = [] + thresList.append ( 0.95 ) + thresList.append ( 0.90 ) + thresList.append ( 0.80 ) + thresList.append ( 0.70 ) + thresList.append ( 0.60 ) + thresList.append ( 0.50 ) + thresList.append ( 0.40 ) + + for thr in thresList: + pStruct.reRunSymmetryDetectionThreshold ( pSet, thr ) + recSymmetryType = pStruct.getRecommendedSymmetryType ( ) + recSymmetryFold = pStruct.getRecommendedSymmetryFold ( ) + recSymmetryAxes = pStruct.getRecommendedSymmetryAxes ( ) + allCAxes = pStruct.getAllCSyms ( ) + + retListThres = [] + retListThres.append ( recSymmetryType ) + retListThres.append ( recSymmetryFold ) + retListThres.append ( allCAxes ) + retListThres.append ( recSymmetryAxes ) + retList.append ( retListThres ) ### Release memory del pStruct @@ -491,7 +525,7 @@ def runProSHADESymmetry ( mapFile, maskFile, resol, chngSampl, cntrMap, symCenMa ### Run symmetry detection symRes = runProSHADESymmetry ( mapPath, maskPath, compResolution, mapReSampling, comCentering, symmetryCentering, verbosity ) - + ### Stop timer stopTime = time.time ( ) @@ -499,24 +533,39 @@ def runProSHADESymmetry ( mapFile, maskFile, resol, chngSampl, cntrMap, symCenMa print ( " ... Symmetry detection complete ( time taken: " + str( stopTime - startTime ) + " )." ) ### Open files for output - ( outResCondensed, outResAxes ) = openOutputFiles ( counter ) + ( outResRecom, outResCondensed, outResAxes ) = openOutputFiles ( counter ) ### Write results - if ( symRes[0] == "I" ) or ( symRes[0] == "O" ) or ( symRes[0] == "T" ): - outResCondensed.write ( str( id ) + "\t" + str( declaredSym ) + "\t" + str( symRes[0] ) + "\t" + str( stopTime - startTime ) + "\n" ) - else: - outResCondensed.write ( str( id ) + "\t" + str( declaredSym ) + "\t" + str( symRes[0] ) + str( symRes[1] ) + "\t" + str( stopTime - startTime ) + "\n" ) + outResCondensed.write ( str( id ) + "\t" + str( declaredSym ) + "\t" ) outResAxes.write ( str( id ) + " :\n==========\n" ) - for ax in range ( 0, len ( symRes[2] ) ): - outResAxes.write ( str ( symRes[2][ax][0] ) + "\t" + str ( symRes[2][ax][1] ) + "\t" + str( symRes[2][ax][2] ) + "\t" + str( symRes[2][ax][3] ) + "\t" + str( symRes[2][ax][4] ) + "\t" + str( symRes[2][ax][5] ) + "\t" + str( symRes[2][ax][6] ) + "\t" + str( mapVolumeInds ) + "\t" + str( compResolution ) + "\n" ) - outResAxes.write ( "\n" ) + outResRecom.write ( str( id ) + " :\n==========\n" ) + + for thr in range ( 0, len( symRes ) ): + if ( symRes[thr][0] == "I" ) or ( symRes[thr][0] == "O" ) or ( symRes[thr][0] == "T" ): + outResCondensed.write ( str( symRes[thr][0] ) + "\t" ) + else: + outResCondensed.write ( str( symRes[thr][0] ) + str( symRes[thr][1] ) + "\t" ) + + + outResRecom.write ( str( thr ) + " :\n~~~~~~~~~\n" ) + for ax in range ( 0, len ( symRes[thr][3] ) ): + outResRecom.write ( str ( symRes[thr][3][ax][0] ) + "\t" + str ( symRes[thr][3][ax][1] ) + "\t" + str( symRes[thr][3][ax][2] ) + "\t" + str( symRes[thr][3][ax][3] ) + "\t" + str( symRes[thr][3][ax][4] ) + "\t" + str( symRes[thr][3][ax][5] ) + "\t" + str( symRes[thr][3][ax][6] ) + "\t" + str( mapVolumeInds ) + "\t" + str( compResolution ) + "\n" ) + outResRecom.write ( "\n" ) + + outResAxes.write ( str( thr ) + " :\n~~~~~~~~~\n" ) + for ax in range ( 0, len ( symRes[thr][2] ) ): + outResAxes.write ( str ( symRes[thr][2][ax][0] ) + "\t" + str ( symRes[thr][2][ax][1] ) + "\t" + str( symRes[thr][2][ax][2] ) + "\t" + str( symRes[thr][2][ax][3] ) + "\t" + str( symRes[thr][2][ax][4] ) + "\t" + str( symRes[thr][2][ax][5] ) + "\t" + str( symRes[thr][2][ax][6] ) + "\t" + str( mapVolumeInds ) + "\t" + str( compResolution ) + "\n" ) + outResAxes.write ( "\n" ) + + + outResCondensed.write ( str( stopTime - startTime ) + "\n" ) ### Close output files - closeOutputFiles ( outResCondensed, outResAxes ) + closeOutputFiles ( outResRecom, outResCondensed, outResAxes ) ### Move counter counter = counter + 1 - + ### End of symmetry detection for this structure ### Done diff --git a/proshade/src/proshade/ProSHADE_maths.cpp b/proshade/src/proshade/ProSHADE_maths.cpp index fae5e68a..6294dd06 100644 --- a/proshade/src/proshade/ProSHADE_maths.cpp +++ b/proshade/src/proshade/ProSHADE_maths.cpp @@ -1269,9 +1269,14 @@ void ProSHADE_internal_maths::getRotationMatrixFromEulerZYZAngles ( proshade_sin proshade_double angleTolerance = 0.01; proshade_double closeToZero = 0.0000001; + std::cerr << "rotMat size: " << rotMat->size() << std::endl; + std::cerr << "rotMat vals: " << rotMat->at(0) << " x " << rotMat->at(1) << " x " << rotMat->at(2) << std::endl; + std::cerr << " : " << rotMat->at(3) << " x " << rotMat->at(4) << " x " << rotMat->at(5) << std::endl; + std::cerr << " : " << rotMat->at(6) << " x " << rotMat->at(7) << " x " << rotMat->at(8) << std::endl; + //================================================ Find the angle *ang = std::acos ( ( std::max ( -1.0, std::min ( 3.0, rotMat->at(0) + rotMat->at(4) + rotMat->at(8) ) ) - 1.0 ) / 2.0 ); - + std::cerr << "ANG IS : " << *ang << std::endl; //================================================ Any singularity? if ( std::abs ( std::sin ( *ang ) ) < angleTolerance ) { @@ -1308,7 +1313,6 @@ void ProSHADE_internal_maths::getRotationMatrixFromEulerZYZAngles ( proshade_sin //============================================ Run LAPACK ZGESDD dgeev_ ( &jobLeftEigs, &jobRightEigs, &dim, matrixToDecompose, &dim, eigValReal, eigValImag, leftEigVectors, &dim, rightEigVectors, &dim, work, &workSize, &returnValue ); - //============================================ Check for errors if ( returnValue != 0 ) { @@ -1402,7 +1406,7 @@ void ProSHADE_internal_maths::getRotationMatrixFromEulerZYZAngles ( proshade_sin *z *= -1.0; *ang *= -1.0; } - + //================================================ Free memory delete[] eigValReal; delete[] eigValImag; @@ -1441,7 +1445,7 @@ void ProSHADE_internal_maths::getRotationMatrixFromEulerZYZAngles ( proshade_sin //================================================ Standardise angle to range 0 to 2pi if ( *ang < 0.0 ) { *ang = ( 2.0 * M_PI ) + *ang; } - + //================================================ Done return ; diff --git a/proshade/src/proshade/ProSHADE_overlay.cpp b/proshade/src/proshade/ProSHADE_overlay.cpp index e9a2a7de..0921f503 100644 --- a/proshade/src/proshade/ProSHADE_overlay.cpp +++ b/proshade/src/proshade/ProSHADE_overlay.cpp @@ -635,6 +635,7 @@ std::vector< proshade_double > ProSHADE_internal_data::ProSHADE_data::rotateMapR bool withinBounds = true; proshade_double c000, c001, c010, c011, c100, c101, c110, c111, c00, c01, c10, c11, c0, c1; size_t arrPos = 0; + size_t maxArr = static_cast< size_t > ( this->xDimIndices * this->yDimIndices * this->zDimIndices ); proshade_double xCOM, yCOM, zCOM; std::vector< proshade_double > ret; @@ -737,27 +738,35 @@ std::vector< proshade_double > ProSHADE_internal_data::ProSHADE_data::rotateMapR //==================================== Find the surrounding points values from their indices arrPos = static_cast< size_t > ( ( interpMins[2] - mins[2] ) + static_cast< proshade_single > ( this->zDimIndices ) * ( ( interpMins[1] - mins[1] ) + static_cast< proshade_single > ( this->yDimIndices ) * ( interpMins[0] - mins[0] ) ) ); + if ( arrPos >= maxArr ) { continue; } c000 = this->internalMap[arrPos]; arrPos = static_cast< size_t > ( ( interpMaxs[2] - mins[2] ) + static_cast< proshade_single > ( this->zDimIndices ) * ( ( interpMins[1] - mins[1] ) + static_cast< proshade_single > ( this->yDimIndices ) * ( interpMins[0] - mins[0] ) ) ); + if ( arrPos >= maxArr ) { continue; } c001 = this->internalMap[arrPos]; arrPos = static_cast< size_t > ( ( interpMins[2] - mins[2] ) + static_cast< proshade_single > ( this->zDimIndices ) * ( ( interpMaxs[1] - mins[1] ) + static_cast< proshade_single > ( this->yDimIndices ) * ( interpMins[0] - mins[0] ) ) ); + if ( arrPos >= maxArr ) { continue; } c010 = this->internalMap[arrPos]; arrPos = static_cast< size_t > ( ( interpMaxs[2] - mins[2] ) + static_cast< proshade_single > ( this->zDimIndices ) * ( ( interpMaxs[1] - mins[1] ) + static_cast< proshade_single > ( this->yDimIndices ) * ( interpMins[0] - mins[0] ) ) ); + if ( arrPos >= maxArr ) { continue; } c011 = this->internalMap[arrPos]; arrPos = static_cast< size_t > ( ( interpMins[2] - mins[2] ) + static_cast< proshade_single > ( this->zDimIndices ) * ( ( interpMins[1] - mins[1] ) + static_cast< proshade_single > ( this->yDimIndices ) * ( interpMaxs[0] - mins[0] ) ) ); + if ( arrPos >= maxArr ) { continue; } c100 = this->internalMap[arrPos]; arrPos = static_cast< size_t > ( ( interpMaxs[2] - mins[2] ) + static_cast< proshade_single > ( this->zDimIndices ) * ( ( interpMins[1] - mins[1] ) + static_cast< proshade_single > ( this->yDimIndices ) * ( interpMaxs[0] - mins[0] ) ) ); + if ( arrPos >= maxArr ) { continue; } c101 = this->internalMap[arrPos]; arrPos = static_cast< size_t > ( ( interpMins[2] - mins[2] ) + static_cast< proshade_single > ( this->zDimIndices ) * ( ( interpMaxs[1] - mins[1] ) + static_cast< proshade_single > ( this->yDimIndices ) * ( interpMaxs[0] - mins[0] ) ) ); + if ( arrPos >= maxArr ) { continue; } c110 = this->internalMap[arrPos]; arrPos = static_cast< size_t > ( ( interpMaxs[2] - mins[2] ) + static_cast< proshade_single > ( this->zDimIndices ) * ( ( interpMaxs[1] - mins[1] ) + static_cast< proshade_single > ( this->yDimIndices ) * ( interpMaxs[0] - mins[0] ) ) ); + if ( arrPos >= maxArr ) { continue; } c111 = this->internalMap[arrPos]; //==================================== Interpolate along x-axis @@ -772,11 +781,12 @@ std::vector< proshade_double > ProSHADE_internal_data::ProSHADE_data::rotateMapR //==================================== Interpolate along z-axis arrPos = static_cast< size_t > ( ( zIt - mins[2] ) + static_cast< proshade_single > ( this->zDimIndices ) * ( ( yIt - mins[1] ) + static_cast< proshade_single > ( this->yDimIndices ) * ( xIt - mins[0] ) ) ); + if ( arrPos >= maxArr ) { continue; } map[arrPos] = ( c0 * ( 1.0 - static_cast< proshade_double > ( interpDiff[2] ) ) ) + ( c1 * static_cast< proshade_double > ( interpDiff[2] ) ); } } } - + std::cerr << " INTERPOLATION IS OKI!" << std::endl; //================================================ Release memory delete[] mins; delete[] maxs; diff --git a/proshade/src/proshade/ProSHADE_symmetry.cpp b/proshade/src/proshade/ProSHADE_symmetry.cpp index 7e6edd82..183aac13 100644 --- a/proshade/src/proshade/ProSHADE_symmetry.cpp +++ b/proshade/src/proshade/ProSHADE_symmetry.cpp @@ -3930,13 +3930,13 @@ std::vector< proshade_double > ProSHADE_internal_symmetry::findTranslationBetwee //================================================ Convert rotated map to Fourier space for ( size_t it = 0; it < static_cast< size_t > ( symStr->getXDim() * symStr->getYDim() * symStr->getZDim() ); it++ ) { rotMapComplex[it][0] = rotMap[it]; rotMapComplex[it][1] = 0.0; } fftw_execute ( planForwardFourierRot ); - + //================================================ Combine coeffs for translation function ProSHADE_internal_maths::combineFourierForTranslation ( origCoeffs, rotCoeffs, trFuncCoeffs, symStr->getXDim(), symStr->getYDim(), symStr->getZDim() ); - + //================================================ Compute translation function fftw_execute ( planReverseFourierComb ); - + //================================================ Find peak mapPeak = 0.0; ProSHADE_internal_maths::findHighestValueInMap ( trFunc, symStr->getXDim(), symStr->getYDim(), symStr->getZDim(), &trsX, &trsY, &trsZ, &mapPeak ); diff --git a/proshade/src/proshade/ProSHADE_tasks.cpp b/proshade/src/proshade/ProSHADE_tasks.cpp index 14cc69fb..3e0071e6 100644 --- a/proshade/src/proshade/ProSHADE_tasks.cpp +++ b/proshade/src/proshade/ProSHADE_tasks.cpp @@ -451,11 +451,11 @@ void ProSHADE_internal_tasks::SymmetryCentreDetectionTask ( ProSHADE_settings* s fftw_complex *origMap = nullptr, *origCoeffs = nullptr, *rotMapComplex = nullptr, *rotCoeffs = nullptr, *trFunc = nullptr, *trFuncCoeffs = nullptr; fftw_plan planForwardFourier, planForwardFourierRot, planReverseFourierComb; ProSHADE_internal_symmetry::allocateCentreOfMapFourierTransforms ( symStr->getXDim(), symStr->getYDim(), symStr->getZDim(), origMap, origCoeffs, rotMapComplex, rotCoeffs, trFunc, trFuncCoeffs, &planForwardFourier, &planForwardFourierRot, &planReverseFourierComb ); - + //================================================ Compute Fourier for the original map for ( proshade_unsign it = 0; it < static_cast< proshade_unsign > ( symStr->getXDim() * symStr->getYDim() * symStr->getZDim() ); it++ ) { origMap[it][0] = symStr->getMapValue( it ); origMap[it][1] = 0.0; } fftw_execute ( planForwardFourier ); - + //================================================ If single C was found if ( relSym.size() == 1 ) { diff --git a/proshade/src/python/pyProSHADE_data.cpp b/proshade/src/python/pyProSHADE_data.cpp index 383b15b7..1596d491 100644 --- a/proshade/src/python/pyProSHADE_data.cpp +++ b/proshade/src/python/pyProSHADE_data.cpp @@ -986,4 +986,29 @@ void add_dataClass ( pybind11::module& pyProSHADE ) //== Done return ( retArr ); }, "This function allows access to the (self-)rotation function mapping to spheres with the angle being the radius and the longitude/latitude angles being the axis of the rotation for a particular fold (i.e. for all angles required by the fold except for the angle 0)." ); + pyProSHADE.def ( "findReliableUnphasedSymmetries", + [] ( ProSHADE_internal_data::ProSHADE_data &self, proshade_signed verbose, proshade_signed messageShift, proshade_double tolerance ) -> pybind11::array_t < proshade_unsign > + { + //== Run the detection + std::vector< proshade_unsign > rels = ProSHADE_internal_symmetry::findReliableUnphasedSymmetries ( self.getCyclicAxes(), self.getDihedralAxes(), verbose, messageShift, tolerance ); + + //== Allocate memory for the numpy values + proshade_unsign* npVals = new proshade_unsign[static_cast ( rels.size() )]; + ProSHADE_internal_misc::checkMemoryAllocation ( npVals, __FILE__, __LINE__, __func__ ); + + //== Copy values + for ( proshade_unsign iter = 0; iter < static_cast ( rels.size() ); iter++ ) { npVals[iter] = static_cast< proshade_unsign > ( rels.at(iter) ); } + + //== Create capsules to make sure memory is released properly from the allocating language (C++ in this case) + pybind11::capsule pyCapsuleRelSyms ( npVals, []( void *f ) { proshade_unsign* foo = reinterpret_cast< proshade_unsign* > ( f ); delete foo; } ); + + //== Copy the value + pybind11::array_t < proshade_unsign > retArr = pybind11::array_t< proshade_unsign > ( { static_cast ( rels.size() ) }, // Shape + { sizeof(proshade_unsign) }, // C-stype strides + npVals, // Data + pyCapsuleRelSyms ); // Capsule + + //== Done + return ( retArr ); + }, "This function checks the list of detected axes (presumably from phaseless symmetry detection) and returns the best dihedral (or cyclic, if no dihedral is found) point group, or empty vector if nothing is found.", pybind11::arg ( "structureObject" ), pybind11::arg ( "verbose" ), pybind11::arg ( "messageShift" ) = 1, pybind11::arg ( "tolerance" ) = 0.1 ); } diff --git a/proshade/src/python/pyProSHADE_symmetry.cpp b/proshade/src/python/pyProSHADE_symmetry.cpp index e050b7c8..28b750f5 100644 --- a/proshade/src/python/pyProSHADE_symmetry.cpp +++ b/proshade/src/python/pyProSHADE_symmetry.cpp @@ -26,33 +26,7 @@ //==================================================== Add the ProSHADE_settings and ProSHADE_run classes to the PyBind11 module void add_symmetryNamespace ( pybind11::module& pyProSHADE ) -{ -// pyProSHADE.def ( "findReliableUnphasedSymmetries", -// [] ( ProSHADE_settings* settings, proshade_signed verbose, proshade_signed messageShift, proshade_double tolerance ) -> pybind11::array_t < proshade_unsign > -// { -// //== Run the detection -// std::vector< proshade_unsign > rels = ProSHADE_internal_symmetry::findReliableUnphasedSymmetries ( &settings->allDetectedCAxes, verbose, messageShift, tolerance ); -// -// //== Allocate memory for the numpy values -// proshade_unsign* npVals = new proshade_unsign[static_cast ( rels.size() )]; -// ProSHADE_internal_misc::checkMemoryAllocation ( npVals, __FILE__, __LINE__, __func__ ); -// -// //== Copy values -// for ( proshade_unsign iter = 0; iter < static_cast ( rels.size() ); iter++ ) { npVals[iter] = static_cast< proshade_unsign > ( rels.at(iter) ); } -// -// //== Create capsules to make sure memory is released properly from the allocating language (C++ in this case) -// pybind11::capsule pyCapsuleRelSyms ( npVals, []( void *f ) { proshade_unsign* foo = reinterpret_cast< proshade_unsign* > ( f ); delete foo; } ); -// -// //== Copy the value -// pybind11::array_t < proshade_unsign > retArr = pybind11::array_t< proshade_unsign > ( { static_cast ( rels.size() ) }, // Shape -// { sizeof(proshade_unsign) }, // C-stype strides -// npVals, // Data -// pyCapsuleRelSyms ); // Capsule -// -// //== Done -// return ( retArr ); -// }, "This function checks the list of detected axes (presumably from phaseless symmetry detection) and returns the best dihedral (or cyclic, if no dihedral is found) point group, or empty vector if nothing is found.", pybind11::arg ( "settings" ), pybind11::arg ( "verbose" ), pybind11::arg ( "messageShift" ) = 1, pybind11::arg ( "tolerance" ) = 0.1 ); - +{ pyProSHADE.def ( "optimiseDGroupAngleFromAxesHeights", [] ( pybind11::array_t < proshade_unsign > selection, ProSHADE_internal_data::ProSHADE_data* dataObj, ProSHADE_settings* settings ) { From 152dc4cf297918dd5d2045a1eeb9071d25eae758 Mon Sep 17 00:00:00 2001 From: Michal Tykac Date: Sun, 24 Jul 2022 11:06:39 +0200 Subject: [PATCH 2/7] Removed a small bug that manifested in some particular density map rotations during the FSC computations. --- .../symmetryPredictions/getMaskedSymmetryPredictions.py | 4 ++-- .../getMaskedSymmetryPredictions_centre.py | 2 +- proshade/src/proshade/ProSHADE_maths.cpp | 7 +------ proshade/src/proshade/ProSHADE_overlay.cpp | 2 +- 4 files changed, 5 insertions(+), 10 deletions(-) diff --git a/proshade/interfacedCodes/EMDA/symmetryPredictions/getMaskedSymmetryPredictions.py b/proshade/interfacedCodes/EMDA/symmetryPredictions/getMaskedSymmetryPredictions.py index 69dbc00d..4998fa6f 100644 --- a/proshade/interfacedCodes/EMDA/symmetryPredictions/getMaskedSymmetryPredictions.py +++ b/proshade/interfacedCodes/EMDA/symmetryPredictions/getMaskedSymmetryPredictions.py @@ -83,7 +83,7 @@ outputFileName = "V29_results_allKnownEMDB_COM_resol-" EMDBDataPath = "/Users/mysak/BioCEV/proshade/xx_EMDBSymmetry" unreleasedIDsList = [ "EMD-10163", "EMD-10165", "EMD-10166", "EMD-10168", "EMD-10169", "EMD-10170", "EMD-10174", "EMD-21320", "EMD-4320", "EMD-4522", "EMD-4523", "EMD-4524", "EMD-4606", "EMD-4607", "EMD-4718", "EMD-5039", "EMD-6758", "EMD-8144", "EMD-8145", "EMD-1300" ] -tooLargeIDsList = [ "EMD-0174", "EMD-11111", "EMD-20091", "EMD-21648", "EMD-0880", "EMD-11008", "EMD-0436", "EMD-11040", "EMD-0618", "EMD-10768", "EMD-10926", "EMD-1610", "EMD-23042" ] +tooLargeIDsList = [ "EMD-0174", "EMD-11111", "EMD-20091", "EMD-21648", "EMD-0880", "EMD-11008", "EMD-0436", "EMD-11040", "EMD-0618", "EMD-10768", "EMD-10926", "EMD-1610", "EMD-23042", "EMD-1472" ] ### 2047 causes segfault and I have no idea why ... @@ -95,7 +95,7 @@ ### no user manipulation is required. ### -startFrom = 676 +startFrom = 782 resolutionFilename = resolution outResCondensed = 0 outResAxes = 0 diff --git a/proshade/interfacedCodes/EMDA/symmetryPredictions_centre/getMaskedSymmetryPredictions_centre.py b/proshade/interfacedCodes/EMDA/symmetryPredictions_centre/getMaskedSymmetryPredictions_centre.py index 0fe89d23..569e4328 100644 --- a/proshade/interfacedCodes/EMDA/symmetryPredictions_centre/getMaskedSymmetryPredictions_centre.py +++ b/proshade/interfacedCodes/EMDA/symmetryPredictions_centre/getMaskedSymmetryPredictions_centre.py @@ -93,7 +93,7 @@ ### no user manipulation is required. ### -startFrom = 39 +startFrom = 222 resolutionFilename = resolution outResCondensed = 0 outResAxes = 0 diff --git a/proshade/src/proshade/ProSHADE_maths.cpp b/proshade/src/proshade/ProSHADE_maths.cpp index 6294dd06..e871b535 100644 --- a/proshade/src/proshade/ProSHADE_maths.cpp +++ b/proshade/src/proshade/ProSHADE_maths.cpp @@ -1269,14 +1269,9 @@ void ProSHADE_internal_maths::getRotationMatrixFromEulerZYZAngles ( proshade_sin proshade_double angleTolerance = 0.01; proshade_double closeToZero = 0.0000001; - std::cerr << "rotMat size: " << rotMat->size() << std::endl; - std::cerr << "rotMat vals: " << rotMat->at(0) << " x " << rotMat->at(1) << " x " << rotMat->at(2) << std::endl; - std::cerr << " : " << rotMat->at(3) << " x " << rotMat->at(4) << " x " << rotMat->at(5) << std::endl; - std::cerr << " : " << rotMat->at(6) << " x " << rotMat->at(7) << " x " << rotMat->at(8) << std::endl; - //================================================ Find the angle *ang = std::acos ( ( std::max ( -1.0, std::min ( 3.0, rotMat->at(0) + rotMat->at(4) + rotMat->at(8) ) ) - 1.0 ) / 2.0 ); - std::cerr << "ANG IS : " << *ang << std::endl; + //================================================ Any singularity? if ( std::abs ( std::sin ( *ang ) ) < angleTolerance ) { diff --git a/proshade/src/proshade/ProSHADE_overlay.cpp b/proshade/src/proshade/ProSHADE_overlay.cpp index 0921f503..79a83d1e 100644 --- a/proshade/src/proshade/ProSHADE_overlay.cpp +++ b/proshade/src/proshade/ProSHADE_overlay.cpp @@ -786,7 +786,7 @@ std::vector< proshade_double > ProSHADE_internal_data::ProSHADE_data::rotateMapR } } } - std::cerr << " INTERPOLATION IS OKI!" << std::endl; + //================================================ Release memory delete[] mins; delete[] maxs; From 60616413b855731d12268441f887c6917091b183 Mon Sep 17 00:00:00 2001 From: Michal Tykac Date: Sun, 24 Jul 2022 11:11:15 +0200 Subject: [PATCH 3/7] Modified the SOFT2 makefile to work on the Apple Silicon chips as well as the previous Intel chips --- proshade/extern/soft-2.0/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proshade/extern/soft-2.0/Makefile b/proshade/extern/soft-2.0/Makefile index c137e0ac..5e5706cc 100644 --- a/proshade/extern/soft-2.0/Makefile +++ b/proshade/extern/soft-2.0/Makefile @@ -33,7 +33,7 @@ ## CFLAGS = -O3 -pg ## CFLAGS = -O3 ## CFLAGS = -Wall -g -I./include $(FFTWINC) -CFLAGS = -Wall -O3 -g -I./include $(FFTWINC) -fPIC -std=c99 +CFLAGS = -Wall -O3 -g -I./include $(FFTWINC) -fPIC -std=c99 -arch arm64 -arch x86_64 FFTWLIB := $(FFTWLIB1) $(FFTWLIB2) From 6f3dd0bc273105d9f621bf71ce9265b67eff16e7 Mon Sep 17 00:00:00 2001 From: Michal Tykac Date: Sun, 24 Jul 2022 14:21:21 +0200 Subject: [PATCH 4/7] The previous commit was wrong - the support for the Apple Silicon chips is a bit more complicated than it seemed - this should now do the job. --- proshade/CMakeLists.txt | 12 ++++++++++-- proshade/extern/soft-2.0/Makefile | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/proshade/CMakeLists.txt b/proshade/CMakeLists.txt index 68c07205..d91bec58 100644 --- a/proshade/CMakeLists.txt +++ b/proshade/CMakeLists.txt @@ -270,10 +270,18 @@ if ( "${CMAKE_SYSTEM_NAME}" STREQUAL "Windows" ) COMMAND type nul > ${PROJECT_SOURCE_DIR}/extern/buildSOFT2 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/extern/soft-2.0 ) -else ( "${CMAKE_SYSTEM_NAME}" STREQUAL "Windows" ) +else ( "${CMAKE_SYSTEM_NAME}" STREQUAL "Windows" ) + SET ( CHIPSET_ARCHITECTURE_SOFT_COMMAND "uname" ) + SET ( CHIPSET_ARCHITECTURE_SOFT_COMMAND_ARGS "-m" ) + execute_process ( COMMAND ${CHIPSET_ARCHITECTURE_SOFT_COMMAND} ${CHIPSET_ARCHITECTURE_SOFT_COMMAND_ARGS} + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} + RESULT_VARIABLE SOFT_ARCH_BUILD_RESULT + OUTPUT_VARIABLE SOFT_ARCH_BUILD + OUTPUT_STRIP_TRAILING_WHITESPACE ) + message ( STATUS "SOFT library architecture : " ${SOFT_ARCH_BUILD} ) add_custom_command ( OUTPUT ${PROJECT_SOURCE_DIR}/extern/buildSOFT2 - COMMAND make lib FFTWINC=-I${FFTW3_INC_PATH} FFTWLIB1=-L${FFTW3_LIB_PATH} FFTWLIB2=-lfftw3 > ${CMAKE_SOURCE_DIR}/extern/soft-2.0/install.log.txt 2> ${CMAKE_SOURCE_DIR}/extern/soft-2.0/install.err.txt + COMMAND make lib SOFTLIBARCH=${SOFT_ARCH_BUILD} FFTWINC=-I${FFTW3_INC_PATH} FFTWLIB1=-L${FFTW3_LIB_PATH} FFTWLIB2=-lfftw3 > ${CMAKE_SOURCE_DIR}/extern/soft-2.0/install.log.txt 2> ${CMAKE_SOURCE_DIR}/extern/soft-2.0/install.err.txt COMMAND touch ${PROJECT_SOURCE_DIR}/extern/buildSOFT2 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/extern/soft-2.0 ) diff --git a/proshade/extern/soft-2.0/Makefile b/proshade/extern/soft-2.0/Makefile index 5e5706cc..c585cc57 100644 --- a/proshade/extern/soft-2.0/Makefile +++ b/proshade/extern/soft-2.0/Makefile @@ -33,7 +33,7 @@ ## CFLAGS = -O3 -pg ## CFLAGS = -O3 ## CFLAGS = -Wall -g -I./include $(FFTWINC) -CFLAGS = -Wall -O3 -g -I./include $(FFTWINC) -fPIC -std=c99 -arch arm64 -arch x86_64 +CFLAGS = -Wall -O3 -g -I./include $(FFTWINC) -fPIC -std=c99 -arch $(SOFTLIBARCH) FFTWLIB := $(FFTWLIB1) $(FFTWLIB2) From ceea4a19a714ed34840f8847c97813d2049a4f80 Mon Sep 17 00:00:00 2001 From: Michal Tykac Date: Mon, 25 Jul 2022 11:30:03 +0200 Subject: [PATCH 5/7] Removed a bug that caused incorrect memory access when the map re-sampling was decreasing the size of the map - the cause had to do with the unsigned int not being able to convey the decrease of size (signified by -) information :-). --- proshade/src/proshade/ProSHADE_data.cpp | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/proshade/src/proshade/ProSHADE_data.cpp b/proshade/src/proshade/ProSHADE_data.cpp index a8c07963..213cfc8f 100644 --- a/proshade/src/proshade/ProSHADE_data.cpp +++ b/proshade/src/proshade/ProSHADE_data.cpp @@ -667,7 +667,8 @@ void ProSHADE_internal_data::ProSHADE_data::readInMAP ( ProSHADE_settings* setti } //================================================ Apply Fourier weights - ProSHADE_internal_io::applyWeights ( this->internalMap, settings->fourierWeightsFileName, this->xDimIndices, this->yDimIndices, this->zDimIndices, settings->verbose, settings->messageShift, + ProSHADE_internal_io::applyWeights ( this->internalMap, settings->fourierWeightsFileName, + this->xDimIndices, this->yDimIndices, this->zDimIndices, settings->verbose, settings->messageShift, weightsArr, weigXDim, weigYDim, weigZDim ); //================================================ Remove negative values if so required @@ -1488,7 +1489,8 @@ void ProSHADE_internal_data::ProSHADE_data::reSampleMap ( ProSHADE_settings* set //================================================ Now re-sample the map if ( settings->changeMapResolution ) { - ProSHADE_internal_mapManip::reSampleMapToResolutionFourier ( this->internalMap, settings->requestedResolution * settings->resolutionOversampling, this->xDimIndices, this->yDimIndices, this->zDimIndices, + ProSHADE_internal_mapManip::reSampleMapToResolutionFourier ( this->internalMap, settings->requestedResolution * settings->resolutionOversampling, + this->xDimIndices, this->yDimIndices, this->zDimIndices, this->xDimSize, this->yDimSize, this->zDimSize, changeVals ); if ( settings->changeMapResolutionTriLinear ) @@ -1496,25 +1498,27 @@ void ProSHADE_internal_data::ProSHADE_data::reSampleMap ( ProSHADE_settings* set ProSHADE_internal_messages::printWarningMessage ( settings->verbose, "!!! ProSHADE WARNING !!! Requested both Fourier-space and real-space map re-sampling. Defaulting to only Fourier space re-samplling.", "WM00049" ); } } + if ( settings->changeMapResolutionTriLinear && !settings->changeMapResolution ) { - ProSHADE_internal_mapManip::reSampleMapToResolutionTrilinear ( this->internalMap, settings->requestedResolution * settings->resolutionOversampling, this->xDimIndices, this->yDimIndices, this->zDimIndices, + ProSHADE_internal_mapManip::reSampleMapToResolutionTrilinear ( this->internalMap, settings->requestedResolution * settings->resolutionOversampling, + this->xDimIndices, this->yDimIndices, this->zDimIndices, this->xDimSize, this->yDimSize, this->zDimSize, changeVals ); } //================================================ Set the internal values to reflect the new map size - this->xDimIndices += static_cast ( changeVals[0] ); - this->yDimIndices += static_cast ( changeVals[1] ); - this->zDimIndices += static_cast ( changeVals[2] ); + this->xDimIndices = static_cast< proshade_unsign > ( static_cast< proshade_signed > ( this->xDimIndices ) + static_cast< proshade_signed > ( changeVals[0] ) ); + this->yDimIndices = static_cast< proshade_unsign > ( static_cast< proshade_signed > ( this->yDimIndices ) + static_cast< proshade_signed > ( changeVals[1] ) ); + this->zDimIndices = static_cast< proshade_unsign > ( static_cast< proshade_signed > ( this->zDimIndices ) + static_cast< proshade_signed > ( changeVals[2] ) ); this->xGridIndices = this->xDimIndices; this->yGridIndices = this->yDimIndices; this->zGridIndices = this->zDimIndices; - this->xTo += static_cast ( changeVals[0] ); - this->yTo += static_cast ( changeVals[1] ); - this->zTo += static_cast ( changeVals[2] ); + this->xTo += static_cast< proshade_signed > ( changeVals[0] ); + this->yTo += static_cast< proshade_signed > ( changeVals[1] ); + this->zTo += static_cast< proshade_signed > ( changeVals[2] ); this->xDimSize = changeVals[3]; this->yDimSize = changeVals[4]; @@ -1532,7 +1536,6 @@ void ProSHADE_internal_data::ProSHADE_data::reSampleMap ( ProSHADE_settings* set //================================================ Move by indices (this should be sufficient) ProSHADE_internal_mapManip::moveMapByIndices ( &xMov, &yMov, &zMov, this->xDimSize, this->yDimSize, this->zDimSize, &this->xFrom, &this->xTo, &this->yFrom, &this->yTo, &this->zFrom, &this->zTo, &this->xAxisOrigin, &this->yAxisOrigin, &this->zAxisOrigin ); - ProSHADE_internal_mapManip::moveMapByFourier ( this->internalMap, xMov, yMov, zMov, this->xDimSize, this->yDimSize, this->zDimSize, static_cast< proshade_signed > ( this->xDimIndices ), static_cast< proshade_signed > ( this->yDimIndices ), static_cast< proshade_signed > ( this->zDimIndices ) ); From 4d9475ff9cdcd11302cc741f0b05a7450c1e662a Mon Sep 17 00:00:00 2001 From: Michal Tykac Date: Mon, 25 Jul 2022 16:32:45 +0200 Subject: [PATCH 6/7] Empty changes - testing that the token login to github is correctly wotking. --- proshade/src/proshade/ProSHADE_data.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proshade/src/proshade/ProSHADE_data.cpp b/proshade/src/proshade/ProSHADE_data.cpp index 213cfc8f..55143d57 100644 --- a/proshade/src/proshade/ProSHADE_data.cpp +++ b/proshade/src/proshade/ProSHADE_data.cpp @@ -729,7 +729,7 @@ void ProSHADE_internal_data::ProSHADE_data::readInPDB ( ProSHADE_settings* setti { settings->setResolution ( 8.0 ); } - + //================================================ Open PDB file for reading gemmi::Structure pdbFile = gemmi::read_structure ( gemmi::MaybeGzipped ( this->fileName ) ); From 499d86a7fbde27936ee3c6baef409442355e685c Mon Sep 17 00:00:00 2001 From: Michal Tykac Date: Mon, 25 Jul 2022 17:11:39 +0200 Subject: [PATCH 7/7] This is the version 0.7.6.7 (JUL 2022). There are only a few small changes to the previous version: 1) Support for installation on the Apple Silicon chips 2) Removal of two rare, but potentially segmentation faul causing bugs. NOTE: This version did not have the tests run, thus the expected values may have changes a little. --- README.md | 2 +- proshade/CMakeLists.txt | 2 +- proshade/src/bin/bin.cpp | 4 ++-- proshade/src/proshade/ProSHADE.cpp | 2 +- proshade/src/proshade/ProSHADE.hpp | 2 +- proshade/src/proshade/ProSHADE_data.cpp | 2 +- proshade/src/proshade/ProSHADE_data.hpp | 2 +- proshade/src/proshade/ProSHADE_distances.cpp | 2 +- proshade/src/proshade/ProSHADE_distances.hpp | 2 +- proshade/src/proshade/ProSHADE_exceptions.cpp | 2 +- proshade/src/proshade/ProSHADE_exceptions.hpp | 2 +- proshade/src/proshade/ProSHADE_io.cpp | 2 +- proshade/src/proshade/ProSHADE_io.hpp | 2 +- proshade/src/proshade/ProSHADE_mapManip.cpp | 2 +- proshade/src/proshade/ProSHADE_mapManip.hpp | 2 +- proshade/src/proshade/ProSHADE_maths.cpp | 2 +- proshade/src/proshade/ProSHADE_maths.hpp | 2 +- proshade/src/proshade/ProSHADE_messages.cpp | 2 +- proshade/src/proshade/ProSHADE_messages.hpp | 2 +- proshade/src/proshade/ProSHADE_misc.cpp | 2 +- proshade/src/proshade/ProSHADE_misc.hpp | 2 +- proshade/src/proshade/ProSHADE_overlay.cpp | 2 +- proshade/src/proshade/ProSHADE_overlay.hpp | 2 +- proshade/src/proshade/ProSHADE_peakSearch.cpp | 2 +- proshade/src/proshade/ProSHADE_peakSearch.hpp | 2 +- proshade/src/proshade/ProSHADE_precomputedValues.cpp | 2 +- proshade/src/proshade/ProSHADE_precomputedValues.hpp | 2 +- proshade/src/proshade/ProSHADE_settings.hpp | 2 +- proshade/src/proshade/ProSHADE_spheres.cpp | 2 +- proshade/src/proshade/ProSHADE_spheres.hpp | 2 +- proshade/src/proshade/ProSHADE_sphericalHarmonics.cpp | 2 +- proshade/src/proshade/ProSHADE_sphericalHarmonics.hpp | 2 +- proshade/src/proshade/ProSHADE_symmetry.cpp | 2 +- proshade/src/proshade/ProSHADE_symmetry.hpp | 2 +- proshade/src/proshade/ProSHADE_tasks.cpp | 2 +- proshade/src/proshade/ProSHADE_tasks.hpp | 2 +- proshade/src/proshade/ProSHADE_typedefs.hpp | 2 +- proshade/src/proshade/ProSHADE_version.hpp | 4 ++-- proshade/src/proshade/ProSHADE_wignerMatrices.cpp | 2 +- proshade/src/proshade/ProSHADE_wignerMatrices.hpp | 2 +- proshade/src/python/pyProSHADE.cpp | 2 +- proshade/src/python/pyProSHADE_bindings.cpp | 2 +- proshade/src/python/pyProSHADE_data.cpp | 2 +- proshade/src/python/pyProSHADE_distances.cpp | 2 +- proshade/src/python/pyProSHADE_mapManip.cpp | 2 +- proshade/src/python/pyProSHADE_maths.cpp | 2 +- proshade/src/python/pyProSHADE_symmetry.cpp | 2 +- setup.py | 4 ++-- 48 files changed, 51 insertions(+), 51 deletions(-) diff --git a/README.md b/README.md index c5576452..a41a56aa 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ ProSHADE ======== -Protein Shape Description and Symmetry Detection version 0.7.6.6 (JUL 2022) +Protein Shape Description and Symmetry Detection version 0.7.6.7 (JUL 2022) # Introduction diff --git a/proshade/CMakeLists.txt b/proshade/CMakeLists.txt index d91bec58..aae76c40 100644 --- a/proshade/CMakeLists.txt +++ b/proshade/CMakeLists.txt @@ -47,7 +47,7 @@ endif ( ${PRODUCE_PYTHON_BINDINGS} MATCHES 1 ) ########################################################################################## ################################### Set project name -project ( proshade VERSION 0.7.6.6 LANGUAGES CXX C ) +project ( proshade VERSION 0.7.6.7 LANGUAGES CXX C ) ########################################################################################## ################################### Force C++11 diff --git a/proshade/src/bin/bin.cpp b/proshade/src/bin/bin.cpp index 5782b218..826063b2 100644 --- a/proshade/src/bin/bin.cpp +++ b/proshade/src/bin/bin.cpp @@ -19,7 +19,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ @@ -27,7 +27,7 @@ /*! \mainpage ProSHADE Documentation * - * Protein Shape Description and Symmetry Detection version 0.7.6.6 (JUL 2022) + * Protein Shape Description and Symmetry Detection version 0.7.6.7 (JUL 2022) * * \section intro Introduction * diff --git a/proshade/src/proshade/ProSHADE.cpp b/proshade/src/proshade/ProSHADE.cpp index 62b51175..0bfdd12e 100644 --- a/proshade/src/proshade/ProSHADE.cpp +++ b/proshade/src/proshade/ProSHADE.cpp @@ -18,7 +18,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/proshade/src/proshade/ProSHADE.hpp b/proshade/src/proshade/ProSHADE.hpp index 842c973c..d6d14dd7 100644 --- a/proshade/src/proshade/ProSHADE.hpp +++ b/proshade/src/proshade/ProSHADE.hpp @@ -18,7 +18,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/proshade/src/proshade/ProSHADE_data.cpp b/proshade/src/proshade/ProSHADE_data.cpp index 55143d57..0054f4f8 100644 --- a/proshade/src/proshade/ProSHADE_data.cpp +++ b/proshade/src/proshade/ProSHADE_data.cpp @@ -17,7 +17,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/proshade/src/proshade/ProSHADE_data.hpp b/proshade/src/proshade/ProSHADE_data.hpp index 91bdc6d4..46de26da 100644 --- a/proshade/src/proshade/ProSHADE_data.hpp +++ b/proshade/src/proshade/ProSHADE_data.hpp @@ -17,7 +17,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/proshade/src/proshade/ProSHADE_distances.cpp b/proshade/src/proshade/ProSHADE_distances.cpp index 01e374d0..160754ac 100644 --- a/proshade/src/proshade/ProSHADE_distances.cpp +++ b/proshade/src/proshade/ProSHADE_distances.cpp @@ -16,7 +16,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/proshade/src/proshade/ProSHADE_distances.hpp b/proshade/src/proshade/ProSHADE_distances.hpp index 2d68b6c8..15f4e836 100644 --- a/proshade/src/proshade/ProSHADE_distances.hpp +++ b/proshade/src/proshade/ProSHADE_distances.hpp @@ -16,7 +16,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/proshade/src/proshade/ProSHADE_exceptions.cpp b/proshade/src/proshade/ProSHADE_exceptions.cpp index 9614022f..260d72c8 100644 --- a/proshade/src/proshade/ProSHADE_exceptions.cpp +++ b/proshade/src/proshade/ProSHADE_exceptions.cpp @@ -15,7 +15,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/proshade/src/proshade/ProSHADE_exceptions.hpp b/proshade/src/proshade/ProSHADE_exceptions.hpp index 8bec6961..a75e6c9b 100644 --- a/proshade/src/proshade/ProSHADE_exceptions.hpp +++ b/proshade/src/proshade/ProSHADE_exceptions.hpp @@ -16,7 +16,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/proshade/src/proshade/ProSHADE_io.cpp b/proshade/src/proshade/ProSHADE_io.cpp index 7d6019e6..06146117 100644 --- a/proshade/src/proshade/ProSHADE_io.cpp +++ b/proshade/src/proshade/ProSHADE_io.cpp @@ -15,7 +15,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/proshade/src/proshade/ProSHADE_io.hpp b/proshade/src/proshade/ProSHADE_io.hpp index 633ee2c3..ee38fbd9 100644 --- a/proshade/src/proshade/ProSHADE_io.hpp +++ b/proshade/src/proshade/ProSHADE_io.hpp @@ -15,7 +15,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/proshade/src/proshade/ProSHADE_mapManip.cpp b/proshade/src/proshade/ProSHADE_mapManip.cpp index a9ca2854..45b8f90d 100644 --- a/proshade/src/proshade/ProSHADE_mapManip.cpp +++ b/proshade/src/proshade/ProSHADE_mapManip.cpp @@ -15,7 +15,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/proshade/src/proshade/ProSHADE_mapManip.hpp b/proshade/src/proshade/ProSHADE_mapManip.hpp index 68308872..56615555 100644 --- a/proshade/src/proshade/ProSHADE_mapManip.hpp +++ b/proshade/src/proshade/ProSHADE_mapManip.hpp @@ -15,7 +15,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/proshade/src/proshade/ProSHADE_maths.cpp b/proshade/src/proshade/ProSHADE_maths.cpp index e871b535..02900392 100644 --- a/proshade/src/proshade/ProSHADE_maths.cpp +++ b/proshade/src/proshade/ProSHADE_maths.cpp @@ -16,7 +16,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/proshade/src/proshade/ProSHADE_maths.hpp b/proshade/src/proshade/ProSHADE_maths.hpp index 50ca3edc..9d92005e 100644 --- a/proshade/src/proshade/ProSHADE_maths.hpp +++ b/proshade/src/proshade/ProSHADE_maths.hpp @@ -16,7 +16,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/proshade/src/proshade/ProSHADE_messages.cpp b/proshade/src/proshade/ProSHADE_messages.cpp index 58742ff4..5a34969a 100644 --- a/proshade/src/proshade/ProSHADE_messages.cpp +++ b/proshade/src/proshade/ProSHADE_messages.cpp @@ -15,7 +15,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/proshade/src/proshade/ProSHADE_messages.hpp b/proshade/src/proshade/ProSHADE_messages.hpp index 256d32b2..2afa4ab4 100644 --- a/proshade/src/proshade/ProSHADE_messages.hpp +++ b/proshade/src/proshade/ProSHADE_messages.hpp @@ -15,7 +15,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/proshade/src/proshade/ProSHADE_misc.cpp b/proshade/src/proshade/ProSHADE_misc.cpp index bd064d4d..5022d494 100644 --- a/proshade/src/proshade/ProSHADE_misc.cpp +++ b/proshade/src/proshade/ProSHADE_misc.cpp @@ -15,7 +15,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/proshade/src/proshade/ProSHADE_misc.hpp b/proshade/src/proshade/ProSHADE_misc.hpp index 2f098e21..70d70ce5 100644 --- a/proshade/src/proshade/ProSHADE_misc.hpp +++ b/proshade/src/proshade/ProSHADE_misc.hpp @@ -16,7 +16,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/proshade/src/proshade/ProSHADE_overlay.cpp b/proshade/src/proshade/ProSHADE_overlay.cpp index 79a83d1e..7c94769e 100644 --- a/proshade/src/proshade/ProSHADE_overlay.cpp +++ b/proshade/src/proshade/ProSHADE_overlay.cpp @@ -15,7 +15,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/proshade/src/proshade/ProSHADE_overlay.hpp b/proshade/src/proshade/ProSHADE_overlay.hpp index acf18900..003b5318 100644 --- a/proshade/src/proshade/ProSHADE_overlay.hpp +++ b/proshade/src/proshade/ProSHADE_overlay.hpp @@ -15,7 +15,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/proshade/src/proshade/ProSHADE_peakSearch.cpp b/proshade/src/proshade/ProSHADE_peakSearch.cpp index d7be12ad..98eb7e69 100644 --- a/proshade/src/proshade/ProSHADE_peakSearch.cpp +++ b/proshade/src/proshade/ProSHADE_peakSearch.cpp @@ -16,7 +16,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/proshade/src/proshade/ProSHADE_peakSearch.hpp b/proshade/src/proshade/ProSHADE_peakSearch.hpp index d54d9174..256f98b1 100644 --- a/proshade/src/proshade/ProSHADE_peakSearch.hpp +++ b/proshade/src/proshade/ProSHADE_peakSearch.hpp @@ -15,7 +15,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/proshade/src/proshade/ProSHADE_precomputedValues.cpp b/proshade/src/proshade/ProSHADE_precomputedValues.cpp index 3d5ca199..31b4faab 100644 --- a/proshade/src/proshade/ProSHADE_precomputedValues.cpp +++ b/proshade/src/proshade/ProSHADE_precomputedValues.cpp @@ -15,7 +15,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/proshade/src/proshade/ProSHADE_precomputedValues.hpp b/proshade/src/proshade/ProSHADE_precomputedValues.hpp index 797e9ee2..d59ec694 100644 --- a/proshade/src/proshade/ProSHADE_precomputedValues.hpp +++ b/proshade/src/proshade/ProSHADE_precomputedValues.hpp @@ -16,7 +16,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/proshade/src/proshade/ProSHADE_settings.hpp b/proshade/src/proshade/ProSHADE_settings.hpp index 68b45c56..4bce1105 100644 --- a/proshade/src/proshade/ProSHADE_settings.hpp +++ b/proshade/src/proshade/ProSHADE_settings.hpp @@ -15,7 +15,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/proshade/src/proshade/ProSHADE_spheres.cpp b/proshade/src/proshade/ProSHADE_spheres.cpp index 35f64cab..17d47336 100644 --- a/proshade/src/proshade/ProSHADE_spheres.cpp +++ b/proshade/src/proshade/ProSHADE_spheres.cpp @@ -16,7 +16,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/proshade/src/proshade/ProSHADE_spheres.hpp b/proshade/src/proshade/ProSHADE_spheres.hpp index 589faf8a..c52f0458 100644 --- a/proshade/src/proshade/ProSHADE_spheres.hpp +++ b/proshade/src/proshade/ProSHADE_spheres.hpp @@ -16,7 +16,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/proshade/src/proshade/ProSHADE_sphericalHarmonics.cpp b/proshade/src/proshade/ProSHADE_sphericalHarmonics.cpp index 6b02fcfc..b86dedf6 100644 --- a/proshade/src/proshade/ProSHADE_sphericalHarmonics.cpp +++ b/proshade/src/proshade/ProSHADE_sphericalHarmonics.cpp @@ -15,7 +15,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/proshade/src/proshade/ProSHADE_sphericalHarmonics.hpp b/proshade/src/proshade/ProSHADE_sphericalHarmonics.hpp index 33e03955..43a85895 100644 --- a/proshade/src/proshade/ProSHADE_sphericalHarmonics.hpp +++ b/proshade/src/proshade/ProSHADE_sphericalHarmonics.hpp @@ -15,7 +15,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/proshade/src/proshade/ProSHADE_symmetry.cpp b/proshade/src/proshade/ProSHADE_symmetry.cpp index 183aac13..174192c5 100644 --- a/proshade/src/proshade/ProSHADE_symmetry.cpp +++ b/proshade/src/proshade/ProSHADE_symmetry.cpp @@ -15,7 +15,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/proshade/src/proshade/ProSHADE_symmetry.hpp b/proshade/src/proshade/ProSHADE_symmetry.hpp index bc69a85f..628cc167 100644 --- a/proshade/src/proshade/ProSHADE_symmetry.hpp +++ b/proshade/src/proshade/ProSHADE_symmetry.hpp @@ -15,7 +15,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/proshade/src/proshade/ProSHADE_tasks.cpp b/proshade/src/proshade/ProSHADE_tasks.cpp index 3e0071e6..8fcdd2f7 100644 --- a/proshade/src/proshade/ProSHADE_tasks.cpp +++ b/proshade/src/proshade/ProSHADE_tasks.cpp @@ -15,7 +15,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/proshade/src/proshade/ProSHADE_tasks.hpp b/proshade/src/proshade/ProSHADE_tasks.hpp index 9ce1dede..7192f21b 100644 --- a/proshade/src/proshade/ProSHADE_tasks.hpp +++ b/proshade/src/proshade/ProSHADE_tasks.hpp @@ -15,7 +15,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/proshade/src/proshade/ProSHADE_typedefs.hpp b/proshade/src/proshade/ProSHADE_typedefs.hpp index 30b4a046..ace2e59c 100644 --- a/proshade/src/proshade/ProSHADE_typedefs.hpp +++ b/proshade/src/proshade/ProSHADE_typedefs.hpp @@ -15,7 +15,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/proshade/src/proshade/ProSHADE_version.hpp b/proshade/src/proshade/ProSHADE_version.hpp index f2b9b3e5..467e47cd 100644 --- a/proshade/src/proshade/ProSHADE_version.hpp +++ b/proshade/src/proshade/ProSHADE_version.hpp @@ -14,12 +14,12 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ //==================================================== Overinclusion protection #ifndef PROSHADE_VERSION -#define PROSHADE_VERSION "0.7.6.6 (JUL 2022)" +#define PROSHADE_VERSION "0.7.6.7 (JUL 2022)" #endif diff --git a/proshade/src/proshade/ProSHADE_wignerMatrices.cpp b/proshade/src/proshade/ProSHADE_wignerMatrices.cpp index 1c719448..124014a4 100644 --- a/proshade/src/proshade/ProSHADE_wignerMatrices.cpp +++ b/proshade/src/proshade/ProSHADE_wignerMatrices.cpp @@ -15,7 +15,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/proshade/src/proshade/ProSHADE_wignerMatrices.hpp b/proshade/src/proshade/ProSHADE_wignerMatrices.hpp index d100f5fe..bedb44f8 100644 --- a/proshade/src/proshade/ProSHADE_wignerMatrices.hpp +++ b/proshade/src/proshade/ProSHADE_wignerMatrices.hpp @@ -15,7 +15,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/proshade/src/python/pyProSHADE.cpp b/proshade/src/python/pyProSHADE.cpp index 51d07f7f..8dc608f6 100644 --- a/proshade/src/python/pyProSHADE.cpp +++ b/proshade/src/python/pyProSHADE.cpp @@ -15,7 +15,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/proshade/src/python/pyProSHADE_bindings.cpp b/proshade/src/python/pyProSHADE_bindings.cpp index 097ef7de..6c379310 100644 --- a/proshade/src/python/pyProSHADE_bindings.cpp +++ b/proshade/src/python/pyProSHADE_bindings.cpp @@ -14,7 +14,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/proshade/src/python/pyProSHADE_data.cpp b/proshade/src/python/pyProSHADE_data.cpp index 1596d491..9b907238 100644 --- a/proshade/src/python/pyProSHADE_data.cpp +++ b/proshade/src/python/pyProSHADE_data.cpp @@ -15,7 +15,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/proshade/src/python/pyProSHADE_distances.cpp b/proshade/src/python/pyProSHADE_distances.cpp index 22368372..6f29fe47 100644 --- a/proshade/src/python/pyProSHADE_distances.cpp +++ b/proshade/src/python/pyProSHADE_distances.cpp @@ -14,7 +14,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/proshade/src/python/pyProSHADE_mapManip.cpp b/proshade/src/python/pyProSHADE_mapManip.cpp index a1d32ac9..a7dc7410 100644 --- a/proshade/src/python/pyProSHADE_mapManip.cpp +++ b/proshade/src/python/pyProSHADE_mapManip.cpp @@ -15,7 +15,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/proshade/src/python/pyProSHADE_maths.cpp b/proshade/src/python/pyProSHADE_maths.cpp index bf9ee29e..2f1ccb24 100644 --- a/proshade/src/python/pyProSHADE_maths.cpp +++ b/proshade/src/python/pyProSHADE_maths.cpp @@ -15,7 +15,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/proshade/src/python/pyProSHADE_symmetry.cpp b/proshade/src/python/pyProSHADE_symmetry.cpp index 28b750f5..ea0fd358 100644 --- a/proshade/src/python/pyProSHADE_symmetry.cpp +++ b/proshade/src/python/pyProSHADE_symmetry.cpp @@ -15,7 +15,7 @@ \author Michal Tykac \author Garib N. Murshudov - \version 0.7.6.6 + \version 0.7.6.7 \date JUL 2022 */ diff --git a/setup.py b/setup.py index b0ca1a41..b34b1378 100644 --- a/setup.py +++ b/setup.py @@ -18,7 +18,7 @@ # # \author Michal Tykac # \author Garib N. Murshudov -# \version 0.7.6.6 +# \version 0.7.6.7 # \date JUL 2022 ############################################## ############################################## @@ -28,7 +28,7 @@ ##### Global settings ########################################################################################## ########################################################################################## -gl_version = '0.7.6.6' +gl_version = '0.7.6.7' gl_download = 'https://github.com/michaltykac/proshade/archive/v{0}.tar.gz'.format(gl_version)