zhenglz / OnionNet-SFCT

Improving protein–ligand docking and screening accuracies by incorporating a scoring function correction term
26 stars 8 forks source link

Cannot get results when analysing gnina results #9

Closed Le-Phung-Hien closed 1 year ago

Le-Phung-Hien commented 1 year ago

Hi team,

I trying to analyse this receptor receptor.pdbqt.txt with this ligand ligand.pdbqt.txt, which are docking results from gnina.

The command I run is

python scorer.py -r receptor.pdbqt -l ligand.pdbqt -o score.dat --model sfct_std_model.rf --stype gnina

The score file show no origin_score scores3.dat.txt.

What could be the problem?

Another question: for gnina, what is the most suitable score to use with sfct (minimized Affinity, CNNscore, or CNNaffinity)? Thanks!

zhenglz commented 1 year ago

The original score is actually the score provided by the original docking software, Gnina.

The code fails to extract the Gnina scoring from the docking poses.

Best, Liangzhen

On Tue, Jun 20, 2023 at 12:53 PM Le-Phung-Hien @.***> wrote:

Hi team,

I trying to analyse this receptor receptor.pdbqt.txt https://github.com/zhenglz/OnionNet-SFCT/files/11796006/receptor.pdbqt.txt with this ligand ligand.pdbqt.txt https://github.com/zhenglz/OnionNet-SFCT/files/11796008/ligand.pdbqt.txt, which are docking results from gnina.

The score file show no origin_score scores3.dat.txt https://github.com/zhenglz/OnionNet-SFCT/files/11796014/scores3.dat.txt.

What could be the problem?

— Reply to this email directly, view it on GitHub https://github.com/zhenglz/OnionNet-SFCT/issues/9, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACN36YVXMPGZ5ICMBBYEIJTXMEUEDANCNFSM6AAAAAAZMWXYD4 . You are receiving this because you are subscribed to this thread.Message ID: @.***>

zhenglz commented 1 year ago

In the docking results ligand pdbqt file, the following scores are the so-called "original scores":

REMARK minimizedAffinity -8.30071735 REMARK minimizedAffinity -8.71401405 ... REMARK minimizedAffinity -7.35750961

To extract the gnina scores, you may use "gnina_cnn" or "gnina_energy" flag instead of "gnina"

See the following code in "scorer.py" (used the old gnina output format):

            elif pose_scores_type == "gnina_cnn":
                scores = [-1. * float(x.split()[-4][:-6]) for x in lines if "REMARK minimizedAffinity" in x]
                # names = [x.split()[-1].strip("\n") for x in lines if "REMARK  Name =" in x]
            elif pose_scores_type == "gnina_energy":
                scores = [-1. * float(x.split()[2][:-6]) for x in lines if "REMARK minimizedAffinity" in x]

To suit your case, please modify the code as the following:

            elif pose_scores_type == "gnina_cnn":
                # gnina predicted pkx, affinity in logrithm
                scores = [-1. * float(x.split()[2]) for x in lines if "REMARK CNNaffinity " in x]

            elif pose_scores_type == "gnina_energy":
                scores = [float((x.split()[2]) for x in lines if "REMARK minimizedAffinity" in x]
Le-Phung-Hien commented 1 year ago

Thank you very much, Liangzhen.

Can I also ask what for gnina, what pose_scores_type is better to use with sfct, CNNaffinity or minimizedAffinity? Also have you try different weight other than 0.5?

Best,

Hien

zhenglz commented 1 year ago

You're welcome!

CNNaffinity I think would be better.

Higher weight for sfct is preferable for virtual screening, say weight=0.8.

Le-Phung-Hien @.***>于2023年6月21日 周三上午7:16写道:

Thank you very much, Liangzhen.

Can I also ask what for gnina, what pose_scores_type is better to use with sfct, CNNaffinity or minimizedAffinity? Also have you try different weight other than 0.5?

Best,

Hien

— Reply to this email directly, view it on GitHub https://github.com/zhenglz/OnionNet-SFCT/issues/9#issuecomment-1599710292, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACN36YTKMC47PN7WR54EPSLXMIVLLANCNFSM6AAAAAAZMWXYD4 . You are receiving this because you commented.Message ID: @.***>