#!/bin/bash

MODEL1="$2$4"
MODEL2="$3"
TARGET_VARIANT=$4
#CASP_VERSION=CASP13

# author Michal Wojciechowski - 06/25/2010

function help_me {
    echo "Use parameters: (lga_sda, lga_sia, mammoth, mvsm, mvsm_serv, DaliLite, caca, all) to upload tasks for these algorithms\n";
}


function upload_random_lga_sda {
    echo "Upload LGA SDA 4 FOR RANDOM MODELS";
   ./upload_tasks.pl --target=$MODEL1 --model1=$MODEL1.pdb --model2="$MODEL2" --plugin=lga_sda --targets_dir=/local/CASP13/TARGETS/ --models_dir=/local/CASP13/RAND_MODELS/$1 --results='/local/CASP13/RESULTS/RAND/LGA/SDA/DATA/'$MODEL1'/;/local/CASP13/RESULTS/RAND/LGA/SDA/ROTATED/'$MODEL1'/;/local/CASP13/RESULTS/RAND/LGA/SDA/ALIGNMENT/'$MODEL1'/' --result_extension=lga
}

function upload_lga_sda {
    echo "Upload LGA SDA 4";
   ./upload_tasks.pl --target=$MODEL1 --model1=$MODEL1.pdb --model2="$MODEL2" --plugin=lga_sda --targets_dir=/local/CASP13/TARGETS/ --models_dir=/local/CASP13/MODELS/$1 --results='/local/CASP13/RESULTS/LGA/SDA/DATA/'$MODEL1'/;/local/CASP13/RESULTS/LGA/SDA/ROTATED/'$MODEL1'/;/local/CASP13/RESULTS/LGA/SDA/ALIGNMENT/'$MODEL1'/' --result_extension=lga
}

function upload_lga_sia {
    echo "Upload LGA SIA 4";
    ./upload_tasks.pl --target=$MODEL1 --model1=$MODEL1.pdb --model2="$MODEL2" --plugin=lga_sia --targets_dir=/local/CASP13/TARGETS/ --models_dir=/local/CASP13/MODELS/$1 --results='/local/CASP13/RESULTS/LGA/SIA/DATA/'$MODEL1'/;/local/CASP13/RESULTS/LGA/SIA/ROTATED/'$MODEL1'/;/local/CASP13/RESULTS/LGA/SIA/ALIGNMENT/'$MODEL1'/' --result_extension=lga       
}

function upload_lga_sia_5 {
    echo "Upload LGA SIA 5";
    ./upload_tasks.pl --target=$MODEL1 --model1=$MODEL1.pdb --model2="$MODEL2" --plugin=lga_sia_5 --targets_dir=/local/CASP13/TARGETS/ --models_dir=/local/CASP13/MODELS/$1 --results='/local/CASP13/RESULTS/LGA/SIA_5/DATA/'$MODEL1'/;/local/CASP13/RESULTS/LGA/SIA_5/ROTATED/'$MODEL1'/;/local/CASP13/RESULTS/LGA/SIA_5/ALIGNMENT/'$MODEL1'/' --result_extension=lga
}

#function upload_ace {
#    echo "Upload ACE";
#    ./upload_tasks.pl --target=$MODEL1 --model1=$MODEL1.pdb --model2="$MODEL2" --targets_dir=/local/CASP13/TARGETS/ --plugin=ace --results=/local/CASP13/RESULTS/ACE/$1/  --result_extension=ace
#}

function upload_caca {
    echo "Upload CACA";
	if [ '*' == "$MODEL2" ]
	then
		MODEL2=""
	fi
   ./upload_tasks.pl --target=$MODEL1 --model1=$MODEL1.pdb --model2="$MODEL2" --targets_dir=/local/CASP13/TARGETS/ --plugin=caca --results='/local/CASP13/RESULTS/CACA/'$MODEL1'/'  --result_extension=caca
}

function upload_molprb_serv {
    echo "Upload MOLPROBITY_SERV";
        if [ '*' == "$MODEL2" ]
        then
                MODEL2=""
        fi
   ./upload_tasks.pl --target=$MODEL1 --model1=$MODEL1.pdb --model2="$MODEL2" --targets_dir=/local/CASP13/TARGETS/ --models_dir=/local/CASP13/SERV_MODELS/$1 --plugin=molprb_serv --results="/local/CASP13/RESULTS/MOLPROBITY/"  --result_extension=molprb
}

