| | #!/bin/bash |
| | |
| | |
| | |
| | |
| | |
| | IFS=',' read -ra arr <<< $2 |
| | output_folder=$3 |
| | mkdir -p $output_folder |
| | CUDA_VISIBLE_DEVICES=$4 |
| | echo "CUDA_VISIBLE_DEVICES="$CUDA_VISIBLE_DEVICES |
| | if [ -z "$5" ]; then |
| | echo "Check if tasks have finished" |
| | fi |
| | for seed in {0..4} |
| | do |
| | for gene in ${arr[@]} |
| | do |
| | logdir=$(cat $1/$gene/$gene.seed.$seed.yaml | grep log_dir | sed 's/.*: //') |
| | num_epochs=$(cat $1/$gene/$gene.seed.$seed.yaml | grep num_epochs | sed 's/.*: //') |
| | data_type=$(cat $1/$gene/$gene.seed.$seed.yaml | grep data_type | sed 's/.*: //') |
| | if [[ $data_type == "GLOF" ]]; then |
| | echo "Begin "$gene |
| | |
| | if [[ -z "$5" ]] && [[ -f $logdir/FOLD.3/model.epoch.$num_epochs.pt ]]; then |
| | echo "Skip "$gene |
| | else |
| | echo "Run "$gene |
| | python -W ignore::UserWarning:torch_geometric.data.collate:147 train.py --conf $1/$gene/$gene.seed.$seed.yaml --mode train_4_fold |
| | fi |
| | echo "Begin large window of "$gene |
| | logdir=$(cat $1/$gene/$gene.seed.$seed.large.window.yaml | grep log_dir | sed 's/.*: //') |
| | num_epochs=$(cat $1/$gene/$gene.seed.$seed.large.window.yaml | grep num_epochs | sed 's/.*: //') |
| | |
| | if [[ -z "$5" ]] && [[ -f $logdir/FOLD.3/model.epoch.$num_epochs.pt ]]; then |
| | echo "Skip large window of "$gene |
| | else |
| | echo "Run large window of "$gene |
| | python -W ignore::UserWarning:torch_geometric.data.collate:147 train.py --conf $1/$gene/$gene.seed.$seed.large.window.yaml --mode train_4_fold |
| | fi |
| | else |
| | |
| | echo "Begin "$gene |
| | if [[ -z "$5" ]] && [[ -f $logdir/model.epoch.$num_epochs.pt ]]; then |
| | echo "Skip "$gene |
| | else |
| | echo "Run "$gene |
| | python -W ignore::UserWarning:torch_geometric.data.collate:147 train.py --conf $1/$gene/$gene.seed.$seed.yaml --mode continue_train |
| | fi |
| | fi |
| | done |
| | done |
| | |
| | for seed in {0..4} |
| | do |
| | for gene in ${arr[@]} |
| | do |
| | echo "Begin "$gene |
| | logdir=$(cat $1/$gene/$gene.seed.$seed.yaml | grep log_dir | sed 's/.*: //') |
| | num_epochs=$(cat $1/$gene/$gene.seed.$seed.yaml | grep num_epochs | sed 's/.*: //') |
| | data_type=$(cat $1/$gene/$gene.seed.$seed.yaml | grep data_type | sed 's/.*: //') |
| | data_file_train=$(cat $1/$gene/$gene.seed.$seed.yaml | grep data_file_train: | sed 's/.*: //') |
| | |
| | if [[ $data_type == "GLOF" ]]; then |
| | |
| | if [[ -f $logdir/FOLD.0/model.epoch.$num_epochs.pt ]] && [[ -f $logdir/FOLD.1/model.epoch.$num_epochs.pt ]] && [[ -f $logdir/FOLD.2/model.epoch.$num_epochs.pt ]] && [[ -f $logdir/FOLD.3/model.epoch.$num_epochs.pt ]] && [[ ! -f $output_folder/$gene.training.seed.$seed.csv ]]; then |
| | echo "Begin inference "$gene |
| | python -W ignore::UserWarning:torch_geometric.data.collate:147 train.py --conf $1/$gene/$gene.seed.$seed.yaml --mode interpret_4_fold --interpret-by both --out-dir $output_folder/$gene.testing.seed.$seed.csv |
| | python -W ignore::UserWarning:torch_geometric.data.collate:147 train.py --conf $1/$gene/$gene.seed.$seed.yaml --mode interpret_4_fold --interpret-by both --data-file-test $data_file_train --out-dir $output_folder/$gene.training.seed.$seed.csv |
| | else |
| | echo "Not finished "$gene |
| | fi |
| | echo "Begin large window of "$gene |
| | logdir=$(cat $1/$gene/$gene.seed.$seed.large.window.yaml | grep log_dir | sed 's/.*: //') |
| | num_epochs=$(cat $1/$gene/$gene.seed.$seed.large.window.yaml | grep num_epochs | sed 's/.*: //') |
| | |
| | if [[ -f $logdir/FOLD.0/model.epoch.$num_epochs.pt ]] && [[ -f $logdir/FOLD.1/model.epoch.$num_epochs.pt ]] && [[ -f $logdir/FOLD.2/model.epoch.$num_epochs.pt ]] && [[ -f $logdir/FOLD.3/model.epoch.$num_epochs.pt ]] && [[ ! -f $output_folder/$gene.training.seed.$seed.large.window.csv ]]; then |
| | echo "Begin inference large window of "$gene |
| | python -W ignore::UserWarning:torch_geometric.data.collate:147 train.py --conf $1/$gene/$gene.seed.$seed.large.window.yaml --mode interpret_4_fold --interpret-by both --out-dir $output_folder/$gene.testing.seed.$seed.large.window.csv |
| | python -W ignore::UserWarning:torch_geometric.data.collate:147 train.py --conf $1/$gene/$gene.seed.$seed.large.window.yaml --mode interpret_4_fold --interpret-by both --data-file-test $data_file_train --out-dir $output_folder/$gene.training.seed.$seed.large.window.csv |
| | else |
| | echo "Not finished large window of "$gene |
| | fi |
| | else |
| | |
| | |
| | if [[ -f $logdir/model.epoch.$num_epochs.pt ]] && [[ ! -f $output_folder/$gene.testing.seed.$seed.csv ]]; then |
| | echo "Begin inference "$gene |
| | python -W ignore::UserWarning:torch_geometric.data.collate:147 train.py --conf $1/$gene/$gene.seed.$seed.yaml --mode interpret --interpret-by both --out-dir $output_folder/$gene.testing.seed.$seed.csv |
| | else |
| | echo "Not finished "$gene |
| | fi |
| | fi |
| | done |
| | done |
| | |
| | |
| | conda_home=$(conda info --base) |
| | for gene in ${arr[@]}; do |
| | $conda_home/envs/r4-base/bin/Rscript scripts/run.new.task.R $1/$gene/$gene $output_folder |
| | done |