use of function.genotype.base.Sample in project atav by igm-team.
the class CoverageAnalysisBase method outputSampleSummary.
private void outputSampleSummary() {
try {
StringBuilder sb = new StringBuilder();
for (Sample sample : SampleManager.getList()) {
sb.append(sample.getName()).append(",");
sb.append(GeneManager.getAllGeneBoundaryLength()).append(",");
int totalSampleCov = getSampleCoverageByIndex(sample.getIndex());
sb.append(totalSampleCov).append(",");
double ratio = MathManager.devide(totalSampleCov, GeneManager.getAllGeneBoundaryLength());
sb.append(FormatManager.getSixDegitDouble(ratio)).append(",");
sb.append(GeneManager.getGeneBoundaryList().size()).append(",");
int totalSampleRegionCovered = sampleCoverageCount[sample.getIndex()];
sb.append(totalSampleRegionCovered).append(",");
ratio = MathManager.devide(totalSampleRegionCovered, GeneManager.getGeneBoundaryList().size());
sb.append(FormatManager.getSixDegitDouble(ratio));
writeToFile(sb.toString(), bwSampleSummary);
sb.setLength(0);
}
} catch (Exception e) {
ErrorManager.send(e);
}
}
use of function.genotype.base.Sample in project atav by igm-team.
the class CoverageComparison method processExon.
@Override
public void processExon(HashMap<Integer, Integer> sampleCoveredLengthMap, Gene gene, Exon exon) {
try {
SimpleRegression sr = new SimpleRegression(true);
SummaryStatistics lss = new SummaryStatistics();
float caseAvg = 0;
float ctrlAvg = 0;
for (Sample sample : SampleManager.getList()) {
Integer coveredLength = sampleCoveredLengthMap.get(sample.getId());
if (coveredLength != null) {
if (sample.isCase()) {
caseAvg += coveredLength;
} else {
ctrlAvg += coveredLength;
}
} else {
coveredLength = 0;
}
addRegressionData(sr, lss, sample, coveredLength, exon.getLength());
}
caseAvg = MathManager.devide(caseAvg, SampleManager.getCaseNum());
caseAvg = MathManager.devide(caseAvg, exon.getLength());
ctrlAvg = MathManager.devide(ctrlAvg, SampleManager.getCtrlNum());
ctrlAvg = MathManager.devide(ctrlAvg, exon.getLength());
if (CoverageCommand.isMinCoverageFractionValid(caseAvg) && CoverageCommand.isMinCoverageFractionValid(ctrlAvg)) {
StringBuilder sb = new StringBuilder();
String name = gene.getName() + "_" + exon.getIdStr();
sb.append(name).append(",");
sb.append(gene.getChr()).append(",");
sb.append(FormatManager.getFloat(caseAvg)).append(",");
sb.append(FormatManager.getFloat(ctrlAvg)).append(",");
float covDiff = Data.NA;
if (CoverageCommand.isRelativeDifference) {
covDiff = MathManager.relativeDiff(caseAvg, ctrlAvg);
} else {
covDiff = MathManager.abs(caseAvg, ctrlAvg);
}
sb.append(FormatManager.getFloat(covDiff)).append(",");
sb.append(exon.getLength());
addExon(sb, name, caseAvg, ctrlAvg, covDiff, exon.getLength(), sr, lss);
bwCoverageSummaryByExon.write(sb.toString());
bwCoverageSummaryByExon.newLine();
}
} catch (Exception e) {
ErrorManager.send(e);
}
}
use of function.genotype.base.Sample in project atav by igm-team.
the class CoverageComparisonBase method outputGeneSummary.
private void outputGeneSummary(Gene gene) {
try {
float caseAvg = 0, ctrlAvg = 0;
for (Sample sample : SampleManager.getList()) {
if (sample.isCase()) {
caseAvg += geneSampleCoverage[gene.getIndex()][sample.getIndex()];
} else {
ctrlAvg += geneSampleCoverage[gene.getIndex()][sample.getIndex()];
}
}
caseAvg = MathManager.devide(caseAvg, SampleManager.getCaseNum());
caseAvg = MathManager.devide(caseAvg, gene.getLength());
ctrlAvg = MathManager.devide(ctrlAvg, SampleManager.getCtrlNum());
ctrlAvg = MathManager.devide(ctrlAvg, gene.getLength());
if (CoverageCommand.isMinCoverageFractionValid(caseAvg) && CoverageCommand.isMinCoverageFractionValid(ctrlAvg)) {
StringBuilder sb = new StringBuilder();
sb.append(gene.getName()).append(",");
sb.append(gene.getChr()).append(",");
sb.append(FormatManager.getFloat(caseAvg)).append(",");
sb.append(FormatManager.getFloat(ctrlAvg)).append(",");
float covDiff = Data.NA;
if (CoverageCommand.isRelativeDifference) {
covDiff = MathManager.relativeDiff(caseAvg, ctrlAvg);
} else {
covDiff = MathManager.abs(caseAvg, ctrlAvg);
}
sb.append(FormatManager.getFloat(covDiff)).append(",");
sb.append(gene.getLength());
writeToFile(sb.toString(), bwCoverageSummaryByGene);
}
} catch (Exception ex) {
ErrorManager.send(ex);
}
}
use of function.genotype.base.Sample in project atav by igm-team.
the class CollapsingBase method outputMatrix.
public void outputMatrix() throws Exception {
for (CollapsingSummary summary : summaryList) {
bwSampleMatrix.write(summary.name + "\t");
for (Sample sample : SampleManager.getList()) {
bwSampleMatrix.write(summary.variantNumBySample[sample.getIndex()] + "\t");
}
bwSampleMatrix.newLine();
summary.countSample();
summary.calculateFetP();
}
bwSampleMatrix.flush();
bwSampleMatrix.close();
}
use of function.genotype.base.Sample in project atav by igm-team.
the class CollapsingCompHet method getCoOccurrenceFreq.
/*
* The number of people who have BOTH of the variants divided by the total
* number of covered people. freq[0] Frequency of Variant #1 & #2
* (co-occurance) in cases. freq[1] Frequency of Variant #1 & #2
* (co-occurance) in ctrls
*/
private double[] getCoOccurrenceFreq(CompHetOutput output1, CompHetOutput output2) {
double[] freq = new double[2];
int quanlifiedCaseCount = 0, qualifiedCtrlCount = 0;
int totalCaseCount = 0, totalCtrlCount = 0;
for (Sample sample : SampleManager.getList()) {
boolean isCoQualifiedGeno = isCoQualifiedGeno(output1, output2, sample.getIndex());
if (sample.isCase()) {
totalCaseCount++;
if (isCoQualifiedGeno) {
quanlifiedCaseCount++;
}
} else {
totalCtrlCount++;
if (isCoQualifiedGeno) {
qualifiedCtrlCount++;
}
}
}
freq[Index.CTRL] = MathManager.devide(qualifiedCtrlCount, totalCtrlCount);
freq[Index.CASE] = MathManager.devide(quanlifiedCaseCount, totalCaseCount);
return freq;
}
Aggregations