ER, Sat Jan 18 07:55:28 EST 2025

testing differentiable probabilistic grammars for CaCoFold
--------------------------------------------------------------------------------------------------------------------------------------------------------------

cd ~/src/Mysrc/R-scape/python/d-SCFG

cat data/TORNADO_TestATestB.sto | grep -v SS > data/TORNADO_TestATestB.noss.sto


# compare INSIDE jax_scaled,jax_logsumexp to std_scaled,std_logsumpex
#-------------------------------------------------------------------------
for grm in g5 g6 g6x ; do \
    python3 -m grammars."$grm"."$grm"_inside_test ;\
done




#
# inside // compare tornado and jax implementations
#-------------------------------------------------------------------------
for name in DC5 ; do \
for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g5 g6 g6x ; do \
mkdir  "$outdir"/"$grm"_fold ;\
for train  in TORNADO_TrATrBTrB ; do \
for test   in trna1415_annote_1of1 ; do \

    time python3 -m grammars."$grm"."$grm"_fold "$grm"_fold --tornado --outdir $outdir > "$outdir"/"$grm"_fold/"$test"_TORNADO_"$train"_"$grm".fold.jax  ;\

    grep "inside" ~/src/Mysrc/tornado/notebook/05-2025/"$grm"/"$test"_TORNADO_"$train"_"$grm".mea.out > "$outdir"/"$grm"_fold/"$test"_TORNADO_"$train"_"$grm".fold.tornado ;\

    grep "$name" "$outdir"/"$grm"_fold/"$test"_TORNADO_"$train"_"$grm".fold.tornado ;\
    grep "$name" "$outdir"/"$grm"_fold/"$test"_TORNADO_"$train"_"$grm".fold.jax ;\
    
done
done
done
done
done



# use the INSIDE jax_logsumexp implementation to optimize the grammar prob parameters by backpropagation
#-----------------------------------------------------------------------------------------------------------------------

for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g6x  ; do \
for train in trna1415_annote_1of2 ; do \
for test  in trna1415_annote_2of2 ; do \
for init  in random ; do \
    python3 -m grammars."$grm"."$grm"_optimize_param "$grm"_optimize_param_"$train"_"$init" \
    --outdir "$outdir" \
    --train_data data/"$train".fa \
    --test_data data/"$test".noss.sto \
    --grm_file     ../../lib/tornado/grammars/"$grm.grm" \
    --postgrm_file ../../lib/tornado/grammars/"$grm.grm" \
    --fold_method mea \
    --init_"$init" ;\    
done
done
done
done
done



for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g6  ; do \
for train in trna1415_annote_1of2 ; do \
for test  in trna1415_annote_2of2 ; do \
for init  in random ; do \
    python3 -m grammars."$grm"."$grm"_optimize_param "$grm"_optimize_param_"$train"_"$init" \
    --outdir "$outdir" \
    --train_data data/"$train".fa \
    --test_data data/"$test".noss.sto \
    --grm_file     ../../lib/tornado/grammars/"$grm.grm" \
    --postgrm_file ../../lib/tornado/grammars/"$grm.grm" \
    --fold_method mea \
    --init_"$init" > "$outdir"/"$grm"_optimize_param_"$train"_"$init"_test"$test".out ;\    
done
done
done
done
done

for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g6  ; do \
for train in trna1415_annote_1of2 ; do \
for test  in trna1415_annote_2of2 ; do \
for init  in random ; do \
    python3 -m grammars."$grm"."$grm"_optimize_param "$grm"_optimize_param_"$train"_"$init" \
    --outdir "$outdir" \
    --train_data data/"$train".fa \
    --test_data data/"$test".noss.sto \
    --grm_file     ../../lib/tornado/grammars/"$grm.grm" \
    --postgrm_file ../../lib/tornado/grammars/"$grm.grm" \
    --fold_method mea \
    --init_"$init" \
    --shuffle >
    "$outdir"/"$grm"_optimize_param_"$train"_"$init"_test"$test".out ;\   
done
done
done
done
done


for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g6  ; do \
for train in conus_rnabench_RNaseP ; do \
for test  in trna1415_annote_2of2 ; do \
for init  in uniform ; do \
    python3 -m grammars."$grm"."$grm"_optimize_param "$grm"_optimize_param_"$train"_"$init" \
    --outdir "$outdir" \
    --train_data data/"$train".fa \
    --test_data data/"$test".noss.sto \
    --grm_file     ../../lib/tornado/grammars/"$grm.grm" \
    --postgrm_file ../../lib/tornado/grammars/"$grm.grm" \
    --fold_method mea \
    --init_"$init" >
    "$outdir"/"$grm"_optimize_param_"$train"_"$init"_test"$test".out ;\
done
done
done
done
done


for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g6  ; do \
for train in conus_rnabench_RNaseP ; do \
for test  in trna1415_annote_2of2 ; do \
for init  in uniform ; do \
    python3 -m grammars."$grm"."$grm"_optimize_param "$grm"_optimize_param_"$train"_"$init"_shuffle.B \
    --outdir "$outdir" \
    --train_data data/"$train".fa \
    --test_data data/"$test".noss.sto \
    --grm_file     ../../lib/tornado/grammars/"$grm.grm" \
    --postgrm_file ../../lib/tornado/grammars/"$grm.grm" \
    --fold_method mea \
    --init_"$init"  \
    --shuffle ;\
done
done
done
done
done



for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g6  ; do \
for train in conus_rnabench_RNaseP.50.C ; do \
for test  in trna1415_annote_2of2 ; do \
for init  in uniform ; do \
    python3 -m grammars."$grm"."$grm"_optimize_param "$grm"_optimize_param_"$train"_"$init" \
    --outdir "$outdir" \
    --train_data data/"$train".fa \
    --test_data data/"$test".noss.sto \
    --grm_file     ../../lib/tornado/grammars/"$grm.grm" \
    --postgrm_file ../../lib/tornado/grammars/"$grm.grm" \
    --fold_method mea \
    --init_"$init"  ;\
done
done
done
done
done

for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g6  ; do \
for train in conus_rnabench_RNaseP.25.A conus_rnabench_RNaseP.25.B conus_rnabench_RNaseP.25.C ; do \
for test  in trna1415_annote_2of2 ; do \
for init  in uniform ; do \
    python3 -m grammars."$grm"."$grm"_optimize_param "$grm"_optimize_param_"$train"_"$init" \
    --outdir "$outdir" \
    --train_data data/"$train".fa \
    --test_data data/"$test".noss.sto \
    --grm_file     ../../lib/tornado/grammars/"$grm.grm" \
    --postgrm_file ../../lib/tornado/grammars/"$grm.grm" \
    --fold_method mea \
    --init_"$init"  ;\
done
done
done
done
done


for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g6  ; do \
for train in conus_rnabench_srp ; do \
for test  in trna1415_annote_2of2 ; do \
for init  in uniform ; do \
    python3 -m grammars."$grm"."$grm"_optimize_param "$grm"_optimize_param_"$train"_"$init" \
    --outdir "$outdir" \
    --train_data data/"$train".fa \
    --test_data data/"$test".noss.sto \
    --grm_file     ../../lib/tornado/grammars/"$grm.grm" \
    --postgrm_file ../../lib/tornado/grammars/"$grm.grm" \
    --fold_method mea \
    --init_"$init" >
    "$outdir"/"$grm"_optimize_param_"$train"_"$init"_test"$test".out ;\
done
done
done
done
done


for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g6  ; do \
for train in conus_rnabench_RNaseP_conus_rnabench_srp ; do \
for test  in trna1415_annote_2of2 ; do \
for init  in uniform ; do \
    python3 -m grammars."$grm"."$grm"_optimize_param "$grm"_optimize_param_"$train"_"$init" \
    --outdir "$outdir" \
    --train_data data/"$train".fa \
    --test_data data/"$test".noss.sto \
    --grm_file     ../../lib/tornado/grammars/"$grm.grm" \
    --postgrm_file ../../lib/tornado/grammars/"$grm.grm" \
    --fold_method mea \
    --init_"$init" >
    "$outdir"/"$grm"_optimize_param_"$train"_"$init"_test"$test".out ;\
done
done
done
done
done

for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g6  ; do \
for train in TORNADO_TrA.len60_400.nsq200 ; do \
for test  in TORNADO_TestB.len60_400.nsq100 ; do \
for init  in uniform ; do \
    python3 -m grammars."$grm"."$grm"_optimize_param "$grm"_optimize_param_"$train"_"$init" \
    --outdir "$outdir" \
    --train_data data/"$train".fa \
    --test_data data/"$test".noss.sto \
    --grm_file     ../../lib/tornado/grammars/"$grm.grm" \
    --postgrm_file ../../lib/tornado/grammars/"$grm.grm" \
    --fold_method mea \
    --init_"$init" ;\
done
done
done
done
done
------------------------------------------------------------------------------------
for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g6  ; do \
for train in TORNADO_7Fam.len0_400.nsq200 ; do \
for test  in trna1415_annote_2of2 ; do \
for init  in uniform ; do \
    python3 -m grammars."$grm"."$grm"_optimize_param "$grm"_optimize_param_"$train"_"$init" \
    --outdir "$outdir" \
    --train_data data/"$train".fa \
    --test_data  data/"$test".noss.sto \
    --grm_file     ../../lib/tornado/grammars/"$grm.grm" \
    --postgrm_file ../../lib/tornado/grammars/"$grm.grm" \
    --fold_method mea \
    --init_"$init" ;\
done
done
done
done
done

for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g6  ; do \
for train in TORNADO_7Fam.len0_400.nsq400 ; do \
for test  in trna1415_annote_2of2 ; do \
for init  in random ; do \
    python3 -m grammars."$grm"."$grm"_optimize_param "$grm"_optimize_param_"$train"_"$init" \
    --outdir "$outdir" \
    --train_data data/"$train".fa \
    --test_data  data/"$test".noss.sto \
    --grm_file     ../../lib/tornado/grammars/"$grm.grm" \
    --postgrm_file ../../lib/tornado/grammars/"$grm.grm" \
    --fold_method mea \
    --init_"$init" ;\
done
done
done
done
done

---------------------------------------------------------------------------------------




for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g6  ; do \
for train in S288C_chrV_YEL039C.rm_v1.100 ; do \
for test in  S288C_chrV_YEL039C.rm_v1.100 ; do \
for init  in random ; do \
    python3 -m grammars."$grm"."$grm"_optimize_param "$grm"_optimize_param_"$train"_"$init" \
    --outdir "$outdir" \
    --train_data ../../../../../projects/d-SCFG_June2025/data/coding/"$train".fa \
    --test_data  ../../../../../projects/d-SCFG_June2025/data/coding/"$test".sto \
    --grm_file     ../../lib/tornado/grammars/"$grm.grm" \
    --postgrm_file ../../lib/tornado/grammars/"$grm.grm" \
    --fold_method mea \
    --init_"$init"  ;\   
