Search in sources :

Example 6 with Sample

use of function.genotype.base.Sample in project atav by igm-team.

the class CollapsingSingleVariant method processOutput4Summary.

private void processOutput4Summary(CollapsingOutput output, ArrayList<CollapsingSummary> summaryList) {
    try {
        boolean isVariantQualified = false;
        for (Sample sample : SampleManager.getList()) {
            output.calculateLooFreq(sample);
            if (output.isMaxLooMafValid()) {
                int geno = output.getCalledVariant().getGenotype(sample.getIndex());
                if (output.isQualifiedGeno(geno)) {
                    for (CollapsingSummary summary : summaryList) {
                        summary.updateSampleVariantCount4SingleVar(sample.getIndex());
                    }
                    outputQualifiedVariant(output, sample);
                    isVariantQualified = true;
                }
            }
        }
        // only count qualified variant once per gene or region
        if (isVariantQualified) {
            for (CollapsingSummary summary : summaryList) {
                summary.updateVariantCount(output);
            }
        }
    } catch (Exception e) {
        ErrorManager.send(e);
    }
}
Also used : Sample(function.genotype.base.Sample)

Example 7 with Sample

use of function.genotype.base.Sample in project atav by igm-team.

the class LinearOutput method doRegression.

public void doRegression(String model) {
    SimpleRegression sr = new SimpleRegression(true);
    for (Sample sample : SampleManager.getList()) {
        int geno = calledVar.getGenotype(sample.getIndex());
        if (geno != Data.NA) {
            double y = sample.getQuantitativeTrait();
            if (model.equals("allelic")) {
                if (isMinorRef) {
                    if (geno == Index.REF) {
                        sr.addData(1, y);
                        sr.addData(1, y);
                    } else if (geno == Index.HET) {
                        sr.addData(1, y);
                        sr.addData(0, y);
                    } else if (geno == Index.HOM) {
                        sr.addData(0, y);
                        sr.addData(0, y);
                    }
                } else if (geno == Index.REF) {
                    sr.addData(0, y);
                    sr.addData(0, y);
                } else if (geno == Index.HET) {
                    sr.addData(1, y);
                    sr.addData(0, y);
                } else if (geno == Index.HOM) {
                    sr.addData(1, y);
                    sr.addData(1, y);
                }
            } else if (model.equals("dominant")) {
                if (isMinorRef) {
                    if (geno == Index.REF) {
                        sr.addData(1, y);
                    } else if (geno == Index.HET) {
                        sr.addData(1, y);
                    } else if (geno == Index.HOM) {
                        sr.addData(0, y);
                    } else if (geno == Index.HOM_MALE) {
                        sr.addData(0, y);
                    } else if (geno == Index.REF_MALE) {
                        sr.addData(1, y);
                    }
                } else if (geno == Index.REF) {
                    sr.addData(0, y);
                } else if (geno == Index.HET) {
                    sr.addData(1, y);
                } else if (geno == Index.HOM) {
                    sr.addData(1, y);
                } else if (geno == Index.HOM_MALE) {
                    sr.addData(1, y);
                } else if (geno == Index.REF_MALE) {
                    sr.addData(0, y);
                }
            } else if (model.equals("recessive")) {
                if (isMinorRef) {
                    if (geno == Index.REF) {
                        sr.addData(1, y);
                    } else if (geno == Index.HET) {
                        sr.addData(0, y);
                    } else if (geno == Index.HOM) {
                        sr.addData(0, y);
                    } else if (geno == Index.HOM_MALE) {
                        sr.addData(0, y);
                    } else if (geno == Index.REF_MALE) {
                        sr.addData(1, y);
                    }
                } else if (geno == Index.REF) {
                    sr.addData(0, y);
                } else if (geno == Index.HET) {
                    sr.addData(0, y);
                } else if (geno == Index.HOM) {
                    sr.addData(1, y);
                } else if (geno == Index.HOM_MALE) {
                    sr.addData(1, y);
                } else if (geno == Index.REF_MALE) {
                    sr.addData(0, y);
                }
            } else if (model.equals("genotypic")) {
                // not complete yet, to be finished a bit later
                if (isMinorRef) {
                    if (geno == Index.REF) {
                        sr.addData(2, y);
                    } else if (geno == Index.HET) {
                        sr.addData(1, y);
                    } else if (geno == Index.HOM) {
                        sr.addData(0, y);
                    } else if (geno == Index.HOM_MALE) {
                        sr.addData(0, y);
                    } else if (geno == Index.REF_MALE) {
                        sr.addData(1, y);
                    }
                } else if (geno == Index.REF) {
                    sr.addData(0, y);
                } else if (geno == Index.HET) {
                    sr.addData(1, y);
                } else if (geno == Index.HOM) {
                    sr.addData(2, y);
                } else if (geno == Index.HOM_MALE) {
                    sr.addData(1, y);
                } else if (geno == Index.REF_MALE) {
                    sr.addData(0, y);
                }
            } else if (model.equals("additive")) {
                if (isMinorRef) {
                    if (geno == Index.REF) {
                        sr.addData(2, y);
                    } else if (geno == Index.HET) {
                        sr.addData(1, y);
                    } else if (geno == Index.HOM) {
                        sr.addData(0, y);
                    } else if (geno == Index.HOM_MALE) {
                        sr.addData(0, y);
                    } else if (geno == Index.REF_MALE) {
                        sr.addData(1, y);
                    }
                } else if (geno == Index.REF) {
                    sr.addData(0, y);
                } else if (geno == Index.HET) {
                    sr.addData(1, y);
                } else if (geno == Index.HOM) {
                    sr.addData(2, y);
                } else if (geno == Index.HOM_MALE) {
                    sr.addData(1, y);
                } else if (geno == Index.REF_MALE) {
                    sr.addData(0, y);
                }
            } else {
                LogManager.writeAndPrint("model is not recognized");
            }
        }
    }
    pValue = sr.getSignificance();
    if (Double.isNaN(pValue)) {
        pValue = Data.NA;
    }
    beta1 = sr.getSlope();
    if (Double.isNaN(beta1)) {
        beta1 = Data.NA;
    }
}
Also used : SimpleRegression(org.apache.commons.math3.stat.regression.SimpleRegression) Sample(function.genotype.base.Sample)

