#!/usr/bin/env sh

#[Usage] ./tmap2coding.sh > cmd
#sh cmd

Tmap2coding=./tmap2coding.py
OUTROOT=../../../data/codingf/simu
QryPrefix=(../../../data/predictions/3.Erroneous_tx/human ../../../data/predictions/3.Erroneous_tx/mouse)
QryPrefix1=(../../../data/testing_data/3.Erroneous_tx/human ../../../data/testing_data/3.Erroneous_tx/mouse)
Species=(human mouse)
#reference codingfile
Ref_cdf=(pair_human pair_mouse)
RefPrefix=../../../data/codingf/random5k

Depth=(sim30 sim100 sim300 sim600 sim1200)
Tmaps=no_G.merged_no_G.gtf.tmap
CLASSIFY_METHOD=(CNCI_pl CNCI_ve come1 come2 cpat_fly cpat_human cpat_mouse cpat_zebrafish cpc cpc2 feelnc_ab_cl feelnc_ab_sf feelnc_all_cl feelnc_all_sf feelnc_ff_cl feelnc_ff_sf feelnc_hm_cl feelnc_hm_sf feelnc_ms_cl feelnc_ms_sf feelnc_wm_cl feelnc_wm_sf feelnc_zf_cl feelnc_zf_sf hmmscan1 hmmscan2 hmmscan3 iSeeRNA lncRScan lncScore longdist_GRCh37 longdist_GRCh37_GRCm38 longdist_GRCh38 longdist_GRCh38_GRCm38 longdist_GRCm38 longdist_GRCm38_GRCz10 PLEK plncpro1 plncpro2 rnaplonc1 rnaplonc2)

CLAS2C_PRE="./scripts"
CLAS2CODING=(cnci2coding.py cnci2coding.py come2coding.py come2coding.py cpat2coding.py cpat2coding.py cpat2coding.py cpat2coding.py cpc2coding.py cpc22coding.py feelnc2coding.py feelnc2coding.py feelnc2coding.py feelnc2coding.py feelnc2coding.py feelnc2coding.py feelnc2coding.py feelnc2coding.py feelnc2coding.py feelnc2coding.py feelnc2coding.py feelnc2coding.py feelnc2coding.py feelnc2coding.py hmmscore2coding.py hmmscore2coding.py hmmscore2coding.py iSeeRNA2coding.py lncRScan2coding.py lncScore2coding.py longdist2coding.py longdist2coding.py longdist2coding.py longdist2coding.py longdist2coding.py longdist2coding.py plek2coding.py plncpro2coding.py plncpro2coding.py rnaplonc2coding.py rnaplonc2coding.py)

RES2CODING="./res2coding.sh"

function check_file()
{
if [ ! -e $1 ];then
    echo '[Error] this file or directory is not exist:'
    echo $1
    exit 1
fi
}

function check_files()
{
while [[ $1 ]];do
    check_file $1
    shift
done
}

function t2c()
{
    echo "$Tmap2coding $tmap_f $CodingFile $ref_coding_f -o $Outpath --rm_r --rm_q 2>$Outpath/tmap_coding.err 1>$Outpath/tmap_coding.log"
    echo ""
}

# Generate tmp codingfile with fake actCls 0
function t2tmpc()
{
    echo "${RES2CODING} ${qry_dir} ${Tmpout} 0 ${HmmFa}"
}

#####
#get coding file of qry transcripts against ref transcripts accoding to tmap file.
for j in ${!Species[@]}
do
  for dep in ${Depth[@]}
  do
    qry_dir=${QryPrefix[$j]}/${dep}/${Species[$j]}/predres
    HmmFa=${QryPrefix1[$j]}/${dep}/merged.pf.fasta
    Tmpout="tmpout"
    echo "mkdir ${Tmpout}"
    t2tmpc
    for i in "${!CLASSIFY_METHOD[@]}"
    do
      Outpath=${OUTROOT}/${Species[$j]}/${CLASSIFY_METHOD[$i]}/${dep}
      tmap_f=${QryPrefix1[$j]}/${dep}/${Tmaps}
      CodingFile=${Tmpout}/${CLASSIFY_METHOD[$i]}.coding
      ref_coding_f=${RefPrefix}/${Ref_cdf[$j]}/${CLASSIFY_METHOD[$i]}.pair
      Method="${CLAS2C_PRE}/${CLAS2CODING[$i]}"
      check_files $Tmap2coding $tmap_f  $Outpath $HmmFa
      check_files $Method $Tmap2coding $tmap_f  $Outpath $HmmFa
      #check_files $ref_coding_f $CodingFile 
      t2c
    done
  done
done