done
done
done
done
done

for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g6  ; do \
for train in chrII.len300 ; do \
for test in  chrIII.len300 ; do \
for init  in random ; do \
    python3 -m grammars."$grm"."$grm"_optimize_param "$grm"_optimize_param_"$train"_"$init" \
    --outdir "$outdir" \
    --train_data ../../../../../projects/d-SCFG_June2025/data/coding/"$train".fa \
    --test_data  ../../../../../projects/d-SCFG_June2025/data/coding/"$test".sto \
    --grm_file     ../../lib/tornado/grammars/"$grm.grm" \
    --postgrm_file ../../lib/tornado/grammars/"$grm.grm" \
    --fold_method mea \
    --init_"$init"  ;\   
done
done
done
done
done

for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g6  ; do \
for train in S288C_chrI_YAL046C.rm_v1.200 ; do \
for test in  trna1415_annote_2of2 ; do \
for init  in uniform ; do \
    python3 -m grammars."$grm"."$grm"_optimize_param "$grm"_optimize_param_"$train"_"$init" \
    --outdir "$outdir" \
    --train_data ../../../../../projects/d-SCFG_June2025/data/coding/"$train".fa \
    --test_data  data/"$test".sto \
    --grm_file     ../../lib/tornado/grammars/"$grm.grm" \
    --postgrm_file ../../lib/tornado/grammars/"$grm.grm" \
    --fold_method mea \
    --init_"$init"  ;\   
done
done
done
done
done


for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g6  ; do \
for train in S288C_chrI_YAL046C.rm_v1.200.conus_rnabench_RNaseP ; do \
for test in  trna1415_annote_2of2 ; do \
for init  in uniform ; do \
    python3 -m grammars."$grm"."$grm"_optimize_param "$grm"_optimize_param_"$train"_"$init" \
    --outdir "$outdir" \
    --train_data ../../../../../projects/d-SCFG_June2025/data/coding/"$train".fa \
    --test_data  data/"$test".sto \
    --grm_file     ../../lib/tornado/grammars/"$grm.grm" \
    --postgrm_file ../../lib/tornado/grammars/"$grm.grm" \
    --fold_method mea \
    --init_"$init"  ;\   
done
done
done
done
done


for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g6  ; do \
for train in S288C_chrII_YBL001C.rm_v1.200.conus_rnabench_RNaseP ; do \
for test in  trna1415_annote_2of2 ; do \
for init  in random ; do \
    python3 -m grammars."$grm"."$grm"_optimize_param "$grm"_optimize_param_"$train"_"$init" \
    --outdir "$outdir" \
    --train_data ../../../../../projects/d-SCFG_June2025/data/coding/"$train".fa \
    --test_data  data/"$test".sto \
    --grm_file     ../../lib/tornado/grammars/"$grm.grm" \
    --postgrm_file ../../lib/tornado/grammars/"$grm.grm" \
    --fold_method mea \
    --init_"$init"  ;\   
done
done
done
done
done


#-----------------------------------------------------------------------------------------------------------------------
# REPLOT for paper figures
#-----------------------------------------------------------------------------------------------------------------------

cd ~/src/Mysrc/R-scape/python/d-SCFG

# G6
# train: conus_rnabench_RNaseP
# test: trna1415_annote_2of2
#---------------------------------------------
for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g6  ; do \
for train in conus_rnabench_RNaseP ; do \
for test  in trna1415_annote_2of2 ; do \
for init  in uniform ; do \
    python3 -m grammars."$grm"."$grm"_plot_epoch "$grm"_optimize_param_"$train"_"$init" \
    --outdir "$outdir" \
    --train_data data/"$train".fa \
    --test_data data/"$test".noss.sto  \
    --losses_ymax 10900 \
    --pair_ymax  0.340 \
    --vienna_sen 70.26 \
    --vienna_ppv 66.99 ;\
done
done
done
done
done

# G6
# train: conus_rnabench_RNaseP
# test: trna1415_annote_2of2 SHUFFLED
#---------------------------------------------
for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g6  ; do \
for train in conus_rnabench_RNaseP ; do \
for test  in trna1415_annote_2of2 ; do \
for init  in uniform ; do \
    python3 -m grammars."$grm"."$grm"_plot_epoch "$grm"_optimize_param_"$train"_"$init"_shuffle.B_shuffle \
    --outdir "$outdir" \
    --train_data data/"$train".fa \
    --test_data data/"$test".noss.sto  \
    --losses_ymax 10900 \
    --pair_ymax  0.340 \
    --vienna_sen 70.26 \
    --vienna_ppv 66.99 ;\
done
done
done
done
done


for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g6  ; do \
for train in S288C_chrVI_YFL014W.rm_v1.200 S288C_chrV_YER019C-A.rm_v1.200 ; do \
for init  in uniform ; do \
    python3 -m grammars."$grm"."$grm"_plot_epoch "$grm"_optimize_param_"$train"_"$init" \
    --outdir "$outdir" \
    --train_data ../../../../../projects/d-SCFG_June2025/data/coding/"$train".fa \
    --losses_xmax 105 \
    --pair_ymax 0.340 ;\ 
done
done
done
done
done


# G6
# train: conus_rnabench_RNaseP_conus_rnabench_srp
# test: trna1415_annote_2of2
#---------------------------------------------
for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g6  ; do \
for train in conus_rnabench_RNaseP_conus_rnabench_srp ; do \
for test  in trna1415_annote_2of2 ; do \
for init  in uniform ; do \
    python3 -m grammars."$grm"."$grm"_plot_epoch "$grm"_optimize_param_"$train"_"$init" \
    --outdir "$outdir" \
    --train_data data/"$train".fa \
    --test_data data/"$test".noss.sto  \
    --vienna_sen 70.26 \
    --vienna_ppv 66.99 ;\
done
done
done
done
done


# G6
# train: TORNADO_7Fam.len0_400.nsq400
# test: trna1415_annote_2of2
#---------------------------------------------
for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g6  ; do \
for train in  TORNADO_7Fam.len0_400.nsq400; do \
for test  in trna1415_annote_2of2 ; do \
for init  in random ; do \
    python3 -m grammars."$grm"."$grm"_plot_epoch "$grm"_optimize_param_"$train"_"$init" \
    --outdir "$outdir" \
    --train_data data/"$train".fa \
    --test_data data/"$test".noss.sto  \
    --pair_ymax 0.3 \
    --vienna_sen 70.26 \
    --vienna_ppv 66.99 ;\
done
done
done
done
done


# G6
# train: TORNADO_7Fam.len0_400.nsq200
# test: trna1415_annote_2of2
#---------------------------------------------
for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g6  ; do \
for train in  TORNADO_7Fam.len0_400.nsq200; do \
for test  in trna1415_annote_2of2 ; do \
for init  in uniform ; do \
    python3 -m grammars."$grm"."$grm"_plot_epoch "$grm"_optimize_param_"$train"_"$init" \
    --outdir "$outdir" \
    --train_data data/"$train".fa \
    --test_data data/"$test".noss.sto  \
    --pair_ymax 0.3 \
    --vienna_sen 70.26 \
    --vienna_ppv 66.99 ;\
done
done
done
done
done



# G5
# train: conus_rnabench_RNaseP
# test: trna1415_annote_2of2
#---------------------------------------------
for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g5  ; do \
for train in conus_rnabench_RNaseP ; do \
for test  in trna1415_annote_2of2 ; do \
for init  in uniform ; do \
    python3 -m grammars."$grm"."$grm"_plot_epoch "$grm"_optimize_param_"$train"_"$init" \
    --outdir "$outdir" \
    --train_data data/"$train".fa \
    --test_data data/"$test".noss.sto  \
    --acc_ymin -1.0 \
    --acc_ymax 20.0 \
    --vienna_sen 70.26 \
    --vienna_ppv 66.99 ;\
done
done
done
done
done





# G6
# train: conus_rnabench_RNaseP.50
# test: trna1415_annote_2of2
#---------------------------------------------
for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g6  ; do \
for train in conus_rnabench_RNaseP.50.A conus_rnabench_RNaseP.50.B conus_rnabench_RNaseP.50.C ; do \
for test  in trna1415_annote_2of2 ; do \
for init  in uniform ; do \
    python3 -m grammars."$grm"."$grm"_plot_epoch "$grm"_optimize_param_"$train"_"$init" \
    --outdir "$outdir" \
    --train_data data/"$train".fa \
    --test_data data/"$test".noss.sto  \
    --vienna_sen 70.26 \
    --vienna_ppv 66.99 ;\
done
done
done
done
done

# G6
# train: conus_rnabench_RNaseP.25
# test: trna1415_annote_2of2
#---------------------------------------------
for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g6  ; do \
for train in conus_rnabench_RNaseP.25.A conus_rnabench_RNaseP.25.B conus_rnabench_RNaseP.25.C ; do \
for test  in trna1415_annote_2of2 ; do \
for init  in uniform ; do \
    python3 -m grammars."$grm"."$grm"_plot_epoch "$grm"_optimize_param_"$train"_"$init" \
    --outdir "$outdir" \
    --train_data data/"$train".fa \
    --test_data data/"$test".noss.sto  \
    --vienna_sen 70.26 \
    --vienna_ppv 66.99 ;\
done
done
done
done
done



===========================================================================================================
R1
Fri Oct 17 09:47:15 EDT 2025

grammars/g6/g6_plot_epoch.py modified so that it calculates the structures of the test set with tornado_fold.py if those do not exist already.

adding benchmark for
data/TORNADO_TrB.sto

cd ~/src/Mysrc/R-scape/python/d-SCFG