Example 8 with Sample

use of function.genotype.base.Sample in project atav by igm-team.

the class PedMapGenerator method outputTempGeno.

private void outputTempGeno(CalledVariant calledVar) throws Exception {
    for (Sample sample : SampleManager.getList()) {
        int geno = calledVar.getGenotype(sample.getIndex());
        switch(geno) {
            case Index.HOM:
                if (calledVar.isSnv()) {
                    bwTmpPed.write(calledVar.getAllele() + calledVar.getAllele());
                } else if (calledVar.isDel()) {
                    bwTmpPed.write("DD");
                } else {
                    bwTmpPed.write("II");
                }
                break;
            case Index.HET:
                if (calledVar.isSnv()) {
                    bwTmpPed.write(calledVar.getRefAllele() + calledVar.getAllele());
                } else {
                    bwTmpPed.write("ID");
                }
                break;
            case Index.REF:
                if (calledVar.isSnv()) {
                    bwTmpPed.write(calledVar.getRefAllele() + calledVar.getRefAllele());
                } else if (calledVar.isDel()) {
                    bwTmpPed.write("II");
                } else {
                    bwTmpPed.write("DD");
                }
                break;
            case Data.NA:
                bwTmpPed.write("00");
                break;
            default:
                bwTmpPed.write("00");
                LogManager.writeAndPrint("Invalid genotype: " + geno + " (Variant ID: " + calledVar.getVariantIdStr() + ")");
                break;
        }
    }
    bwTmpPed.newLine();
}
Also used : Sample(function.genotype.base.Sample)

Example 9 with Sample

use of function.genotype.base.Sample in project atav by igm-team.

the class PedMapGenerator method generatePedFile.

private void generatePedFile() {
    try {
        LogManager.writeAndPrint("Output the data to ped file now");
        bwTmpPed.flush();
        bwTmpPed.close();
        File tmpFile = new File(tmpPedFile);
        RandomAccessFile raf = new RandomAccessFile(tmpFile, "r");
        long rowLen = 2 * SampleManager.getTotalSampleNum() + 1L;
        for (Sample sample : SampleManager.getList()) {
            String name = sample.getName();
            int pheno = (int) sample.getPheno() + 1;
            bwPed.write(sample.getFamilyId() + " " + name + " " + sample.getPaternalId() + " " + sample.getMaternalId() + " " + sample.getSex() + " " + pheno);
            for (int i = 0; i < qualifiedVariants; i++) {
                for (int j = 0; j < 2; j++) {
                    long pos = i * rowLen + 2 * sample.getIndex() + j;
                    raf.seek(pos);
                    byte allele = raf.readByte();
                    bwPed.write(" " + String.valueOf((char) allele));
                }
            }
            bwPed.newLine();
        }
        tmpFile.delete();
    } catch (Exception ex) {
        ErrorManager.send(ex);
    }
}
Also used : RandomAccessFile(java.io.RandomAccessFile) Sample(function.genotype.base.Sample) RandomAccessFile(java.io.RandomAccessFile) File(java.io.File)

Example 10 with Sample

use of function.genotype.base.Sample in project atav by igm-team.

the class ListVarGeno method outputSampleVariantCount.

public void outputSampleVariantCount() {
    try {
        for (Sample sample : SampleManager.getList()) {
            bwSampleVariantCount.write(sample.getName() + ",");
            bwSampleVariantCount.write(SampleVariantCount.getString(sample.getIndex()));
            bwSampleVariantCount.newLine();
        }
    } catch (Exception e) {
        ErrorManager.send(e);
    }
}
Also used : Sample(function.genotype.base.Sample)

Aggregations

Sample (function.genotype.base.Sample)29 HashMap (java.util.HashMap)2 SimpleRegression (org.apache.commons.math3.stat.regression.SimpleRegression)2 BufferedWriter (java.io.BufferedWriter)1 File (java.io.File)1 FileWriter (java.io.FileWriter)1 IOException (java.io.IOException)1 RandomAccessFile (java.io.RandomAccessFile)1 SummaryStatistics (org.apache.commons.math3.stat.descriptive.SummaryStatistics)1