#!/usr/bin/env sh

# mkResArray of simu_real
Methods=(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)
Outdir="arrays/simu_real"
mkdir ${Outdir}

#paste to ori file
function mypaste(){
    tmp=`mktemp temp.XXXXXXXX`
    paste $1 $2 > ${tmp}
    mv ${tmp} $1
}

function mkarray(){

local prefix=$1
local spe=$2
local dep=$3
local gtf=$4 
local cla=$5
fname="coding_cls_"${cla}".txt"

if [[ ${gtf} == "with_out_G" ]];then
    g="noG"
else
    g="G"
fi

# get Model info
# mdinfo=`mktemp temp.XXXXXX`
outfile="${Outdir}/${spe}_${dep}_${g}_${cla}.array"
#eval "./modelarray.py ${mdf} lnc.names coding.names> ${outfile}"

mdf=`mktemp temp.XXXXXX`
# get name and actCls
for met in ${Methods[@]}
do
    myfile="${prefix}/${spe}/${met}/${dep}/${gtf}/${fname}"
    if [ -f ${myfile} ];then
        eval "cut -f1,4 ${myfile} > ${mdf}"
        cp ${mdf} ${outfile}
        break
    fi
done

for met in ${Methods[@]}
do
    myfile="${prefix}/${spe}/${met}/${dep}/${gtf}/${fname}"
    if [ -f ${myfile} ];then

        # only has header
        l1=`wc -l ${myfile}`
        l2=`wc -l ${outfile}`
        if [[ ${l1:0:2} -eq 1 ]];then
            continue
        fi
        if [[ ${l2:0:2} -eq 1 ]];then
            break
        fi

        #get methods prediction, which will be sorted in mdf order.
        tmparray=`mktemp temp.XXXXXX`
        #method name
        echo "${met}" > ${tmparray}
        #method predictions
        eval "annot_from_file.py -n1 -n2 -v 1 ${mdf} ${myfile} |cut -f3 | awk '{if(NR!=1)print}' >> ${tmparray}"
        #write to outfile
        mypaste ${outfile} ${tmparray}
        rm ${tmparray}
    fi
done
rm ${mdf}
}

#infile
prefix="simu_real"
Species=("human" "mouse")
Depth=("sim100" "sim1200" "sim30" "sim300" "sim600")
Gtfgd=("with_G"  "with_out_G")
ClassCode=("=" "c" "j")
for spe in ${Species[@]}
do
    for dep in ${Depth[@]}
    do
        for gtf in ${Gtfgd[@]}
        do
            for cla in ${ClassCode[@]}
            do
                mkarray ${prefix} ${spe} ${dep} ${gtf} ${cla}
            done
        done
    done
done
#mkarray $prefix
