Seqanswers Leaderboard Ad

Collapse

Announcement

Collapse
No announcement yet.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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?

  • #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


    • #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


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

        Comment


        • #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

          • seqadmin
            Recent Developments in Metagenomics
            by seqadmin





            Metagenomics has improved the way researchers study microorganisms across diverse environments. Historically, studying microorganisms relied on culturing them in the lab, a method that limits the investigation of many species since most are unculturable1. Metagenomics overcomes these issues by allowing the study of microorganisms regardless of their ability to be cultured or the environments they inhabit. Over time, the field has evolved, especially with the advent...
            09-23-2024, 06:35 AM
          • seqadmin
            Understanding Genetic Influence on Infectious Disease
            by seqadmin




            During the COVID-19 pandemic, scientists observed that while some individuals experienced severe illness when infected with SARS-CoV-2, others were barely affected. These disparities left researchers and clinicians wondering what causes the wide variations in response to viral infections and what role genetics plays.

            Jean-Laurent Casanova, M.D., Ph.D., Professor at Rockefeller University, is a leading expert in this crossover between genetics and infectious...
            09-09-2024, 10:59 AM

          ad_right_rmr

          Collapse

          News

          Collapse

          Topics Statistics Last Post
          Started by seqadmin, 10-02-2024, 04:51 AM
          0 responses
          11 views
          0 likes
          Last Post seqadmin  
          Started by seqadmin, 10-01-2024, 07:10 AM
          0 responses
          19 views
          0 likes
          Last Post seqadmin  
          Started by seqadmin, 09-30-2024, 08:33 AM
          0 responses
          24 views
          0 likes
          Last Post seqadmin  
          Started by seqadmin, 09-26-2024, 12:57 PM
          0 responses
          18 views
          0 likes
          Last Post seqadmin  
          Working...
          X