Compare commits

...

22 Commits

Author SHA1 Message Date
pschmidtke
71637e923f update for osx 2021-11-17 16:21:03 +01:00
pschmidtke
127c60a49b last fixes for cif support for models 2021-11-16 21:47:15 +01:00
pschmidtke
3a60a4c86e adding mac 2021-11-16 21:41:09 +01:00
pschmidtke
91e3d2dbbe debug env with molfileplugin for linux 2021-11-16 21:40:22 +01:00
pschmidtke
f99a6ed96d pdbxpluging update 2021-11-15 21:46:24 +01:00
pschmidtke
855bad8cce update molfilepluging linux & osx 2021-11-10 15:16:39 +01:00
pschmidtke
5408f01005 support for model flag even no model is available 2021-11-09 22:02:24 +01:00
pschmidtke
2acab799f4 adding sample NMR structure 2021-11-09 22:01:36 +01:00
pschmidtke
edfd87c188 support for OSX & residue selection on mmcif 2021-11-09 21:10:03 +01:00
pschmidtke
5e3b4f31dc adding new dockerfile 2021-11-04 07:47:56 +01:00
pschmidtke
8bcf81635e adding dockerfile for debian-slim distrib 2021-11-03 18:31:49 +01:00
Peter Schmidtke
38a1c49440 Update README.md 2021-02-02 21:47:44 +01:00
Peter Schmidtke
efd7b0ebb7 Update README.md 2021-02-02 21:46:03 +01:00
Peter Schmidtke
0a84309db4 Merge pull request #59 from Discngine/mmcif
Documentation stuff missing
2021-02-02 21:44:54 +01:00
pschmidtke
6e80f9203c Merge branch 'master' into mmcif 2021-02-02 21:43:55 +01:00
pschmidtke
e22d38054a adding missing doc in fparams 2021-02-02 21:42:35 +01:00
Peter Schmidtke
439da234a3 Merge pull request #55 from HTian1997/master
Update GETTINGSTARTED.md
2021-02-02 21:14:01 +01:00
Peter Schmidtke
b68d547fd5 Merge pull request #53 from Discngine/mmcif
Enabling Mmcif support in fpocket
2021-02-02 21:11:49 +01:00
pschmidtke
e57afc2bad working now? 2021-02-02 21:07:36 +01:00
pschmidtke
9617bda214 missing asa header in descriptors 2021-02-02 20:59:37 +01:00
pschmidtke
8e81c0c807 minor ui adjustments 2021-02-02 20:52:24 +01:00
Hao Tian
7b500b4dd6 Update GETTINGSTARTED.md 2020-08-27 12:40:59 -05:00
223 changed files with 65685 additions and 26742 deletions

1
.dockerignore Normal file
View File

@@ -0,0 +1 @@
*.o

1
.gitignore vendored
View File

@@ -5,3 +5,4 @@ src/qhull/bin/
src/qhull/lib/libqhullstatic_r.a
src/qhull/lib/libqhullstatic.a
*.pyc
vmd/plugins

22
Dockerfile-debian-slim Normal file
View File