function upload_molprb {
    echo "Upload MOLPROBITY";
        if [ '*' == "$MODEL2" ]
        then
                MODEL2=""
        fi
   ./upload_tasks.pl --target=$MODEL1 --model1=$MODEL1.pdb --model2="$MODEL2" --targets_dir=/local/CASP13/TARGETS/ --models_dir=/local/CASP13/MODELS/$1 --plugin=molprb --results="/local/CASP13/RESULTS/MOLPROBITY_ALL/"  --result_extension=molprb
}


function upload_cad_score {
    echo "Upload CADscore";
    ./upload_tasks.pl --target=$MODEL1 --model1=$MODEL1.pdb --model2="$MODEL2" --plugin=cad_score --targets_dir=/local/CASP13/TARGETS/ --models_dir=/local/CASP13/MODELS/$1 --results='/local/CASP13/RESULTS/CADscore/'$MODEL1'/' --result_extension=cad
}

function upload_dali {
    echo "Upload Dali";
    ./upload_tasks.pl --target=$MODEL1 --model1=$MODEL1.pdb --model2="$MODEL2" --plugin=DaliLite --targets_dir=/local/CASP13/TARGETS/ --models_dir=/local/CASP13/MODELS/$1 --results='/local/CASP13/RESULTS/DaliLite/'$MODEL1'/' --result_extension=dali
}

function upload_lddt {
    echo "Upload lDDT";
    ./upload_tasks.pl --target=$MODEL1 --model1=$MODEL1.pdb --model2="$MODEL2" --plugin=lddt --targets_dir=/local/CASP13/TARGETS/ --models_dir=/local/CASP13/MODELS/$1 --results='/local/CASP13/RESULTS/lDDT/'$MODEL1'/' --result_extension=lddt
}

function upload_rpf {
    echo "Upload rpf";
    ./upload_tasks.pl --target=$MODEL1 --model1=$MODEL1.pdb --model2="$MODEL2" --plugin=rpf --targets_dir=/local/CASP13/TARGETS/ --models_dir=/local/CASP13/MODELS/$1 --results='/local/CASP13/RESULTS/rpf/'$MODEL1'/' --result_extension=rpf
}

function upload_qcs {
    echo "Upload QCS";
    ./upload_tasks.pl --target=$MODEL1 --model1=$MODEL1.pdb --model2="$MODEL2" --plugin=qcs --targets_dir=/local/CASP13/TARGETS/ --models_dir=/local/CASP13/MODELS/$1 --results='/local/CASP13/RESULTS/QCS/'$MODEL1'/' --result_extension=qcs
}

function upload_sov {
    echo "Upload SOV";
    ./upload_tasks.pl --target=$MODEL1 --model1=$MODEL1.pdb --model2="$MODEL2" --plugin=sov --targets_dir=/local/CASP13/TARGETS/ --models_dir=/local/CASP13/MODELS/$1 --results='/local/CASP13/RESULTS/SOV/'$MODEL1'/' --result_extension=sov
}


function upload_ce {
    echo "Upload CE";
    ./upload_tasks.pl --target=$MODEL1 --model1=$MODEL1.pdb --model2="$MODEL2" --plugin=ce --targets_dir=/local/CASP13/TARGETS/ --models_dir=/local/CASP13/MODELS/$1 --results='/local/CASP13/RESULTS/CE/'$MODEL1'/' --result_extension=ce
}

function upload_TMscore {
    echo "Upload TMscore";
    ./upload_tasks.pl --target=$MODEL1 --model1=$MODEL1.pdb --model2="$MODEL2" --plugin=TMscore --targets_dir=/local/CASP13/TARGETS/ --models_dir=/local/CASP13/MODELS/$1 --results='/local/CASP13/RESULTS/TMscore/'$MODEL1'/' --result_extension=tm
}

function upload_TMalign {
    echo "Upload TMalign";
    ./upload_tasks.pl --target=$MODEL1 --model1=$MODEL1.pdb --model2="$MODEL2" --plugin=TMalign --targets_dir=/local/CASP13/TARGETS/ --models_dir=/local/CASP13/MODELS/$1 --results='/local/CASP13/RESULTS/TMalign/'$MODEL1'/' --result_extension=tm
}


function upload_grishin_conts {
    echo "Upload grishin_conts";
    ./upload_tasks.pl --target=$MODEL1 --model1=$MODEL1.pdb --model2="$MODEL2" --plugin=grishin_conts --targets_dir=/local/CASP13/TARGETS/ --models_dir=/local/CASP13/MODELS/$1 --results='/local/CASP13/RESULTS/GrContS/'$MODEL1'/' --result_extension=grconts
}

