code: def _strfactory(cls, line):
          
  
          cmp = line.rstrip().split()
          chrom = cmp[2]
          if not chrom.startswith("chr"):
              chrom = "chr%s" % chrom
          instance =  tuple.__new__(cls,
                  (cmp[0], cmp[1],
                      chrom, int(cmp[3]), int(cmp[4]),
                      {'1' : '+', '-1' : '-'}[cmp[5]], cmp[6]))
          span = instance.end - instance.start + 1
          m_num = sum( (t[1] == "M" and [t[0]] or [0])[0] for t in instance.cigar_iter(False) )
          if span != m_num:
              log.warning("[{gabid}] {species}.{chrom}:{start}-{end}.".format(**instance._asdict()) + "(span) %d != %d (matches)" % (span, m_num))
              return None
          return instance
docs: factory method for an EPOitem
  
          :param line: a line of input