#---------------------------------------------------------------------------------------------------------------------
# FIGURE 2
#---------------------------------------------------------------------------------------------------------------------
# G6
# train: conus_rnabench_RNaseP.50.C
# test: trna1415_annote_2of2
#
#  experiments/ViennaRNA-2.7.0/trna1415_annote_2of2.ViennaRNA.mea.sto.acc
#  F 68.5860459016393 sen 70.26 ppv 66.99
#
# paramfile ML: ../../lib/tornado/notebook/05-2025/g6/TORNADO_conus_rnabench_RNaseP.50.A_g6.param
# sen 0.6868000000000001 ppv 0.7857999999999999 f1 0.7329722124134186
#
# paramfile ML: ../../lib/tornado/notebook/05-2025/g6/TORNADO_conus_rnabench_RNaseP.50.B_g6.param
# sen 0.6948000000000001 ppv 0.8067 f1 0.7465802997002997
#
# paramfile ML: ../../lib/tornado/notebook/05-2025/g6/TORNADO_conus_rnabench_RNaseP.50.C_g6.param
# sen 0.6847 ppv 0.7848 f1 0.731340673698537
#
#
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_conus_rnabench_RNaseP.50.A_uniform/losses_i99.pdf
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_conus_rnabench_RNaseP.50.A_uniform/g6_params_i99.pdf 
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_conus_rnabench_RNaseP.50.A_uniform/trna1415_annote_2of2.noss.mea/acc_f1_i99.pdf 
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_conus_rnabench_RNaseP.50.A_uniform/TORNADO_TrB.noss.mea/acc_f1_i99.pdf
#
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_conus_rnabench_RNaseP.50.B_uniform/losses_i99.pdf
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_conus_rnabench_RNaseP.50.B_uniform/g6_params_i99.pdf 
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_conus_rnabench_RNaseP.50.B_uniform/trna1415_annote_2of2.noss.mea/acc_f1_i99.pdf 
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_conus_rnabench_RNaseP.50.B_uniform/TORNADO_TrB.noss.mea/acc_f1_i99.pdf 
#
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_conus_rnabench_RNaseP.50.C_uniform/losses_i99.pdf
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_conus_rnabench_RNaseP.50.C_uniform/g6_params_i99.pdf 
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_conus_rnabench_RNaseP.50.C_uniform/trna1415_annote_2of2.noss.mea/acc_f1_i99.pdf 
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_conus_rnabench_RNaseP.50.C_uniform/TORNADO_TrB.noss.mea/acc_f1_i99.pdf 
# 
#---------------------------------------------
for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g6  ; do \
for train in conus_rnabench_RNaseP.50.A conus_rnabench_RNaseP.50.B conus_rnabench_RNaseP.50.C ; do \
for test  in trna1415_annote_2of2 ; do \
for init  in uniform ; do \
    python3 -m grammars."$grm"."$grm"_plot_epoch "$grm"_optimize_param_"$train"_"$init" \
    --outdir "$outdir" \
    --train_data data/"$train".fa \
    --test_data data/"$test".noss.sto  \
    --vienna_sen 70.26 \
    --vienna_ppv 66.99 ;\
done
done
done
done
done


# G6
# train: conus_rnabench_RNaseP.50.C
# test:  TORNADO_TrB.noss.sto
#
# experiments/ViennaRNA-2.7.0/TORNADO_TrB.ViennaRNA.mea.sto.acc
# F 65.4124726971454 sen 74.42 ppv 58.35
#
# paramfile ML: ../../lib/tornado/notebook/05-2025/g6/TORNADO_conus_rnabench_RNaseP.50.A_g6.param
# sen 0.5660000000000001 ppv 0.5679 f1 0.5669484081488667
#
# paramfile ML: ../../lib/tornado/notebook/05-2025/g6/TORNADO_conus_rnabench_RNaseP.50.B_g6.param
# sen 0.5626 ppv 0.5821000000000001 f1 0.5721839084476282
#
# paramfile ML: ../../lib/tornado/notebook/05-2025/g6/TORNADO_conus_rnabench_RNaseP.50.C_g6.param
# sen 0.56 ppv 0.5611 f1 0.5605494603514406
#
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_conus_rnabench_RNaseP.50.A_uniform/TORNADO_TrB.noss.mea/acc_f1_i99.pdf 
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_conus_rnabench_RNaseP.50.B_uniform/TORNADO_TrB.noss.mea/acc_f1_i99.pdf 
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_conus_rnabench_RNaseP.50.C_uniform/TORNADO_TrB.noss.mea/acc_f1_i99.pdf 
# 
#---------------------------------------------
for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g6  ; do \
for train in conus_rnabench_RNaseP.50.A conus_rnabench_RNaseP.50.B conus_rnabench_RNaseP.50.C ; do \
for test  in TORNADO_TrB ; do \
for init  in uniform ; do \
    python3 -m grammars."$grm"."$grm"_plot_epoch "$grm"_optimize_param_"$train"_"$init" \
    --outdir "$outdir" \
    --train_data data/"$train".fa \
    --test_data data/"$test".noss.sto  \
    --vienna_sen 74.42 \
    --vienna_ppv 58.35 ;\
done
done
done
done
done



#---------------------------------------------------------------------------------------------------------------------
# FIGURE 3
#
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_TORNADO_7Fam.len0_400.nsq400_random/losses_i99.pdf 
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_TORNADO_7Fam.len0_400.nsq400_random/g6_params_i99.pdf 
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_TORNADO_7Fam.len0_400.nsq400_random/trna1415_annote_2of2.noss.mea/acc_f1_i99.pdf 
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_TORNADO_7Fam.len0_400.nsq400_random/TORNADO_TrB.noss.mea/acc_f1_i99.pdf 
#
#---------------------------------------------------------------------------------------------------------------------
# G6
# train: TORNADO_7Fam.len0_400.nsq400
# test: trna1415_annote_2of2
#---------------------------------------------
for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g6  ; do \
for train in  TORNADO_7Fam.len0_400.nsq400; do \
for test  in trna1415_annote_2of2 ; do \
for init  in random ; do \
    python3 -m grammars."$grm"."$grm"_plot_epoch "$grm"_optimize_param_"$train"_"$init" \
    --outdir "$outdir" \
    --train_data data/"$train".fa \
    --test_data data/"$test".noss.sto  \
    --pair_ymax 0.3 \
    --vienna_sen 70.26 \
    --vienna_ppv 66.99 ;\
done
done
done
done
done