function upload_mammoth {
    echo "Upload MAMMOTH";
    ./upload_tasks.pl --target=$MODEL1 --model1=$MODEL1.pdb --model2="$MODEL2" --plugin=mammoth  --targets_dir=/local/CASP13/TARGETS/ --models_dir=/local/CASP13/MODELS/$1 --results='/local/CASP13/RESULTS/MAMMOTH/'$MODEL1'/' --result_extension=mammoth
}

function upload_mvsm {
#	test $TARGET_VARIANT && return
    echo "Upload MVSM";
    ./upload_tasks.pl --target=$MODEL1 --model1=$MODEL1.pdb --model2="$MODEL2" --plugin=mvsm --targets_dir=/local/CASP13/TARGETS/ --models_dir=/local/CASP13/MODELS/$1 --results='/local/CASP13/RESULTS/MVSM/DATA/'$MODEL1'/;/local/CASP13/RESULTS/MVSM/ROTATED/'$MODEL1'/;/local/CASP13/RESULTS/MVSM/ALIGNMENT/'$MODEL1'/' --result_extension=mvsm
}

function upload_mvsm_serv {
#	test $TARGET_VARIANT && return
    echo "Upload MVSM_SERV";
    ./upload_tasks.pl --target=$MODEL1 --model1=$MODEL1.pdb --model2="$MODEL2" --plugin=mvsm_serv --targets_dir=/local/CASP13/TARGETS/ --models_dir=/local/CASP13/SERV_MODELS/$1 --results='/local/CASP13/RESULTS/MVSM_SERV/DATA/'$MODEL1'/;/local/CASP13/RESULTS/MVSM_SERV/ROTATED/'$MODEL1'/;/local/CASP13/RESULTS/MVSM_SERV/ALIGNMENT/'$MODEL1'/' --result_extension=mvsm

}

function upload_lvr {
    echo "Upload LVR";
    ./upload_tasks.pl --target=$MODEL1 --model1=$MODEL1.pdb --model2="$MODEL2" --plugin=LVR      --targets_dir=/local/CASP13/TARGETS/ --models_dir=/local/CASP13/MODELS/$1 --results='/local/CASP13/RESULTS/LVR/'$MODEL1'/' --result_extension=csv
}

function upload_sg_py {
    echo "Upload SGpy";
    ./upload_tasks.pl --target=$MODEL1 --model1=$MODEL1.pdb --model2="$MODEL2" --plugin=sg_py      --targets_dir=/local/CASP13/TARGETS/ --models_dir=/local/CASP13/MODELS/$1 --results='/local/CASP13/RESULTS/SGpy/'$MODEL1'/' --result_extension=csv
}


# upload task for refinement targets: <TARGET>.pdb - real structure, in dir /data/CASP13/TARGETS; <TARGET>.pdb.txt - model released to be refined, in dir /data/CASP13/TARGETS/templates
# it's completely different as it was in CASP9
function upload_lga_sda_tr {
	echo "Upload LGA SDA TR";
	./upload_tasks.pl --target=$MODEL1 --model1=$MODEL1.pdb --model2=$MODEL1.pdb.txt --plugin=lga_sda --targets_dir=/local/CASP13/TARGETS/ --models_dir='/local/CASP13/TARGETS/templates' --results='/local/CASP13/RESULTS/LGA/TR_SDA/DATA/'$MODEL1'/;/local/CASP13/RESULTS/LGA/TR_SDA/ROTATED/'$MODEL1'/;/local/CASP13/RESULTS/LGA/TR_SDA/ALIGNMENT/'$MODEL1'/' --result_extension=lga
}

function upload_dali_tr {
        echo "Upload DaliLite TR";
        ./upload_tasks.pl --target=$MODEL1 --model1=$MODEL1.pdb --model2=$MODEL1.pdb.txt --plugin=DaliLite --targets_dir=/local/CASP13/TARGETS/ --models_dir='/local/CASP13/TARGETS/templates' --results='/local/CASP13/RESULTS/DaliLite/TR/'$MODEL1'/' --result_extension=dali
}

function upload_mammoth_tr {
        echo "Upload MAMMOTH TR";
        ./upload_tasks.pl --target=$MODEL1 --model1=$MODEL1.pdb --model2=$MODEL1.pdb.txt --plugin=mammoth --targets_dir=/local/CASP13/TARGETS/ --models_dir='/local/CASP13/TARGETS/templates' --results='/local/CASP13/RESULTS/MAMMOTH/TR/'$MODEL1'/' --result_extension=mammoth
}

function upload_lddt_tr {
        echo "Upload LDDT TR";
        ./upload_tasks.pl --target=$MODEL1 --model1=$MODEL1.pdb --model2=$MODEL1.pdb.txt --plugin=lddt --targets_dir=/local/CASP13/TARGETS/ --models_dir='/local/CASP13/TARGETS/templates' --results='/local/CASP13/RESULTS/lDDT/TR/'$MODEL1'/' --result_extension=lddt
}

function upload_cad_score_tr {
        echo "Upload CAD TR";
        ./upload_tasks.pl --target=$MODEL1 --model1=$MODEL1.pdb --model2=$MODEL1.pdb.txt --plugin=cad_score --targets_dir=/local/CASP13/TARGETS/ --models_dir='/local/CASP13/TARGETS/templates' --results='/local/CASP13/RESULTS/CADscore/TR/'$MODEL1'/' --result_extension=cad
}

function upload_rpf_tr {
    echo "Upload rpf TR";
    ./upload_tasks.pl --target=$MODEL1 --model1=$MODEL1.pdb --model2=$MODEL1.pdb.txt --plugin=rpf --targets_dir=/local/CASP13/TARGETS/ --models_dir='/local/CASP13/TARGETS/templates' --results='/local/CASP13/RESULTS/rpf/TR/'$MODEL1'/' --result_extension=rpf
}

function upload_qcs_tr {
        echo "Upload QCS TR";
        ./upload_tasks.pl --target=$MODEL1 --model1=$MODEL1.pdb --model2=$MODEL1.pdb.txt --plugin=qcs --targets_dir=/local/CASP13/TARGETS/ --models_dir='/local/CASP13/TARGETS/templates' --results='/local/CASP13/RESULTS/QCS/TR/'$MODEL1'/' --result_extension=qcs
}

function upload_sov_tr {
        echo "Upload SOV TR";
        ./upload_tasks.pl --target=$MODEL1 --model1=$MODEL1.pdb --model2=$MODEL1.pdb.txt --plugin=sov --targets_dir=/local/CASP13/TARGETS/ --models_dir='/local/CASP13/TARGETS/templates' --results='/local/CASP13/RESULTS/SOV/TR/'$MODEL1'/' --result_extension=sov
}

function upload_ce_tr {
        echo "Upload CE TR";
        ./upload_tasks.pl --target=$MODEL1 --model1=$MODEL1.pdb --model2=$MODEL1.pdb.txt --plugin=ce --targets_dir=/local/CASP13/TARGETS/ --models_dir='/local/CASP13/TARGETS/templates' --results='/local/CASP13/RESULTS/CE/TR/'$MODEL1'/' --result_extension=ce
}

function upload_TMscore_tr {
        echo "Upload TMscore TR";
        ./upload_tasks.pl --target=$MODEL1 --model1=$MODEL1.pdb --model2=$MODEL1.pdb.txt --plugin=TMscore --targets_dir=/local/CASP13/TARGETS/ --models_dir='/local/CASP13/TARGETS/templates' --results='/local/CASP13/RESULTS/TMscore/TR/'$MODEL1'/' --result_extension=tm
}

function upload_TMalign_tr {
        echo "Upload TMalign TR";
        ./upload_tasks.pl --target=$MODEL1 --model1=$MODEL1.pdb --model2=$MODEL1.pdb.txt --plugin=TMalign --targets_dir=/local/CASP13/TARGETS/ --models_dir='/local/CASP13/TARGETS/templates' --results='/local/CASP13/RESULTS/TMalign/TR/'$MODEL1'/' --result_extension=tm
}

function upload_lvr_tr {
    echo "Upload LVR TR";
    ./upload_tasks.pl --target=$MODEL1 --model1=$MODEL1.pdb --model2="$MODEL1.pdb.txt" --plugin=LVR      --targets_dir=/local/CASP13/TARGETS/ --models_dir='/local/CASP13/TARGETS/templates' --results='/local/CASP13/RESULTS/LVR/TR/'$MODEL1'/' --result_extension=csv
}

function upload_sg_py_tr {
    echo "Upload SGpy TR";
    ./upload_tasks.pl --target=$MODEL1 --model1=$MODEL1.pdb --model2="$MODEL1.pdb.txt" --plugin=sg_py      --targets_dir=/local/CASP13/TARGETS/ --models_dir='/local/CASP13/TARGETS/templates' --results='/local/CASP13/RESULTS/SGpy/TR/'$MODEL1'/' --result_extension=csv
}


function upload_molprb_tr {
    echo "Upload MOLPROBITY TR";
   ./upload_tasks.pl --target=$MODEL1 --model1=$MODEL1.pdb --model2="$MODEL1.pdb.txt"  --targets_dir=/local/CASP13/TARGETS/ --models_dir='/local/CASP13/TARGETS/templates' --plugin=molprb_tr --results="/local/CASP13/RESULTS/MOLPROBITY_ALL/TR/"  --result_extension=molprb
}



