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
Mirrors
biopet.biopet
Commits
15d13bb6
Commit
15d13bb6
authored
May 25, 2016
by
Sander Bollen
Browse files
create genome file only once per fasta index
parent
bb7c3299
Changes
1
Hide whitespace changes
Inline
Side-by-side
biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/bedtools/BedtoolsCoverage.scala
View file @
15d13bb6
...
...
@@ -57,24 +57,9 @@ class BedtoolsCoverage(val root: Configurable) extends Bedtools with Reference {
conditional
(
sameStrand
,
"-s"
)
+
conditional
(
diffStrand
,
"-S"
)
+
conditional
(
sorted
,
"-sorted"
)
+
(
if
(
sorted
)
required
(
"-g"
,
create
GenomeFile
(
referenceFai
))
else
""
)
+
(
if
(
sorted
)
required
(
"-g"
,
BedtoolsCoverage
.
get
GenomeFile
(
referenceFai
,
jobTempDir
))
else
""
)
+
(
if
(
outputAsStsout
)
""
else
" > "
+
required
(
output
))
/**
* Creates the genome file. i.e. the first two columns of the fasta index
* @return
*/
def
createGenomeFile
(
fai
:
File
)
:
File
=
{
val
tmp
=
File
.
createTempFile
(
fai
.
getName
,
".genome"
,
config
(
"output_dir"
))
tmp
.
deleteOnExit
()
val
writer
=
new
PrintWriter
(
tmp
)
Source
.
fromFile
(
fai
).
getLines
().
map
(
s
=>
s
.
split
(
"\t"
).
take
(
2
).
mkString
(
"\t"
)).
foreach
(
f
=>
writer
.
println
(
f
))
writer
.
close
()
tmp
}
}
object
BedtoolsCoverage
{
...
...
@@ -90,4 +75,27 @@ object BedtoolsCoverage {
bedtoolsCoverage
.
diffStrand
=
diffStrand
bedtoolsCoverage
}
private
var
genomeCache
:
Map
[(
File
,
File
)
,
File
]
=
Map
()
def
getGenomeFile
(
fai
:
File
,
dir
:
File
)
:
File
=
{
if
(!
genomeCache
.
contains
((
fai
,
dir
)))
genomeCache
+=
(
fai
,
dir
)
->
createGenomeFile
(
fai
,
dir
)
genomeCache
((
fai
,
dir
))
}
/**
* Creates the genome file. i.e. the first two columns of the fasta index
* @return
*/
def
createGenomeFile
(
fai
:
File
,
dir
:
File
)
:
File
=
{
val
tmp
=
File
.
createTempFile
(
fai
.
getName
,
".genome"
,
dir
)
tmp
.
deleteOnExit
()
val
writer
=
new
PrintWriter
(
tmp
)
Source
.
fromFile
(
fai
).
getLines
().
map
(
s
=>
s
.
split
(
"\t"
).
take
(
2
).
mkString
(
"\t"
)).
foreach
(
f
=>
writer
.
println
(
f
))
writer
.
close
()
tmp
}
}
\ No newline at end of file
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