avoid an out of memory error by no putting more than 5000 reads in the cache. on pilot1 at least those are crazy loci anyway.
git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@1802 348d0f76-0448-11de-a6fe-93d51630548a
This commit is contained in:
parent
f4b6afb42c
commit
d9f5a314ac
|
|
@ -242,7 +242,7 @@ public class MultiSampleCaller2 extends LocusWalker<MultiSampleCaller2.MultiSamp
|
||||||
|
|
||||||
if (SAMPLE_NAME_REGEX != null) { sample_name = sample_name.replaceAll(SAMPLE_NAME_REGEX, "$1"); }
|
if (SAMPLE_NAME_REGEX != null) { sample_name = sample_name.replaceAll(SAMPLE_NAME_REGEX, "$1"); }
|
||||||
|
|
||||||
System.out.printf("SAMPLE: %s %s\n", sample_name, platform);
|
//System.out.printf("SAMPLE: %s %s\n", sample_name, platform);
|
||||||
|
|
||||||
if (unique_sample_names.contains(sample_name)) { continue; }
|
if (unique_sample_names.contains(sample_name)) { continue; }
|
||||||
unique_sample_names.add(sample_name);
|
unique_sample_names.add(sample_name);
|
||||||
|
|
@ -362,6 +362,7 @@ public class MultiSampleCaller2 extends LocusWalker<MultiSampleCaller2.MultiSamp
|
||||||
}
|
}
|
||||||
|
|
||||||
HashMap<AlignmentContext, ClassicGenotypeLikelihoods> glCache = new HashMap<AlignmentContext, ClassicGenotypeLikelihoods>();
|
HashMap<AlignmentContext, ClassicGenotypeLikelihoods> glCache = new HashMap<AlignmentContext, ClassicGenotypeLikelihoods>();
|
||||||
|
int cache_size = 0;
|
||||||
|
|
||||||
ClassicGenotypeLikelihoods GenotypeOld(AlignmentContext context, double[] allele_likelihoods, double indel_alt_freq) {
|
ClassicGenotypeLikelihoods GenotypeOld(AlignmentContext context, double[] allele_likelihoods, double indel_alt_freq) {
|
||||||
//ReadBackedPileup pileup = new ReadBackedPileup(ref, context);
|
//ReadBackedPileup pileup = new ReadBackedPileup(ref, context);
|
||||||
|
|
@ -441,7 +442,16 @@ public class MultiSampleCaller2 extends LocusWalker<MultiSampleCaller2.MultiSamp
|
||||||
G = (ClassicGenotypeLikelihoods)cached.clone();
|
G = (ClassicGenotypeLikelihoods)cached.clone();
|
||||||
} else {
|
} else {
|
||||||
G = reallyMakeGenotypeLikelihood(context);
|
G = reallyMakeGenotypeLikelihood(context);
|
||||||
glCache.put(context, G.clone());
|
if (cache_size < 5000)
|
||||||
|
{
|
||||||
|
//System.out.printf("cache add (%d)\n", cache_size);
|
||||||
|
glCache.put(context, G.clone());
|
||||||
|
cache_size += context.getReads().size();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//System.out.printf("cache skip (%d)\n", cache_size);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
G.ApplyPrior(ref, allele_likelihoods);
|
G.ApplyPrior(ref, allele_likelihoods);
|
||||||
}
|
}
|
||||||
|
|
@ -827,7 +837,8 @@ public class MultiSampleCaller2 extends LocusWalker<MultiSampleCaller2.MultiSamp
|
||||||
if (tracker.lookup("DBSNP", null) != null) { in_dbsnp = "known"; } else { in_dbsnp = "novel"; }
|
if (tracker.lookup("DBSNP", null) != null) { in_dbsnp = "known"; } else { in_dbsnp = "novel"; }
|
||||||
|
|
||||||
AlignmentContext[] contexts = filterAlignmentContext(context, sample_names, 0);
|
AlignmentContext[] contexts = filterAlignmentContext(context, sample_names, 0);
|
||||||
glCache.clear(); // reset the contexts
|
glCache.clear(); // reset the cache
|
||||||
|
cache_size = 0;
|
||||||
|
|
||||||
double lod = LOD(contexts);
|
double lod = LOD(contexts);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue