Exemplo n.º 1
0
 /* PE functions using fragment_prev and fragment_next */
 Alignment Filter::one_end_anchored_filter(Alignment& aln){
     if (aln.fragment_prev().name() != ""){
         if (aln.path().name() == "" || aln.fragment_prev().path().name() == ""){
             inverse ? Alignment() : aln;
         }
         else{
             inverse ? aln : Alignment();
         }
     }
     else{
         return inverse ? aln : Alignment();
     }
 }
Exemplo n.º 2
0
 Alignment Filter::interchromosomal_filter(Alignment& aln){
     bool fails = aln.path().name() != aln.fragment_prev().path().name();
     if (fails){
         return inverse ? Alignment() : aln;
     }
     else{
         return inverse ? aln : Alignment();
     }
 }
Exemplo n.º 3
0
    Alignment Filter::orientation_filter(Alignment& aln){
        bool f_rev = false;
        bool s_rev = false;
        Path f_path = aln.path();
        Path s_path = aln.fragment_prev().path();
        for (int i = 0; i < f_path.mapping_size(); i++){
            if (f_path.mapping(i).position().is_reverse()){
                f_rev = true;
            }
        }

        for (int j = 0; j < s_path.mapping_size(); j++){
            if (s_path.mapping(j).position().is_reverse()){
                s_rev = true;
            }
        }

        if (f_rev & s_rev){
            return inverse ? Alignment() : aln;
        }
        else{
            return inverse ? aln : Alignment();
        }
    }