Created
August 15, 2014 15:54
-
-
Save si14/1c4a9d3831d6538d1f01 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
StreamUtil.zippingStream(WigParser.newParser().parse(sourcePaths[0]), | |
WigParser.newParser().parse(sourcePaths[1]), | |
StreamUtil.ZipPair::create) | |
.peek(StreamUtil.equalityForBoth(wigPair -> wigPair.first, | |
"wig files should have same structure")) | |
.filter(StreamUtil.predicateForBoth(wigPair -> { | |
final Chromosome chromosome = chromosomeMap.get(wigPair.first); | |
return chromosome != null && !chromosome.isMitochondrialChromosome(); | |
})) | |
.forEach(StreamUtil.consumerForEach((pairLevel, pairCoverage) -> { | |
final Chromosome chromosome = chromosomeMap.get(pairLevel.first); | |
StreamUtil.zippingStream(pairLevel.second.getRanges(), | |
pairCoverage.second.getRanges(), | |
StreamUtil.ZipPair::create) | |
.peek(StreamUtil.equalityForBoth(ScoredRange::getStartOffset, | |
"offsets should be equal for level and coverage")) | |
.forEach(StreamUtil.consumerForEach((rangeLevel, rangeCoverage) -> { | |
final double level = rangeLevel.getScore(); | |
final double coverage = rangeCoverage.getScore(); | |
final int offset = rangeLevel.getStartOffset(); | |
methylome.add(chromosome, Strand.PLUS, | |
new CoveredNucleotideInfo(offset, MethylationPattern.CG, | |
(short) (level / 100 * coverage), | |
(short) coverage)); | |
})); | |
})); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment