QCS runs on the command-line on all Unix-compatible platforms.
The source code is available under the GNU GPL license.
It requires gcc >= 3.3.5 and python >= 2.3


For Installation:
Go to the directory that contains QCS_update.tar.gz and install QCS by the following commands:
    gzip -d QCS_update.tar.gz
    tar -xvf QCS_update.tar
    cd QCS_update/
    python configure.py

For usage:
Use command like this to get the QCS (Quality Control Score) for your model):
python getQCS.py [options]

Available options:
-new	Required for new targets; Specify if the [real_pdb_file] has not been used before.
-r [real_pdb_file]	Required; Input PDB file of real structure [real_pdb_file]
-m [model_pdb_file]	Required; Input PDB file for predicted model [model_pdb_file]
-opt [w1] [w2] [w3] [w4] [w5] [w6]



	Optional; Specify if other sets of weight (as integer or float number) is prefered. From the left to the right please input the weight of length score, position score, angle score, 
interaction score, handedness score and contact score.
-h	Optional; Print a help message, and overwrite all other options.

Results:
Final results will be in the same directory as the input [real_pdb_file] and the name is: [real_pdb_file]_vs_[model_pdb_file].final. In this file, the weight and score of each QCS component is 
listed. The total socre (weighted average of the QCS component scores) and the final_QCS (normalized total score after comparison with random models) are provided too.

Requirement of the inputs:
1. Both [real_pdb_file] and [model_pdb_file] need to be in standard PDB format.
2. Both [real_pdb_file] and [model_pdb_file] need to contain only a single chain.
3. [real_pdb_file] and [model_pdb_file] should be the real structure and predicted model for the same protein sequence (but missing residues are allowed).
4. The residue numbers in both PDB files have to match.
5. The program will sort the coordinates according to their residue number in the PDB, so please make sure this number correspond to the residue number in the protein sequence. And it is better 
to avoid any "insertion code".

Examples:
In the "QCS_update" package, under "example/" directory, we have an example file of [real_pdb_file]: "T287" and examples of [model_pdb_file]: "T287TS020_1", "T287TS092_1" and "T287TS302_1"
You can test QCS using them by the following commands:

1. for a target that has not been processed by the program in current directory with equal weight of each QCS component score:
python getQCS.py -r example/T287 -m example/T287TS020_1 -new

2. for a target that has been processed by the program in current directory (obmit the target processing steps to save time when the same target is used to compare with multiple model in a same 
directory), with equal weight of QCS components:
python getQCS.py -r example/T287 -m example/T287TS092_1

3. for a target that has not been processed by the program in current directory with customerized weight of each QCS component score:
python getQCS.py -r example/T287 -m example/T287TS302_1 -opt 1 1 2 1 2 2

