Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
genotoul-bioinfo
D-GENIES
Commits
4eb3fc2a
Commit
4eb3fc2a
authored
Feb 06, 2018
by
Floreal Cabanettes
Browse files
Do not build fasta again if already present
parent
739f0e5c
Changes
1
Hide whitespace changes
Inline
Side-by-side
src/dgenies/lib/paf.py
View file @
4eb3fc2a
...
...
@@ -678,40 +678,41 @@ class Paf:
try
:
if
not
self
.
sorted
:
raise
Exception
(
"Contigs must be sorted to do that!"
)
contigs_assoc
=
self
.
get_queries_on_target_association
()
with
open
(
os
.
path
.
join
(
self
.
data_dir
,
".query"
))
as
query_file
:
query_fasta
=
query_file
.
read
().
strip
(
"
\n
"
)
if
not
os
.
path
.
isfile
(
query_fasta
):
raise
Exception
(
"Query fasta does not exists"
)
uncompressed
=
False
if
query_fasta
.
endswith
(
".gz"
):
uncompressed
=
True
query_fasta
=
Functions
.
uncompress
(
query_fasta
)
query_f
=
SeqIO
.
index
(
query_fasta
,
"fasta"
)
o_fasta
=
os
.
path
.
join
(
os
.
path
.
dirname
(
query_fasta
),
"as_reference_"
+
os
.
path
.
basename
(
query_fasta
))
mapped_queries
=
set
()
with
open
(
o_fasta
,
"w"
)
as
out
:
for
target
in
self
.
t_order
:
if
target
in
contigs_assoc
:
queries
=
sorted
(
contigs_assoc
[
target
],
key
=
lambda
x
:
self
.
q_order
.
index
(
x
))
seq
=
SeqRecord
(
Seq
(
""
))
for
query
in
queries
:
mapped_queries
.
add
(
query
)
new_seq
=
query_f
[
query
]
if
self
.
q_reversed
[
query
]:
new_seq
=
new_seq
.
reverse_complement
()
seq
+=
new_seq
seq
+=
100
*
"N"
seq
=
seq
[:
-
100
]
seq
.
id
=
seq
.
name
=
seq
.
description
=
target
SeqIO
.
write
(
seq
,
out
,
"fasta"
)
for
contig
in
self
.
q_order
:
if
contig
not
in
mapped_queries
:
seq
=
query_f
[
contig
]
seq
.
id
+=
"_unaligned"
SeqIO
.
write
(
seq
,
out
,
"fasta"
)
if
uncompressed
:
os
.
remove
(
query_fasta
)
if
not
os
.
path
.
exists
(
o_fasta
):
uncompressed
=
False
if
query_fasta
.
endswith
(
".gz"
):
uncompressed
=
True
query_fasta
=
Functions
.
uncompress
(
query_fasta
)
query_f
=
SeqIO
.
index
(
query_fasta
,
"fasta"
)
contigs_assoc
=
self
.
get_queries_on_target_association
()
mapped_queries
=
set
()
with
open
(
o_fasta
,
"w"
)
as
out
:
for
target
in
self
.
t_order
:
if
target
in
contigs_assoc
:
queries
=
sorted
(
contigs_assoc
[
target
],
key
=
lambda
x
:
self
.
q_order
.
index
(
x
))
seq
=
SeqRecord
(
Seq
(
""
))
for
query
in
queries
:
mapped_queries
.
add
(
query
)
new_seq
=
query_f
[
query
]
if
self
.
q_reversed
[
query
]:
new_seq
=
new_seq
.
reverse_complement
()
seq
+=
new_seq
seq
+=
100
*
"N"
seq
=
seq
[:
-
100
]
seq
.
id
=
seq
.
name
=
seq
.
description
=
target
SeqIO
.
write
(
seq
,
out
,
"fasta"
)
for
contig
in
self
.
q_order
:
if
contig
not
in
mapped_queries
:
seq
=
query_f
[
contig
]
seq
.
id
+=
"_unaligned"
SeqIO
.
write
(
seq
,
out
,
"fasta"
)
if
uncompressed
:
os
.
remove
(
query_fasta
)
status
=
"success"
except
Exception
:
o_fasta
=
None
...
...
Write
Preview
Supports
Markdown
0%
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!
Cancel
Please
register
or
sign in
to comment