Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
metaclade2
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Riccardo Vicedomini
metaclade2
Commits
c5fd75e9
Commit
c5fd75e9
authored
Apr 25, 2020
by
Riccardo Vicedomini
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
scripts are automatically run locally if --sge option is not used
parent
53c6ca05
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
58 additions
and
43 deletions
+58
-43
metaclade2
metaclade2
+58
-43
No files found.
metaclade2
View file @
c5fd75e9
...
...
@@ -13,6 +13,12 @@
# with MetaCLADE2. If not, see <https://cecill.info/>.
#
# Pressing CTRL-C will stop the whole execution of the script
trap
ctrl_c INT
;
function
ctrl_c
()
{
exit
5
;
}
# Exit from this script causes child processes (pending jobs) to stop execution
trap
'kill $(jobs -p)'
EXIT
CMD_DIR
=
$(
cd
"
$(
dirname
"
${
BASH_SOURCE
[0]
}
"
)
"
&&
pwd
)
CMD_NAME
=
$(
basename
"
${
BASH_SOURCE
[0]
}
"
)
SCRIPTS_DIR
=
"
${
CMD_DIR
}
"
/scripts
...
...
@@ -20,9 +26,6 @@ SCRIPTS_DIR="${CMD_DIR}"/scripts
# Include common definitions
source
"
${
CMD_DIR
}
/metaclade2-common"
# Pressing CTRL-C will stop the whole execution of the script
trap
ctrl_c INT
;
function
ctrl_c
()
{
exit
5
;
}
# Definition of functions and global variables specific to this script
MCLADE_LIB_PATH
=
""
...
...
@@ -235,47 +238,56 @@ print_status "MetaCLADE working directory: ${MCLADE_WORKDIR}"
print_status
"creating MetaCLADE script/job files"
python3
"
${
SCRIPTS_DIR
}
/mclade_create_jobs.py"
-i
"
${
INPUT_FASTA
}
"
-N
"
${
MCLADE_JOBNAME
}
"
${
MCLADE_DOMARG
}
-W
"
${
MCLADE_WORKDIR
}
"
-e
"
${
MCLADE_EVALUECUTOFF
}
"
-E
"
${
MCLADE_EVALUECUTCONF
}
"
-j
"
${
NJOBS
}
"
${
MCLADE_DAMAARG
}
# Possibly run MetaCLADE scripts in a SGE environment
if
[
"
${
MCLADE_USESGE
}
"
=
true
]
;
then
# submit search jobs
print_status
"submitting search jobs"
pidarr
=()
for
i
in
$(
seq 1
${
NJOBS
})
;
do
f
=
"
${
MCLADE_WORKDIR
}
/jobs/1_search/
${
MCLADE_JOBNAME
}
_
${
i
}
.sh"
# run a qsub job for each non-empty script
if
[
-f
"
${
f
}
"
]
&&
[
-s
"
${
f
}
"
]
;
then
CMD
=
"
${
PEXEC_CMD
}
${
f
}
"
qsub
$SGE_QUEUEARG
$SGE_TIMELIMARG
-e
${
MCLADE_WORKDIR
}
/log/search_
${
i
}
.err
-o
${
MCLADE_WORKDIR
}
/log/search_
${
i
}
.out
-cwd
-sync
yes
-N
${
MCLADE_JOBNAME
}
-pe
${
SGE_PENAME
}
${
NTHREADS
}
-b
y
"
${
CMD
}
"
2>&1
>
"
${
MCLADE_WORKDIR
}
/log/search_qsub_
${
i
}
.log"
&
# Run MetaCLADE scripts (possibly using SGE)
## SEARCH JOBS
print_status
"running search jobs"
pidarr
=()
for
i
in
$(
seq 1
${
NJOBS
})
;
do
f
=
"
${
MCLADE_WORKDIR
}
/jobs/1_search/
${
MCLADE_JOBNAME
}
_
${
i
}
.sh"
# run a qsub job for each non-empty script
if
[
-f
"
${
f
}
"
]
&&
[
-s
"
${
f
}
"
]
;
then
CMD
=
"
${
PEXEC_CMD
}
${
f
}
"
if
[
"
${
MCLADE_USESGE
}
"
=
true
]
;
then
(
qsub
$SGE_QUEUEARG
$SGE_TIMELIMARG
-e
${
MCLADE_WORKDIR
}
/log/search_
${
i
}
.err
-o
${
MCLADE_WORKDIR
}
/log/search_
${
i
}
.out
-cwd
-sync
yes
-N
${
MCLADE_JOBNAME
}
-pe
${
SGE_PENAME
}
${
NTHREADS
}
-b
y
"
${
CMD
}
"
&>
"
${
MCLADE_WORKDIR
}
/log/search_qsub_
${
i
}
.log"
)
&
pid
=
$!
pidarr[
$i
]=
$pid
else
${
CMD
}
>
"
${
MCLADE_WORKDIR
}
/log/search_
${
i
}
.out"
2>
"
${
MCLADE_WORKDIR
}
/log/search_
${
i
}
.err"
cmdret
=
$?
;
if
((
cmdret
!=
0
))
;
then
print_error
"search job
${
i
}
failed (exit status:
${
cmdret
}
)"
;
exit
1
;
fi
fi
done
# wait search jobs to finish
print_status
"waiting the search jobs to finish"
fi
done
# wait search jobs to finish
if
[
"
${
MCLADE_USESGE
}
"
=
true
]
;
then
print_status
"waiting search jobs to finish"
for
i
in
${
!pidarr[@]
}
;
do
wait
${
pidarr
[
${
i
}
]
}
pret
=
$?
if
((
pret
!=
0
))
;
then
echo
"search job
${
i
}
failed (exit status:
${
pret
}
)"
exit
1
fi
pret
=
$?
;
if
((
pret
!=
0
))
;
then
print_error
"search job
${
i
}
failed (exit status:
${
pret
}
)"
;
exit
1
;
fi
done
print_status
"search jobs finished successfully"
fi
print_status
"search jobs finished successfully"
# submit filter jobs
print_status
"submitting filter ijobs"
unset
pidarr
;
pidarr
=()
for
i
in
$(
seq 1
${
NJOBS
})
;
do
f
=
"
${
MCLADE_WORKDIR
}
/jobs/2_filter/
${
MCLADE_JOBNAME
}
_
${
i
}
.sh"
# run a qsub job for each non-empty script
if
[
-f
"
${
f
}
"
]
&&
[
-s
"
${
f
}
"
]
;
then
CMD
=
"
${
PEXEC_CMD
}
${
f
}
"
## FILTER JOBS
print_status
"running filter jobs"
unset
pidarr
;
pidarr
=()
for
i
in
$(
seq 1
${
NJOBS
})
;
do
f
=
"
${
MCLADE_WORKDIR
}
/jobs/2_filter/
${
MCLADE_JOBNAME
}
_
${
i
}
.sh"
# run a qsub job for each non-empty script
if
[
-f
"
${
f
}
"
]
&&
[
-s
"
${
f
}
"
]
;
then
CMD
=
"
${
PEXEC_CMD
}
${
f
}
"
if
[
"
${
MCLADE_USESGE
}
"
=
true
]
;
then
qsub
$SGE_QUEUEARG
$SGE_TIMELIMARG
-e
"
${
MCLADE_WORKDIR
}
/log/filter_
${
i
}
.err"
-o
"
${
MCLADE_WORKDIR
}
/log/filter_
${
i
}
.out"
-cwd
-sync
yes
-N
${
MCLADE_JOBNAME
}
-pe
${
SGE_PENAME
}
${
NTHREADS
}
-b
y
"
${
CMD
}
"
2>&1
>
"
${
MCLADE_WORKDIR
}
/log/filter_qsub_
${
i
}
.log"
&
pid
=
$!
pidarr[
$i
]=
$pid
else
${
CMD
}
>
"
${
MCLADE_WORKDIR
}
/log/filter_
${
i
}
.out"
2>
"
${
MCLADE_WORKDIR
}
/log/filter_
${
i
}
.err"
cmdret
=
$?
;
if
((
cmdret
!=
0
))
;
then
print_error
"filter job
${
i
}
failed (exit status:
${
cmdret
}
)"
;
exit
1
;
fi
fi
done
# wait search jobs to finish
fi
done
# wait search jobs to finish
if
[
"
${
MCLADE_USESGE
}
"
=
true
]
;
then
print_status
"waiting the filter jobs to finish"
for
i
in
${
!pidarr[@]
}
;
do
wait
${
pidarr
[
${
i
}
]
}
...
...
@@ -285,16 +297,19 @@ if [ "${MCLADE_USESGE}" = true ] ; then
exit
1
fi
done
print_status
"search jobs finished successfully"
fi
print_status
"search jobs finished successfully"
# create architecture
print_status
"computing architecture"
f
=
"
${
MCLADE_WORKDIR
}
/jobs/3_arch/
${
MCLADE_JOBNAME
}
.sh"
## ARCHITECTURE JOBS
print_status
"running architecture job"
f
=
"
${
MCLADE_WORKDIR
}
/jobs/3_arch/
${
MCLADE_JOBNAME
}
.sh"
if
[
"
${
MCLADE_USESGE
}
"
=
true
]
;
then
qsub
$SGE_QUEUEARG
$SGE_TIMELIMARG
-e
"
${
MCLADE_WORKDIR
}
/log/arch.err"
-o
"
${
MCLADE_WORKDIR
}
/log/arch.out"
-cwd
-sync
yes
-N
${
MCLADE_JOBNAME
}
-pe
${
SGE_PENAME
}
1
-b
y
${
PEXEC_CMD
}
${
f
}
2>&1
>>
"
${
MCLADE_WORKDIR
}
/log/arch_qsub.log"
qret
=
$?
if
((
qret
!=
0
))
;
then
echo
"architecture job failed (exit status:
${
qret
}
)"
exit
1
fi
print_status
"architecture job finished successfully"
qret
=
$?
;
if
((
qret
!=
0
))
;
then
print_error
"architecture job failed (exit status:
${
qret
}
)"
;
exit
1
;
fi
else
${
PEXEC_CMD
}
${
f
}
2>
"
${
MCLADE_WORKDIR
}
/log/arch.out"
>
"
${
MCLADE_WORKDIR
}
/log/arch.err"
cmdret
=
$?
;
if
((
cmdret
!=
0
))
;
then
print_error
"architecture job failed (exit status:
${
cmdret
}
)"
;
exit
1
;
fi
fi
print_status
"architecture job finished successfully"
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment