@@ -85,6 +85,8 @@ static ko_longopt_t long_options[] = {
8585 { "jump-min-match" , ko_required_argument , 360 },
8686 { "write-junc" , ko_no_argument , 361 },
8787 { "pass1" , ko_required_argument , 362 },
88+ { "spsc-scale" , ko_required_argument , 363 },
89+ { "spsc0" , ko_required_argument , 364 },
8890 { "dbg-seed-occ" , ko_no_argument , 501 },
8991 { "help" , ko_no_argument , 'h' },
9092 { "max-intron-len" , ko_required_argument , 'G' },
@@ -134,6 +136,7 @@ int main(int argc, char *argv[])
134136 mm_mapopt_t opt ;
135137 mm_idxopt_t ipt ;
136138 int i , c , n_threads = 3 , n_parts , old_best_n = -1 ;
139+ float spsc_scale = 0.7f ;
137140 char * fnw = 0 , * rg = 0 , * fn_bed_junc = 0 , * fn_bed_jump = 0 , * fn_bed_pass1 = 0 , * fn_spsc = 0 , * s , * alt_list = 0 ;
138141 FILE * fp_help = stderr ;
139142 mm_idx_reader_t * idx_rdr ;
@@ -240,7 +243,6 @@ int main(int argc, char *argv[])
240243 else if (c == 338 ) opt .max_qlen = mm_parse_num (o .arg ); // --max-qlen
241244 else if (c == 340 ) fn_bed_junc = o .arg ; // --junc-bed
242245 else if (c == 341 ) opt .junc_bonus = atoi (o .arg ); // --junc-bonus
243- else if (c == 358 ) opt .junc_pen = atoi (o .arg ); // --junc-pen
244246 else if (c == 342 ) opt .flag |= MM_F_SAM_HIT_ONLY ; // --sam-hit-only
245247 else if (c == 343 ) opt .chain_gap_scale = atof (o .arg ); // --chain-gap-scale
246248 else if (c == 351 ) opt .chain_skip_scale = atof (o .arg ); // --chain-skip-scale
@@ -260,6 +262,8 @@ int main(int argc, char *argv[])
260262 else if (c == 361 ) opt .flag |= MM_F_OUT_JUNC | MM_F_CIGAR ; // --write-junc
261263 else if (c == 362 ) fn_bed_pass1 = o .arg ; // --jump-pass1
262264 else if (c == 501 ) mm_dbg_flag |= MM_DBG_SEED_FREQ ; // --dbg-seed-occ
265+ else if (c == 363 ) spsc_scale = atof (o .arg ); // --spsc-scale
266+ else if (c == 358 || c == 364 ) opt .junc_pen = atoi (o .arg ); // --junc-pen or --spsc0
263267 else if (c == 330 ) {
264268 fprintf (stderr , "[WARNING] \033[1;31m --lj-min-ratio has been deprecated.\033[0m\n" );
265269 } else if (c == 313 ) { // --sr
@@ -476,7 +480,7 @@ int main(int argc, char *argv[])
476480 fprintf (stderr , "[WARNING] failed to load the pass-1 jump BED file\n" );
477481 }
478482 if (fn_spsc ) {
479- mm_idx_spsc_read (mi , fn_spsc , mm_max_spsc_bonus (& opt ));
483+ mm_idx_spsc_read2 (mi , fn_spsc , mm_max_spsc_bonus (& opt ), spsc_scale );
480484 if (mi -> spsc == 0 && mm_verbose >= 2 )
481485 fprintf (stderr , "[WARNING] failed to load the splice score file\n" );
482486 }
0 commit comments