code: def picard_idxstats(picard, align_bam):
      
      opts = [("INPUT", align_bam)]
      stdout = picard.run("BamIndexStats", opts, get_stdout=True)
      out = []
      AlignInfo = collections.namedtuple("AlignInfo", ["contig", "length", "aligned", "unaligned"])
      for line in stdout.split("\n"):
          if line:
              parts = line.split()
              if len(parts) == 2:
                  _, unaligned = parts
                  out.append(AlignInfo("nocontig", 0, 0, int(unaligned)))
              elif len(parts) == 7:
                  contig, _, length, _, aligned, _, unaligned = parts
                  out.append(AlignInfo(contig, int(length), int(aligned), int(unaligned)))
              else:
                  raise ValueError("Unexpected output from BamIndexStats: %s" % line)
      return out
docs: Retrieve alignment stats from picard using BamIndexStats.