# G6
# train: TORNADO_7Fam.len0_400.nsq400
# test:  TORNADO_TrB.noss.sto
#
# experiments/ViennaRNA-2.7.0/TORNADO_TrB.ViennaRNA.mea.sto.acc
# F 65.4124726971454 sen 74.42 ppv 58.35
#
# paramfile ML: ../../lib/tornado/notebook/05-2025/g6/TORNADO_TORNADO_7Fam.len0_400.nsq400_g6.param
# sen 0.5293 ppv 0.5926 f1 0.5591642392370086
#
#
#---------------------------------------------
for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g6  ; do \
for train in TORNADO_7Fam.len0_400.nsq400; do \
for test  in TORNADO_TrB ; do \
for init  in random ; do \
    python3 -m grammars."$grm"."$grm"_plot_epoch "$grm"_optimize_param_"$train"_"$init" \
    --outdir "$outdir" \
    --train_data data/"$train".fa \
    --test_data data/"$test".noss.sto  \
    --pair_ymax 0.3 \
    --vienna_sen 74.42 \
    --vienna_ppv 58.35 ;\
done
done
done
done
done



#---------------------------------------------------------------------------------------------------------------------
# FIGURE 4
#
# open ~/projects/d-SCFG_June2025/experiments/g5_optimize_param_conus_rnabench_RNaseP_uniform/losses_i99.pdf 
# open ~/projects/d-SCFG_June2025/experiments/g5_optimize_param_conus_rnabench_RNaseP_uniform/g5_params_i99.pdf 
# open ~/projects/d-SCFG_June2025/experiments/g5_optimize_param_conus_rnabench_RNaseP_uniform/trna1415_annote_2of2.noss.mea/acc_f1_i99.pdf 
# open ~/projects/d-SCFG_June2025/experiments/g5_optimize_param_conus_rnabench_RNaseP_uniform/TORNADO_TrB.noss.mea/acc_f1_i99.pdf 
#
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_conus_rnabench_RNaseP_uniform_shuffle/losses_i99.pdf
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_conus_rnabench_RNaseP_uniform_shuffle/g6_params_i99.pdf 
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_conus_rnabench_RNaseP_uniform_shuffle/trna1415_annote_2of2.noss.mea/acc_found_i99.pdf
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_conus_rnabench_RNaseP_uniform_shuffle/TORNADO_TrB.noss.mea/acc_found_i99.pdf
#
#
#---------------------------------------------------------------------------------------------------------------------
# G5
# train: conus_rnabench_RNaseP
# test: trna1415_annote_2of2
#---------------------------------------------
for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g5  ; do \
for train in conus_rnabench_RNaseP ; do \
for test  in trna1415_annote_2of2 ; do \
for init  in uniform ; do \
    python3 -m grammars."$grm"."$grm"_plot_epoch "$grm"_optimize_param_"$train"_"$init" \
    --outdir "$outdir" \
    --train_data data/"$train".fa \
    --test_data data/"$test".noss.sto  \
    --losses_ymin 10680 \
    --losses_ymax 10870 \
    --acc_ymin -0.03 \
    --acc_ymax 0.20 \
    --vienna_sen 70.26 \
    --vienna_ppv 66.99 ;\
done
done
done
done
done


# G5
# train: conus_rnabench_RNaseP
# test: TORNADO_TrB
# experiments/ViennaRNA-2.7.0/TORNADO_TrB.ViennaRNA.mea.sto.acc
# F 65.4124726971454 sen 74.42 ppv 58.35
#
#---------------------------------------------
for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g5  ; do \
for train in conus_rnabench_RNaseP ; do \
for test  in TORNADO_TrB ; do \
for init  in uniform ; do \
    python3 -m grammars."$grm"."$grm"_plot_epoch "$grm"_optimize_param_"$train"_"$init" \
    --outdir "$outdir" \
    --train_data data/"$train".fa \
    --test_data data/"$test".noss.sto  \
    --losses_ymin 10680 \
    --losses_ymax 10870 \
    --acc_ymin -0.03 \
    --acc_ymax 0.20 \
    --vienna_sen 74.42 \
    --vienna_ppv 58.35 ;\
done
done
done
done
done




# G6
# train: conus_rnabench_RNaseP
# test: trna1415_annote_2of2 SHUFFLED
#---------------------------------------------
for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g6  ; do \
for train in conus_rnabench_RNaseP ; do \
for test  in trna1415_annote_2of2 ; do \
for init  in uniform ; do \
    python3 -m grammars."$grm"."$grm"_plot_epoch "$grm"_optimize_param_"$train"_"$init"_shuffle \
    --outdir "$outdir" \
    --train_data data/"$train".fa \
    --test_data data/"$test".noss.sto  \
    --losses_ymin 10680 \
    --losses_ymax 10870 \
    --pair_ymax  0.340 \
    --vienna_sen 70.26 \
    --vienna_ppv 66.99 ;\
done
done
done
done
done



# G6
# train: conus_rnabench_RNaseP
# test: TORNADO_TrB SHUFFLED
#
# experiments/ViennaRNA-2.7.0/TORNADO_TrB.ViennaRNA.mea.sto.acc
# F 65.4124726971454 sen 74.42 ppv 58.35
#
#---------------------------------------------
for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g6  ; do \
for train in conus_rnabench_RNaseP ; do \
for test  in TORNADO_TrB ; do \
for init  in uniform ; do \
    python3 -m grammars."$grm"."$grm"_plot_epoch "$grm"_optimize_param_"$train"_"$init"_shuffle \
    --outdir "$outdir" \
    --train_data data/"$train".fa \
    --test_data data/"$test".noss.sto  \
    --losses_ymin 10680 \
    --losses_ymax 10870 \
    --pair_ymax  0.50 \
    --vienna_sen 74.42 \
    --vienna_ppv 58.35 ;\
done
done
done
done
done



