void AdjustFDPForRemovedAlleles(vcf::Variant &candidate_variant, int filtered_allele_index, string sampleName)
{
    // first do the "info" tag as it is easier to find
    map<string, vector<string> >::iterator it;
    int total_depth=0;

    it = candidate_variant.info.find("FDP");
    if (it != candidate_variant.info.end())
        total_depth = atoi(candidate_variant.info["FDP"][0].c_str()); // or is this current sample ident?

    int allele_depth = 0;
    it = candidate_variant.info.find("FAO");
    if (it != candidate_variant.info.end())
        allele_depth = atoi(candidate_variant.info["FAO"][filtered_allele_index].c_str());

    total_depth -= allele_depth;
    if (total_depth<0)
        total_depth = 0; // how can this happen?

    ClearVal(candidate_variant, "FDP");
    candidate_variant.info["FDP"].push_back(convertToString(total_depth));

    if (!sampleName.empty()) {
        map<string, vector<string> >& sampleOutput = candidate_variant.samples[sampleName];
        sampleOutput["FDP"].clear();
        sampleOutput["FDP"].push_back(convertToString(total_depth));
    }
}
Esempio n. 2
0
BOOL CParmFindOneDlg::SetValues()
{ 
   if (m_pRun->SetValues(this)) {
      UpdateVal();
      return TRUE;
   } else {
      ClearVal();
      return FALSE;
   }
}
void NullFilterReason(vcf::Variant &candidate_variant) {
    ClearVal(candidate_variant, "FR");
    string my_null_filter = ".";
    AddFilterReason(candidate_variant, my_null_filter);
}
//clear all the info tags, in case of a HotSpot VCF react Info tags might contain prior values
void clearInfoTags(vcf::Variant &var) {
    map<string, vector<string> >::iterator it;

    it = var.info.find("RO");
    if (it != var.info.end())
        var.info["RO"].clear();

    it = var.info.find("AO");
    if (it != var.info.end())
        var.info["AO"].clear();

    it = var.info.find("SAF");
    if (it != var.info.end())
        var.info["SAF"].clear();

    it = var.info.find("SAR");
    if (it != var.info.end())
        var.info["SAR"].clear();

    it = var.info.find("SRF");
    if (it != var.info.end())
        var.info["SRF"].clear();

    it = var.info.find("SRR");
    if (it != var.info.end())
        var.info["SRR"].clear();

    it = var.info.find("DP");
    if (it != var.info.end())
        var.info["DP"].clear();


    it = var.info.find("RBI");
    if (it != var.info.end())
        var.info["RBI"].clear();

    it = var.info.find("HRUN");
    if (it != var.info.end())
        var.info["HRUN"].clear();


    it = var.info.find("MLLD");
    if (it != var.info.end())
        var.info["MLLD"].clear();

    //SSE compute
    ClearVal(var,"SSSB");
    ClearVal(var,"SSEN");
    ClearVal(var,"SSEP");

    it = var.info.find("STB");
    if (it != var.info.end())
        var.info["STB"].clear();

    it = var.info.find("STBP");
    if (it != var.info.end())
        var.info["STBP"].clear();

    it = var.info.find("PBP");
    if (it != var.info.end())
        var.info["PBP"].clear();

    /*  it = var.info.find("SXB");
      if (it != var.info.end())
        var.info["SXB"].clear();*/

    ClearVal(var,"FDP");
    ClearVal(var,"FRO");
    ClearVal(var,"FAO");
    //ClearVal(var,"JUNK");
    ClearVal(var,"AF");
    ClearVal(var,"FSRF");
    ClearVal(var,"FSRR");
    ClearVal(var,"FSAF");
    ClearVal(var,"FSAR");
    ClearVal(var,"FXX");
    ClearVal(var,"QD");
}