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
02177ff7
Commit
02177ff7
authored
Feb 17, 2015
by
Peter van 't Hof
Browse files
Moved summary methods to general cutadept
parent
f16beb21
Changes
2
Hide whitespace changes
Inline
Side-by-side
public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/extensions/Cutadapt.scala
View file @
02177ff7
...
...
@@ -15,12 +15,16 @@
*/
package
nl.lumc.sasc.biopet.extensions
import
nl.lumc.sasc.biopet.core.summary.Summarizable
import
org.broadinstitute.gatk.utils.commandline.
{
Input
,
Output
}
import
java.io.File
import
nl.lumc.sasc.biopet.core.BiopetCommandLineFunction
import
nl.lumc.sasc.biopet.core.config.Configurable
class
Cutadapt
(
val
root
:
Configurable
)
extends
BiopetCommandLineFunction
{
import
scala.collection.mutable
import
scala.io.Source
class
Cutadapt
(
val
root
:
Configurable
)
extends
BiopetCommandLineFunction
with
Summarizable
{
@Input
(
doc
=
"Input fastq file"
)
var
fastq_input
:
File
=
_
...
...
@@ -58,4 +62,40 @@ class Cutadapt(val root: Configurable) extends BiopetCommandLineFunction {
required
(
fastq_input
)
+
required
(
"--output"
,
fastq_output
)
+
" > "
+
required
(
stats_output
)
def
summaryData
:
Map
[
String
,
Any
]
=
{
val
trimR
=
""".*Trimmed reads: *(\d*) .*"""
.
r
val
tooShortR
=
""".*Too short reads: *(\d*) .*"""
.
r
val
tooLongR
=
""".*Too long reads: *(\d*) .*"""
.
r
val
adapterR
=
"""Adapter '([C|T|A|G]*)'.*trimmed (\d*) times."""
.
r
val
stats
:
mutable.Map
[
String
,
Int
]
=
mutable
.
Map
(
"trimmed"
->
0
,
"tooshort"
->
0
,
"toolong"
->
0
)
val
adapter_stats
:
mutable.Map
[
String
,
Int
]
=
mutable
.
Map
()
if
(
stats_output
.
exists
)
for
(
line
<-
Source
.
fromFile
(
stats_output
).
getLines
)
{
line
match
{
case
trimR
(
m
)
=>
stats
+=
(
"trimmed"
->
m
.
toInt
)
case
tooShortR
(
m
)
=>
stats
+=
(
"tooshort"
->
m
.
toInt
)
case
tooLongR
(
m
)
=>
stats
+=
(
"toolong"
->
m
.
toInt
)
case
adapterR
(
adapter
,
count
)
=>
adapter_stats
+=
(
adapter
->
count
.
toInt
)
case
_
=>
}
}
Map
(
"version"
->
getVersion
,
"num_reads_affected"
->
stats
(
"trimmed"
),
"num_reads_discarded_too_short"
->
stats
(
"tooshort"
),
"num_reads_discarded_too_long"
->
stats
(
"toolong"
),
"adapters"
->
adapter_stats
.
toMap
)
}
override
def
resolveSummaryConflict
(
v1
:
Any
,
v2
:
Any
,
key
:
String
)
:
Any
=
{
(
v1
,
v2
)
match
{
case
(
v1
:
Int
,
v2
:
Int
)
=>
v1
+
v2
case
_
=>
v1
}
}
def
summaryFiles
:
Map
[
String
,
File
]
=
Map
()
}
public/flexiprep/src/main/scala/nl/lumc/sasc/biopet/pipelines/flexiprep/Cutadapt.scala
View file @
02177ff7
...
...
@@ -15,21 +15,11 @@
*/
package
nl.lumc.sasc.biopet.pipelines.flexiprep
import
nl.lumc.sasc.biopet.core.summary.Summarizable
import
scala.io.Source
import
nl.lumc.sasc.biopet.extensions.Ln
import
org.broadinstitute.gatk.utils.commandline.
{
Input
}
import
argonaut._
,
Argonaut
.
_
import
scalaz._
,
Scalaz
.
_
import
java.io.File
import
nl.lumc.sasc.biopet.core.config.Configurable
import
scala.collection.mutable
class
Cutadapt
(
root
:
Configurable
)
extends
nl
.
lumc
.
sasc
.
biopet
.
extensions
.
Cutadapt
(
root
)
with
Summarizable
{
class
Cutadapt
(
root
:
Configurable
)
extends
nl
.
lumc
.
sasc
.
biopet
.
extensions
.
Cutadapt
(
root
)
{
var
fastqc
:
Fastqc
=
_
override
def
beforeCmd
()
{
...
...
@@ -50,42 +40,6 @@ class Cutadapt(root: Configurable) extends nl.lumc.sasc.biopet.extensions.Cutada
Ln
(
this
,
fastq_input
,
fastq_output
,
relative
=
true
).
cmd
}
}
def
summaryData
:
Map
[
String
,
Any
]
=
{
val
trimR
=
""".*Trimmed reads: *(\d*) .*"""
.
r
val
tooShortR
=
""".*Too short reads: *(\d*) .*"""
.
r
val
tooLongR
=
""".*Too long reads: *(\d*) .*"""
.
r
val
adapterR
=
"""Adapter '([C|T|A|G]*)'.*trimmed (\d*) times."""
.
r
val
stats
:
mutable.Map
[
String
,
Int
]
=
mutable
.
Map
(
"trimmed"
->
0
,
"tooshort"
->
0
,
"toolong"
->
0
)
val
adapter_stats
:
mutable.Map
[
String
,
Int
]
=
mutable
.
Map
()
if
(
stats_output
.
exists
)
for
(
line
<-
Source
.
fromFile
(
stats_output
).
getLines
)
{
line
match
{
case
trimR
(
m
)
=>
stats
+=
(
"trimmed"
->
m
.
toInt
)
case
tooShortR
(
m
)
=>
stats
+=
(
"tooshort"
->
m
.
toInt
)
case
tooLongR
(
m
)
=>
stats
+=
(
"toolong"
->
m
.
toInt
)
case
adapterR
(
adapter
,
count
)
=>
adapter_stats
+=
(
adapter
->
count
.
toInt
)
case
_
=>
}
}
Map
(
"version"
->
getVersion
,
"num_reads_affected"
->
stats
(
"trimmed"
),
"num_reads_discarded_too_short"
->
stats
(
"tooshort"
),
"num_reads_discarded_too_long"
->
stats
(
"toolong"
),
"adapters"
->
adapter_stats
.
toMap
)
}
override
def
resolveSummaryConflict
(
v1
:
Any
,
v2
:
Any
,
key
:
String
)
:
Any
=
{
(
v1
,
v2
)
match
{
case
(
v1
:
Int
,
v2
:
Int
)
=>
v1
+
v2
case
_
=>
v1
}
}
def
summaryFiles
:
Map
[
String
,
File
]
=
Map
()
}
object
Cutadapt
{
...
...
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