Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

sam-stats doesn't support -o and -O option #25

Open
GoogleCodeExporter opened this issue Aug 27, 2015 · 3 comments
Open

sam-stats doesn't support -o and -O option #25

GoogleCodeExporter opened this issue Aug 27, 2015 · 3 comments

Comments

@GoogleCodeExporter
Copy link

What steps will reproduce the problem?

$ /software/ea-utils/ea-utils-svn/clipper/sam-stats -O test.sam-stats test.bam
/software/ea-utils/ea-utils-svn/clipper/sam-stats: invalid option -- 'O'
Unknown option `-O'.
Usage: sam-stats [options] [file1] [file2...filen]
Version: 1.37.657
...


What is the expected output? What do you see instead?


What version of the product are you using? On what operating system?

svn version of ea-utils


Here is a patch (options also sorted alphabetically):

$ svn diff
Index: sam-stats.cpp
===================================================================
--- sam-stats.cpp       (revision 662)
+++ sam-stats.cpp       (working copy)
@@ -222,7 +222,7 @@
     int long_index=0;
     const char *prefix;

-    while ( (c = getopt_long(argc, argv, "?BArR:Ddx:MhS:", long_options, 
&long_index)) != -1) {
+    while ( (c = getopt_long(argc, argv, "?ABDdhMoO:R:rS:x:", long_options, 
&long_index)) != -1) {
                 switch (c) {
                 case 'd': ++debug; break;                                       // increment debug level
                 case 'D': ++trackdup; break;


After this patch, this option is accepted, but it doesn't do anything as far as 
I can tell because the prefix variable is never used afterwards:

$ grep prefix sam-stats.cpp 
    const char *prefix;
                case 'O': prefix=optarg; break;
"-O PREFIX      Output prefix enabling extended output (see below)\n"




Here is some bash code to extract the info:

$ echo "                case 'd': ++debug; break;                               
        // increment debug level
                case 'D': ++trackdup; break;
                case 'B': inbam=1; break;
                case 'A': max_chr=1000000; break;                               // max chrom
                case 'R': rnafile=optarg;                                       // pass through
                case 'r': max_chr=1000000; rnamode=1; if (histnum < 60) histnum=60; break;                                                                                         
                case 'O': prefix=optarg; break;
                case 'S': histnum=atoi(optarg); break;
                case 'x': ext=optarg; break;
                case 'M': newonly=1; break;                                                                      
                case 'o': fq_out=1; trackdup=1; break;                     // output suff
                case 'h': usage(stdout); return 0;
                case '?':
"| grep -E -o "'.?'" |cut -f2 -d "'" | cut -f2 -d "'"| sort | tr -d '\n'


?ABdDhMoOrRSx


Similar problems exist in other tools ( I didn't check all of them ):

For example: fastq-join.c:

There is a check for "-dRnbeo:t:v:m:p:r:", but options "-nbe" don't exist.

Also in the help "-t" is not mentioned (as is "-d" which is OK as it is a debug 
option).

        while ( (c = getopt (argc, argv, "-dRnbeo:t:v:m:p:r:")) != -1) {
                switch (c) {
                case '\1':
                        if (!in[0]) 
                                in[0]=optarg;
                        else if (!in[1])                
                                in[1]=optarg;
                        else if (!in[2])                
                                in[2]=optarg;
                        else {
                                usage(stderr); return 1;
                        }
                        ++in_n;
                        break;
                case 'o': if (out_n == 3) {
                                usage(stderr); return 1;
                          }
                          out[out_n++] = optarg; 
                          break;
                case 'r': orep = optarg; break;
                case 't': threads = atoi(optarg); break;
                case 'm': mino = atoi(optarg); break;
                case 'p': pctdiff = atoi(optarg); break;
                case 'R': norevcomp = true; break;
                case 'd': debug = 1; break;
                case 'v':
                        if (strlen(optarg)>1) {
                                fprintf(stderr, "Option -v requires a single character argument");
                                exit(1);
                        }
                        verify = *optarg; break;
                case '?': 
                     if (strchr("otvmpr", optopt))
                       fprintf (stderr, "Option -%c requires an argument.\n", optopt);
                     else if (isprint(optopt))
                       fprintf (stderr, "Unknown option `-%c'.\n", optopt);
                     else
                       fprintf (stderr,
                                "Unknown option character `\\x%x'.\n",
                                optopt);
                     usage(stderr);
                     return 1;
                }
        }



Original issue reported on code.google.com by [email protected] on 9 Oct 2013 at 2:35

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant