Unconfigured Ad

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • tedwong
    Member
    • Mar 2015
    • 13

    #1

    Parse CIGAR string in C/C++

    What'd be the best way to parse a CIGAR string fully according to the specification in C/C++? Would regular expression work?
  • Brian Bushnell
    Super Moderator
    • Jan 2014
    • 2709

    #2
    Originally posted by tedwong View Post
    What'd be the best way to parse a CIGAR string fully according to the specification in C/C++? Would regular expression work?
    No. Unless you simply want to detect the presence of some operation, the best way is with a custom loop.

    Here's an example in Java that can easily be translated to C++:

    Discussion of next-gen sequencing related bioinformatics: resources, algorithms, open source efforts, etc

    Comment

    • dpryan
      Devon Ryan
      • Jul 2011
      • 3478

      #3
      If you're using C/C++ already, then just use htslib. The functions for this have already been written (afterall, it's what samtools uses) and the API is generally convenient.

      Comment

      • lindenb
        Senior Member
        • Apr 2010
        • 143

        #4
        cross posted: http://stackoverflow.com/questions/2...lar-expression

        Comment

        • student-t
          Member
          • Mar 2015
          • 16

          #5
          For reference (using the htslib library)



          #include <htslib/sam.h>

          auto f = sam_open(file.c_str(), "r");
          auto h = sam_hdr_read(f);
          auto t = bam_init1();

          while (sam_read1(f, h, t) >= 0)
          {
          auto id = std::string(h->target_name[0]);
          auto mapped = !(t->core.flag & BAM_FUNMAP);

          const auto cigar = bam_get_cigar(t);

          for (int k = 0; k < t->core.n_cigar; k++)
          {
          const int op = bam_cigar_op(cigar[k]);
          const int ol = bam_cigar_oplen(cigar[k]);

          if (op == BAM_CMATCH || op == BAM_CINS || op == BAM_CDEL)
          {
          // your code, you have the length in ol (eg: 101M -> ol == 101)
          }
          }
          }

          sam_close(f);

          Comment

          Latest Articles

          Collapse

          • SEQadmin2
            Multiomic Liquid Biopsy: What DNA/RNA Panels Reveal That DNA Alone Can’t
            by SEQadmin2



            Tumors contain complex mixtures of cell populations that evolve in response to treatment and host-specific factors. Tissue biopsies provide only static snapshots of a tumor’s state. But what if we could follow that evolution over time using a minimally invasive technique?

            Liquid biopsies can detect tumor-derived material circulating in the bloodstream, providing a way to study treatment response, detect emerging resistance, and discover new biomarkers. Circulating
            ...
            10-14-2026, 09:55 AM
          • SEQadmin2
            New Genomics Technologies Take Aim at Long-Standing Limits
            by SEQadmin2


            Researchers using sequencing and genomics tools often have to make trade-offs. They can choose between speed or scale, short reads or long-range information, or targeted panels or a view of the whole transcriptome. New technologies that have been released this year are built to address those tough choices.

            We asked six companies the same four questions to learn about their latest products. The new technologies bring a lot to the table, including rethinking sequencing
            ...
            09-28-2026, 10:25 AM

          ad_right_rmr

          Collapse

          News

          Collapse

          Topics Statistics Last Post
          Started by SEQadmin2, Yesterday, 11:13 AM
          0 responses
          19 views
          0 reactions
          Last Post SEQadmin2  
          Started by SEQadmin2, Yesterday, 10:48 AM
          0 responses
          18 views
          0 reactions
          Last Post SEQadmin2  
          Started by SEQadmin2, 10-15-2026, 10:52 AM
          0 responses
          36 views
          0 reactions
          Last Post SEQadmin2  
          Started by SEQadmin2, 10-14-2026, 05:39 AM
          0 responses
          42 views
          0 reactions
          Last Post SEQadmin2  
          Working...