CaviTracer: Pores reconstruction - #2260
Conversation
jamesmkrieger
left a comment
There was a problem hiding this comment.
Looks good to me. The only thing is it seems redundant to have an extra show function that doesn’t seem to do anything except call another show function with all the parameters the same. You could just alias it instead
|
Channels and pores use the same function to obtain residues that form those channels/pores, but there are some differences, such as LOGGER info/names and output files having different names. Also, the docs would be confusing if for pores we had channel information. That is why I didn't use an alias and instead created a supporting function that is used by both channels and pores. |
|
After those improvements, those functions are available: getPoreResidueNames(protein, pores) |
yes, that makes sense. It's just the show function that was the same |
…dded to be recognized by the function
…ion for getChannelResidueNames() and getPoreResidueNames()
…ipleFrame improvement to handle return_detail for pores
|
I added functions that can handle multi-model PDB and trajectory for pores:
I didn't want to multiply the code, so I wrote:
Additionally, I modified calcPoresFromChannels() and calcPoresFromChannelsMultipleFrames() to add output_path to save files and PQR/PDB files. I tested both channels, pore, multi-model PDB, and trajectories. Everything looks good. |
|
The only thing still missing here is parallel computing for multi-model PDBs and trajectories. I will take a look at that later, and hopefully that will be the only thing I will add/change. |
getChannelParametersMultipleFrames() and getPoreResidueNamesMultipleFrames(). getChannelParametersMultipleFrames is changed
|
Now, we have multiprocessing included for:
Tests were done with the files below (results are also included): Multi-model PDB: Trajectory (WatFinder case study 2; first 10 frames or so): I am done with code improvements. @jamesmkrieger, let me know if you have any suggestions. |
as a protetion for Windows/macOS users for multiprocessing calculations
…n/macOS multiprocessing





@briza81 @MatthewLicht
I prepared the reconstruction of pores from identified channels via calcChannels().
Additions:
As an example, I used the 2FGQ used by Jan. In the structure, we have a very clear and nice pore (see the comparison below between Jan's channel prediction and the further reconstruction of two pores).
The code should be adapted to multi-model PDBs and trajectories
(I will do that in the near future; probably adding new commits here).
PORE 1:

PORE 2:

How to use it:
from prody import *
p = parsePDB('2fgq')
protein = p.select('protein')
channels, surface, details = calcChannels(protein, r1=20, r2=1, start_point = [39.277, 43.995, -0.961],
max_deviation=0.1, return_details=True)
vmd_path = '/usr/local/bin/vmd'
model = getVmdModel(vmd_path, protein)
pores = calcPoresFromChannels(channels, details)
showPores(pores[0], model=model)
showPores(pores[1], model=model)