#---------------------------------------------------------------------------------------------------------------------
# FIGURE 5
#
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_conus_rnabench_RNaseP_uniform/losses_i99.pdf
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_conus_rnabench_RNaseP_uniform/g6_params_i99.pdf 
#
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_conus_rnabench_RNaseP_uniform_shuffle/losses_i99.pdf
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_conus_rnabench_RNaseP_uniform_shuffle/g6_params_i99.pdf
#
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_S288C_chrVI_YFL014W.rm_v1.200_uniform/losses_i99.pdf
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_S288C_chrVI_YFL014W.rm_v1.200_uniform/g6_params_i99.pdf 
#
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_S288C_chrV_YER019C-A.rm_v1.200_uniform/losses_i99.pdf
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_S288C_chrV_YER019C-A.rm_v1.200_uniform/g6_params_i99.pdf 
#
#
#---------------------------------------------------------------------------------------------------------------------

# G6
# train: conus_rnabench_RNaseP
#
#-----------------------------------------------------------------------------------------------
for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g6  ; do \
for train in conus_rnabench_RNaseP ; do \
for init  in uniform ; do \
    python3 -m grammars."$grm"."$grm"_plot_epoch "$grm"_optimize_param_"$train"_"$init" \
    --outdir "$outdir" \
    --train_data data/"$train".fa \
    --losses_ymin 10640 \
    --losses_ymax 10900 \
    --pair_ymax  0.340 ;\
done
done
done
done


# G6
# train: conus_rnabench_RNaseP SHUFFLED
#
#-------------------------------------------------------------------------------------------------
for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g6  ; do \
for train in conus_rnabench_RNaseP ; do \
for init  in uniform ; do \
    python3 -m grammars."$grm"."$grm"_plot_epoch "$grm"_optimize_param_"$train"_"$init"_shuffle \
    --outdir "$outdir" \
    --train_data data/"$train".fa \
    --losses_ymin 10640 \
    --losses_ymax 10900 \
    --pair_ymax  0.340 ;\
done
done
done
done


# G6
# train: S288C_chrVI_YFL014W.rm_v1.200 == HSP12
#
#-----------------------------------------------------------------------------------------------
for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g6  ; do \
for train in S288C_chrVI_YFL014W.rm_v1.200 S288C_chrV_YER019C-A.rm_v1.200 ; do \
for init  in uniform ; do \
    python3 -m grammars."$grm"."$grm"_plot_epoch "$grm"_optimize_param_"$train"_"$init" \
    --outdir "$outdir" \
    --train_data ../../../../../projects/d-SCFG_June2025/data/coding/"$train".fa \
    --losses_xmax 105 \
    --pair_ymax 0.340 ;\ 
done
done
done
done
done

# G6
# train: S288C_chrVI_YFL014W.rm_v1.200 == SBH2
#
#---------------------------------------------------------------------------------------------
for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g6  ; do \
for train in S288C_chrVI_YFL014W.rm_v1.200 S288C_chrV_YER019C-A.rm_v1.200 ; do \
for init  in uniform ; do \
    python3 -m grammars."$grm"."$grm"_plot_epoch "$grm"_optimize_param_"$train"_"$init" \
    --outdir "$outdir" \
    --train_data ../../../../../projects/d-SCFG_June2025/data/coding/"$train".fa \
    --losses_xmax 105 \
    --pair_ymax 0.340 ;\ 
done
done
done
done
done


#---------------------------------------------------------------------------------------------------------------------
# FIGURE S1
#---------------------------------------------------------------------------------------------------------------------
# G6
# train: conus_rnabench_RNaseP.25.C
# test: trna1415_annote_2of2
#
#  experiments/ViennaRNA-2.7.0/trna1415_annote_2of2.ViennaRNA.mea.sto.acc
#  F 68.5860459016393 sen 70.26 ppv 66.99
#
# paramfile ML: ../../lib/tornado/notebook/05-2025/g6/TORNADO_conus_rnabench_RNaseP.25.A_g6.param
# sen 0.6688 ppv 0.8011 f1 0.728996094972447
#
# paramfile ML: ../../lib/tornado/notebook/05-2025/g6/TORNADO_conus_rnabench_RNaseP.25.B_g6.param
# sen 0.6556000000000001 ppv 0.7813 f1 0.7129518825248801
#
# paramfile ML: ../../lib/tornado/notebook/05-2025/g6/TORNADO_conus_rnabench_RNaseP.25.C_g6.param
# sen 0.7056999999999999 ppv 0.8062999999999999 f1 0.7526533201058201
#
#
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_conus_rnabench_RNaseP.25.A_uniform/losses_i99.pdf
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_conus_rnabench_RNaseP.25.A_uniform/g6_params_i99.pdf 
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_conus_rnabench_RNaseP.25.A_uniform/trna1415_annote_2of2.noss.mea/acc_f1_i99.pdf 
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_conus_rnabench_RNaseP.25.A_uniform/TORNADO_TrB.noss.mea/acc_f1_i99.pdf
#
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_conus_rnabench_RNaseP.25.B_uniform/losses_i99.pdf
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_conus_rnabench_RNaseP.25.B_uniform/g6_params_i99.pdf 
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_conus_rnabench_RNaseP.25.B_uniform/trna1415_annote_2of2.noss.mea/acc_f1_i99.pdf 
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_conus_rnabench_RNaseP.25.B_uniform/TORNADO_TrB.noss.mea/acc_f1_i99.pdf 
#
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_conus_rnabench_RNaseP.25.C_uniform/losses_i99.pdf
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_conus_rnabench_RNaseP.25.C_uniform/g6_params_i99.pdf 
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_conus_rnabench_RNaseP.25.C_uniform/trna1415_annote_2of2.noss.mea/acc_f1_i99.pdf 
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_conus_rnabench_RNaseP.25.C_uniform/TORNADO_TrB.noss.mea/acc_f1_i99.pdf 
# 
#---------------------------------------------
for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g6  ; do \
for train in conus_rnabench_RNaseP.25.A conus_rnabench_RNaseP.25.B conus_rnabench_RNaseP.25.C ; do \
for test  in trna1415_annote_2of2 ; do \
for init  in uniform ; do \
    python3 -m grammars."$grm"."$grm"_plot_epoch "$grm"_optimize_param_"$train"_"$init" \
    --outdir "$outdir" \
    --train_data data/"$train".fa \
    --test_data data/"$test".noss.sto  \
    --vienna_sen 70.26 \
    --vienna_ppv 66.99 ;\
