freesasa / freesasa-python

FreeSASA Python Module
MIT License
47 stars 12 forks source link

Binary version works, but python classifier does not #11

Closed bieniekmateusz closed 4 years ago

bieniekmateusz commented 4 years ago

Hi again,

I am having a problem with the classifier. This time I have the types.config configured properly, which means that the binary version works fine. However, when I try to use the python version, I get these warnings: FreeSASA: warning: atom 'ged O4 ' unknown and can't guess radius of symbol 'O ', assigning radius 0 A

So this incompatibility does not help resolve problems. Could this warning separate the residue name and the atom name? Otherwise one could assume that FreeSASA is trying to find an atom (not residue and atom combination).

mittinatten commented 4 years ago

The residue is 'ged' and the atom name 'O4 ', so it is referring to a PDB ATOM entry (it comes frome here: https://github.com/mittinatten/freesasa/blob/master/src/structure.c#L509). I guess the warning could be reformulated to be clearer. Like "Atom '04 ' in residue type 'ged' is unknown ...".

I don't know why it would work using the CLI but not in Python, is it the same config as in #10 ?

bieniekmateusz commented 4 years ago

Thanks for your help, after much struggle:

I found what the problem is. FreeSASA shows the warning which actually comes from the binary file - because at that stage the classifier is not used. The classifier is used after the binary file. Therefore, these errors are not applicable and when the classifier is passed - they would ideally be silenced.

bieniekmateusz commented 4 years ago

In other words, it works after I used freesasa.calc(strucArr). But I did not use it in the first place because I thought that this warning applies to my classifier.

mittinatten commented 4 years ago

Right. That makes sense. I should do something about suppressing those warnings when they're not relevant.

mittinatten commented 4 years ago

So actually the warnings are suppressed when you initialize a single structure but not in freesasa.structureArray(), so it should be a pretty minor thing to fix.

mittinatten commented 4 years ago

I have suppressed warnings in freesasa.structureArray() and released the patch as 2.0.4.

mittinatten commented 4 years ago

There was a problem with the previous solution, I supressed warnings in too many cases. I guess there will be a 2.0.5 soon 🤦‍♂