Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
P
panacota
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Amandine PERRIN
panacota
Commits
89311b6b
Commit
89311b6b
authored
4 years ago
by
Amandine PERRIN
Browse files
Options
Downloads
Patches
Plain Diff
complete func tests for annotate module
parent
d994bf77
Branches
prodigal_train
Branches containing commit
Tags
Tags containing commit
No related merge requests found
Pipeline
#42530
passed
4 years ago
Stage: test
Stage: coverage
Changes
1
Pipelines
2
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
test/test_functional/test_annote.py
+231
-38
231 additions, 38 deletions
test/test_functional/test_annote.py
with
231 additions
and
38 deletions
test/test_functional/test_annote.py
+
231
−
38
View file @
89311b6b
...
...
@@ -342,6 +342,10 @@ def test_main_onexistingprodigaldir(capsys):
Test that, when the pipeline is run with a given prodigal dir, where prodigal results already
exist, and are ok, all runs well, no re-annotation, just format
- trains
- no re-annotation
- format
main function arguments:
cmd, list_file, db_path, res_dir, name, date, l90=100, nbcont=999, cutn=5,
threads=1, force=False, qc_only=False, from_info=None, tmp_dir=None, res_annot_dir=None,
...
...
@@ -377,6 +381,13 @@ def test_main_onexistingprodigaldir(capsys):
"
PanACoTA-annotate_list_genomes-func-test-exist_dir.log.details
"
)
with
open
(
logfile
,
"
r
"
)
as
lc
:
log_content
=
lc
.
readlines
()
assert
(
"
Prodigal will train using
"
"
test/data/annotate/genomes/H299_H561.fasta
"
)
in
"
"
.
join
(
log_content
)
assert
(
"
prodigal command: prodigal -i test/data/annotate/genomes/H299_H561.fasta
"
"
-t test/data/annotate/generated_by_func-tests/results-prodigal/H299_H561.fasta.trn
"
)
assert
(
"
Error while trying to train prodigal on H299_H561.fasta.
"
"
See test/data/annotate/generated_by_func-tests/results-prodigal/
"
"
H299_H561.fasta.trn-prodigal-train.log.err
"
)
in
"
"
.
join
(
log_content
)
assert
(
"
Prodigal results folder test/data/annotate/generated_by_func-tests/
"
"
results-prodigal/H299_H561.fasta-prodigalRes
"
"
already exists
"
)
in
"
"
.
join
(
log_content
)
...
...
@@ -385,6 +396,8 @@ def test_main_onexistingprodigaldir(capsys):
"
H299_H561.fasta-prodigalRes.
"
"
If you want to re-run Prodigal, first remove this result folder, or use
'
-F
'
or
"
"'
--force
'
option.
"
)
in
'
'
.
join
(
log_content
)
assert
"
Formatting all genomes
"
in
"
"
.
join
(
log_content
)
assert
"
Annotation step done
"
in
"
"
.
join
(
log_content
)
def
test_main_onexistingprodigaldir_train_exists
(
capsys
):
...
...
@@ -392,6 +405,10 @@ def test_main_onexistingprodigaldir_train_exists(capsys):
Test that, when the pipeline is run with a given prodigal dir, where prodigal results already
exist, and are ok, all runs well, no re-annotation, just format
- no train
- no reannote
- format
2 genomes in list file: B2_A3_5.fasta-changeName.fna and H299_H561.fasta
"""
# FOLDER with all results
...
...
@@ -441,46 +458,222 @@ def test_main_onexistingprodigaldir_train_exists(capsys):
"
H299_H561.fasta-prodigalRes.
"
"
If you want to re-run Prodigal, first remove this result folder, or use
'
-F
'
or
"
"'
--force
'
option.
"
)
in
'
'
.
join
(
log_content
)
assert
"
Formatting all genomes
"
in
"
"
.
join
(
log_content
)
assert
"
Annotation step done
"
in
"
"
.
join
(
log_content
)
def
test_main_prodigal_train_empty
(
capsys
):
"""
Test that, when the pipeline is run with a given prodigal dir, where prodigal results do
not exist, and the given trn file is empty
-> error, with prodigal command
- no train
- try reannote but fails -> exits
2 genomes in list file: B2_A3_5.fasta-changeName.fna and H299_H561.fasta
"""
# FOLDER with all results
# Create result folder, with empty trn file
res_folder
=
os
.
path
.
join
(
GENEPATH
,
"
results-prodigal
"
)
os
.
makedirs
(
res_folder
)
trn_file
=
os
.
path
.
join
(
res_folder
,
"
H299_H561.fasta.trn
"
)
open
(
trn_file
,
"
w
"
).
close
()
# Function arguments
list_file
=
os
.
path
.
join
(
TEST_DIR
,
"
list_genomes-func-test-exist_dir.txt
"
)
name
=
"
ESCO
"
date
=
"
0417
"
lstout
=
os
.
path
.
join
(
GENEPATH
,
"
LSTINFO-list_genomes-func-test-exist_dir.lst
"
)
lstexp
=
os
.
path
.
join
(
EXP_DIR
,
"
exp_LSTINFO-func-annot_exists-prokkadir.lst
"
)
with
pytest
.
raises
(
SystemExit
):
annot
.
main
(
"
cmd
"
,
list_file
,
GEN_PATH
,
GENEPATH
,
name
,
date
,
cutn
=
0
,
res_annot_dir
=
res_folder
,
verbose
=
3
,
prodigal_only
=
True
)
out
,
err
=
capsys
.
readouterr
()
# Test that result files are in result dir
assert
os
.
path
.
isfile
(
lstout
)
assert
tutil
.
compare_order_content
(
lstout
,
lstexp
)
logfile
=
os
.
path
.
join
(
GENEPATH
,
"
PanACoTA-annotate_list_genomes-func-test-exist_dir.log.details
"
)
# Check logs
with
open
(
logfile
,
"
r
"
)
as
lc
:
log_content
=
lc
.
readlines
()
assert
(
"
A training file already exists (test/data/annotate/generated_by_func-tests/
"
"
results-prodigal/H299_H561.fasta.trn). It will be used to annotate
"
"
all genomes.
"
)
in
"
"
.
join
(
log_content
)
assert
(
"
Start annotating ESCO.1116.00002 (from test/data/annotate/genomes/
"
"
B2_A3_5.fasta-changeName.fna sequence) with Prodigal
"
)
in
"
"
.
join
(
log_content
)
assert
(
"
Start annotating ESCO.1015.00001 (from test/data/annotate/genomes/
"
"
H299_H561.fasta sequence) with Prodigal
"
)
in
"
"
.
join
(
log_content
)
assert
(
"
Prodigal command:
"
"
prodigal -i test/data/annotate/genomes/B2_A3_5.fasta-changeName.fna
"
"
-d test/data/annotate/generated_by_func-tests/results-prodigal/
"
"
B2_A3_5.fasta-changeName.fna-prodigalRes/ESCO.1116.00002.ffn
"
"
-a test/data/annotate/generated_by_func-tests/results-prodigal/
"
"
B2_A3_5.fasta-changeName.fna-prodigalRes/ESCO.1116.00002.faa
"
"
-f gff -o test/data/annotate/generated_by_func-tests/results-prodigal/
"
"
B2_A3_5.fasta-changeName.fna-prodigalRes/ESCO.1116.00002.gff
"
"
-t test/data/annotate/generated_by_func-tests/results-prodigal/H299_H561.fasta.trn
"
"
-q
"
)
in
"
"
.
join
(
log_content
)
assert
(
"
Prodigal command:
"
"
prodigal -i test/data/annotate/genomes/H299_H561.fasta
"
"
-d test/data/annotate/generated_by_func-tests/results-prodigal/
"
"
H299_H561.fasta-prodigalRes/ESCO.1015.00001.ffn
"
"
-a test/data/annotate/generated_by_func-tests/results-prodigal/
"
"
H299_H561.fasta-prodigalRes/ESCO.1015.00001.faa
"
"
-f gff -o test/data/annotate/generated_by_func-tests/results-prodigal/
"
"
H299_H561.fasta-prodigalRes/ESCO.1015.00001.gff
"
"
-t test/data/annotate/generated_by_func-tests/results-prodigal/H299_H561.fasta.trn
"
"
-q
"
)
in
"
"
.
join
(
log_content
)
assert
(
"
Error while trying to run prodigal. See test/data/annotate/generated_by_func-tests/
"
"
results-prodigal/H299_H561.fasta-prodigal.log.err.
"
)
in
"
"
.
join
(
log_content
)
assert
(
"
Error while trying to run prodigal. See test/data/annotate/generated_by_func-tests/
"
"
results-prodigal/
"
"
B2_A3_5.fasta-changeName.fna-prodigal.log.err
"
)
in
"
"
.
join
(
log_content
)
assert
(
"
No genome was correctly annotated, no need to format them.
"
)
in
"
"
.
join
(
log_content
)
def
test_main_prodigal_train_ok
(
capsys
):
"""
Test that, when the pipeline is run with a given prodigal dir, where prodigal results already
exist, and are ok, all runs well, no re-annotation, just format
- no train
- reannotate
- format
2 genomes in list file: B2_A3_5.fasta-changeName.fna and H299_H561.fasta
"""
# FOLDER with all results
# Create result folder, with existing prodigal folders (which are OK)
res_folder
=
os
.
path
.
join
(
GENEPATH
,
"
results-prodigal
"
)
os
.
makedirs
(
res_folder
)
# Add a valid training file in result folder
orig_trn_file
=
os
.
path
.
join
(
EXP_DIR
,
"
exp_complete_genome_big.fna.trn
"
)
trn_file
=
os
.
path
.
join
(
res_folder
,
"
H299_H561.fasta.trn
"
)
shutil
.
copyfile
(
orig_trn_file
,
trn_file
)
# Function arguments
list_file
=
os
.
path
.
join
(
TEST_DIR
,
"
list_genomes-func-test-exist_dir.txt
"
)
name
=
"
ESCO
"
date
=
"
0417
"
lstout
=
os
.
path
.
join
(
GENEPATH
,
"
LSTINFO-list_genomes-func-test-exist_dir.lst
"
)
lstexp
=
os
.
path
.
join
(
EXP_DIR
,
"
exp_LSTINFO-func-annot_exists-prokkadir.lst
"
)
assert
annot
.
main
(
"
cmd
"
,
list_file
,
GEN_PATH
,
GENEPATH
,
name
,
date
,
cutn
=
0
,
res_annot_dir
=
res_folder
,
verbose
=
3
,
prodigal_only
=
True
)
==
(
lstout
,
2
)
out
,
err
=
capsys
.
readouterr
()
# Check that tmp files folder is empty (prokka res are somewhere else)
assert
len
(
os
.
listdir
(
os
.
path
.
join
(
GENEPATH
,
"
tmp_files
"
)))
==
0
# Test that result files are in result dir
assert
os
.
path
.
isfile
(
lstout
)
assert
tutil
.
compare_order_content
(
lstout
,
lstexp
)
logfile
=
os
.
path
.
join
(
GENEPATH
,
"
PanACoTA-annotate_list_genomes-func-test-exist_dir.log.details
"
)
with
open
(
logfile
,
"
r
"
)
as
lc
:
log_content
=
lc
.
readlines
()
assert
(
"
A training file already exists (test/data/annotate/generated_by_func-tests/
"
"
results-prodigal/H299_H561.fasta.trn). It will be used to annotate
"
"
all genomes.
"
)
in
"
"
.
join
(
log_content
)
assert
(
"
Start annotating ESCO.1116.00002 (from test/data/annotate/genomes/
"
"
B2_A3_5.fasta-changeName.fna sequence) with Prodigal
"
)
in
"
"
.
join
(
log_content
)
assert
(
"
Start annotating ESCO.1015.00001 (from test/data/annotate/genomes/
"
"
H299_H561.fasta sequence) with Prodigal
"
)
in
"
"
.
join
(
log_content
)
assert
(
"
Prodigal command:
"
"
prodigal -i test/data/annotate/genomes/B2_A3_5.fasta-changeName.fna
"
"
-d test/data/annotate/generated_by_func-tests/results-prodigal/
"
"
B2_A3_5.fasta-changeName.fna-prodigalRes/ESCO.1116.00002.ffn
"
"
-a test/data/annotate/generated_by_func-tests/results-prodigal/
"
"
B2_A3_5.fasta-changeName.fna-prodigalRes/ESCO.1116.00002.faa
"
"
-f gff -o test/data/annotate/generated_by_func-tests/results-prodigal/
"
"
B2_A3_5.fasta-changeName.fna-prodigalRes/ESCO.1116.00002.gff
"
"
-t test/data/annotate/generated_by_func-tests/results-prodigal/H299_H561.fasta.trn
"
"
-q
"
)
in
"
"
.
join
(
log_content
)
assert
(
"
Prodigal command:
"
"
prodigal -i test/data/annotate/genomes/H299_H561.fasta
"
"
-d test/data/annotate/generated_by_func-tests/results-prodigal/
"
"
H299_H561.fasta-prodigalRes/ESCO.1015.00001.ffn
"
"
-a test/data/annotate/generated_by_func-tests/results-prodigal/
"
"
H299_H561.fasta-prodigalRes/ESCO.1015.00001.faa
"
"
-f gff -o test/data/annotate/generated_by_func-tests/results-prodigal/
"
"
H299_H561.fasta-prodigalRes/ESCO.1015.00001.gff
"
"
-t test/data/annotate/generated_by_func-tests/results-prodigal/H299_H561.fasta.trn
"
"
-q
"
)
in
"
"
.
join
(
log_content
)
assert
(
"
End annotating ESCO.1015.00001 (from test/data/annotate/genomes/
"
"
H299_H561.fasta)
"
)
in
"
"
.
join
(
log_content
)
assert
"
Formatting all genomes
"
in
"
"
.
join
(
log_content
)
assert
"
Annotation step done
"
in
"
"
.
join
(
log_content
)
def
test_main_prodigal_ok
(
capsys
):
"""
Test that, when the pipeline is run with a given prodigal dir, where prodigal results already
exist, and are ok, all runs well, no re-annotation, just format
- train
- reannotate
- format
# def test_run_prodigal_train_exist_empty(capsys):
# """
# Run prodigal on list file with 2 genomes.
# output files do not exist, but training file does -> use it to annotate
# """
# # Create result folder, with only trn file
# res_folder = os.path.join(GENEPATH, "results-prodigal")
# os.makedirs(res_folder)
# trn_file = os.path.join(res_folder, "H299_H561.fasta.trn")
# open(trn_file, "w").close()
# # Function arguments
# list_file = os.path.join(TEST_DIR, "list_genomes-func-test-exist_dir.txt")
# name = "ESCO"
# date = "0417"
# lstout = os.path.join(GENEPATH, "LSTINFO-list_genomes-func-test-exist_dir.lst")
# lstexp = os.path.join(EXP_DIR, "exp_LSTINFO-func-annot_exists-prokkadir.lst")
# with pytest.raises(SystemExit):
# annot.main("cmd", list_file, GEN_PATH, GENEPATH, name, date, cutn=0,
# res_annot_dir=res_folder, verbose=3, prodigal_only=True)
# # Check that not formatted because exists + error
# logfile = os.path.join(GENEPATH,
# "PanACoTA-annotate_list_genomes-func-test-exist_dir.log.details")
# with open(logfile, "r") as lc:
# log_content = lc.readlines()
# for l in log_content:
# print(l)
# assert ("A training file already exists (test/data/annotate/generated_by_func-tests/"
# "results-prodigal/H299_H561.fasta.trn). It will be used to annotate "
# "all genomes.") in " ".join(log_content)
# assert ("Error: No genome was correctly annotated, "
# "no need to format them") in ' '.join(log_content)
# assert ("Error while trying to run prodigal. See test/data/annotate/generated_by_func-tests/"
# "results-prodigal/B2_A3_5.fasta-changeName.fna-prodigal.log.err.") in ' '.join(log_content)
# assert ("Error while trying to run prodigal. See test/data/annotate/generated_by_func-tests/"
# "results-prodigal/H299_H561.fasta-prodigal.log.err.") in ' '.join(log_content)
# # Check that tmp files folder is empty (prokka res are somewhere else)
# assert len(os.listdir(os.path.join(GENEPATH, "tmp_files"))) == 0
2 genomes in list file: B2_A3_5.fasta-changeName.fna and H299_H561.fasta
"""
# FOLDER with all results
# Create result folder, with existing prodigal folders (which are OK)
res_folder
=
os
.
path
.
join
(
GENEPATH
,
"
results-prodigal
"
)
os
.
makedirs
(
res_folder
)
# Function arguments
list_file
=
os
.
path
.
join
(
TEST_DIR
,
"
list_genomes.txt
"
)
with
open
(
list_file
,
"
w
"
)
as
lf
:
lf
.
write
(
"
A_H738.fasta
\n
"
)
lf
.
write
(
"
H299_H561.fasta::TOTO
"
)
name
=
"
ESCO
"
date
=
"
0417
"
lstout
=
os
.
path
.
join
(
GENEPATH
,
"
LSTINFO-list_genomes.lst
"
)
lstexp
=
os
.
path
.
join
(
EXP_DIR
,
"
exp_LSTINFO-func-annot_exists-prokkadir.lst
"
)
assert
annot
.
main
(
"
cmd
"
,
list_file
,
GEN_PATH
,
GENEPATH
,
name
,
date
,
cutn
=
0
,
res_annot_dir
=
res_folder
,
verbose
=
3
,
prodigal_only
=
True
)
==
(
lstout
,
2
)
out
,
err
=
capsys
.
readouterr
()
# Test that result files are in result dir
assert
os
.
path
.
isfile
(
lstout
)
logfile
=
os
.
path
.
join
(
GENEPATH
,
"
PanACoTA-annotate_list_genomes.log.details
"
)
with
open
(
logfile
,
"
r
"
)
as
lc
:
log_content
=
lc
.
readlines
()
print
(
log_content
)
assert
(
"
Prodigal will train using
"
"
test/data/annotate/genomes/A_H738.fasta
"
)
in
"
"
.
join
(
log_content
)
assert
(
"
prodigal command: prodigal -i test/data/annotate/genomes/A_H738.fasta
"
"
-t test/data/annotate/generated_by_func-tests/results-prodigal/
"
"
A_H738.fasta.trn
"
)
in
"
"
.
join
(
log_content
)
assert
(
"
Start annotating ESCO.0417.00001 (from test/data/annotate/genomes/
"
"
A_H738.fasta sequence) with Prodigal
"
)
in
"
"
.
join
(
log_content
)
assert
(
"
Start annotating TOTO.0417.00001 (from test/data/annotate/genomes/
"
"
H299_H561.fasta sequence) with Prodigal
"
)
in
"
"
.
join
(
log_content
)
assert
(
"
Prodigal command:
"
"
prodigal -i test/data/annotate/genomes/A_H738.fasta
"
"
-d test/data/annotate/generated_by_func-tests/results-prodigal/
"
"
A_H738.fasta-prodigalRes/ESCO.0417.00001.ffn
"
"
-a test/data/annotate/generated_by_func-tests/results-prodigal/
"
"
A_H738.fasta-prodigalRes/ESCO.0417.00001.faa
"
"
-f gff -o test/data/annotate/generated_by_func-tests/results-prodigal/
"
"
A_H738.fasta-prodigalRes/ESCO.0417.00001.gff
"
"
-t test/data/annotate/generated_by_func-tests/results-prodigal/A_H738.fasta.trn
"
"
-q
"
)
in
"
"
.
join
(
log_content
)
assert
(
"
Prodigal command:
"
"
prodigal -i test/data/annotate/genomes/H299_H561.fasta
"
"
-d test/data/annotate/generated_by_func-tests/results-prodigal/
"
"
H299_H561.fasta-prodigalRes/TOTO.0417.00001.ffn
"
"
-a test/data/annotate/generated_by_func-tests/results-prodigal/
"
"
H299_H561.fasta-prodigalRes/TOTO.0417.00001.faa
"
"
-f gff -o test/data/annotate/generated_by_func-tests/results-prodigal/
"
"
H299_H561.fasta-prodigalRes/TOTO.0417.00001.gff
"
"
-t test/data/annotate/generated_by_func-tests/results-prodigal/A_H738.fasta.trn
"
"
-q
"
)
in
"
"
.
join
(
log_content
)
assert
(
"
End annotating ESCO.0417.00001 (from test/data/annotate/genomes/
"
"
A_H738.fasta)
"
)
in
"
"
.
join
(
log_content
)
assert
(
"
End annotating TOTO.0417.00001 (from test/data/annotate/genomes/
"
"
H299_H561.fasta)
"
)
in
"
"
.
join
(
log_content
)
assert
"
Formatting all genomes
"
in
"
"
.
join
(
log_content
)
assert
"
Annotation step done
"
in
"
"
.
join
(
log_content
)
def
test_main_existing_prokkadir_errorannot
():
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment