This is an automated email from the git hooks/post-receive script.

malex-guest pushed a commit to branch master
in repository gmap.

commit 108926cde9abc21780fab8e244044383bec55381
Author: Alexandre Mestiashvili <[email protected]>
Date:   Fri Feb 5 10:35:21 2016 +0100

    Imported Upstream version 2015-12-31.v7
---
 ChangeLog      |   7 ++
 src/output.c   |  19 +++--
 src/samprint.c | 256 ++++++++++++++++++++++++++++++---------------------------
 src/samprint.h |  10 +--
 src/stage2.c   |   4 +-
 5 files changed, 159 insertions(+), 137 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index cb8f107..c2032b1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2016-02-04  twu
+
+    * stage2.c: Fixed termination condition for while loop
+
+    * output.c, samprint.c, samprint.h: Added check for artificial mate in
+      --add-paired-nomappers mode, to set SAM flag correctly
+
 2016-01-21  twu
 
     * dynprog_genome.c: Fixed bug in checking bestrL before it is computed,
diff --git a/src/output.c b/src/output.c
index 3b59563..4afafef 100644
--- a/src/output.c
+++ b/src/output.c
@@ -1,4 +1,4 @@
-static char rcsid[] = "$Id: output.c 181903 2016-01-07 20:30:55Z twu $";
+static char rcsid[] = "$Id: output.c 183725 2016-02-04 00:40:15Z twu $";
 #ifdef HAVE_CONFIG_H
 #include <config.h>
 #endif
@@ -186,7 +186,8 @@ filestring_fromresult_sam (Filestring_T *fp_failedinput_1, 
Filestring_T *fp_fail
       SAM_print_nomapping(fp,ABBREV_NOMAPPING_1,
                          
queryseq1,/*mate*/NULL,/*acc1*/Shortread_accession(queryseq1),
                          /*acc2*/NULL,chromosome_iit,resulttype,
-                         
/*first_read_p*/true,/*pathnum*/0,/*npaths*/0,/*npaths_mate*/0,/*mate_chrpos*/0U,
+                         /*first_read_p*/true,/*pathnum*/0,/*npaths*/0,
+                         
/*artificial_mate_p*/false,/*npaths_mate*/0,/*mate_chrpos*/0U,
                          
quality_shift,sam_read_group_id,invert_first_p,invert_second_p);
       if (failedinput_root != NULL) {
        
Shortread_print_query_singleend(*fp_failedinput_1,queryseq1,/*headerseq*/queryseq1);
@@ -221,7 +222,7 @@ filestring_fromresult_sam (Filestring_T *fp_failedinput_1, 
Filestring_T *fp_fail
                chromosome_iit,queryseq1,/*queryseq2*/NULL,
                /*pairedlength*/0,chrpos,/*mate_chrpos*/0U,
                
/*clipdir*/0,/*hardclip5_low*/0,/*hardclip5_high*/0,/*hardclip3_low*/0,/*hardclip3_high*/0,
-               resulttype,/*first_read_p*/true,/*npaths_mate*/0,quality_shift,
+               
resulttype,/*first_read_p*/true,/*artificial_mate_p*/false,/*npaths_mate*/0,quality_shift,
                
sam_read_group_id,invert_first_p,invert_second_p,merge_samechr_p);
     }
 
@@ -237,7 +238,8 @@ filestring_fromresult_sam (Filestring_T *fp_failedinput_1, 
Filestring_T *fp_fail
       SAM_print_nomapping(fp,ABBREV_UNPAIRED_TRANSLOC,
                          
queryseq1,/*mate*/NULL,/*acc1*/Shortread_accession(queryseq1),
                          /*acc2*/NULL,chromosome_iit,resulttype,
-                         
/*first_read_p*/true,/*pathnum*/1,npaths,/*npaths_mate*/0,/*mate_chrpos*/0U,
+                         /*first_read_p*/true,/*pathnum*/1,npaths,
+                         
/*artificial_mate_p*/false,/*npaths_mate*/0,/*mate_chrpos*/0U,
                          
quality_shift,sam_read_group_id,invert_first_p,invert_second_p);
       if (failedinput_root != NULL) {
        
Shortread_print_query_singleend(*fp_failedinput_1,queryseq1,/*headerseq*/queryseq1);
@@ -262,7 +264,7 @@ filestring_fromresult_sam (Filestring_T *fp_failedinput_1, 
Filestring_T *fp_fail
                  chromosome_iit,queryseq1,/*queryseq2*/NULL,
                  /*pairedlength*/0,chrpos,/*mate_chrpos*/0U,
                  
/*clipdir*/0,/*hardclip5_low*/0,/*hardclip5_high*/0,/*hardclip3_low*/0,/*hardclip3_high*/0,
-                 
resulttype,/*first_read_p*/true,/*npaths_mate*/0,quality_shift,
+                 
resulttype,/*first_read_p*/true,/*artificial_mate_p*/false,/*npaths_mate*/0,quality_shift,
                  
sam_read_group_id,invert_first_p,invert_second_p,merge_samechr_p);
       }
     }
@@ -279,7 +281,8 @@ filestring_fromresult_sam (Filestring_T *fp_failedinput_1, 
Filestring_T *fp_fail
       SAM_print_nomapping(fp,ABBREV_UNPAIRED_MULT_XS,
                          
queryseq1,/*mate*/NULL,/*acc1*/Shortread_accession(queryseq1),
                          /*acc2*/NULL,chromosome_iit,resulttype,
-                         
/*first_read_p*/true,/*pathnum*/1,npaths,/*npaths_mate*/0,/*mate_chrpos*/0U,
+                         /*first_read_p*/true,/*pathnum*/1,npaths,
+                         
/*artificial_mate_p*/false,/*npaths_mate*/0,/*mate_chrpos*/0U,
                          
quality_shift,sam_read_group_id,invert_first_p,invert_second_p);
       if (failedinput_root != NULL) {
        
Shortread_print_query_singleend(*fp_failedinput_1,queryseq1,/*headerseq*/queryseq1);
@@ -304,7 +307,7 @@ filestring_fromresult_sam (Filestring_T *fp_failedinput_1, 
Filestring_T *fp_fail
                  chromosome_iit,queryseq1,/*queryseq2*/NULL,
                  /*pairedlength*/0,chrpos,/*mate_chrpos*/0U,
                  
/*clipdir*/0,/*hardclip5_low*/0,/*hardclip5_high*/0,/*hardclip3_low*/0,/*hardclip3_high*/0,
-                 
resulttype,/*first_read_p*/true,/*npaths_mate*/0,quality_shift,
+                 
resulttype,/*first_read_p*/true,/*artificial_mate_p*/false,/*npaths_mate*/0,quality_shift,
                  
sam_read_group_id,invert_first_p,invert_second_p,merge_samechr_p);
       }
     }
@@ -754,7 +757,7 @@ Output_filestring_fromresult (Filestring_T *fp_failedinput, 
Result_T result, Req
       Sequence_print_header(fp,headerseq,checksump);
 
       if (npaths == 0) {
-       print_npaths(fp,0,chrsubset_name,
+       print_npaths(fp,/*npaths*/0,chrsubset_name,
                     
/*mergedp*/false,/*chimera*/NULL,Result_failuretype(result));
 
 
diff --git a/src/samprint.c b/src/samprint.c
index 2fe012c..221dd1d 100644
--- a/src/samprint.c
+++ b/src/samprint.c
@@ -1,4 +1,4 @@
-static char rcsid[] = "$Id: samprint.c 181904 2016-01-07 20:31:34Z twu $";
+static char rcsid[] = "$Id: samprint.c 183725 2016-02-04 00:40:15Z twu $";
 #ifdef HAVE_CONFIG_H
 #include <config.h>
 #endif
@@ -109,7 +109,7 @@ SAM_setup (bool add_paired_nomappers_p_in, bool 
paired_flag_means_concordant_p_i
 
 unsigned int
 SAM_compute_flag (bool plusp, Stage3end_T mate, Resulttype_T resulttype,
-                 bool first_read_p, int pathnum, int npaths, int npaths_mate,
+                 bool first_read_p, int pathnum, int npaths, bool 
artificial_mate_p, int npaths_mate,
                  int absmq_score, int first_absmq, bool invertp, bool 
invert_mate_p) {
   unsigned int flag = 0U;
 
@@ -136,7 +136,11 @@ SAM_compute_flag (bool plusp, Stage3end_T mate, 
Resulttype_T resulttype,
       debug(printf("SECOND_READ %d\n",SECOND_READ_P));
       flag |= SECOND_READ_P;
     }
-    if (npaths_mate == 0) {
+    if (artificial_mate_p == true) {
+      debug(printf("MATE_UNMAPPED %d\n",MATE_UNMAPPED));
+      flag |= MATE_UNMAPPED;
+
+    } else if (npaths_mate == 0) {
       debug(printf("MATE_UNMAPPED %d\n",MATE_UNMAPPED));
       flag |= MATE_UNMAPPED;
 
@@ -202,7 +206,7 @@ SAM_compute_flag (bool plusp, Stage3end_T mate, 
Resulttype_T resulttype,
       debug(printf("NOT_PRIMARY %d\n",NOT_PRIMARY));
       flag |= NOT_PRIMARY;
     } else {
-      /* Just as good as first alignment, so don't mark as secondary */
+      /* Just as good as first alignment, so don't mark as altloc */
     }
   }
 
@@ -355,8 +359,8 @@ make_complement_buffered (char *complement, char *sequence, 
unsigned int length)
 void
 SAM_print_nomapping (Filestring_T fp, char *abbrev, Shortread_T queryseq, 
Stage3end_T mate, char *acc1, char *acc2,
                     Univ_IIT_T chromosome_iit, Resulttype_T resulttype, bool 
first_read_p,
-                    int pathnum, int npaths, int npaths_mate, Chrpos_T 
mate_chrpos, int quality_shift,
-                    char *sam_read_group_id, bool invertp, bool invert_mate_p) 
{
+                    int pathnum, int npaths, bool artificial_mate_p, int 
npaths_mate,
+                    Chrpos_T mate_chrpos, int quality_shift, char 
*sam_read_group_id, bool invertp, bool invert_mate_p) {
   unsigned int flag;
 
 
@@ -373,7 +377,7 @@ SAM_print_nomapping (Filestring_T fp, char *abbrev, 
Shortread_T queryseq, Stage3
   /* 5. MAPQ: Mapping quality.  Picard says MAPQ should be 0 for an unmapped 
read */
   /* 6. CIGAR */
   flag = SAM_compute_flag(/*plusp (NA)*/true,mate,resulttype,first_read_p,
-                         /*pathnum*/0,/*npaths*/0,npaths_mate,
+                         
/*pathnum*/0,/*npaths*/0,artificial_mate_p,npaths_mate,
                          
/*absmq_score*/0,/*first_absmq*/0,invertp,invert_mate_p);
   FPRINTF(fp,"\t%u\t*\t0\t0\t*",flag);
 
@@ -1166,7 +1170,7 @@ print_substrings (Filestring_T fp, char *abbrev, 
Stage3end_T stage3end, Stage3en
                  int absmq_score, int first_absmq, int second_absmq, int 
mapq_score,
                  Shortread_T queryseq, int pairedlength,
                  Chrpos_T chrpos, Chrpos_T mate_chrpos, int hardclip_low, int 
hardclip_high,
-                 Resulttype_T resulttype, bool first_read_p, int npaths_mate,
+                 Resulttype_T resulttype, bool first_read_p, bool 
artificial_mate_p, int npaths_mate,
                  int quality_shift, char *sam_read_group_id, bool invertp, 
bool invert_mate_p,
                  bool circularp) {
   unsigned int flag = 0U;
@@ -1209,8 +1213,8 @@ print_substrings (Filestring_T fp, char *abbrev, 
Stage3end_T stage3end, Stage3en
 
   /* 2. FLAG */
   flag = SAM_compute_flag(plusp,mate,resulttype,first_read_p,
-                         pathnum,npaths,npaths_mate,absmq_score,first_absmq,
-                         invertp,invert_mate_p);
+                         pathnum,npaths,artificial_mate_p,npaths_mate,
+                         absmq_score,first_absmq,invertp,invert_mate_p);
   FPRINTF(fp,"\t%u",flag);
 
   /* 3. RNAME: chr */
@@ -2170,7 +2174,8 @@ print_halfdonor (Filestring_T fp, char *abbrev, 
Substring_T donor, Stage3end_T t
                 char *acc1, char *acc2, int pathnum, int npaths, int 
absmq_score, int first_absmq, int second_absmq, int mapq_score,
                 Univ_IIT_T chromosome_iit, Shortread_T queryseq, int 
pairedlength,
                 Chrpos_T concordant_chrpos, Chrpos_T donor_chrpos, Chrpos_T 
acceptor_chrpos, Chrpos_T mate_chrpos,
-                int hardclip_low, int hardclip_high, Resulttype_T resulttype, 
bool first_read_p, int npaths_mate,
+                int hardclip_low, int hardclip_high, Resulttype_T resulttype, 
bool first_read_p,
+                bool artificial_mate_p, int npaths_mate,
                 int quality_shift, char *sam_read_group_id, bool invertp, bool 
invert_mate_p,
                 bool use_hardclip_p, bool print_xt_p, int donor_sensedir, char 
donor_strand, char acceptor_strand,
                 char *donor_chr, char *acceptor_chr, char donor1, char donor2, 
char acceptor2, char acceptor1,
@@ -2202,7 +2207,7 @@ print_halfdonor (Filestring_T fp, char *abbrev, 
Substring_T donor, Stage3end_T t
 
   /* 2. FLAG */
   flag = SAM_compute_flag(plusp,mate,resulttype,first_read_p,
-                         pathnum,npaths,npaths_mate,absmq_score,first_absmq,
+                         
pathnum,npaths,artificial_mate_p,npaths_mate,absmq_score,first_absmq,
                          invertp,invert_mate_p);
   FPRINTF(fp,"\t%u",flag);
 
@@ -2685,7 +2690,7 @@ print_halfacceptor (Filestring_T fp, char *abbrev, 
Substring_T acceptor, Stage3e
                    char *acc1, char *acc2, int pathnum, int npaths, int 
absmq_score, int first_absmq, int second_absmq, int mapq_score,
                    Univ_IIT_T chromosome_iit, Shortread_T queryseq, int 
pairedlength,
                    Chrpos_T concordant_chrpos, Chrpos_T donor_chrpos, Chrpos_T 
acceptor_chrpos, Chrpos_T mate_chrpos,
-                   int hardclip_low, int hardclip_high, Resulttype_T 
resulttype, bool first_read_p, int npaths_mate,
+                   int hardclip_low, int hardclip_high, Resulttype_T 
resulttype, bool first_read_p, bool artificial_mate_p, int npaths_mate,
                    int quality_shift, char *sam_read_group_id, bool invertp, 
bool invert_mate_p,
                    bool use_hardclip_p, bool print_xt_p, int 
acceptor_sensedir, char donor_strand, char acceptor_strand,
                    char *donor_chr, char *acceptor_chr, char donor1, char 
donor2, char acceptor2, char acceptor1,
@@ -2717,7 +2722,7 @@ print_halfacceptor (Filestring_T fp, char *abbrev, 
Substring_T acceptor, Stage3e
 
   /* 2. FLAG */
   flag = SAM_compute_flag(plusp,mate,resulttype,first_read_p,
-                         pathnum,npaths,npaths_mate,absmq_score,first_absmq,
+                         
pathnum,npaths,artificial_mate_p,npaths_mate,absmq_score,first_absmq,
                          invertp,invert_mate_p);
   FPRINTF(fp,"\t%u",flag);
 
@@ -3193,7 +3198,7 @@ print_exon_exon (Filestring_T fp, char *abbrev, 
Stage3end_T this, Stage3end_T ma
                 int absmq_score, int first_absmq, int second_absmq, int 
mapq_score,
                 Univ_IIT_T chromosome_iit, Shortread_T queryseq, int 
pairedlength,
                 Chrpos_T mate_chrpos, int hardclip_low, int hardclip_high,
-                Resulttype_T resulttype, bool first_read_p, int npaths_mate,
+                Resulttype_T resulttype, bool first_read_p, bool 
artificial_mate_p, int npaths_mate,
                 int quality_shift, char *sam_read_group_id, bool invertp, bool 
invert_mate_p) {
   Chrpos_T donor_chrpos, acceptor_chrpos, concordant_chrpos;
   Substring_T donor, acceptor;
@@ -3271,7 +3276,7 @@ print_exon_exon (Filestring_T fp, char *abbrev, 
Stage3end_T this, Stage3end_T ma
                      chromosome_iit,queryseq,pairedlength,
                      
concordant_chrpos,donor_chrpos,acceptor_chrpos,mate_chrpos,
                      
/*hardclip_low*/0,/*hardclip_high*/querylength-circularpos,
-                     
resulttype,first_read_p,npaths_mate,quality_shift,sam_read_group_id,
+                     
resulttype,first_read_p,artificial_mate_p,npaths_mate,quality_shift,sam_read_group_id,
                      
invertp,invert_mate_p,/*use_hardclip_p*/true,/*print_xt_p*/true,
                      
donor_sensedir,donor_strand,acceptor_strand,donor_chr,acceptor_chr,
                      
donor1,donor2,acceptor2,acceptor1,donor_prob,acceptor_prob,
@@ -3281,7 +3286,7 @@ print_exon_exon (Filestring_T fp, char *abbrev, 
Stage3end_T this, Stage3end_T ma
                      chromosome_iit,queryseq,pairedlength,
                      
/*concordant_chrpos*/1,/*donor_chrpos*/1,acceptor_chrpos,mate_chrpos,
                      /*hardclip_low*/circularpos,/*hardclip_high*/0,
-                     
resulttype,first_read_p,npaths_mate,quality_shift,sam_read_group_id,
+                     
resulttype,first_read_p,artificial_mate_p,npaths_mate,quality_shift,sam_read_group_id,
                      
invertp,invert_mate_p,/*use_hardclip_p*/true,/*print_xt_p*/true,
                      
donor_sensedir,donor_strand,acceptor_strand,donor_chr,acceptor_chr,
                      
donor1,donor2,acceptor2,acceptor1,donor_prob,acceptor_prob,
@@ -3292,7 +3297,7 @@ print_exon_exon (Filestring_T fp, char *abbrev, 
Stage3end_T this, Stage3end_T ma
                      chromosome_iit,queryseq,pairedlength,
                      
concordant_chrpos,donor_chrpos,acceptor_chrpos,mate_chrpos,
                      hardclip_low,hardclip_high,resulttype,first_read_p,
-                     npaths_mate,quality_shift,sam_read_group_id,
+                     
artificial_mate_p,npaths_mate,quality_shift,sam_read_group_id,
                      
invertp,invert_mate_p,/*use_hardclip_p*/true,/*print_xt_p*/true,
                      
donor_sensedir,donor_strand,acceptor_strand,donor_chr,acceptor_chr,
                      
donor1,donor2,acceptor2,acceptor1,donor_prob,acceptor_prob,
@@ -3305,7 +3310,7 @@ print_exon_exon (Filestring_T fp, char *abbrev, 
Stage3end_T this, Stage3end_T ma
                         chromosome_iit,queryseq,pairedlength,
                         
concordant_chrpos,donor_chrpos,acceptor_chrpos,mate_chrpos,
                         
/*hardclip_low*/0,/*hardclip_high*/querylength-circularpos,
-                        
resulttype,first_read_p,npaths_mate,quality_shift,sam_read_group_id,
+                        
resulttype,first_read_p,artificial_mate_p,npaths_mate,quality_shift,sam_read_group_id,
                         
invertp,invert_mate_p,/*use_hardclip_p*/true,/*print_xt_p*/true,
                         
acceptor_sensedir,donor_strand,acceptor_strand,donor_chr,acceptor_chr,
                         
donor1,donor2,acceptor2,acceptor1,donor_prob,acceptor_prob,
@@ -3315,7 +3320,7 @@ print_exon_exon (Filestring_T fp, char *abbrev, 
Stage3end_T this, Stage3end_T ma
                         chromosome_iit,queryseq,pairedlength,
                         
/*concordant_chrpos*/1,donor_chrpos,/*acceptor_chrpos*/1,mate_chrpos,
                         /*hardclip_low*/circularpos,/*hardclip_high*/0,
-                        
resulttype,first_read_p,npaths_mate,quality_shift,sam_read_group_id,
+                        
resulttype,first_read_p,artificial_mate_p,npaths_mate,quality_shift,sam_read_group_id,
                         
invertp,invert_mate_p,/*use_hardclip_p*/true,/*print_xt_p*/true,
                         
acceptor_sensedir,donor_strand,acceptor_strand,donor_chr,acceptor_chr,
                         
donor1,donor2,acceptor2,acceptor1,donor_prob,acceptor_prob,
@@ -3326,7 +3331,7 @@ print_exon_exon (Filestring_T fp, char *abbrev, 
Stage3end_T this, Stage3end_T ma
                         chromosome_iit,queryseq,pairedlength,
                         
concordant_chrpos,donor_chrpos,acceptor_chrpos,mate_chrpos,
                         hardclip_low,hardclip_high,resulttype,first_read_p,
-                        npaths_mate,quality_shift,sam_read_group_id,
+                        
artificial_mate_p,npaths_mate,quality_shift,sam_read_group_id,
                         
invertp,invert_mate_p,/*use_hardclip_p*/true,/*print_xt_p*/true,
                         
acceptor_sensedir,donor_strand,acceptor_strand,donor_chr,acceptor_chr,
                         
donor1,donor2,acceptor2,acceptor1,donor_prob,acceptor_prob,
@@ -3340,7 +3345,7 @@ print_exon_exon (Filestring_T fp, char *abbrev, 
Stage3end_T this, Stage3end_T ma
                         chromosome_iit,queryseq,pairedlength,
                         
concordant_chrpos,donor_chrpos,acceptor_chrpos,mate_chrpos,
                         
/*hardclip_low*/0,/*hardclip_high*/querylength-circularpos,
-                        
resulttype,first_read_p,npaths_mate,quality_shift,sam_read_group_id,
+                        
resulttype,first_read_p,artificial_mate_p,npaths_mate,quality_shift,sam_read_group_id,
                         
invertp,invert_mate_p,/*use_hardclip_p*/true,/*print_xt_p*/true,
                         
acceptor_sensedir,donor_strand,acceptor_strand,donor_chr,acceptor_chr,
                         
donor1,donor2,acceptor2,acceptor1,donor_prob,acceptor_prob,
@@ -3350,7 +3355,7 @@ print_exon_exon (Filestring_T fp, char *abbrev, 
Stage3end_T this, Stage3end_T ma
                         chromosome_iit,queryseq,pairedlength,
                         
/*concordant_chrpos*/1,donor_chrpos,/*acceptor_chrpos*/1,mate_chrpos,
                         /*hardclip_low*/circularpos,/*hardclip_high*/0,
-                        
resulttype,first_read_p,npaths_mate,quality_shift,sam_read_group_id,
+                        
resulttype,first_read_p,artificial_mate_p,npaths_mate,quality_shift,sam_read_group_id,
                         
invertp,invert_mate_p,/*use_hardclip_p*/true,/*print_xt_p*/true,
                         
acceptor_sensedir,donor_strand,acceptor_strand,donor_chr,acceptor_chr,
                         
donor1,donor2,acceptor2,acceptor1,donor_prob,acceptor_prob,
@@ -3361,7 +3366,7 @@ print_exon_exon (Filestring_T fp, char *abbrev, 
Stage3end_T this, Stage3end_T ma
                         chromosome_iit,queryseq,pairedlength,
                         
concordant_chrpos,donor_chrpos,acceptor_chrpos,mate_chrpos,
                         hardclip_low,hardclip_high,resulttype,first_read_p,
-                        npaths_mate,quality_shift,sam_read_group_id,
+                        
artificial_mate_p,npaths_mate,quality_shift,sam_read_group_id,
                         
invertp,invert_mate_p,/*use_hardclip_p*/true,/*print_xt_p*/true,
                         
acceptor_sensedir,donor_strand,acceptor_strand,donor_chr,acceptor_chr,
                         
donor1,donor2,acceptor2,acceptor1,donor_prob,acceptor_prob,
@@ -3374,7 +3379,7 @@ print_exon_exon (Filestring_T fp, char *abbrev, 
Stage3end_T this, Stage3end_T ma
                      chromosome_iit,queryseq,pairedlength,
                      
concordant_chrpos,donor_chrpos,acceptor_chrpos,mate_chrpos,
                      
/*hardclip_low*/0,/*hardclip_high*/querylength-circularpos,
-                     
resulttype,first_read_p,npaths_mate,quality_shift,sam_read_group_id,
+                     
resulttype,first_read_p,artificial_mate_p,npaths_mate,quality_shift,sam_read_group_id,
                      
invertp,invert_mate_p,/*use_hardclip_p*/true,/*print_xt_p*/true,
                      
donor_sensedir,donor_strand,acceptor_strand,donor_chr,acceptor_chr,
                      
donor1,donor2,acceptor2,acceptor1,donor_prob,acceptor_prob,
@@ -3384,7 +3389,7 @@ print_exon_exon (Filestring_T fp, char *abbrev, 
Stage3end_T this, Stage3end_T ma
                      chromosome_iit,queryseq,pairedlength,
                      
/*concordant_chrpos*/1,/*donor_chrpos*/1,acceptor_chrpos,mate_chrpos,
                      /*hardclip_low*/circularpos,/*hardclip_high*/0,
-                     
resulttype,first_read_p,npaths_mate,quality_shift,sam_read_group_id,
+                     
resulttype,first_read_p,artificial_mate_p,npaths_mate,quality_shift,sam_read_group_id,
                      
invertp,invert_mate_p,/*use_hardclip_p*/true,/*print_xt_p*/true,
                      
donor_sensedir,donor_strand,acceptor_strand,donor_chr,acceptor_chr,
                      
donor1,donor2,acceptor2,acceptor1,donor_prob,acceptor_prob,
@@ -3395,7 +3400,7 @@ print_exon_exon (Filestring_T fp, char *abbrev, 
Stage3end_T this, Stage3end_T ma
                      chromosome_iit,queryseq,pairedlength,
                      
concordant_chrpos,donor_chrpos,acceptor_chrpos,mate_chrpos,
                      hardclip_low,hardclip_high,resulttype,first_read_p,
-                     npaths_mate,quality_shift,sam_read_group_id,
+                     
artificial_mate_p,npaths_mate,quality_shift,sam_read_group_id,
                      
invertp,invert_mate_p,/*use_hardclip_p*/true,/*print_xt_p*/true,
                      
donor_sensedir,donor_strand,acceptor_strand,donor_chr,acceptor_chr,
                      
donor1,donor2,acceptor2,acceptor1,donor_prob,acceptor_prob,
@@ -3410,7 +3415,7 @@ print_exon_exon (Filestring_T fp, char *abbrev, 
Stage3end_T this, Stage3end_T ma
                         chromosome_iit,queryseq,pairedlength,
                         
concordant_chrpos,donor_chrpos,acceptor_chrpos,mate_chrpos,
                         
/*hardclip_low*/0,/*hardclip_high*/querylength-circularpos,
-                        
resulttype,first_read_p,npaths_mate,quality_shift,sam_read_group_id,
+                        
resulttype,first_read_p,artificial_mate_p,npaths_mate,quality_shift,sam_read_group_id,
                         
invertp,invert_mate_p,/*use_hardclip_p*/true,/*print_xt_p*/true,
                         
acceptor_sensedir,donor_strand,acceptor_strand,donor_chr,acceptor_chr,
                         
donor1,donor2,acceptor2,acceptor1,donor_prob,acceptor_prob,
@@ -3420,7 +3425,7 @@ print_exon_exon (Filestring_T fp, char *abbrev, 
Stage3end_T this, Stage3end_T ma
                         chromosome_iit,queryseq,pairedlength,
                         
/*concordant_chrpos*/1,donor_chrpos,/*acceptor_chrpos*/1,mate_chrpos,
                         /*hardclip_low*/circularpos,/*hardclip_high*/0,
-                        
resulttype,first_read_p,npaths_mate,quality_shift,sam_read_group_id,
+                        
resulttype,first_read_p,artificial_mate_p,npaths_mate,quality_shift,sam_read_group_id,
                         
invertp,invert_mate_p,/*use_hardclip_p*/true,/*print_xt_p*/true,
                         
acceptor_sensedir,donor_strand,acceptor_strand,donor_chr,acceptor_chr,
                         
donor1,donor2,acceptor2,acceptor1,donor_prob,acceptor_prob,
@@ -3431,7 +3436,7 @@ print_exon_exon (Filestring_T fp, char *abbrev, 
Stage3end_T this, Stage3end_T ma
                         chromosome_iit,queryseq,pairedlength,
                         
concordant_chrpos,donor_chrpos,acceptor_chrpos,mate_chrpos,
                         hardclip_low,hardclip_high,resulttype,first_read_p,
-                        npaths_mate,quality_shift,sam_read_group_id,
+                        
artificial_mate_p,npaths_mate,quality_shift,sam_read_group_id,
                         
invertp,invert_mate_p,/*use_hardclip_p*/true,/*print_xt_p*/true,
                         
acceptor_sensedir,donor_strand,acceptor_strand,donor_chr,acceptor_chr,
                         
donor1,donor2,acceptor2,acceptor1,donor_prob,acceptor_prob,
@@ -3444,7 +3449,7 @@ print_exon_exon (Filestring_T fp, char *abbrev, 
Stage3end_T this, Stage3end_T ma
                      chromosome_iit,queryseq,pairedlength,
                      
concordant_chrpos,donor_chrpos,acceptor_chrpos,mate_chrpos,
                      
/*hardclip_low*/0,/*hardclip_high*/querylength-circularpos,
-                     
resulttype,first_read_p,npaths_mate,quality_shift,sam_read_group_id,
+                     
resulttype,first_read_p,artificial_mate_p,npaths_mate,quality_shift,sam_read_group_id,
                      
invertp,invert_mate_p,/*use_hardclip_p*/true,/*print_xt_p*/true,
                      
donor_sensedir,donor_strand,acceptor_strand,donor_chr,acceptor_chr,
                      
donor1,donor2,acceptor2,acceptor1,donor_prob,acceptor_prob,
@@ -3454,7 +3459,7 @@ print_exon_exon (Filestring_T fp, char *abbrev, 
Stage3end_T this, Stage3end_T ma
                      chromosome_iit,queryseq,pairedlength,
                      
/*concordant_chrpos*/1,/*donor_chrpos*/1,acceptor_chrpos,mate_chrpos,
                      /*hardclip_low*/circularpos,/*hardclip_high*/0,
-                     
resulttype,first_read_p,npaths_mate,quality_shift,sam_read_group_id,
+                     
resulttype,first_read_p,artificial_mate_p,npaths_mate,quality_shift,sam_read_group_id,
                      
invertp,invert_mate_p,/*use_hardclip_p*/true,/*print_xt_p*/true,
                      
donor_sensedir,donor_strand,acceptor_strand,donor_chr,acceptor_chr,
                      
donor1,donor2,acceptor2,acceptor1,donor_prob,acceptor_prob,
@@ -3465,7 +3470,7 @@ print_exon_exon (Filestring_T fp, char *abbrev, 
Stage3end_T this, Stage3end_T ma
                      chromosome_iit,queryseq,pairedlength,
                      
concordant_chrpos,donor_chrpos,acceptor_chrpos,mate_chrpos,
                      hardclip_low,hardclip_high,resulttype,first_read_p,
-                     npaths_mate,quality_shift,sam_read_group_id,
+                     
artificial_mate_p,npaths_mate,quality_shift,sam_read_group_id,
                      
invertp,invert_mate_p,/*use_hardclip_p*/true,/*print_xt_p*/true,
                      
donor_sensedir,donor_strand,acceptor_strand,donor_chr,acceptor_chr,
                      
donor1,donor2,acceptor2,acceptor1,donor_prob,acceptor_prob,
@@ -3489,8 +3494,8 @@ SAM_print (Filestring_T fp, Filestring_T fp_failedinput, 
char *abbrev,
           int absmq_score, int first_absmq, int second_absmq, int mapq_score, 
Univ_IIT_T chromosome_iit, Shortread_T queryseq,
           Shortread_T queryseq_mate, int pairedlength, Chrpos_T chrpos, 
Chrpos_T mate_chrpos,
           int clipdir, int hardclip5_low, int hardclip5_high, int 
hardclip3_low, int hardclip3_high,
-          Resulttype_T resulttype, bool first_read_p,
-          int npaths_mate, int quality_shift, char *sam_read_group_id, bool 
invertp, bool invert_mate_p,
+          Resulttype_T resulttype, bool first_read_p, bool artificial_mate_p, 
int npaths_mate,
+          int quality_shift, char *sam_read_group_id, bool invertp, bool 
invert_mate_p,
           bool merge_samechr_p) {
   Hittype_T hittype;
   unsigned int flag;
@@ -3504,8 +3509,8 @@ SAM_print (Filestring_T fp, Filestring_T fp_failedinput, 
char *abbrev,
   /* Also, can use this test here because --quiet-if-excessive cases go 
directly to SAM_print_nomapping */
   if (npaths == 0) {
     
SAM_print_nomapping(fp,abbrev,queryseq,mate,acc1,acc2,chromosome_iit,resulttype,first_read_p,
-                       
/*pathnum*/0,/*npaths*/0,npaths_mate,mate_chrpos,quality_shift,
-                       sam_read_group_id,invertp,invert_mate_p);
+                       
/*pathnum*/0,/*npaths*/0,artificial_mate_p,npaths_mate,mate_chrpos,
+                       quality_shift,sam_read_group_id,invertp,invert_mate_p);
 
     if (fp_failedinput != NULL) {
       if (first_read_p == true) {
@@ -3537,8 +3542,8 @@ SAM_print (Filestring_T fp, Filestring_T fp_failedinput, 
char *abbrev,
     }
 
     flag = SAM_compute_flag(Stage3end_plusp(this),mate,resulttype,first_read_p,
-                           pathnum,npaths,npaths_mate,absmq_score,first_absmq,
-                           invertp,invert_mate_p);
+                           pathnum,npaths,artificial_mate_p,npaths_mate,
+                           absmq_score,first_absmq,invertp,invert_mate_p);
 
     querylength = Shortread_fulllength(queryseq);
     if ((circularpos = Stage3end_circularpos(this)) > 0
@@ -3614,13 +3619,13 @@ SAM_print (Filestring_T fp, Filestring_T 
fp_failedinput, char *abbrev,
       print_exon_exon(fp,abbrev,this,mate,acc1,acc2,pathnum,npaths,
                      
absmq_score,first_absmq,second_absmq,mapq_score,chromosome_iit,queryseq,pairedlength,
                      
mate_chrpos,hardclip5_low,hardclip5_high,resulttype,/*first_read_p*/true,
-                     npaths_mate,quality_shift,sam_read_group_id,
+                     
artificial_mate_p,npaths_mate,quality_shift,sam_read_group_id,
                      invertp,invert_mate_p);
     } else {
       print_exon_exon(fp,abbrev,this,mate,acc1,acc2,pathnum,npaths,
                      
absmq_score,first_absmq,second_absmq,mapq_score,chromosome_iit,queryseq,pairedlength,
                      
mate_chrpos,hardclip3_low,hardclip3_high,resulttype,/*first_read_p*/false,
-                     npaths_mate,quality_shift,sam_read_group_id,
+                     
artificial_mate_p,npaths_mate,quality_shift,sam_read_group_id,
                      invertp,invert_mate_p);
     }
 
@@ -3635,24 +3640,24 @@ SAM_print (Filestring_T fp, Filestring_T 
fp_failedinput, char *abbrev,
       print_substrings(fp,abbrev,this,mate,acc1,acc2,pathnum,npaths,
                       
absmq_score,first_absmq,second_absmq,mapq_score,queryseq,pairedlength,
                       
chrpos,mate_chrpos,/*hardclip_low*/0,/*hardclip_high*/querylength-circularpos,
-                      
resulttype,first_read_p,npaths_mate,quality_shift,sam_read_group_id,
+                      
resulttype,first_read_p,artificial_mate_p,npaths_mate,quality_shift,sam_read_group_id,
                       invertp,invert_mate_p,/*circularp*/true);
       print_substrings(fp,abbrev,this,mate,acc1,acc2,pathnum,npaths,
                       
absmq_score,first_absmq,second_absmq,mapq_score,queryseq,pairedlength,
                       
/*chrpos*/1,mate_chrpos,/*hardclip_low*/circularpos,/*hardclip_high*/0,
-                      
resulttype,first_read_p,npaths_mate,quality_shift,sam_read_group_id,
+                      
resulttype,first_read_p,artificial_mate_p,npaths_mate,quality_shift,sam_read_group_id,
                       invertp,invert_mate_p,/*circularp*/true);
     } else if (first_read_p == true) {
       print_substrings(fp,abbrev,this,mate,acc1,acc2,pathnum,npaths,
                       
absmq_score,first_absmq,second_absmq,mapq_score,queryseq,pairedlength,
                       
chrpos,mate_chrpos,hardclip5_low,hardclip5_high,resulttype,/*first_read_p*/true,
-                      npaths_mate,quality_shift,sam_read_group_id,
+                      
artificial_mate_p,npaths_mate,quality_shift,sam_read_group_id,
                       invertp,invert_mate_p,/*circularp*/false);
     } else {
       print_substrings(fp,abbrev,this,mate,acc1,acc2,pathnum,npaths,
                       
absmq_score,first_absmq,second_absmq,mapq_score,queryseq,pairedlength,
                       
chrpos,mate_chrpos,hardclip3_low,hardclip3_high,resulttype,/*first_read_p*/false,
-                      npaths_mate,quality_shift,sam_read_group_id,
+                      
artificial_mate_p,npaths_mate,quality_shift,sam_read_group_id,
                       invertp,invert_mate_p,/*circularp*/false);
     }
   }
@@ -3696,12 +3701,14 @@ SAM_print_paired (Filestring_T fp, Filestring_T 
fp_failedinput_1, Filestring_T f
       Filestring_set_split_output(fp,OUTPUT_NM);
       
SAM_print_nomapping(fp,ABBREV_NOMAPPING_1,queryseq1,/*mate*/(Stage3end_T) NULL,
                          acc1,acc2,chromosome_iit,resulttype,
-                         
/*first_read_p*/true,/*pathnum*/0,/*npaths*/0,/*npaths_mate*/0,
+                         /*first_read_p*/true,/*pathnum*/0,/*npaths*/0,
+                         /*artificial_mate_p*/false,/*npaths_mate*/0,
                          /*mate_chrpos*/0U,quality_shift,
                          sam_read_group_id,invert_first_p,invert_second_p);
       
SAM_print_nomapping(fp,ABBREV_NOMAPPING_2,queryseq2,/*mate*/(Stage3end_T) NULL,
                          acc1,acc2,chromosome_iit,resulttype,
-                         
/*first_read_p*/false,/*pathnum*/0,/*npaths*/0,/*npaths_mate*/0,
+                         /*first_read_p*/false,/*pathnum*/0,/*npaths*/0,
+                         /*artificial_mate_p*/false,/*npaths_mate*/0,
                          /*mate_chrpos*/0U,quality_shift,
                          sam_read_group_id,invert_second_p,invert_first_p);
 
@@ -3754,7 +3761,7 @@ SAM_print_paired (Filestring_T fp, Filestring_T 
fp_failedinput_1, Filestring_T f
                  /*queryseq*/queryseq1,/*queryseq_mate*/queryseq2,
                  
Stage3pair_pairlength(stage3pair),/*chrpos*/chrpos5,/*mate_chrpos*/chrpos3,
                  
clipdir,hardclip5_low,hardclip5_high,hardclip3_low,hardclip3_high,
-                 resulttype,/*first_read_p*/true,/*npaths_mate*/npaths,
+                 
resulttype,/*first_read_p*/true,/*artificial_mate_p*/false,/*npaths_mate*/npaths,
                  
quality_shift,sam_read_group_id,invert_first_p,invert_second_p,
                  merge_samechr_p);
 
@@ -3766,7 +3773,7 @@ SAM_print_paired (Filestring_T fp, Filestring_T 
fp_failedinput_1, Filestring_T f
                  /*queryseq*/queryseq2,/*queryseq_mate*/queryseq1,
                  
Stage3pair_pairlength(stage3pair),/*chrpos*/chrpos3,/*mate_chrpos*/chrpos5,
                  
clipdir,hardclip5_low,hardclip5_high,hardclip3_low,hardclip3_high,
-                 resulttype,/*first_read_p*/false,/*npaths_mate*/npaths,
+                 
resulttype,/*first_read_p*/false,/*artificial_mate_p*/false,/*npaths_mate*/npaths,
                  
quality_shift,sam_read_group_id,invert_second_p,invert_first_p,
                  merge_samechr_p);
 
@@ -3785,7 +3792,7 @@ SAM_print_paired (Filestring_T fp, Filestring_T 
fp_failedinput_1, Filestring_T f
        }
        /* merging changes resulttype from UNPAIRED_UNIQ to SINGLEEND_UNIQ */
        flag = 
SAM_compute_flag(Stage3end_plusp(hit5),/*mate*/NULL,/*resulttype*/SINGLEEND_UNIQ,/*first_read_p*/true,
-                               /*pathnum*/1,/*npaths*/1,/*npaths_mate*/0,
+                               
/*pathnum*/1,/*npaths*/1,/*artificial_mate_p*/false,/*npaths_mate*/0,
                                
Stage3pair_absmq_score(stage3pair),first_absmq,/*invertp*/false,
                                /*invert_mate_p*/false);
        Filestring_set_split_output(fp,OUTPUT_UU);
@@ -3823,15 +3830,15 @@ SAM_print_paired (Filestring_T fp, Filestring_T 
fp_failedinput_1, Filestring_T f
        SAM_print_nomapping(fp,ABBREV_CONCORDANT_TRANSLOC,
                            queryseq1,/*mate*/(Stage3end_T) NULL,
                            acc1,acc2,chromosome_iit,resulttype,
-                           
/*first_read_p*/true,/*pathnum*/1,npaths,/*npaths_mate*/npaths,
-                           /*mate_chrpos*/0U,quality_shift,
-                           sam_read_group_id,invert_first_p,invert_second_p);
+                           /*first_read_p*/true,/*pathnum*/1,npaths,
+                           
/*artificial_mate_p*/false,/*npaths_mate*/npaths,/*mate_chrpos*/0U,
+                           
quality_shift,sam_read_group_id,invert_first_p,invert_second_p);
        SAM_print_nomapping(fp,ABBREV_CONCORDANT_TRANSLOC,
                            queryseq2,/*mate*/(Stage3end_T) NULL,
                            acc1,acc2,chromosome_iit,resulttype,
-                           
/*first_read_p*/false,/*pathnum*/1,npaths,/*npaths_mate*/npaths,
-                           /*mate_chrpos*/0U,quality_shift,
-                           sam_read_group_id,invert_second_p,invert_first_p);
+                           /*first_read_p*/false,/*pathnum*/1,npaths,
+                           
/*artificial_mate_p*/false,/*npaths_mate*/npaths,/*mate_chrpos*/0U,
+                           
quality_shift,sam_read_group_id,invert_second_p,invert_first_p);
 
       } else {
        /* 
Stage3pair_eval(stage3pairarray,npaths,maxpaths_report,queryseq1,queryseq2); */
@@ -3868,7 +3875,7 @@ SAM_print_paired (Filestring_T fp, Filestring_T 
fp_failedinput_1, Filestring_T f
                    /*queryseq*/queryseq1,/*queryseq_mate*/queryseq2,
                    
Stage3pair_pairlength(stage3pair),/*chrpos*/chrpos5,/*mate_chrpos*/chrpos3,
                    
clipdir,hardclip5_low,hardclip5_high,hardclip3_low,hardclip3_high,
-                   resulttype,/*first_read_p*/true,/*npaths_mate*/npaths,
+                   
resulttype,/*first_read_p*/true,/*artificial_mate_p*/false,/*npaths_mate*/npaths,
                    
quality_shift,sam_read_group_id,invert_first_p,invert_second_p,
                    merge_samechr_p);
 
@@ -3880,7 +3887,7 @@ SAM_print_paired (Filestring_T fp, Filestring_T 
fp_failedinput_1, Filestring_T f
                    /*queryseq*/queryseq2,/*queryseq_mate*/queryseq1,
                    
Stage3pair_pairlength(stage3pair),/*chrpos*/chrpos3,/*mate_chrpos*/chrpos5,
                    
clipdir,hardclip5_low,hardclip5_high,hardclip3_low,hardclip3_high,
-                   resulttype,/*first_read_p*/false,/*npaths_mate*/npaths,
+                   
resulttype,/*first_read_p*/false,/*artificial_mate_p*/false,/*npaths_mate*/npaths,
                    
quality_shift,sam_read_group_id,invert_second_p,invert_first_p,
                    merge_samechr_p);
        }
@@ -3895,13 +3902,15 @@ SAM_print_paired (Filestring_T fp, Filestring_T 
fp_failedinput_1, Filestring_T f
        SAM_print_nomapping(fp,ABBREV_CONCORDANT_MULT_XS,
                            queryseq1,/*mate*/(Stage3end_T) NULL,
                            acc1,acc2,chromosome_iit,resulttype,
-                           
/*first_read_p*/true,/*pathnum*/1,npaths,/*npaths_mate*/npaths,
+                           /*first_read_p*/true,/*pathnum*/1,npaths,
+                           /*artificial_mate_p*/false,/*npaths_mate*/npaths,
                            /*mate_chrpos*/0U,quality_shift,
                            sam_read_group_id,invert_first_p,invert_second_p);
        SAM_print_nomapping(fp,ABBREV_CONCORDANT_MULT_XS,
                            queryseq2,/*mate*/(Stage3end_T) NULL,
                            acc1,acc2,chromosome_iit,resulttype,
-                           
/*first_read_p*/false,/*pathnum*/1,npaths,/*npaths_mate*/npaths,
+                           /*first_read_p*/false,/*pathnum*/1,npaths,
+                           /*artificial_mate_p*/false,/*npaths_mate*/npaths,
                            /*mate_chrpos*/0U,quality_shift,
                            sam_read_group_id,invert_second_p,invert_first_p);
 
@@ -3946,7 +3955,7 @@ SAM_print_paired (Filestring_T fp, Filestring_T 
fp_failedinput_1, Filestring_T f
                      /*queryseq*/queryseq1,/*queryseq_mate*/queryseq2,
                      
Stage3pair_pairlength(stage3pair),/*chrpos*/chrpos5,/*mate_chrpos*/chrpos3,
                      
clipdir,hardclip5_low,hardclip5_high,hardclip3_low,hardclip3_high,
-                     resulttype,/*first_read_p*/true,/*npaths_mate*/npaths,
+                     
resulttype,/*first_read_p*/true,/*artificial_mate_p*/false,/*npaths_mate*/npaths,
                      
quality_shift,sam_read_group_id,invert_first_p,invert_second_p,
                      merge_samechr_p);
 
@@ -3958,7 +3967,7 @@ SAM_print_paired (Filestring_T fp, Filestring_T 
fp_failedinput_1, Filestring_T f
                      /*queryseq*/queryseq2,/*queryseq_mate*/queryseq1,
                      
Stage3pair_pairlength(stage3pair),/*chrpos*/chrpos3,/*mate_chrpos*/chrpos5,
                      
clipdir,hardclip5_low,hardclip5_high,hardclip3_low,hardclip3_high,
-                     resulttype,/*first_read_p*/false,/*npaths_mate*/npaths,
+                     
resulttype,/*first_read_p*/false,/*artificial_mate_p*/false,/*npaths_mate*/npaths,
                      
quality_shift,sam_read_group_id,invert_second_p,invert_first_p,
                      merge_samechr_p);
            
@@ -3977,7 +3986,7 @@ SAM_print_paired (Filestring_T fp, Filestring_T 
fp_failedinput_1, Filestring_T f
            }
            /* merging changes resulttype from UNPAIRED_UNIQ to SINGLEEND_UNIQ 
*/
            flag = 
SAM_compute_flag(Stage3end_plusp(hit5),/*mate*/NULL,/*resulttype*/SINGLEEND_UNIQ,/*first_read_p*/true,
-                                   /*pathnum*/1,/*npaths*/1,/*npaths_mate*/0,
+                                   
/*pathnum*/1,/*npaths*/1,/*artificial_mate_p*/false,/*npaths_mate*/0,
                                    
Stage3pair_absmq_score(stage3pair),first_absmq,/*invertp*/false,
                                    /*invert_mate_p*/false);
            
Pair_print_sam(fp,ABBREV_CONCORDANT_MULT,pairarray,npairs,/*cigar_tokens*/NULL,/*gmap_intronp*/false,
@@ -4044,7 +4053,7 @@ SAM_print_paired (Filestring_T fp, Filestring_T 
fp_failedinput_1, Filestring_T f
                /*queryseq*/queryseq1,/*queryseq_mate*/queryseq2,
                
Stage3pair_pairlength(stage3pair),/*chrpos*/chrpos5,/*mate_chrpos*/chrpos3,
                
/*clipdir*/0,hardclip5_low,hardclip5_high,hardclip3_low,hardclip3_high,
-               resulttype,/*first_read_p*/true,/*npaths_mate*/npaths,
+               
resulttype,/*first_read_p*/true,/*artificial_mate_p*/false,/*npaths_mate*/npaths,
                quality_shift,sam_read_group_id,invert_first_p,invert_second_p,
                merge_samechr_p);
 
@@ -4056,7 +4065,7 @@ SAM_print_paired (Filestring_T fp, Filestring_T 
fp_failedinput_1, Filestring_T f
                /*queryseq*/queryseq2,/*queryseq_mate*/queryseq1,
                
Stage3pair_pairlength(stage3pair),/*chrpos*/chrpos3,/*mate_chrpos*/chrpos5,
                
/*clipdir*/0,hardclip5_low,hardclip5_high,hardclip3_low,hardclip3_high,
-               resulttype,/*first_read_p*/false,/*npaths_mate*/npaths,
+               
resulttype,/*first_read_p*/false,/*artificial_mate_p*/false,/*npaths_mate*/npaths,
                quality_shift,sam_read_group_id,invert_second_p,invert_first_p,
                merge_samechr_p);
 
@@ -4069,13 +4078,15 @@ SAM_print_paired (Filestring_T fp, Filestring_T 
fp_failedinput_1, Filestring_T f
        SAM_print_nomapping(fp,ABBREV_PAIRED_MULT_XS,
                            queryseq1,/*mate*/(Stage3end_T) NULL,
                            acc1,acc2,chromosome_iit,resulttype,
-                           
/*first_read_p*/true,/*pathnum*/1,npaths,/*npaths_mate*/npaths,
+                           /*first_read_p*/true,/*pathnum*/1,npaths,
+                           /*artificial_mate_p*/false,/*npaths_mate*/npaths,
                            /*mate_chrpos*/0U,quality_shift,
                            sam_read_group_id,invert_first_p,invert_second_p);
        SAM_print_nomapping(fp,ABBREV_PAIRED_MULT_XS,
                            queryseq2,/*mate*/(Stage3end_T) NULL,
                            acc1,acc2,chromosome_iit,resulttype,
-                           
/*first_read_p*/false,/*pathnum*/1,npaths,/*npaths_mate*/npaths,
+                           /*first_read_p*/false,/*pathnum*/1,npaths,
+                           /*artificial_mate_p*/false,/*npaths_mate*/npaths,
                            /*mate_chrpos*/0U,quality_shift,
                            sam_read_group_id,invert_second_p,invert_first_p);
 
@@ -4104,7 +4115,7 @@ SAM_print_paired (Filestring_T fp, Filestring_T 
fp_failedinput_1, Filestring_T f
                    /*queryseq*/queryseq1,/*queryseq_mate*/queryseq2,
                    
Stage3pair_pairlength(stage3pair),/*chrpos*/chrpos5,/*mate_chrpos*/chrpos3,
                    
/*clipdir*/0,hardclip5_low,hardclip5_high,hardclip3_low,hardclip3_high,
-                   resulttype,/*first_read_p*/true,/*npaths_mate*/npaths,
+                   
resulttype,/*first_read_p*/true,/*artificial_mate_p*/false,/*npaths_mate*/npaths,
                    
quality_shift,sam_read_group_id,invert_first_p,invert_second_p,
                    merge_samechr_p);
 
@@ -4116,7 +4127,7 @@ SAM_print_paired (Filestring_T fp, Filestring_T 
fp_failedinput_1, Filestring_T f
                    /*queryseq*/queryseq2,/*queryseq_mate*/queryseq1,
                    
Stage3pair_pairlength(stage3pair),/*chrpos*/chrpos3,/*mate_chrpos*/chrpos5,
                    
/*clipdir*/0,hardclip5_low,hardclip5_high,hardclip3_low,hardclip3_high,
-                   resulttype,/*first_read_p*/false,/*npaths_mate*/npaths,
+                   
resulttype,/*first_read_p*/false,/*artificial_mate_p*/false,/*npaths_mate*/npaths,
                    
quality_shift,sam_read_group_id,invert_second_p,invert_first_p,
                    merge_samechr_p);
        }
@@ -4150,7 +4161,7 @@ SAM_print_paired (Filestring_T fp, Filestring_T 
fp_failedinput_1, Filestring_T f
                /*queryseq*/queryseq1,/*queryseq_mate*/queryseq2,
                /*pairedlength*/0U,/*chrpos*/chrpos5,/*mate_chrpos*/chrpos3,
                
/*clipdir*/0,/*hardclip5_low*/0,/*hardclip5_high*/0,/*hardclip3_low*/0,/*hardclip3_high*/0,
-               
resulttype,/*first_read_p*/true,/*npaths_mate*/1,quality_shift,sam_read_group_id,
+               
resulttype,/*first_read_p*/true,/*artificial_mate_p*/false,/*npaths_mate*/1,quality_shift,sam_read_group_id,
                invert_first_p,invert_second_p,merge_samechr_p);
 
       /* Note: Do not act on add_paired_nomappers_p, since the two reads are 
artificially paired up already */
@@ -4163,7 +4174,7 @@ SAM_print_paired (Filestring_T fp, Filestring_T 
fp_failedinput_1, Filestring_T f
                /*queryseq*/queryseq2,/*queryseq_mate*/queryseq1,
                /*pairedlength*/0U,/*chrpos*/chrpos3,/*mate_chrpos*/chrpos5,
                
/*clipdir*/0,/*hardclip5_low*/0,/*hardclip5_high*/0,/*hardclip3_low*/0,/*hardclip3_high*/0,
-               
resulttype,/*first_read_p*/false,/*npaths_mate*/1,quality_shift,sam_read_group_id,
+               
resulttype,/*first_read_p*/false,/*artificial_mate_p*/false,/*npaths_mate*/1,quality_shift,sam_read_group_id,
                invert_second_p,invert_first_p,merge_samechr_p);
 
     } else if (resulttype == UNPAIRED_MULT || resulttype == UNPAIRED_TRANSLOC) 
{
@@ -4222,8 +4233,8 @@ SAM_print_paired (Filestring_T fp, Filestring_T 
fp_failedinput_1, Filestring_T f
                    /*queryseq*/queryseq1,/*queryseq_mate*/queryseq2,
                    /*pairedlength*/0U,/*chrpos*/chrpos5,/*mate_chrpos*/chrpos3,
                    
/*clipdir*/0,/*hardclip5_low*/0,/*hardclip5_high*/0,/*hardclip3_low*/0,/*hardclip3_high*/0,
-                   
resulttype,/*first_read_p*/true,/*npaths_mate*/npaths_max,quality_shift,sam_read_group_id,
-                   invert_first_p,invert_second_p,merge_samechr_p);
+                   
resulttype,/*first_read_p*/true,/*artificial_mate_p*/false,/*npaths_mate*/npaths_max,
+                   
quality_shift,sam_read_group_id,invert_first_p,invert_second_p,merge_samechr_p);
 
          stage3 = stage3array2[pathnum-1];
          
SAM_print(fp,fp_failedinput_2,abbrev,stage3,/*mate*/stage3array1[pathnum-1],acc1,acc2,pathnum,npaths_max,
@@ -4232,8 +4243,8 @@ SAM_print_paired (Filestring_T fp, Filestring_T 
fp_failedinput_1, Filestring_T f
                    /*queryseq*/queryseq2,/*queryseq_mate*/queryseq1,
                    /*pairedlength*/0U,/*chrpos*/chrpos3,/*mate_chrpos*/chrpos5,
                    
/*clipdir*/0,/*hardclip5_low*/0,/*hardclip5_high*/0,/*hardclip3_low*/0,/*hardclip3_high*/0,
-                   
resulttype,/*first_read_p*/false,/*npaths_mate*/npaths_max,quality_shift,sam_read_group_id,
-                   invert_second_p,invert_first_p,merge_samechr_p);
+                   
resulttype,/*first_read_p*/false,/*artificial_mate_p*/false,/*npaths_mate*/npaths_max,
+                   
quality_shift,sam_read_group_id,invert_second_p,invert_first_p,merge_samechr_p);
        }
 
        /* Print remaining results with non-mappers */
@@ -4251,13 +4262,13 @@ SAM_print_paired (Filestring_T fp, Filestring_T 
fp_failedinput_1, Filestring_T f
                      /*queryseq*/queryseq1,/*queryseq_mate*/queryseq2,
                      
/*pairedlength*/0U,/*chrpos*/chrpos5,/*mate_chrpos*/chrpos3,
                      
/*clipdir*/0,/*hardclip5_low*/0,/*hardclip5_high*/0,/*hardclip3_low*/0,/*hardclip3_high*/0,
-                     
resulttype,/*first_read_p*/true,/*npaths_mate*/npaths_max,quality_shift,sam_read_group_id,
-                     invert_first_p,invert_second_p,merge_samechr_p);
+                     
resulttype,/*first_read_p*/true,/*artificial_mate_p*/true,/*npaths_mate*/npaths_max,
+                     
quality_shift,sam_read_group_id,invert_first_p,invert_second_p,merge_samechr_p);
 
            /* matching nomapper for second end */
            
SAM_print_nomapping(fp,abbrev,queryseq2,/*mate*/stage3,acc1,acc2,chromosome_iit,
-                               
resulttype,/*first_read_p*/false,pathnum,/*npaths*/npaths_max,/*npaths_mate*/npaths_max,
-                               /*mate_chrpos*/chrpos5,
+                               
resulttype,/*first_read_p*/false,pathnum,npaths_max,
+                               
/*artificial_mate_p*/false,/*npaths_mate*/npaths_max,/*mate_chrpos*/chrpos5,
                                
quality_shift,sam_read_group_id,invert_first_p,invert_second_p);
          }
 
@@ -4271,8 +4282,8 @@ SAM_print_paired (Filestring_T fp, Filestring_T 
fp_failedinput_1, Filestring_T f
 
            /* matching nomapper for first end */
            
SAM_print_nomapping(fp,abbrev,queryseq1,/*mate*/stage3,acc1,acc2,chromosome_iit,
-                               
resulttype,/*first_read_p*/true,pathnum,/*npaths*/npaths_max,/*npaths_mate*/npaths_max,
-                               /*mate_chrpos*/chrpos3,
+                               
resulttype,/*first_read_p*/true,pathnum,npaths_max,
+                               
/*artificial_mate_p*/false,/*npaths_mate*/npaths_max,/*mate_chrpos*/chrpos3,
                                
quality_shift,sam_read_group_id,invert_first_p,invert_second_p);
 
            
SAM_print(fp,fp_failedinput_2,abbrev,stage3,/*mate*/NULL,acc1,acc2,pathnum,npaths_max,
@@ -4281,8 +4292,8 @@ SAM_print_paired (Filestring_T fp, Filestring_T 
fp_failedinput_1, Filestring_T f
                      /*queryseq*/queryseq2,/*queryseq_mate*/queryseq1,
                      
/*pairedlength*/0U,/*chrpos*/chrpos3,/*mate_chrpos*/chrpos5,
                      
/*clipdir*/0,/*hardclip5_low*/0,/*hardclip5_high*/0,/*hardclip3_low*/0,/*hardclip3_high*/0,
-                     
resulttype,/*first_read_p*/false,/*npaths_mate*/npaths_max,quality_shift,sam_read_group_id,
-                     invert_second_p,invert_first_p,merge_samechr_p);
+                     
resulttype,/*first_read_p*/false,/*artificial_mate_p*/true,/*npaths_mate*/npaths_max,
+                     
quality_shift,sam_read_group_id,invert_second_p,invert_first_p,merge_samechr_p);
          }
        }
 
@@ -4311,14 +4322,14 @@ SAM_print_paired (Filestring_T fp, Filestring_T 
fp_failedinput_1, Filestring_T f
                    /*queryseq*/queryseq1,/*queryseq_mate*/queryseq2,
                    /*pairedlength*/0U,/*chrpos*/chrpos5,/*mate_chrpos*/chrpos3,
                    
/*clipdir*/0,/*hardclip5_low*/0,/*hardclip5_high*/0,/*hardclip3_low*/0,/*hardclip3_high*/0,
-                   
resulttype,/*first_read_p*/true,/*npaths_mate*/npaths2,quality_shift,sam_read_group_id,
-                   invert_first_p,invert_second_p,merge_samechr_p);
+                   
resulttype,/*first_read_p*/true,/*artificial_mate_p*/false,/*npaths_mate*/npaths2,
+                   
quality_shift,sam_read_group_id,invert_first_p,invert_second_p,merge_samechr_p);
 
        } else if (quiet_if_excessive_p && npaths1 > maxpaths_report) {
          /* Just printing one end as nomapping */
          SAM_print_nomapping(fp,abbrev,queryseq1,mate,acc1,acc2,chromosome_iit,
-                             
resulttype,/*first_read_p*/true,/*pathnum*/1,npaths1,/*npaths_mate*/npaths2,
-                             /*mate_chrpos*/chrpos3,
+                             
resulttype,/*first_read_p*/true,/*pathnum*/1,npaths1,
+                             
/*artificial_mate_p*/false,/*npaths_mate*/npaths2,/*mate_chrpos*/chrpos3,
                              
quality_shift,sam_read_group_id,invert_first_p,invert_second_p);
 
        } else {
@@ -4334,8 +4345,8 @@ SAM_print_paired (Filestring_T fp, Filestring_T 
fp_failedinput_1, Filestring_T f
                      /*queryseq*/queryseq1,/*queryseq_mate*/queryseq2,
                      
/*pairedlength*/0U,/*chrpos*/chrpos5,/*mate_chrpos*/chrpos3,
                      
/*clipdir*/0,/*hardclip5_low*/0,/*hardclip5_high*/0,/*hardclip3_low*/0,/*hardclip3_high*/0,
-                     
resulttype,/*first_read_p*/true,/*npaths_mate*/npaths2,quality_shift,sam_read_group_id,
-                     invert_first_p,invert_second_p,merge_samechr_p);
+                     
resulttype,/*first_read_p*/true,/*artificial_mate_p*/false,/*npaths_mate*/npaths2,
+                     
quality_shift,sam_read_group_id,invert_first_p,invert_second_p,merge_samechr_p);
          }
        }
                          
@@ -4365,14 +4376,14 @@ SAM_print_paired (Filestring_T fp, Filestring_T 
fp_failedinput_1, Filestring_T f
                    /*queryseq*/queryseq2,/*queryseq_mate*/queryseq1,
                    /*pairedlength*/0U,/*chrpos*/chrpos3,/*mate_chrpos*/chrpos5,
                    
/*clipdir*/0,/*hardclip5_low*/0,/*hardclip5_high*/0,/*hardclip3_low*/0,/*hardclip3_high*/0,
-                   
resulttype,/*first_read_p*/false,/*npaths_mate*/npaths1,quality_shift,sam_read_group_id,
-                   invert_second_p,invert_first_p,merge_samechr_p);
+                   
resulttype,/*first_read_p*/false,/*artificial_mate_p*/false,/*npaths_mate*/npaths1,
+                   
quality_shift,sam_read_group_id,invert_second_p,invert_first_p,merge_samechr_p);
          
        } else if (quiet_if_excessive_p && npaths2 > maxpaths_report) {
          /* Just printing one end as nomapping */
          SAM_print_nomapping(fp,abbrev,queryseq2,mate,acc1,acc2,chromosome_iit,
-                             
resulttype,/*first_read_p*/false,/*pathnum*/1,npaths2,/*npaths_mate*/npaths1,
-                             /*mate_chrpos*/chrpos5,
+                             
resulttype,/*first_read_p*/false,/*pathnum*/1,npaths2,
+                             
/*artificial_mate_p*/false,/*npaths_mate*/npaths1,/*mate_chrpos*/chrpos5,
                              
quality_shift,sam_read_group_id,invert_second_p,invert_first_p);
          
        } else {
@@ -4388,8 +4399,8 @@ SAM_print_paired (Filestring_T fp, Filestring_T 
fp_failedinput_1, Filestring_T f
                      /*queryseq*/queryseq2,/*queryseq_mate*/queryseq1,
                      
/*pairedlength*/0U,/*chrpos*/chrpos3,/*mate_chrpos*/chrpos5,
                      
/*clipdir*/0,/*hardclip5_low*/0,/*hardclip5_high*/0,/*hardclip3_low*/0,/*hardclip3_high*/0,
-                     
resulttype,/*first_read_p*/false,/*npaths_mate*/npaths1,quality_shift,sam_read_group_id,
-                     invert_second_p,invert_first_p,merge_samechr_p);
+                     
resulttype,/*first_read_p*/false,/*artificial_mate_p*/false,/*npaths_mate*/npaths1,
+                     
quality_shift,sam_read_group_id,invert_second_p,invert_first_p,merge_samechr_p);
          }
        }
       }
@@ -4471,8 +4482,8 @@ SAM_print_paired (Filestring_T fp, Filestring_T 
fp_failedinput_1, Filestring_T f
          /* Handle nomappers with each mapped mate */
        } else {
          
SAM_print_nomapping(fp,abbrev,queryseq1,mate,acc1,acc2,chromosome_iit,resulttype,
-                             
/*first_read_p*/true,/*pathnum*/0,npaths1,/*npaths_mate*/npaths2,
-                             /*mate_chrpos*/chrpos3,
+                             /*first_read_p*/true,/*pathnum*/0,npaths1,
+                             
/*artificial_mate_p*/false,/*npaths_mate*/npaths2,/*mate_chrpos*/chrpos3,
                              
quality_shift,sam_read_group_id,invert_first_p,invert_second_p);
        }
 
@@ -4493,10 +4504,11 @@ SAM_print_paired (Filestring_T fp, Filestring_T 
fp_failedinput_1, Filestring_T f
                    /*queryseq*/queryseq1,/*queryseq_mate*/queryseq2,
                    /*pairedlength*/0U,/*chrpos*/chrpos5,/*mate_chrpos*/chrpos3,
                    
/*clipdir*/0,/*hardclip5_low*/0,/*hardclip5_high*/0,/*hardclip3_low*/0,/*hardclip3_high*/0,
-                   
resulttype,/*first_read_p*/true,/*npaths_mate*/npaths_max,quality_shift,sam_read_group_id,
-                   invert_first_p,invert_second_p,merge_samechr_p);
+                   
resulttype,/*first_read_p*/true,/*artificial_mate_p*/true,/*npaths_mate*/npaths_max,
+                   
quality_shift,sam_read_group_id,invert_first_p,invert_second_p,merge_samechr_p);
          
SAM_print_nomapping(fp,abbrev,queryseq2,/*mate*/stage3,acc1,acc2,chromosome_iit,
-                             
resulttype,/*first_read_p*/false,/*pathnum*/1,/*npaths*/npaths_max,/*npaths_mate*/npaths_max,/*mate_chrpos*/chrpos5,
+                             
resulttype,/*first_read_p*/false,/*pathnum*/1,npaths1,
+                             
/*artificial_mate_p*/false,/*npaths_mate*/npaths_max,/*mate_chrpos*/chrpos5,
                              
quality_shift,sam_read_group_id,invert_first_p,invert_second_p);
        } else {
          
SAM_print(fp,fp_failedinput_1,abbrev,stage3,mate,acc1,acc2,/*pathnum*/1,npaths1,
@@ -4505,8 +4517,8 @@ SAM_print_paired (Filestring_T fp, Filestring_T 
fp_failedinput_1, Filestring_T f
                    /*queryseq*/queryseq1,/*queryseq_mate*/queryseq2,
                    /*pairedlength*/0U,/*chrpos*/chrpos5,/*mate_chrpos*/chrpos3,
                    
/*clipdir*/0,/*hardclip5_low*/0,/*hardclip5_high*/0,/*hardclip3_low*/0,/*hardclip3_high*/0,
-                   
resulttype,/*first_read_p*/true,/*npaths_mate*/npaths2,quality_shift,sam_read_group_id,
-                   invert_first_p,invert_second_p,merge_samechr_p);
+                   
resulttype,/*first_read_p*/true,/*artificial_mate_p*/false,/*npaths_mate*/npaths2,
+                   
quality_shift,sam_read_group_id,invert_first_p,invert_second_p,merge_samechr_p);
        }
 
       } else if (quiet_if_excessive_p && npaths1 > maxpaths_report) {
@@ -4516,8 +4528,8 @@ SAM_print_paired (Filestring_T fp, Filestring_T 
fp_failedinput_1, Filestring_T f
          /* Handle nomappers with each mapped mate */
        } else {
          
SAM_print_nomapping(fp,abbrev,queryseq1,mate,acc1,acc2,chromosome_iit,resulttype,
-                             
/*first_read_p*/true,/*pathnum*/1,npaths1,/*npaths_mate*/npaths2,
-                             /*mate_chrpos*/chrpos3,
+                             /*first_read_p*/true,/*pathnum*/1,npaths1,
+                             
/*artificial_mate_p*/false,/*npaths_mate*/npaths2,/*mate_chrpos*/chrpos3,
                              
quality_shift,sam_read_group_id,invert_first_p,invert_second_p);
        }
 
@@ -4534,7 +4546,7 @@ SAM_print_paired (Filestring_T fp, Filestring_T 
fp_failedinput_1, Filestring_T f
            npaths_max = npaths1; /* since npaths2 == 0 */
            
SAM_print_nomapping(fp,abbrev,queryseq2,/*mate*/stage3,acc1,acc2,chromosome_iit,
                                resulttype,/*first_read_p*/false,pathnum,
-                               
/*npaths*/npaths_max,/*npaths_mate*/npaths_max,/*mate_chrpos*/chrpos5,
+                               
npaths1,/*artificial_mate_p*/false,/*npaths_mate*/npaths_max,/*mate_chrpos*/chrpos5,
                                
quality_shift,sam_read_group_id,invert_first_p,invert_second_p);
            
SAM_print(fp,fp_failedinput_1,abbrev,stage3,mate,acc1,acc2,pathnum,npaths_max,
                      Stage3end_absmq_score(stage3),first_absmq1,second_absmq1,
@@ -4542,7 +4554,7 @@ SAM_print_paired (Filestring_T fp, Filestring_T 
fp_failedinput_1, Filestring_T f
                      /*queryseq*/queryseq1,/*queryseq_mate*/queryseq2,
                      
/*pairedlength*/0U,/*chrpos*/chrpos5,/*mate_chrpos*/chrpos3,
                      
/*clipdir*/0,/*hardclip5_low*/0,/*hardclip5_high*/0,/*hardclip3_low*/0,/*hardclip3_high*/0,
-                     
resulttype,/*first_read_p*/true,/*npaths_mate*/npaths_max,quality_shift,sam_read_group_id,
+                     
resulttype,/*first_read_p*/true,/*artificial_mate_p*/true,/*npaths_mate*/npaths_max,quality_shift,sam_read_group_id,
                      invert_first_p,invert_second_p,merge_samechr_p);
 
          } else {
@@ -4552,8 +4564,8 @@ SAM_print_paired (Filestring_T fp, Filestring_T 
fp_failedinput_1, Filestring_T f
                      /*queryseq*/queryseq1,/*queryseq_mate*/queryseq2,
                      
/*pairedlength*/0U,/*chrpos*/chrpos5,/*mate_chrpos*/chrpos3,
                      
/*clipdir*/0,/*hardclip5_low*/0,/*hardclip5_high*/0,/*hardclip3_low*/0,/*hardclip3_high*/0,
-                     
resulttype,/*first_read_p*/true,/*npaths_mate*/npaths2,quality_shift,sam_read_group_id,
-                     invert_first_p,invert_second_p,merge_samechr_p);
+                     
resulttype,/*first_read_p*/true,/*artificial_mate_p*/false,/*npaths_mate*/npaths2,
+                     
quality_shift,sam_read_group_id,invert_first_p,invert_second_p,merge_samechr_p);
          }
        }
       }
@@ -4579,8 +4591,8 @@ SAM_print_paired (Filestring_T fp, Filestring_T 
fp_failedinput_1, Filestring_T f
          /* Handle nomappers with each mapped mate */
        } else {
          
SAM_print_nomapping(fp,abbrev,queryseq2,mate,acc1,acc2,chromosome_iit,resulttype,
-                             
/*first_read_p*/false,/*pathnum*/0,npaths2,/*npaths_mate*/npaths1,
-                             /*mate_chrpos*/chrpos5,
+                             /*first_read_p*/false,/*pathnum*/0,npaths2,
+                             
/*artificial_mate_p*/false,/*npaths_mate*/npaths1,/*mate_chrpos*/chrpos5,
                              
quality_shift,sam_read_group_id,invert_second_p,invert_first_p);
        }
 
@@ -4597,7 +4609,7 @@ SAM_print_paired (Filestring_T fp, Filestring_T 
fp_failedinput_1, Filestring_T f
          npaths_max = npaths2; /* since npaths1 == 0 */
          
SAM_print_nomapping(fp,abbrev,queryseq2,/*mate*/stage3,acc1,acc2,chromosome_iit,
                              resulttype,/*first_read_p*/true,/*pathnum*/1,
-                             
/*npaths*/npaths_max,/*npaths_mate*/npaths_max,/*mate_chrpos*/chrpos3,
+                             
npaths2,/*artificial_mate_p*/false,/*npaths_mate*/npaths_max,/*mate_chrpos*/chrpos3,
                              
quality_shift,sam_read_group_id,invert_first_p,invert_second_p);
          
SAM_print(fp,fp_failedinput_2,abbrev,stage3,mate,acc1,acc2,/*pathnum*/1,npaths_max,
                    
Stage3end_absmq_score(stage3),first_absmq2,/*second_absmq2*/0,
@@ -4605,8 +4617,8 @@ SAM_print_paired (Filestring_T fp, Filestring_T 
fp_failedinput_1, Filestring_T f
                    /*queryseq*/queryseq2,/*queryseq_mate*/queryseq1,
                    /*pairedlength*/0U,/*chrpos*/chrpos3,/*mate_chrpos*/chrpos5,
                    
/*clipdir*/0,/*hardclip5_low*/0,/*hardclip5_high*/0,/*hardclip3_low*/0,/*hardclip3_high*/0,
-                   
resulttype,/*first_read_p*/false,/*npaths_mate*/npaths_max,quality_shift,sam_read_group_id,
-                   invert_second_p,invert_first_p,merge_samechr_p);
+                   
resulttype,/*first_read_p*/false,/*artificial_mate_p*/true,/*npaths_mate*/npaths_max,
+                   
quality_shift,sam_read_group_id,invert_second_p,invert_first_p,merge_samechr_p);
 
        } else {
          
SAM_print(fp,fp_failedinput_2,abbrev,stage3,mate,acc1,acc2,/*pathnum*/1,npaths2,
@@ -4615,8 +4627,8 @@ SAM_print_paired (Filestring_T fp, Filestring_T 
fp_failedinput_1, Filestring_T f
                    /*queryseq*/queryseq2,/*queryseq_mate*/queryseq1,
                    /*pairedlength*/0U,/*chrpos*/chrpos3,/*mate_chrpos*/chrpos5,
                    
/*clipdir*/0,/*hardclip5_low*/0,/*hardclip5_high*/0,/*hardclip3_low*/0,/*hardclip3_high*/0,
-                   
resulttype,/*first_read_p*/false,/*npaths_mate*/npaths1,quality_shift,sam_read_group_id,
-                   invert_second_p,invert_first_p,merge_samechr_p);
+                   
resulttype,/*first_read_p*/false,/*artificial_mate_p*/false,/*npaths_mate*/npaths1,
+                   
quality_shift,sam_read_group_id,invert_second_p,invert_first_p,merge_samechr_p);
        }
 
       } else if (quiet_if_excessive_p && npaths2 > maxpaths_report) {
@@ -4626,8 +4638,8 @@ SAM_print_paired (Filestring_T fp, Filestring_T 
fp_failedinput_1, Filestring_T f
          /* Handle nomappers with each mapped mate */
        } else {
          
SAM_print_nomapping(fp,abbrev,queryseq2,mate,acc1,acc2,chromosome_iit,resulttype,
-                             
/*first_read_p*/false,/*pathnum*/1,npaths2,/*npaths_mate*/npaths1,
-                             /*mate_chrpos*/chrpos5,
+                             /*first_read_p*/false,/*pathnum*/1,npaths2,
+                             
/*artificial_mate_p*/false,/*npaths_mate*/npaths1,/*mate_chrpos*/chrpos5,
                              
quality_shift,sam_read_group_id,invert_second_p,invert_first_p);
        }
 
@@ -4644,7 +4656,7 @@ SAM_print_paired (Filestring_T fp, Filestring_T 
fp_failedinput_1, Filestring_T f
            npaths_max = npaths2;       /* since npaths1 == 0 */
            
SAM_print_nomapping(fp,abbrev,queryseq2,/*mate*/stage3,acc1,acc2,chromosome_iit,
                                resulttype,/*first_read_p*/true,pathnum,
-                               
/*npaths*/npaths_max,/*npaths_mate*/npaths_max,/*mate_chrpos*/chrpos3,
+                               
npaths2,/*artificial_mate_p*/false,/*npaths_mate*/npaths_max,/*mate_chrpos*/chrpos3,
                                
quality_shift,sam_read_group_id,invert_first_p,invert_second_p);
            
SAM_print(fp,fp_failedinput_2,abbrev,stage3,mate,acc1,acc2,pathnum,npaths_max,
                      Stage3end_absmq_score(stage3),first_absmq2,second_absmq2,
@@ -4652,8 +4664,8 @@ SAM_print_paired (Filestring_T fp, Filestring_T 
fp_failedinput_1, Filestring_T f
                      /*queryseq*/queryseq2,/*queryseq_mate*/queryseq1,
                      
/*pairedlength*/0U,/*chrpos*/chrpos3,/*mate_chrpos*/chrpos5,
                      
/*clipdir*/0,/*hardclip5_low*/0,/*hardclip5_high*/0,/*hardclip3_low*/0,/*hardclip3_high*/0,
-                     
resulttype,/*first_read_p*/false,/*npaths_mate*/npaths_max,quality_shift,sam_read_group_id,
-                     invert_second_p,invert_first_p,merge_samechr_p);
+                     
resulttype,/*first_read_p*/false,/*artificial_mate_p*/true,/*npaths_mate*/npaths_max,
+                     
quality_shift,sam_read_group_id,invert_second_p,invert_first_p,merge_samechr_p);
 
          } else {
            
SAM_print(fp,fp_failedinput_2,abbrev,stage3,mate,acc1,acc2,pathnum,npaths2,
@@ -4662,8 +4674,8 @@ SAM_print_paired (Filestring_T fp, Filestring_T 
fp_failedinput_1, Filestring_T f
                      /*queryseq*/queryseq2,/*queryseq_mate*/queryseq1,
                      
/*pairedlength*/0U,/*chrpos*/chrpos3,/*mate_chrpos*/chrpos5,
                      
/*clipdir*/0,/*hardclip5_low*/0,/*hardclip5_high*/0,/*hardclip3_low*/0,/*hardclip3_high*/0,
-                     
resulttype,/*first_read_p*/false,/*npaths_mate*/npaths1,quality_shift,sam_read_group_id,
-                     invert_second_p,invert_first_p,merge_samechr_p);
+                     
resulttype,/*first_read_p*/false,/*artificial_mate_p*/false,/*npaths_mate*/npaths1,
+                     
quality_shift,sam_read_group_id,invert_second_p,invert_first_p,merge_samechr_p);
          }
        }
       }
diff --git a/src/samprint.h b/src/samprint.h
index 9723497..4170329 100644
--- a/src/samprint.h
+++ b/src/samprint.h
@@ -1,4 +1,4 @@
-/* $Id: samprint.h 181904 2016-01-07 20:31:34Z twu $ */
+/* $Id: samprint.h 183725 2016-02-04 00:40:15Z twu $ */
 #ifndef SAMPRINT_INCLUDED
 #define SAMPRINT_INCLUDED
 
@@ -35,14 +35,14 @@ SAM_compute_chrpos (int hardclip_low, int hardclip_high, 
Stage3end_T this, int q
 
 extern unsigned int
 SAM_compute_flag (bool plusp, Stage3end_T mate, Resulttype_T resulttype,
-                 bool first_read_p, int pathnum, int npaths, int npaths_mate,
+                 bool first_read_p, int pathnum, int npaths, bool 
artificial_mate_p, int npaths_mate,
                  int absmq_score, int first_absmq, bool invertp, bool 
invert_mate_p);
 
 extern void
 SAM_print_nomapping (Filestring_T fp, char *abbrev, Shortread_T queryseq, 
Stage3end_T mate, char *acc1, char *acc2,
                     Univ_IIT_T chromosome_iit, Resulttype_T resulttype, bool 
first_read_p,
-                    int pathnum, int npaths, int npaths_mate, Chrpos_T 
mate_chrpos,
-                    int quality_shift, char *sam_read_group_id, bool invertp, 
bool invert_mate_p);
+                    int pathnum, int npaths, bool artificial_mate_p, int 
npaths_mate,
+                    Chrpos_T mate_chrpos, int quality_shift, char 
*sam_read_group_id, bool invertp, bool invert_mate_p);
 
 extern void
 SAM_print (Filestring_T fp, Filestring_T fp_failedinput, char *abbrev,
@@ -50,7 +50,7 @@ SAM_print (Filestring_T fp, Filestring_T fp_failedinput, char 
*abbrev,
           int absmq_score, int first_absmq, int second_absmq, int mapq_score, 
Univ_IIT_T chromosome_iit, Shortread_T queryseq,
           Shortread_T queryseq2, int pairedlength, Chrpos_T chrpos, Chrpos_T 
mate_chrpos,
           int clipdir, int hardclip5_low, int hardclip5_high, int 
hardclip3_low, int hardclip3_high,
-          Resulttype_T resulttype, bool first_read_p, int npaths_mate, int 
quality_shift,
+          Resulttype_T resulttype, bool first_read_p, bool artificial_mate_p, 
int npaths_mate, int quality_shift,
           char *sam_read_group_id, bool invertp, bool invert_mate_p, bool 
merge_samechr_p);
 
 extern void
diff --git a/src/stage2.c b/src/stage2.c
index acbc11c..c0e0e63 100644
--- a/src/stage2.c
+++ b/src/stage2.c
@@ -1,4 +1,4 @@
-static char rcsid[] = "$Id: stage2.c 166741 2015-06-02 01:24:48Z twu $";
+static char rcsid[] = "$Id: stage2.c 183727 2016-02-04 00:40:29Z twu $";
 #ifdef HAVE_CONFIG_H
 #include <config.h>
 #endif
@@ -2163,7 +2163,7 @@ score_querypos_lookforward_mult (
       }
     }
 
-    while (hiti < nhits) {
+    while (hiti >= 0) {
       /* Adjacent position not found for hiti */
       currlink = &(links[querypos][hiti + low_hit]);
 

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/debian-med/gmap.git

_______________________________________________
debian-med-commit mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/debian-med-commit

Reply via email to