========================================
 How to install DEMO-EMol
========================================
1. perform the following command to give permissions for all DEMO-EMol files

>cd DEMO-EMol
>chmod -R 777 ./*

========================================
 Dependencies in DEMO-EMol
========================================
requirements:
	Python  (https://www.python.org) (ver. 3.7)
	pytorch (https://pytorch.org) (ver. 1.2 or later)
	mrcfile (https://github.com/ccpem/mrcfile)
	numpy   (https://www.numpy.org)
	tqdm    (https://github.com/tqdm/tqdm)
* Install 32-bit Dynamic Linker
CentOS:
   >sudo yum install epel-release -y
   >sudo yum install glibc.i686
   >sudo yum install gcc-gfortran
* Install boost
CentOS:
   >yum install boost boost-devel

========================================
 How to run DEMO-EMol
========================================
*************
First: predict NA map and Pro map:

> python predict.py -i [Path to the original density map] -o [Directory path for saving the output NA and Protein density maps] -t [Contour level of the initial density map] -m [Model weight parameters]

Here, an example is shown as follows:

> python map_segmentation/predict.py -i ./example/map.mrc  -o ./example  -t 0.224  -m ./map_segmentation/best_model.pth
*************
Second: In Linux system with 64-bit and the right directory, you can run the program in the command window without arguments to obtain a brief instruction

>./DEMO-EMol

Here, an example is shown as follows:

>./DEMO-EMol ./example ./example/map.mrc  ./example/resolution.txt
>./DEMO-EMol ./example ./example/map.mrc  4.1  -dc 0.224
*************
========================================
 Options in DEMO-EMol
========================================
-lco 	: flag to use local domain optimization, 0: no, 1: yes (default: 1)
-glo 	: flag to use global domain optimization, 0: no, 1: yes (default: 1)
-dmm 	: flag to use domain matching, 0: no, 1: yes (default: 1)
-nlb 	: number of positions to be explored by LBFGS (default: 20)
-nft    : number of positions to explore by fast fitting (default: 5) 
-rsc	: cutoff of correlation score in fraction space (default: 0.6)
-nco	: number of parallel threads (default: 10)
-seg    ：perform map segmention based on contour (0:no, 1:yes)( default: 0)
-stm    : segment density map to NA and Protein maps (0:no 1:yes)( default:0)
-gw 	: grid width of the map, 0:original value (default: 0)
-sl 	: flag to output intermediate information, 0: no, 1: yes (default: 0)
-rm 	: flag to remove matched map regions by models, 0: no, 1: yes (default: 1)
-it 	: flag to use iterative assembly, 0: no, 1: yes (default: 1)
-dc     : threshold for density value (default: 0.005)

NOTES:
1. All information listed above can be displayed by type $ ./DEMO-EMol. Please do not change the default settings unless you know what you are doing.
2. Models to be assembled should be named as "chain1.pdb, chain2.pdb, chain3.pdb,..." in the data_path.
3. "-rsc" should be within the range of (0,1), default: 0.6. It is used to define a good mathcing between model and map.
4. Output models are named as "segCmodel1.pdb" and saved in the data_path.
5. If density map segmentation is used, please ensure that the segmented NA.map and Pro.map,are placed in the same directory as the original density map.
====================
 Output Format
====================
segCmodel1.pdb: the final complex model
chainX_dom.def: the domain definition of the X-th chain

====================
 About this program
====================
This program is an implementation of DEMO-EMol in C/C++ (Version: 2025212) by

 Xiaogen Zhou at
 College of Information Engineering
 Zhejiang University of Technology 
 288 Liuhe Rd, Hangzhou, China, 310023                                                     
           
Please report bugs and questions to zxg@zjut.edu.cn
