text: user7153: I'm trying to modify this https://www.biostars.org/p/253774/
  To get reads with deletions > 20bp
  I think this gives reads with exactly 20bp dels:
  samtools view -h in.bam chr1:12340-200000 \ | awk '$1 ~ "^@" || $6 ! "20D"' \ | samtools view -b - > out.bam
  
  is it possibe to do >?
  Thanks!
  
  user77: There's no simple way to do that with awk, since you would need to parse the CIGAR string and iterate over the operations. In python using pysam you would iterate over the reads and filter as follows:
  keep = False
  for OP, LEN in b.cigartuples:
      if OP == 2 and LEN > 20:
          keep = True
          break
  
  if keep:
      ...do stuff...
  
  
original_text: 7153: <p>I'm trying to modify this <a href="https://www.biostars.org/p/253774/" rel="nofollow noreferrer">https://www.biostars.org/p/253774/</a></p>
  <p>To get reads with deletions &gt; 20bp</p>
  <p>I think this gives reads with exactly 20bp dels:</p>
  <pre><code>samtools view -h in.bam chr1:12340-200000 \ | awk '<span class="math-container">$1 ~ "^@" || $</span>6 ! &quot;20D&quot;' \ | samtools view -b - &gt; out.bam
  </code></pre>
  <p>is it possibe to do &gt;?</p>
  <p>Thanks!</p>
   77: <p>There's no simple way to do that with awk, since you would need to parse the CIGAR string and iterate over the operations. In python using pysam you would iterate over the reads and filter as follows:</p>
  <pre><code>keep = False
  for OP, LEN in b.cigartuples:
      if OP == 2 and LEN &gt; 20:
          keep = True
          break
  
  if keep:
      ...do stuff...
  </code></pre>
  