D1HJQQN1:440:C7CU0ACXX:7:1101:1358:62711 97 12 76403087 60 101M = 76403423 437 TTTCTATCCCATAGGAAACACAGGGCAGATAGTCTTCACCAGACACTGCAGGAAAGCAGGGATAGAGAGGTGGTATTTGTCCTGCACAGACCTACCCCTCC ??=>AAA?@@A@@A?AAA?A?AA@@ABAAAAAAAABAA@@BBA@A?ABBBA@AABBABBAABABAAAAAA>AA:?ABCBABBCCBCACCBABCBABB@??@ MC:Z:101M BD:Z:IICJNPLPMLMMIMMKJCJHGHMLIMMMJKHLLLIIIKGLKMJLHGKMNNNMKJCKONNMJKLIMKLKLMLILLLIJCKJNLMNOOIJPMOPOPPROJLJK MD:Z:101 PG:Z:MarkDuplicates RG:Z:C7CU0ACXX_7 BI:Z:LLFLOQNPMKNOKNMMLELKJKOMKOOOMNKNNMLKKNJMMOMNKJNONOOMMMFNQPPNLNOLONNNNNPLMPPNNGOMONQQPRMNRQRQTSQSQKPKM NM:i:0 MQ:i:60 AS:i:101 XS:i:0
def bam_to_df(bam, chr = None, start=None, stop = None): seq = [] name = [] r1_chr = [] r1_pos = [] r1_isRead1 = [] r1_isReversed = [] r1_cigar = [] r1_mapq = [] r2_isReversed = [] r2_chr = [] r2_pos = [] frag_length = [] for read in bam.fetch(chr, start, stop): seq.append(read.query_sequence) name.append(read.query_name) r1_chr.append(read.reference_name) r1_pos.append(read.reference_start) r1_isRead1.append(read.is_read1) r1_isReversed.append(read.is_reverse) r1_cigar.append(read.cigarstring) r1_mapq.append(read.mapping_quality) r2_isReversed.append(read.mate_is_reverse) r2_chr.append(read.next_reference_name) r2_pos.append(read.next_reference_start) frag_length.append(read.template_length) return pd.DataFrame({'seq': seq, 'name': name, 'r1_pos': r1_pos, 'r1_chr': r1_chr, 'r1_isRead1': r1_isRead1, 'r1_isReversed': r1_isReversed, 'r1_cigar': r1_cigar, 'r1_mapq': r1_mapq, 'r2_isReversed': r2_isReversed, 'r2_chr': r2_chr, 'r2_pos': r2_pos, 'frag_length': frag_length})read.get_tag("MC")
read.get_tags()
df = pd.DataFrame.from_records((x.query_name, x.reference_pos for x in bam.fetch(chr, start, stop),
columns=["name", "r1_pos"])
r2_mc.append(read.get_tag("MC"))KeyError Traceback (most recent call last) <ipython-input-29-49624e58c7e0> in <module>() ----> 1 table = bam_to_df(samfile) <ipython-input-27-6ee043f48f1c> in bam_to_df(bam, chr, start, stop) 26 r2_pos.append(read.next_reference_start) 27 frag_length.append(read.template_length) ---> 28 r2_mc.append(read.get_tag("MC")) 29 return pd.DataFrame({'seq': seq, 30 'name': name, pysam/calignedsegment.pyx in pysam.calignedsegment.AlignedSegment.get_tag (pysam/calignedsegment.c:21307)() pysam/calignedsegment.pyx in pysam.calignedsegment.AlignedSegment.get_tag (pysam/calignedsegment.c:20683)() KeyError: "tag 'MC' not present"
Dear Jonathan,
KeyError: "tag 'MC' not present"
| Raises: |
|
|---|
def robust_get_tag(read, tag_name, default_value):
try:
return read.get_tag(tag_name)
except KeyError:
return default_value