@@ -0,0 +1,22 @@
FROM debian:bullseye-slim
RUN groupadd -r fpocket && useradd --no-log-init -r -g fpocket fpocket
RUN apt update -y && apt install -y gcc g++ make libnetcdf-dev && rm -rf /var/lib/apt/lists/*
# all of this mess is essentially to have a minimalistic build at the end
COPY makefile /opt/fpocket/
COPY src /opt/fpocket/src
COPY man /opt/fpocket/man
COPY headers /opt/fpocket/headers
COPY obj /opt/fpocket/obj
COPY scripts /opt/fpocket/scripts
COPY bin /opt/fpocket/bin
COPY plugins/LINUXAMD64 /opt/fpocket/plugins/LINUXAMD64
COPY plugins/include /opt/fpocket/plugins/include
COPY plugins/noarch /opt/fpocket/plugins/noarch
WORKDIR /opt/fpocket
RUN make && make install && make clean
USER fpocket
WORKDIR /tmp
CMD ["fpocket"]

29
Dockerfile-molfile-debug Normal file
View File

@@ -0,0 +1,29 @@
FROM ubuntu:latest
RUN groupadd -r fpocket && useradd --no-log-init -r -g fpocket fpocket
ENV DEBIAN_FRONTEND=noninteractive
ENV PLUGINDIR=compiled
RUN apt update -y && apt install -y vim gdb gcc g++ make libnetcdf-dev && rm -rf /var/lib/apt/lists/*
# all of this mess is essentially to have a minimalistic build at the end
COPY vmd /vmd
WORKDIR /vmd/plugins
RUN make LINUXAMD64 && make distrib
COPY makefile /opt/fpocket/
COPY src /opt/fpocket/src
COPY data/sample /opt/fpocket/sample
COPY man /opt/fpocket/man
COPY headers /opt/fpocket/headers
COPY obj /opt/fpocket/obj
COPY scripts /opt/fpocket/scripts
COPY bin /opt/fpocket/bin
COPY plugins/LINUXAMD64 /opt/fpocket/plugins/LINUXAMD64
COPY plugins/include /opt/fpocket/plugins/include
COPY plugins/noarch /opt/fpocket/plugins/noarch
WORKDIR /opt/fpocket
RUN cp -r /vmd/plugins/molfile_plugin/compiled/LINUXAMD64/molfile/* plugins/LINUXAMD64/molfile/
#RUN make && make install && make clean
USER fpocket
WORKDIR /tmp
CMD ["fpocket"]

View File

@@ -18,6 +18,8 @@ The documentation below here is just a quick & rough overview.
## What's new compared to fpocket 2.0 (old sourceforge repo)
__fpocket__:
- fpocket now supports mmCIF as input and output format together with the classical PDB format
- support was added to define / delete and handle protein chains or sets of them to enable characterization of protein protein binding epitopes
- is now able to consider explicit pockets when you want to calculate properties for a known binding site
- cli changed a bit
- pocket flexibility using temperature factors is better considered (less very flexible pockets on very solvent exposed areas)
@@ -152,6 +154,11 @@ You can run fpocket using the following command line as an example:
fpocket -f 1uyd.pdb
```
fpocket now also eats cif as input, so this would work as well. Make sure to use proper file extensions
```bash
fpocket -f 1uyd.cif
```
This will detect all pockets on the input pdb file, named 1uyd.pdb
If you want to get all command line args for fpocket, simply type `fpocket``
@@ -174,7 +181,7 @@ Please read [CONTRIBUTING.md](https://gist.github.com/PurpleBooth/b24679402957c6
* **Peter Schmidtke** - *Initial work* - [pschmidtke](https://github.com/pschmidtke)
* **Vincent Le Guilloux** - *Initial work* - [leguilv](https://github.com/leguilv)
* **Mael Shorkar** - *Chain handling* - [leguilv](https://github.com/shorkarmael)
* **Mael Shorkar** - *Chain handling, MMCIF support* - [shorkarmael](https://github.com/shorkarmael)
## License

33103
data/sample/1ttv.cif Normal file

File diff suppressed because it is too large Load Diff

32275
data/sample/1ttv.pdb Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -417,7 +417,7 @@ The simplest way to run fpocket is either by providing a single pdb file, or by
#### Optional:
-m float: (default 3.4Å) This flag enables the user to modify the minimum radius an alpha sphere might have in a binding pocket. An alpha sphere is a contact sphere, that touches 4 atoms in 3D space without having any internal atoms. Here 3Å allow filtering of too small (protein internal) alpha spheres. I you want to analyze internal interstices, lower this parameter. In the contrary, if you want to analyze more solvent exposed cavities, you can raise this parameter in order to filter out too buried cavities.
-m float: (default 3.4Å) This flag enables the user to modify the minimum radius an alpha sphere might have in a binding pocket. An alpha sphere is a contact sphere, that touches 4 atoms in 3D space without having any internal atoms. Here 3Å allow filtering of too small (protein internal) alpha spheres. If you want to analyze internal interstices, lower this parameter. In the contrary, if you want to analyze more solvent exposed cavities, you can raise this parameter in order to filter out too buried cavities.
-M float: (default 6.2Å) Here you can modify the maximum radius of alpha spheres in a pocket. An alpha sphere is a contact sphere, that touches 4 atoms in 3D space without having any internal atoms. Here 7Å allow to filter out too large contact spheres, that are lying on the protein surface. If you want to analyze very flat and solvent exposed surface depressions, raise this parameter. For analysis of buried parts of the protein you can lower this parameter. Higher radii might be more interesting for identification of protein protein binding sites or polysaccharide binding sites. Smaller radii enable detection of buried cavities for small organic molecules (drugs, for instance).
@@ -449,13 +449,13 @@ The simplest way to run fpocket is either by providing a single pdb file, or by
-v int: (default 2500) By default, pockets volume are calculated using a monte-carlo algorithm. Basically, the algorithm picks a random point in the space and check if it is included in any alpha sphere, and stores this status. This is repeated N times, and we estimate the volume of the pocket using ratio between the number of hit and the number of iteration, scaled by the size of the box. This parameter defines the number of iteration to perform. Of course, the higher the value is, the greater the accuracy will be, but the performance will be slowed down.
-b (none): (NOT USED BY DEFAULT) This option allows the user to chose a discrete algorithm to calculate the volume of each pocket instead of the Monte Carlo method. This algorithm puts each pocket into a grid of dimention (1/N*X ; 1/N*Y ; 1/N*Z), N being the value given using this option, and X, Y and Z being the box dimensions, determined using coordinates of vertices. Then, a triple iteration on each dimensions is used to estimate the volume, checking if each points given by the iteration is in one of the pockets vertices. This parameter defines the grid discretization. If this parameter is used, this algorithm will be used instead of the Monte Carlo algorithm.
-b (none): (NOT USED BY DEFAULT) This option allows the user to choose a discrete algorithm to calculate the volume of each pocket instead of the Monte Carlo method. This algorithm puts each pocket into a grid of dimension (1/N*X ; 1/N*Y ; 1/N*Z), N being the value given using this option, and X, Y and Z being the box dimensions, determined using coordinates of vertices. Then, a triple iteration on each dimensions is used to estimate the volume, checking if each points given by the iteration is in one of the pockets vertices. This parameter defines the grid discretization. If this parameter is used, this algorithm will be used instead of the Monte Carlo algorithm.
Warning: Although this algorithm could be more accurate, a high value might dramatically slow down the program, as this algorithm has a maximum complexity of N*N*N*nb_vertices, and a minimum of N*N*N !!!
-d (none): Option allowing you to output pockets and properties in a condensed format. This will put to the stdout pocket properties in a tab separated string and write pocket files in a subfolder
-r string: (None) This parameter allows you to run fpocket in a restricted mode. Let's suppose you have a very shallow or large pocket with a ligand inside and the automatic pocket prediction always splits up you pocket or you have only a part of the pocket found. Specifying your ligand residue with -r allows you to detect and characterize you ligand binding site explicitely. For instance for `1UYD.pdb` you can specify `-r 1224:PU8:A` (residue number of the ligand: residue name of the ligand: chain of the ligand)
-r string: (None) This parameter allows you to run fpocket in a restricted mode. Let's suppose you have a very shallow or large pocket with a ligand inside and the automatic pocket prediction always splits up you pocket or you have only a part of the pocket found. Specifying your ligand residue with -r allows you to detect and characterize you ligand binding site explicitly. For instance for `1UYD.pdb` you can specify `-r 1224:PU8:A` (residue number of the ligand: residue name of the ligand: chain of the ligand)
-y string: (filename) EXPERIMENTAL: here you can specify a topology filename in the Amber prmtop format. This can then be used by fpocket & mdpocket to calculate energy grids for your pockets. NB: you have to specify the -x flag to run energy calculations

View File

@@ -24,6 +24,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
#include "atom.h"
#include "aa.h"
#include "utils.h"
//#include "asa.h"
/* --------------------------------STRUCTURES---------------------------------*/
@@ -88,6 +89,10 @@ typedef struct s_desc
/* ------------------------------PROTOTYPES---------------------------------- */
//explicit definition from asa.h
void set_ASA(s_desc *desc,s_pdb *pdb, s_vvertice **tvert,int nvert);
s_desc* allocate_s_desc(void) ;
void reset_desc(s_desc *desc) ;

