Mercurial > repos > artbio > bamparse
changeset 0:2a1a2bc6ae8b draft
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/bamparse commit 4e42cba873625fad03423e65dfffbf4afa91598c
author | artbio |
---|---|
date | Fri, 13 Oct 2017 02:59:36 -0400 |
parents | |
children | ae9ea0488850 |
files | bamparse.py bamparse.xml test-data/alignment1.bam test-data/alignment2.bam test-data/table.tabular test-data/table0.tabular test-data/table1.tabular |
diffstat | 7 files changed, 886 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bamparse.py Fri Oct 13 02:59:36 2017 -0400 @@ -0,0 +1,94 @@ +#!/usr/bin/env python +import argparse +from collections import defaultdict + +import pysam + + +def Parser(): + the_parser = argparse.ArgumentParser() + the_parser.add_argument('--output', nargs='+', action='store', type=str, + help='Count tables') + the_parser.add_argument('--polarity', + choices=["sense", "antisense", "both"], + help="forward, reverse or both forward an\ + reverse reads are counted") + the_parser.add_argument('--alignments', nargs='+', + help="bam alignments files") + the_parser.add_argument('--labels', nargs='+', help="Alignments labels") + the_parser.add_argument('--number', + choices=["unique", "multiple"], + help="output is a single table or multiple tables") + args = the_parser.parse_args() + return args + + +def get_counts(bamfile, polarity="both"): + """ + Takes an AlignmentFile object and returns a dictionary of counts for sense, + antisense, or both sense and antisense reads aligning to the bam references + """ + def filter_sense_read(read): + if read.is_reverse: + return 0 + else: + return 1 + + def filter_antisense_read(read): + if read.is_reverse: + return 1 + else: + return 0 + + counts = defaultdict(int) + for ref_name in bamfile.references: + counts[ref_name] = 0 + if polarity == "both": + for ref_name in bamfile.references: + counts[ref_name] = bamfile.count(reference=ref_name) + if polarity == "sense": + for ref_name in bamfile.references: + for read in bamfile.fetch(ref_name): + counts[ref_name] += filter_sense_read(read) + if polarity == "antisense": + for ref_name in bamfile.references: + for read in bamfile.fetch(ref_name): + counts[ref_name] += filter_antisense_read(read) + return counts + + +def writetable(diclist, labels, output, number): + ''' diclist is a list of count dictionnaries ''' + countlists = [] + for dic in diclist: + counts = sorted(dic.items()) + counts = [j for (i,j) in counts] + countlists.append(counts) + if number == "unique": + out = open("outputdir/table.tabular", "w") + out.write("gene\t%s\n" % "\t".join(labels)) + for countline in zip(sorted(diclist[0]), *countlists): + line = [ str(i) for i in countline] + out.write("%s\n" % "\t".join(line)) + out.close() + else: + for i, (dic, label) in enumerate(zip(diclist, labels)): + out = open("outputdir/table" + str(i) + ".tabular", "w") + out.write("gene\t%s\n" % label) + for gene in sorted(dic): + out.write("%s\t%s\n" % (gene, dic[gene])) + out.close() + + + +def main(alignments, labels, polarity, output, number): + diclist = [] + for file in alignments: + bam_object = pysam.AlignmentFile(file, 'rb') + diclist.append(get_counts(bam_object, polarity=polarity)) + writetable(diclist, labels, output, number) + + +if __name__ == "__main__": + args = Parser() + main(args.alignments, args.labels, args.polarity, args.output, args.number)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bamparse.xml Fri Oct 13 02:59:36 2017 -0400 @@ -0,0 +1,75 @@ +<tool id="bamparse" name="Count alignments" version="2.0.0"> + <description>in a BAM file</description> + <requirements> + <requirement type="package" version="1.1.2">bowtie</requirement> + <requirement type="package" version="1.11.2">numpy</requirement> + <requirement type="package" version="0.11.2.1">pysam</requirement> + </requirements> + <stdio> + <exit_code range="1:" level="fatal" description="Tool exception" /> + </stdio> + <command detect_errors="exit_code"><![CDATA[ + mkdir outputdir && + #for $file in $input_list + samtools index '$file' && + #end for + python $__tool_directory__/bamparse.py + --alignments + #for $file in $input_list + '$file' + #end for + --labels + #for $file in $input_list + '$file.element_identifier' + #end for + --polarity '$polarity' + --number '$output_option' + ]]></command> + <inputs> + <param name="input_list" type="data" format="bam" label="Select multiple alignments to parse" multiple="true"/> + <param name="polarity" type="select" label="how to count sense and antisense reads"> + <option value="both">count both sense and antisense reads</option> + <option value="sense">count only sense reads</option> + <option value="antisense">count only antisense reads</option> + </param> + <param name="output_option" type="select" display="radio" label="Select the number of files for results" + help="Results can be returned either as a single multi-column table or in separate two-column + datasets (useful for DESeq subsequent analysis)"> + <option value="unique">A multi-column table</option> + <option value="multiple">One separate two-columns dataset per input bam alignment</option> + </param> + </inputs> + <outputs> + <data name="output" format="tabular" label="Counts"> + <discover_datasets pattern="(?P<designation>.*)\.tabular" ext="tabular" visible="true" assign_primary_output="true" directory="outputdir"/> + </data> + </outputs> + <help> + +**What it does** + +Counts the number of reads aligned to each reference (@SN, reference NAME) in one or +several BAM alignments. + +Sense, antisense or both sense and antisense alignments can be counted + +The library labels in the returned count table are taken from the input bam datasets +names in the Galaxy history. + </help> + <tests> + <test> + <param name="input_list" value="alignment1.bam,alignment2.bam" ftype="tabular" /> + <param name="polarity" value="both" /> + <param name="output_option" value="unique" /> + <output name="output" ftype="tabular" file="table.tabular" /> + </test> + <test> + <param name="input_list" value="alignment1.bam,alignment2.bam" ftype="tabular" /> + <param name="polarity" value="both" /> + <param name="output_option" value="multiple" /> + <output name="output" ftype="tabular" file="table0.tabular"> + <discovered_dataset designation="table1" ftype="tabular" file="table1.tabular" /> + </output> + </test> + </tests> +</tool>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/table.tabular Fri Oct 13 02:59:36 2017 -0400 @@ -0,0 +1,239 @@ +gene alignment1.bam alignment2.bam +dme-bantam 1 1 +dme-let-7 0 0 +dme-mir-1 72 0 +dme-mir-10 0 20 +dme-mir-100 0 1 +dme-mir-1000 0 0 +dme-mir-1001 0 0 +dme-mir-1002 0 0 +dme-mir-1003 0 0 +dme-mir-1004 0 0 +dme-mir-1005 0 0 +dme-mir-1006 0 0 +dme-mir-1007 0 0 +dme-mir-1008 0 0 +dme-mir-1009 0 0 +dme-mir-1010 0 0 +dme-mir-1011 0 0 +dme-mir-1012 0 0 +dme-mir-1013 0 0 +dme-mir-1014 0 0 +dme-mir-1015 0 0 +dme-mir-1016 0 0 +dme-mir-1017 0 0 +dme-mir-11 1 2 +dme-mir-12 2 0 +dme-mir-124 0 0 +dme-mir-125 0 1 +dme-mir-133 0 0 +dme-mir-137 0 0 +dme-mir-13a 0 0 +dme-mir-13b-1 0 0 +dme-mir-13b-2 0 0 +dme-mir-14 7 7 +dme-mir-184 146 111 +dme-mir-190 0 0 +dme-mir-193 0 0 +dme-mir-210 0 0 +dme-mir-219 0 0 +dme-mir-2279 0 0 +dme-mir-2280 0 0 +dme-mir-2281 0 0 +dme-mir-2282 0 0 +dme-mir-2283 0 0 +dme-mir-2489 0 0 +dme-mir-2490 0 0 +dme-mir-2491 0 0 +dme-mir-2492 0 0 +dme-mir-2493 0 0 +dme-mir-2494 0 0 +dme-mir-2495 0 0 +dme-mir-2496 0 0 +dme-mir-2497 0 0 +dme-mir-2498 0 0 +dme-mir-2499 0 0 +dme-mir-2500 0 0 +dme-mir-2501 0 0 +dme-mir-252 0 0 +dme-mir-2535b 0 0 +dme-mir-263a 12 2 +dme-mir-263b 0 0 +dme-mir-274 0 0 +dme-mir-275 7 0 +dme-mir-276a 7 5 +dme-mir-276b 1 0 +dme-mir-277 0 1 +dme-mir-278 0 0 +dme-mir-279 8 0 +dme-mir-280 0 0 +dme-mir-281-1 0 3 +dme-mir-281-2 1 28 +dme-mir-282 0 0 +dme-mir-283 0 0 +dme-mir-284 0 0 +dme-mir-285 0 0 +dme-mir-286 0 0 +dme-mir-287 0 0 +dme-mir-288 0 0 +dme-mir-289 0 0 +dme-mir-2a-1 1 0 +dme-mir-2a-2 0 0 +dme-mir-2b-1 0 0 +dme-mir-2b-2 0 1 +dme-mir-2c 0 0 +dme-mir-3 0 0 +dme-mir-303 0 0 +dme-mir-304 0 0 +dme-mir-305 10 2 +dme-mir-306 0 0 +dme-mir-307a 0 0 +dme-mir-307b 0 0 +dme-mir-308 0 0 +dme-mir-309 0 0 +dme-mir-310 0 0 +dme-mir-311 0 0 +dme-mir-312 1 0 +dme-mir-313 0 0 +dme-mir-314 0 0 +dme-mir-315 0 0 +dme-mir-316 1 0 +dme-mir-317 0 0 +dme-mir-318 1 0 +dme-mir-31a 2 22 +dme-mir-31b 1 0 +dme-mir-33 0 0 +dme-mir-34 0 0 +dme-mir-3641 0 0 +dme-mir-3642 0 0 +dme-mir-3643 0 0 +dme-mir-3644 0 0 +dme-mir-3645 0 0 +dme-mir-375 0 0 +dme-mir-4 0 0 +dme-mir-4908 0 0 +dme-mir-4909 0 0 +dme-mir-4910 0 0 +dme-mir-4911 0 0 +dme-mir-4912 0 0 +dme-mir-4913 0 0 +dme-mir-4914 0 0 +dme-mir-4915 0 0 +dme-mir-4916 0 0 +dme-mir-4917 0 0 +dme-mir-4918 0 0 +dme-mir-4919 0 0 +dme-mir-4939 0 0 +dme-mir-4940 0 0 +dme-mir-4941 0 0 +dme-mir-4942 0 0 +dme-mir-4943 0 0 +dme-mir-4944 0 0 +dme-mir-4945 0 0 +dme-mir-4946 0 0 +dme-mir-4947 0 0 +dme-mir-4948 0 0 +dme-mir-4949 0 0 +dme-mir-4950 0 0 +dme-mir-4951 0 0 +dme-mir-4952 0 0 +dme-mir-4953 0 0 +dme-mir-4954 0 0 +dme-mir-4955 0 0 +dme-mir-4956 0 0 +dme-mir-4957 0 0 +dme-mir-4958 0 0 +dme-mir-4959 0 0 +dme-mir-4960 0 0 +dme-mir-4961 0 0 +dme-mir-4962 0 0 +dme-mir-4963 0 0 +dme-mir-4964 0 0 +dme-mir-4965 0 0 +dme-mir-4966 0 0 +dme-mir-4967 0 0 +dme-mir-4968 0 0 +dme-mir-4969 0 0 +dme-mir-4970 0 0 +dme-mir-4971 0 0 +dme-mir-4972 0 0 +dme-mir-4973 0 0 +dme-mir-4974 0 0 +dme-mir-4975 0 0 +dme-mir-4976 0 0 +dme-mir-4977 0 0 +dme-mir-4978 0 0 +dme-mir-4979 0 0 +dme-mir-4980 0 0 +dme-mir-4981 0 0 +dme-mir-4982 0 0 +dme-mir-4983 0 0 +dme-mir-4984 0 0 +dme-mir-4985 0 0 +dme-mir-4986 0 0 +dme-mir-4987 0 0 +dme-mir-5 0 0 +dme-mir-6-1 0 0 +dme-mir-6-2 0 0 +dme-mir-6-3 0 0 +dme-mir-7 0 0 +dme-mir-79 7 0 +dme-mir-8 1 4 +dme-mir-87 0 0 +dme-mir-927 0 0 +dme-mir-929 0 0 +dme-mir-92a 1 0 +dme-mir-92b 2 32 +dme-mir-932 0 0 +dme-mir-954 0 0 +dme-mir-955 0 0 +dme-mir-956 0 51 +dme-mir-957 0 0 +dme-mir-958 0 0 +dme-mir-959 0 1 +dme-mir-960 1 0 +dme-mir-961 0 0 +dme-mir-962 0 0 +dme-mir-963 0 0 +dme-mir-964 0 0 +dme-mir-965 0 1 +dme-mir-966 0 0 +dme-mir-967 0 0 +dme-mir-968 0 0 +dme-mir-969 0 0 +dme-mir-970 0 0 +dme-mir-971 0 0 +dme-mir-972 0 0 +dme-mir-973 0 0 +dme-mir-974 0 0 +dme-mir-975 0 0 +dme-mir-976 0 0 +dme-mir-977 0 0 +dme-mir-978 0 0 +dme-mir-979 0 0 +dme-mir-980 0 0 +dme-mir-981 0 0 +dme-mir-982 1 0 +dme-mir-983-1 0 0 +dme-mir-983-2 0 0 +dme-mir-984 0 0 +dme-mir-985 0 0 +dme-mir-986 0 0 +dme-mir-987 0 0 +dme-mir-988 0 0 +dme-mir-989 2 1 +dme-mir-990 0 0 +dme-mir-991 0 1 +dme-mir-992 0 0 +dme-mir-993 0 0 +dme-mir-994 2 0 +dme-mir-995 0 1 +dme-mir-996 1 0 +dme-mir-997 0 0 +dme-mir-998 0 0 +dme-mir-999 0 1 +dme-mir-9a 0 0 +dme-mir-9b 0 0 +dme-mir-9c 0 0 +dme-mir-iab-4 0 0 +dme-mir-iab-8 0 0
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/table0.tabular Fri Oct 13 02:59:36 2017 -0400 @@ -0,0 +1,239 @@ +gene alignment1.bam +dme-bantam 1 +dme-let-7 0 +dme-mir-1 72 +dme-mir-10 0 +dme-mir-100 0 +dme-mir-1000 0 +dme-mir-1001 0 +dme-mir-1002 0 +dme-mir-1003 0 +dme-mir-1004 0 +dme-mir-1005 0 +dme-mir-1006 0 +dme-mir-1007 0 +dme-mir-1008 0 +dme-mir-1009 0 +dme-mir-1010 0 +dme-mir-1011 0 +dme-mir-1012 0 +dme-mir-1013 0 +dme-mir-1014 0 +dme-mir-1015 0 +dme-mir-1016 0 +dme-mir-1017 0 +dme-mir-11 1 +dme-mir-12 2 +dme-mir-124 0 +dme-mir-125 0 +dme-mir-133 0 +dme-mir-137 0 +dme-mir-13a 0 +dme-mir-13b-1 0 +dme-mir-13b-2 0 +dme-mir-14 7 +dme-mir-184 146 +dme-mir-190 0 +dme-mir-193 0 +dme-mir-210 0 +dme-mir-219 0 +dme-mir-2279 0 +dme-mir-2280 0 +dme-mir-2281 0 +dme-mir-2282 0 +dme-mir-2283 0 +dme-mir-2489 0 +dme-mir-2490 0 +dme-mir-2491 0 +dme-mir-2492 0 +dme-mir-2493 0 +dme-mir-2494 0 +dme-mir-2495 0 +dme-mir-2496 0 +dme-mir-2497 0 +dme-mir-2498 0 +dme-mir-2499 0 +dme-mir-2500 0 +dme-mir-2501 0 +dme-mir-252 0 +dme-mir-2535b 0 +dme-mir-263a 12 +dme-mir-263b 0 +dme-mir-274 0 +dme-mir-275 7 +dme-mir-276a 7 +dme-mir-276b 1 +dme-mir-277 0 +dme-mir-278 0 +dme-mir-279 8 +dme-mir-280 0 +dme-mir-281-1 0 +dme-mir-281-2 1 +dme-mir-282 0 +dme-mir-283 0 +dme-mir-284 0 +dme-mir-285 0 +dme-mir-286 0 +dme-mir-287 0 +dme-mir-288 0 +dme-mir-289 0 +dme-mir-2a-1 1 +dme-mir-2a-2 0 +dme-mir-2b-1 0 +dme-mir-2b-2 0 +dme-mir-2c 0 +dme-mir-3 0 +dme-mir-303 0 +dme-mir-304 0 +dme-mir-305 10 +dme-mir-306 0 +dme-mir-307a 0 +dme-mir-307b 0 +dme-mir-308 0 +dme-mir-309 0 +dme-mir-310 0 +dme-mir-311 0 +dme-mir-312 1 +dme-mir-313 0 +dme-mir-314 0 +dme-mir-315 0 +dme-mir-316 1 +dme-mir-317 0 +dme-mir-318 1 +dme-mir-31a 2 +dme-mir-31b 1 +dme-mir-33 0 +dme-mir-34 0 +dme-mir-3641 0 +dme-mir-3642 0 +dme-mir-3643 0 +dme-mir-3644 0 +dme-mir-3645 0 +dme-mir-375 0 +dme-mir-4 0 +dme-mir-4908 0 +dme-mir-4909 0 +dme-mir-4910 0 +dme-mir-4911 0 +dme-mir-4912 0 +dme-mir-4913 0 +dme-mir-4914 0 +dme-mir-4915 0 +dme-mir-4916 0 +dme-mir-4917 0 +dme-mir-4918 0 +dme-mir-4919 0 +dme-mir-4939 0 +dme-mir-4940 0 +dme-mir-4941 0 +dme-mir-4942 0 +dme-mir-4943 0 +dme-mir-4944 0 +dme-mir-4945 0 +dme-mir-4946 0 +dme-mir-4947 0 +dme-mir-4948 0 +dme-mir-4949 0 +dme-mir-4950 0 +dme-mir-4951 0 +dme-mir-4952 0 +dme-mir-4953 0 +dme-mir-4954 0 +dme-mir-4955 0 +dme-mir-4956 0 +dme-mir-4957 0 +dme-mir-4958 0 +dme-mir-4959 0 +dme-mir-4960 0 +dme-mir-4961 0 +dme-mir-4962 0 +dme-mir-4963 0 +dme-mir-4964 0 +dme-mir-4965 0 +dme-mir-4966 0 +dme-mir-4967 0 +dme-mir-4968 0 +dme-mir-4969 0 +dme-mir-4970 0 +dme-mir-4971 0 +dme-mir-4972 0 +dme-mir-4973 0 +dme-mir-4974 0 +dme-mir-4975 0 +dme-mir-4976 0 +dme-mir-4977 0 +dme-mir-4978 0 +dme-mir-4979 0 +dme-mir-4980 0 +dme-mir-4981 0 +dme-mir-4982 0 +dme-mir-4983 0 +dme-mir-4984 0 +dme-mir-4985 0 +dme-mir-4986 0 +dme-mir-4987 0 +dme-mir-5 0 +dme-mir-6-1 0 +dme-mir-6-2 0 +dme-mir-6-3 0 +dme-mir-7 0 +dme-mir-79 7 +dme-mir-8 1 +dme-mir-87 0 +dme-mir-927 0 +dme-mir-929 0 +dme-mir-92a 1 +dme-mir-92b 2 +dme-mir-932 0 +dme-mir-954 0 +dme-mir-955 0 +dme-mir-956 0 +dme-mir-957 0 +dme-mir-958 0 +dme-mir-959 0 +dme-mir-960 1 +dme-mir-961 0 +dme-mir-962 0 +dme-mir-963 0 +dme-mir-964 0 +dme-mir-965 0 +dme-mir-966 0 +dme-mir-967 0 +dme-mir-968 0 +dme-mir-969 0 +dme-mir-970 0 +dme-mir-971 0 +dme-mir-972 0 +dme-mir-973 0 +dme-mir-974 0 +dme-mir-975 0 +dme-mir-976 0 +dme-mir-977 0 +dme-mir-978 0 +dme-mir-979 0 +dme-mir-980 0 +dme-mir-981 0 +dme-mir-982 1 +dme-mir-983-1 0 +dme-mir-983-2 0 +dme-mir-984 0 +dme-mir-985 0 +dme-mir-986 0 +dme-mir-987 0 +dme-mir-988 0 +dme-mir-989 2 +dme-mir-990 0 +dme-mir-991 0 +dme-mir-992 0 +dme-mir-993 0 +dme-mir-994 2 +dme-mir-995 0 +dme-mir-996 1 +dme-mir-997 0 +dme-mir-998 0 +dme-mir-999 0 +dme-mir-9a 0 +dme-mir-9b 0 +dme-mir-9c 0 +dme-mir-iab-4 0 +dme-mir-iab-8 0
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/table1.tabular Fri Oct 13 02:59:36 2017 -0400 @@ -0,0 +1,239 @@ +gene alignment2.bam +dme-bantam 1 +dme-let-7 0 +dme-mir-1 0 +dme-mir-10 20 +dme-mir-100 1 +dme-mir-1000 0 +dme-mir-1001 0 +dme-mir-1002 0 +dme-mir-1003 0 +dme-mir-1004 0 +dme-mir-1005 0 +dme-mir-1006 0 +dme-mir-1007 0 +dme-mir-1008 0 +dme-mir-1009 0 +dme-mir-1010 0 +dme-mir-1011 0 +dme-mir-1012 0 +dme-mir-1013 0 +dme-mir-1014 0 +dme-mir-1015 0 +dme-mir-1016 0 +dme-mir-1017 0 +dme-mir-11 2 +dme-mir-12 0 +dme-mir-124 0 +dme-mir-125 1 +dme-mir-133 0 +dme-mir-137 0 +dme-mir-13a 0 +dme-mir-13b-1 0 +dme-mir-13b-2 0 +dme-mir-14 7 +dme-mir-184 111 +dme-mir-190 0 +dme-mir-193 0 +dme-mir-210 0 +dme-mir-219 0 +dme-mir-2279 0 +dme-mir-2280 0 +dme-mir-2281 0 +dme-mir-2282 0 +dme-mir-2283 0 +dme-mir-2489 0 +dme-mir-2490 0 +dme-mir-2491 0 +dme-mir-2492 0 +dme-mir-2493 0 +dme-mir-2494 0 +dme-mir-2495 0 +dme-mir-2496 0 +dme-mir-2497 0 +dme-mir-2498 0 +dme-mir-2499 0 +dme-mir-2500 0 +dme-mir-2501 0 +dme-mir-252 0 +dme-mir-2535b 0 +dme-mir-263a 2 +dme-mir-263b 0 +dme-mir-274 0 +dme-mir-275 0 +dme-mir-276a 5 +dme-mir-276b 0 +dme-mir-277 1 +dme-mir-278 0 +dme-mir-279 0 +dme-mir-280 0 +dme-mir-281-1 3 +dme-mir-281-2 28 +dme-mir-282 0 +dme-mir-283 0 +dme-mir-284 0 +dme-mir-285 0 +dme-mir-286 0 +dme-mir-287 0 +dme-mir-288 0 +dme-mir-289 0 +dme-mir-2a-1 0 +dme-mir-2a-2 0 +dme-mir-2b-1 0 +dme-mir-2b-2 1 +dme-mir-2c 0 +dme-mir-3 0 +dme-mir-303 0 +dme-mir-304 0 +dme-mir-305 2 +dme-mir-306 0 +dme-mir-307a 0 +dme-mir-307b 0 +dme-mir-308 0 +dme-mir-309 0 +dme-mir-310 0 +dme-mir-311 0 +dme-mir-312 0 +dme-mir-313 0 +dme-mir-314 0 +dme-mir-315 0 +dme-mir-316 0 +dme-mir-317 0 +dme-mir-318 0 +dme-mir-31a 22 +dme-mir-31b 0 +dme-mir-33 0 +dme-mir-34 0 +dme-mir-3641 0 +dme-mir-3642 0 +dme-mir-3643 0 +dme-mir-3644 0 +dme-mir-3645 0 +dme-mir-375 0 +dme-mir-4 0 +dme-mir-4908 0 +dme-mir-4909 0 +dme-mir-4910 0 +dme-mir-4911 0 +dme-mir-4912 0 +dme-mir-4913 0 +dme-mir-4914 0 +dme-mir-4915 0 +dme-mir-4916 0 +dme-mir-4917 0 +dme-mir-4918 0 +dme-mir-4919 0 +dme-mir-4939 0 +dme-mir-4940 0 +dme-mir-4941 0 +dme-mir-4942 0 +dme-mir-4943 0 +dme-mir-4944 0 +dme-mir-4945 0 +dme-mir-4946 0 +dme-mir-4947 0 +dme-mir-4948 0 +dme-mir-4949 0 +dme-mir-4950 0 +dme-mir-4951 0 +dme-mir-4952 0 +dme-mir-4953 0 +dme-mir-4954 0 +dme-mir-4955 0 +dme-mir-4956 0 +dme-mir-4957 0 +dme-mir-4958 0 +dme-mir-4959 0 +dme-mir-4960 0 +dme-mir-4961 0 +dme-mir-4962 0 +dme-mir-4963 0 +dme-mir-4964 0 +dme-mir-4965 0 +dme-mir-4966 0 +dme-mir-4967 0 +dme-mir-4968 0 +dme-mir-4969 0 +dme-mir-4970 0 +dme-mir-4971 0 +dme-mir-4972 0 +dme-mir-4973 0 +dme-mir-4974 0 +dme-mir-4975 0 +dme-mir-4976 0 +dme-mir-4977 0 +dme-mir-4978 0 +dme-mir-4979 0 +dme-mir-4980 0 +dme-mir-4981 0 +dme-mir-4982 0 +dme-mir-4983 0 +dme-mir-4984 0 +dme-mir-4985 0 +dme-mir-4986 0 +dme-mir-4987 0 +dme-mir-5 0 +dme-mir-6-1 0 +dme-mir-6-2 0 +dme-mir-6-3 0 +dme-mir-7 0 +dme-mir-79 0 +dme-mir-8 4 +dme-mir-87 0 +dme-mir-927 0 +dme-mir-929 0 +dme-mir-92a 0 +dme-mir-92b 32 +dme-mir-932 0 +dme-mir-954 0 +dme-mir-955 0 +dme-mir-956 51 +dme-mir-957 0 +dme-mir-958 0 +dme-mir-959 1 +dme-mir-960 0 +dme-mir-961 0 +dme-mir-962 0 +dme-mir-963 0 +dme-mir-964 0 +dme-mir-965 1 +dme-mir-966 0 +dme-mir-967 0 +dme-mir-968 0 +dme-mir-969 0 +dme-mir-970 0 +dme-mir-971 0 +dme-mir-972 0 +dme-mir-973 0 +dme-mir-974 0 +dme-mir-975 0 +dme-mir-976 0 +dme-mir-977 0 +dme-mir-978 0 +dme-mir-979 0 +dme-mir-980 0 +dme-mir-981 0 +dme-mir-982 0 +dme-mir-983-1 0 +dme-mir-983-2 0 +dme-mir-984 0 +dme-mir-985 0 +dme-mir-986 0 +dme-mir-987 0 +dme-mir-988 0 +dme-mir-989 1 +dme-mir-990 0 +dme-mir-991 1 +dme-mir-992 0 +dme-mir-993 0 +dme-mir-994 0 +dme-mir-995 1 +dme-mir-996 0 +dme-mir-997 0 +dme-mir-998 0 +dme-mir-999 1 +dme-mir-9a 0 +dme-mir-9b 0 +dme-mir-9c 0 +dme-mir-iab-4 0 +dme-mir-iab-8 0