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
16392b29
Commit
16392b29
authored
Nov 22, 2014
by
Peter van 't Hof
Browse files
Added yamsvp as artifact
parent
f440765d
Changes
3
Hide whitespace changes
Inline
Side-by-side
public/yamsvp/.gitignore
0 → 100644
View file @
16392b29
/target/
\ No newline at end of file
public/yamsvp/pom.xml
0 → 100644
View file @
16392b29
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<modelVersion>
4.0.0
</modelVersion>
<groupId>
nl.lumc.sasc
</groupId>
<artifactId>
Yamsvp
</artifactId>
<version>
0.2.0-DEV
</version>
<packaging>
jar
</packaging>
<inceptionYear>
2014
</inceptionYear>
<name>
Yamsvp
</name>
<url>
http://maven.apache.org
</url>
<properties>
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
<sting.unpack.phase>
prepare-package
</sting.unpack.phase>
<sting.shade.phase>
package
</sting.shade.phase>
<app.main.class>
nl.lumc.sasc.biopet.core.BiopetExecutable
</app.main.class>
</properties>
<dependencies>
<dependency>
<groupId>
nl.lumc.sasc
</groupId>
<artifactId>
BiopetFramework
</artifactId>
<version>
0.2.0-DEV
</version>
</dependency>
<dependency>
<groupId>
nl.lumc.sasc
</groupId>
<artifactId>
Mapping
</artifactId>
<version>
0.2.0-DEV
</version>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>
src/main/resources
</directory>
<includes>
<include>
**/*
</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>
org.scala-tools
</groupId>
<artifactId>
maven-scala-plugin
</artifactId>
<version>
2.15.2
</version>
<executions>
<execution>
<id>
scala-compile
</id>
<goals>
<goal>
compile
</goal>
<goal>
testCompile
</goal>
</goals>
<configuration>
<args>
<arg>
-dependencyfile
</arg>
<arg>
${project.build.directory}/.scala_dependencies
</arg>
<arg>
-deprecation
</arg>
<arg>
-feature
</arg>
</args>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-jar-plugin
</artifactId>
<version>
2.5
</version>
<configuration>
<archive>
<manifest>
<addDefaultImplementationEntries>
true
</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>
true
</addDefaultSpecificationEntries>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-compiler-plugin
</artifactId>
<version>
2.3.2
</version>
<configuration>
<showDeprecation>
true
</showDeprecation>
</configuration>
</plugin>
</plugins>
</build>
</project>
public/yamsvp/src/main/scala/nl/lumc/sasc/biopet/pipelines/yamsvp/Yamsvp.scala
0 → 100644
View file @
16392b29
/*
* Structural variation calling
*/
package
nl.lumc.sasc.biopet.pipelines.yamsvp
import
nl.lumc.sasc.biopet.core.config.Configurable
import
nl.lumc.sasc.biopet.core.MultiSampleQScript
import
nl.lumc.sasc.biopet.core.PipelineCommand
import
nl.lumc.sasc.biopet.extensions.sambamba.
{
SambambaIndex
,
SambambaMerge
}
import
nl.lumc.sasc.biopet.extensions.svcallers.pindel.Pindel
import
nl.lumc.sasc.biopet.extensions.svcallers.
{
Breakdancer
,
Clever
}
import
nl.lumc.sasc.biopet.pipelines.mapping.Mapping
import
org.broadinstitute.gatk.queue.QScript
import
org.broadinstitute.gatk.queue.function._
import
org.broadinstitute.gatk.queue.engine.JobRunInfo
class
Yamsvp
(
val
root
:
Configurable
)
extends
QScript
with
MultiSampleQScript
{
def
this
()
=
this
(
null
)
var
reference
:
File
=
config
(
"reference"
,
required
=
true
)
var
finalBamFiles
:
List
[
File
]
=
Nil
class
LibraryOutput
extends
AbstractLibraryOutput
{
var
mappedBamFile
:
File
=
_
}
class
SampleOutput
extends
AbstractSampleOutput
{
var
vcf
:
Map
[
String
,
List
[
File
]]
=
Map
()
var
mappedBamFile
:
File
=
_
}
override
def
init
()
{
if
(
outputDir
==
null
)
throw
new
IllegalStateException
(
"Output directory is not specified in the config / argument"
)
else
if
(!
outputDir
.
endsWith
(
"/"
))
outputDir
+=
"/"
}
def
biopetScript
()
{
// write the pipeline here
// start with QC, alignment, call sambamba, call sv callers, reporting
// read config and set all parameters for the pipeline
logger
.
info
(
"Starting YAM SV Pipeline"
)
runSamplesJobs
//
}
override
def
onExecutionDone
(
jobs
:
Map
[
QFunction
,
JobRunInfo
],
success
:
Boolean
)
{
logger
.
info
(
"YAM SV Pipeline has run ......................."
)
}
def
runSingleSampleJobs
(
sampleConfig
:
Map
[
String
,
Any
])
:
SampleOutput
=
{
val
sampleOutput
=
new
SampleOutput
var
libraryBamfiles
:
List
[
File
]
=
List
()
var
outputFiles
:
Map
[
String
,
List
[
File
]]
=
Map
()
var
libraryFastqFiles
:
List
[
File
]
=
List
()
val
sampleID
:
String
=
sampleConfig
(
"ID"
).
toString
val
sampleDir
:
String
=
outputDir
+
sampleID
+
"/"
val
alignmentDir
:
String
=
sampleDir
+
"alignment/"
val
svcallingDir
:
String
=
sampleDir
+
"svcalls/"
sampleOutput
.
libraries
=
runLibraryJobs
(
sampleConfig
)
for
((
libraryID
,
libraryOutput
)
<-
sampleOutput
.
libraries
)
{
// this is extending the libraryBamfiles list like '~=' in D or .append in Python or .push_back in C++
libraryBamfiles
++=
List
(
libraryOutput
.
mappedBamFile
)
}
val
bamFile
:
File
=
if
(
libraryBamfiles
.
size
==
1
)
libraryBamfiles
.
head
else
if
(
libraryBamfiles
.
size
>
1
)
{
val
mergeSamFiles
=
new
SambambaMerge
(
root
)
mergeSamFiles
.
input
=
libraryBamfiles
mergeSamFiles
.
output
=
alignmentDir
+
sampleID
+
".merged.bam"
add
(
mergeSamFiles
)
mergeSamFiles
.
output
}
else
null
val
bamIndex
=
SambambaIndex
(
root
,
bamFile
)
add
(
bamIndex
)
/// bamfile will be used as input for the SV callers. First run Clever
// val cleverVCF : File = sampleDir + "/" + sampleID + ".clever.vcf"
val
cleverDir
=
svcallingDir
+
sampleID
+
".clever/"
val
clever
=
Clever
(
this
,
bamFile
,
this
.
reference
,
svcallingDir
,
cleverDir
)
clever
.
deps
=
List
(
bamIndex
.
output
)
sampleOutput
.
vcf
+=
(
"clever"
->
List
(
clever
.
outputvcf
))
add
(
clever
)
val
breakdancerDir
=
svcallingDir
+
sampleID
+
".breakdancer/"
val
breakdancer
=
Breakdancer
(
this
,
bamFile
,
this
.
reference
,
breakdancerDir
)
sampleOutput
.
vcf
+=
(
"breakdancer"
->
List
(
breakdancer
.
outputvcf
))
addAll
(
breakdancer
.
functions
)
// for pindel we should use per library config collected into one config file
// val pindelDir = svcallingDir + sampleID + ".pindel/"
// val pindel = Pindel(this, bamFile, this.reference, pindelDir)
// sampleOutput.vcf += ("pindel" -> List(pindel.outputvcf))
// addAll(pindel.functions)
//
//
return
sampleOutput
}
// Called for each run from a sample
def
runSingleLibraryJobs
(
runConfig
:
Map
[
String
,
Any
],
sampleConfig
:
Map
[
String
,
Any
])
:
LibraryOutput
=
{
val
libraryOutput
=
new
LibraryOutput
val
runID
:
String
=
runConfig
(
"ID"
).
toString
val
sampleID
:
String
=
sampleConfig
(
"ID"
).
toString
val
alignmentDir
:
String
=
outputDir
+
sampleID
+
"/alignment/"
val
runDir
:
String
=
alignmentDir
+
"run_"
+
runID
+
"/"
if
(
runConfig
.
contains
(
"R1"
))
{
val
mapping
=
new
Mapping
(
this
)
mapping
.
aligner
=
config
(
"aligner"
,
default
=
"stampy"
)
mapping
.
skipFlexiprep
=
false
mapping
.
skipMarkduplicates
=
true
// we do the dedup marking using Sambamba
if
(
runConfig
.
contains
(
"R1"
))
mapping
.
input_R1
=
new
File
(
runConfig
(
"R1"
).
toString
)
if
(
runConfig
.
contains
(
"R2"
))
mapping
.
input_R2
=
new
File
(
runConfig
(
"R2"
).
toString
)
mapping
.
paired
=
(
mapping
.
input_R2
!=
null
)
mapping
.
RGLB
=
runConfig
(
"ID"
).
toString
mapping
.
RGSM
=
sampleConfig
(
"ID"
).
toString
if
(
runConfig
.
contains
(
"PL"
))
mapping
.
RGPL
=
runConfig
(
"PL"
).
toString
if
(
runConfig
.
contains
(
"PU"
))
mapping
.
RGPU
=
runConfig
(
"PU"
).
toString
if
(
runConfig
.
contains
(
"CN"
))
mapping
.
RGCN
=
runConfig
(
"CN"
).
toString
mapping
.
outputDir
=
runDir
mapping
.
init
mapping
.
biopetScript
addAll
(
mapping
.
functions
)
// start sambamba dedup
libraryOutput
.
mappedBamFile
=
mapping
.
outputFiles
(
"finalBamFile"
)
}
else
this
.
logger
.
error
(
"Sample: "
+
sampleID
+
": No R1 found for run: "
+
runConfig
)
return
libraryOutput
// logger.debug(outputFiles)
// return outputFiles
}
}
object
Yamsvp
extends
PipelineCommand
\ 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