View File

@@ -28,6 +28,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
float pte_get_vdw_ray(const char *symbol) ;
float pte_get_mass(const char *symbol) ;
float pte_get_enegativity(const char *symbol) ;
float pte_get_enegativity_from_number(int atomicnumber) ;
char *pte_get_element_from_number(int atomicnumber);
int is_valid_element(const char *str, int ignore_case) ;
int element_in_std_res(char *res_name);
int element_in_nucl_acid(char *res_name);

View File

@@ -89,6 +89,8 @@ typedef struct s_pdb
char header[M_PDB_BUF_LEN] ; /**< Header container*/
char fname[M_PDB_FILE_NAME_LEN]; /**< File name container*/
float avg_bfactor; /**<overall average B factor*/
int model_flag; /**<flag set to 1 if a particular model / conformation was read*/
int model_number; /**<number of the model read in*/
} s_pdb ;

View File

@@ -1,6 +1,7 @@
#------------------------------------------------------------
# Makefile.
#------------------------------------------------------------
#ARCH = MACOSXX86_64
ARCH = LINUXAMD64
export ARCH
@@ -12,8 +13,11 @@ PATH_HEADER = headers/
PATH_BIN = bin/
PATH_MAN = man/
PATH_QHULL = src/qhull/src
PATH_LIB = $(PLUGINDIR)/$(ARCH)/molfile/
BINDIR = /usr/local/bin/
LIBDIR = /usr/local/lib/
MANDIR = /usr/local/man/man8/
@@ -48,7 +52,8 @@ QCFLAGS = -O -g -pg -ansi
LGSL = -L$(PATH_GSL)lib -lgsl -lgslcblas
LFLAGS = -lm -L$(PLUGINDIR)/$(ARCH)/molfile $(PLUGINDIR)/$(ARCH)/molfile/libmolfile_plugin.a -lstdc++
NETCDFFLAGS = -lnetcdf
NETCDFFLAGS =
#-lnetcdf
#
#------------------------------------------------------------
@@ -180,6 +185,7 @@ install:
cp $(PATH_BIN)$(DPOCKET) $(BINDIR)
cp $(PATH_BIN)$(MDPOCKET) $(BINDIR)
cp $(PATH_MAN)* $(MANDIR)
cp $(PATH_LIB)* $(LIBDIR)
check:
./$(PATH_BIN)$(CHECK)

