How to upload structures from command line?

If you are using linux or MacOS, you can easily upload automatically structures from your HDD with curl command. Here is simple example:

curl -i \
-F projectName=curlTest \
-F inputType=ownFile \
-F atomsFileName=@MY_PDB_FILE.pdb \
-F chainSymbol2=A \
-F fastaSeqFileName=@MY_SEQUENCE_FILE.fasta \
-F homologyMethod=1 \

Fields meaning

Field Allowed Values Obligatory Description
projectName Any string up to 128 chars. no Use it for easy identification of your job. You should specify an email address if you wish to be notified after the job is finished.
emailAddr correct email address no Your email address, if you wish to be notified after your job is finished.
  • pdbCode
  • ownFile
yes You can model something from PDB or your own structure.
modellerLicenseKey string yes GR is based on MODELLER software. You need to provide your license key. For more information please consult http://salilab.org/modeller/registration.html
pdbCode 4 character uppercase string that starts with a number yes if inputType is pdbCode PDB code from Protein Data Bank. For example 1UAL.
chainSymbol single letter character yes if inputType is pdbCode This field is case sensitive! Chain symbol must match the symbol in the PDB file i.e. 21-st character of ATOM record.
atomsFileName string that ends with .pdb yes if inputType is ownFile File name of the structure you wish to model. File should contain only one chain and only ATOM/HETATM records without any solvent or ligands. Maximum file size is 5MB.
chainSymbol2 single letter character yes if inputType is ownFile This field is case sensitive! Chain symbol must match the symbol in the PDB file. i.e. 21-st character of ATOM record.
fastaSeqFileName string that ends with one of the following: .fasta, .fa, .fst, .txt yes if inputType is ownFile File name of file with the sequence that you wish to model in fasta format. GapRepairer does not model missing residues from the ends of the sequence - they should be clipped appropriately. Maximum file size is 5MB.
homologyMethod number from 1 to 5 yes There are several methods of choosing homologues in GapRepairer. You can read more about them in Protocol section.
  • 1 - Consense out of several
  • 2 - Only one - the best one
  • 3 - My PDB selection
  • 4 - Dali 3D search
  • 5 - My own structue
pdbExclude string no

Structures to be removed from the potential template pool - these will not be selected as a template, regardless of which method you choose.

You can either exclude all chains from the given structure

1ual 1uak 4mcb

or specify individual chains (after the colon). To specify multiple chains, please write them down as separate structures:

1ual:A 1uak:A 4mcb:A 4mcb:B

Valid separators for different proteins are: <tabulator> <newline> , <coma> ; <semicolon> but not a pair of them.

eValue string in one of the following notations:
0.0001 1E-39 235.2 5
no> E-value cutoff for PSI-blast homologue search (when homologyMethod=1)
gapAlign 0 or 1 no Possible options are progressive (0) or consensus (1) alignment, further described in Protocol section.
multichain 0 or 1 no When uploading your own structure do you want to take into account excluded volume of other chains present (1) or disregard then (0)

Useful script

Here is real life usage example. Let's say you have some structures prepared and listed in file api_load.txt like below:

1NS5_A_cut_73_79_121_127.pdb    A   1NS5.fasta
1NXZ_A_cut_172_177_217_223.pdb  A   1NXZ.fasta
1V2X_A_cut_100_105_142_151.pdb  A   1V2X.fasta
1V6Z_A_cut_158_163_202_208.pdb  A   1V6Z.fasta
1X7O_A_cut_194_198_235_244.pdb  A   1X7O.fasta
In that case you can upload all of them in seconds with this script:

while read pdb_file chain fasta_file;
    if curl -s \
-F projectName=$pdb_file \
-F inputType=ownFile \
-F atomsFileName=@$pdb_file \
-F chainSymbol2=$chain \
-F fastaSeqFileName=@$fasta_file \
-F homologyMethod=1 \
http://gaprepairer.cent.uw.edu.pl/cgi-bin/repair  | grep "ERROR\|wrong" 
        echo -e "[ \e[31mFAIL\e[0m ]	$pdb_file	$chain	$fasta_dile"
        echo -e "[  \e[34mOK\e[0m  ]	$pdb_file	$chain	$fasta_dile"
done < $1
You run it with command:
./script.sh api_load.txt


This script will only inform you wether your job was uploaded sucessfully. If something goes wrong you will not get any specific error message - only [ FAIL ] and pdb file name. In that case you can try to upload this particular job by hand to see why the job was rejected.

GapRepairer | Interdisciplinary Laboratory of Biological Systems Modelling