done
done
done
done
done


# G6
# train: conus_rnabench_RNaseP.25.C
# test:  TORNADO_TrB.noss.sto
#
# experiments/ViennaRNA-2.7.0/TORNADO_TrB.ViennaRNA.mea.sto.acc
# F 65.4124726971454 sen 74.42 ppv 58.35
#
# paramfile ML: ../../lib/tornado/notebook/05-2025/g6/TORNADO_conus_rnabench_RNaseP.25.A_g6.param
# sen 0.5422 ppv 0.5828 f1 0.5617673955555555
#
# paramfile ML: ../../lib/tornado/notebook/05-2025/g6/TORNADO_conus_rnabench_RNaseP.25.B_g6.param
# sen 0.5404 ppv 0.5871999999999999 f1 0.5628288045406172
#
# paramfile ML: ../../lib/tornado/notebook/05-2025/g6/TORNADO_conus_rnabench_RNaseP.25.C_g6.param
# sen 0.58 ppv 0.5795 f1 0.5797498921949117
#
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_conus_rnabench_RNaseP.25.A_uniform/TORNADO_TrB.noss.mea/acc_f1_i99.pdf 
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_conus_rnabench_RNaseP.25.B_uniform/TORNADO_TrB.noss.mea/acc_f1_i99.pdf 
# open ~/projects/d-SCFG_June2025/experiments/g6_optimize_param_conus_rnabench_RNaseP.25.C_uniform/TORNADO_TrB.noss.mea/acc_f1_i99.pdf 
# 
#---------------------------------------------
for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g6  ; do \
for train in conus_rnabench_RNaseP.25.A conus_rnabench_RNaseP.25.B conus_rnabench_RNaseP.25.C ; do \
for test  in TORNADO_TrB ; do \
for init  in uniform ; do \
    python3 -m grammars."$grm"."$grm"_plot_epoch "$grm"_optimize_param_"$train"_"$init" \
    --outdir "$outdir" \
    --train_data data/"$train".fa \
    --test_data data/"$test".noss.sto  \
    --vienna_sen 74.42 \
    --vienna_ppv 58.35 ;\
done
done
done
done
done


#-------------------------------------------------------------------------------------
# TIME to training 99 epochs
#--------------------------------------------------------------------------------------

# for 50 RNaseP
# (no testing)
#
# time
# real	240m14.260s
# user	228m41.480s
# sys	75m22.151s
#
# real	312m4.584s
# user	227m3.040s
# sys	73m6.553s
#
# real	241m29.765s
# user	228m45.723s
# sys	76m32.536s
#
#  real       = 240 mins = 4 hours
#  user + sys = 228 + 76 = 304 mins = 5 hours
#
#----------------------------------------------
for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g6  ; do \
for train in conus_rnabench_RNaseP.50.A ; do \
for init in uniform ; do \
    time python3 -m grammars."$grm"."$grm"_optimize_param "$grm"_optimize_param_"$train"_"$init"_time \
    --outdir "$outdir" \
    --train_data data/"$train".fa \
    --grm_file     ../../lib/tornado/grammars/"$grm.grm" \
    --init_"$init"  \
    ;\
done
done
done
done



# for 225 RNaseP
# (no testing)
#
# time
#
#----------------------------------------------
for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g6  ; do \
for train in conus_rnabench_RNaseP ; do \
for init in uniform ; do \
    time python3 -m grammars."$grm"."$grm"_optimize_param "$grm"_optimize_param_"$train"_"$init"_time \
    --outdir "$outdir" \
    --train_data data/"$train".fa \
    --grm_file     ../../lib/tornado/grammars/"$grm.grm" \
    --init_"$init"   \
    ;\
done
done
done
done

# for TORNADO_7Fam.len0_400.nsq400
# (no testing)
#
# time
# real	938m25.027s
# user	970m57.994s
# sys	220m29.186s
#
#  real       = 938 mins = 15.6 hours
#  user + sys = 970 + 22 = 1190 mins = 19.8 hours
#
#----------------------------------------------
for outdir in ../../../../../projects/d-SCFG_June2025/experiments ; do \
for grm in g6  ; do \
for train in TORNADO_7Fam.len0_400.nsq400 ; do \
for init  in uniform ; do \
    time python3 -m grammars."$grm"."$grm"_optimize_param "$grm"_optimize_param_"$train"_"$init"_time \
    --outdir "$outdir" \
    --train_data data/"$train".fa \
    --grm_file     ../../lib/tornado/grammars/"$grm.grm" \
    --init_"$init"  \
    ;\
done
done
done
done