# upload tasks for rr_conts (evaluation rr contacts predictions)
function upload_rr_conts {
	echo "Upload RR_CONTS";
TARGETWOD=${MODEL1/-D*/};
	./upload_tasks.pl --target=$MODEL1 --model1="$MODEL1.pdb" --model2="$MODEL2" --plugin=rr_conts --targets_dir=/local/CASP13/TARGETS/ --models_dir=/local/CASP13/RR_MODELS/$TARGETWOD --results="/local/CASP13/RESULTS/RR_CONTS/$MODEL1" --result_extension=conts_0.1 --param="--checkSize 0.1 --fastaFile /local/CASP13/TARGETS/templates/$TARGETWOD.seq.txt";
        ./upload_tasks.pl --target=$MODEL1 --model1="$MODEL1.pdb" --model2="$MODEL2" --plugin=rr_conts --targets_dir=/local/CASP13/TARGETS/ --models_dir=/local/CASP13/RR_MODELS/$TARGETWOD --results="/local/CASP13/RESULTS/RR_CONTS/$MODEL1" --result_extension=conts_0.2 --param="--checkSize 0.2 --fastaFile /local/CASP13/TARGETS/templates/$TARGETWOD.seq.txt";
        ./upload_tasks.pl --target=$MODEL1 --model1="$MODEL1.pdb" --model2="$MODEL2" --plugin=rr_conts --targets_dir=/local/CASP13/TARGETS/ --models_dir=/local/CASP13/RR_MODELS/$TARGETWOD --results="/local/CASP13/RESULTS/RR_CONTS/$MODEL1" --result_extension=conts_5.0 --param="--checkSize 5.0 --fastaFile /local/CASP13/TARGETS/templates/$TARGETWOD.seq.txt"
}

function upload_all {
    upload_lga_4 $1
    upload_lga_5 $1
    upload_caca $1
#    upload_ace $1
    upload_mammoth $1
    upload_mvsm $1
    upload_dali $1
    upload_lvr $1
    upload_cad_score $1
    upload_lddt $1
    upload_rpf $1
}

while [ "$1" != "" ]; do
    case $1 in
        -h | --help )           help_me
                                exit
                                ;;
        lga_sda )             upload_lga_sda $2
                                ;;
        lga_sia )             upload_lga_sia $2
                                ;;
	lga_sia_5)	      upload_lga_sia_5 $2
				;;
#        ace )                   upload_ace $2
#                                ;;
        caca )                  upload_caca $2
                                ;;
        mammoth )               upload_mammoth $2
                                ;;
        mvsm )                  upload_mvsm $2
                                ;;
	mvsm_serv)		upload_mvsm_serv $2
				;;
	molprb)			upload_molprb $2
				;;
        molprb_tr)		upload_molprb_tr $2
                                ;;
	molprb_serv)		upload_molprb_serv $2
				;;
        DaliLite )              upload_dali $2
                                ;;
        LVR )                   upload_lvr $2
                                ;;
        sg_py )                 upload_sg_py $2
                                ;;
	qcs ) 			upload_qcs $2
				;;
	qcs_tr )                upload_qcs_tr $2
                                ;;
	ce )			upload_ce $2
				;;
        ce_tr )                 upload_ce_tr $2
                                ;;
	sov ) 			upload_sov $2
				;;
        sov_tr )                upload_sov_tr $2
                                ;;
	TMscore )		upload_TMscore $2
				;;
	TMscore_tr )            upload_TMscore_tr $2
                                ;;
        TMalign )               upload_TMalign $2
                                ;;
        TMalign_tr )            upload_TMalign_tr $2
                                ;;
	grishin_conts )		upload_grishin_conts $2
				;;
	lga_sda_tr )		upload_lga_sda_tr $2
                                ;;
	mammoth_tr )		upload_mammoth_tr $2
				;;
	DaliLite_tr )		upload_dali_tr $2
				;;
        LVR_tr )		upload_lvr_tr $2
                                ;;
        sg_py_tr )              upload_sg_py_tr $2
                                ;;
	rr_conts )              upload_rr_conts $2
				;;
	cad_score )		upload_cad_score $2
				;;
        cad_score_tr )		upload_cad_score_tr $2
                                ;;
	lddt )			upload_lddt $2
                                ;;
	lddt_tr )		upload_lddt_tr $2
				;;
	rpf )			upload_rpf $2
				;;
	rpf_tr)			upload_rpf_tr $2
				;;
        all )                   upload_all $2
                                ;;
	random_lga_sda ) 	upload_random_lga_sda $2 
				;;
    esac
    shift
done

echo "End";
