]> git.donarmstrong.com Git - samtools.git/blobdiff - bcftools/bcfutils.c
Release samtools-0.1.14 (r933:170)
[samtools.git] / bcftools / bcfutils.c
index 91cc2c23ccb33c66c944fe013df1e92a84867858..d1b9668099be4e934bf0225cefb444370fdc7315 100644 (file)
@@ -168,6 +168,27 @@ int bcf_fix_pl(bcf1_t *b)
        return 0;
 }
 
+int bcf_smpl_covered(const bcf1_t *b)
+{
+       int i, j, n = 0;
+       uint32_t tmp;
+       bcf_ginfo_t *gi;
+       // pinpoint PL
+       tmp = bcf_str2int("PL", 2);
+       for (i = 0; i < b->n_gi; ++i)
+               if (b->gi[i].fmt == tmp) break;
+       if (i == b->n_gi) return 0;
+       // count how many samples having PL!=[0..0]
+       gi = b->gi + i;
+       for (i = 0; i < b->n_smpl; ++i) {
+               uint8_t *PLi = ((uint8_t*)gi->data) + i * gi->len;
+               for (j = 0; j < gi->len; ++j)
+                       if (PLi[j]) break;
+               if (j < gi->len) ++n;
+       }
+       return n;
+}
+
 static void *locate_field(const bcf1_t *b, const char *fmt, int l)
 {
        int i;