View File

@@ -207,6 +207,9 @@ extern int molfile_maeffplugin_fini(void);
extern int molfile_orcaplugin_init(void);
extern int molfile_orcaplugin_register(void *, vmdplugin_register_cb);
extern int molfile_orcaplugin_fini(void);
extern int molfile_qcschemaplugin_init(void);
extern int molfile_qcschemaplugin_register(void *, vmdplugin_register_cb);
extern int molfile_qcschemaplugin_fini(void);
#define MOLFILE_INIT_ALL \
molfile_abinitplugin_init(); \
@@ -276,6 +279,7 @@ extern int molfile_orcaplugin_fini(void);
molfile_dtrplugin_init(); \
molfile_maeffplugin_init(); \
molfile_orcaplugin_init(); \
molfile_qcschemaplugin_init(); \
#define MOLFILE_REGISTER_ALL(v, cb) \
molfile_abinitplugin_register(v, cb); \
@@ -345,6 +349,7 @@ extern int molfile_orcaplugin_fini(void);
molfile_dtrplugin_register(v, cb); \
molfile_maeffplugin_register(v, cb); \
molfile_orcaplugin_register(v, cb); \
molfile_qcschemaplugin_register(v, cb); \
#define MOLFILE_FINI_ALL \
molfile_abinitplugin_fini(); \
@@ -414,6 +419,7 @@ extern int molfile_orcaplugin_fini(void);
molfile_dtrplugin_fini(); \
molfile_maeffplugin_fini(); \
molfile_orcaplugin_fini(); \
molfile_qcschemaplugin_fini(); \
#ifdef __cplusplus
}

View File

@@ -204,6 +204,15 @@ extern int molfile_dtrplugin_fini(void);
extern int molfile_maeffplugin_init(void);
extern int molfile_maeffplugin_register(void *, vmdplugin_register_cb);
extern int molfile_maeffplugin_fini(void);
extern int molfile_netcdfplugin_init(void);
extern int molfile_netcdfplugin_register(void *, vmdplugin_register_cb);
extern int molfile_netcdfplugin_fini(void);
extern int molfile_vtfplugin_init(void);
extern int molfile_vtfplugin_register(void *, vmdplugin_register_cb);
extern int molfile_vtfplugin_fini(void);
extern int molfile_webpdbplugin_init(void);
extern int molfile_webpdbplugin_register(void *, vmdplugin_register_cb);
extern int molfile_webpdbplugin_fini(void);
#define MOLFILE_INIT_ALL \
molfile_abinitplugin_init(); \
@@ -272,6 +281,9 @@ extern int molfile_maeffplugin_fini(void);
molfile_xyzplugin_init(); \
molfile_dtrplugin_init(); \
molfile_maeffplugin_init(); \
molfile_netcdfplugin_init(); \
molfile_vtfplugin_init(); \
molfile_webpdbplugin_init(); \
#define MOLFILE_REGISTER_ALL(v, cb) \
molfile_abinitplugin_register(v, cb); \
@@ -340,6 +352,9 @@ extern int molfile_maeffplugin_fini(void);
molfile_xyzplugin_register(v, cb); \
molfile_dtrplugin_register(v, cb); \
molfile_maeffplugin_register(v, cb); \
molfile_netcdfplugin_register(v, cb); \
molfile_vtfplugin_register(v, cb); \
molfile_webpdbplugin_register(v, cb); \
#define MOLFILE_FINI_ALL \
molfile_abinitplugin_fini(); \
@@ -408,6 +423,9 @@ extern int molfile_maeffplugin_fini(void);
molfile_xyzplugin_fini(); \
molfile_dtrplugin_fini(); \
molfile_maeffplugin_fini(); \
molfile_netcdfplugin_fini(); \
molfile_vtfplugin_fini(); \
molfile_webpdbplugin_fini(); \
#ifdef __cplusplus
}

Some files were not shown because too many files have changed in this diff Show More