Mercurial > repos > iuc > vsnp_get_snps
annotate vsnp_statistics.py @ 1:9ac0b1d5560d draft
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
author | iuc |
---|---|
date | Tue, 16 Nov 2021 20:11:30 +0000 |
parents | ec6e02f4eab7 |
children | 4535ad8b74f3 |
rev | line source |
---|---|
0
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
1 #!/usr/bin/env python |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
2 |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
3 import argparse |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
4 import gzip |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
5 import os |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
6 from functools import partial |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
7 |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
8 import numpy |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
9 import pandas |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
10 from Bio import SeqIO |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
11 |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
12 |
1
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
13 class Statistics: |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
14 |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
15 def __init__(self, reference, fastq_file, file_size, total_reads, mean_read_length, mean_read_quality, reads_passing_q30): |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
16 self.reference = reference |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
17 self.fastq_file = fastq_file |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
18 self.file_size = file_size |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
19 self.total_reads = total_reads |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
20 self.mean_read_length = mean_read_length |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
21 self.mean_read_quality = mean_read_quality |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
22 self.reads_passing_q30 = reads_passing_q30 |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
23 |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
24 |
0
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
25 def nice_size(size): |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
26 # Returns a readably formatted string with the size |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
27 words = ['bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB'] |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
28 prefix = '' |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
29 try: |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
30 size = float(size) |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
31 if size < 0: |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
32 size = abs(size) |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
33 prefix = '-' |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
34 except Exception: |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
35 return '??? bytes' |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
36 for ind, word in enumerate(words): |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
37 step = 1024 ** (ind + 1) |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
38 if step > size: |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
39 size = size / float(1024 ** ind) |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
40 if word == 'bytes': # No decimals for bytes |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
41 return "%s%d bytes" % (prefix, size) |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
42 return "%s%.1f %s" % (prefix, size, word) |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
43 return '??? bytes' |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
44 |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
45 |
1
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
46 def get_statistics(dbkey, fastq_file, gzipped): |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
47 sampling_size = 10000 |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
48 # Read fastq_file into a data fram to |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
49 # get the phred quality scores. |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
50 _open = partial(gzip.open, mode='rt') if gzipped else open |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
51 with _open(fastq_file) as fh: |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
52 identifiers = [] |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
53 seqs = [] |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
54 letter_annotations = [] |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
55 for seq_record in SeqIO.parse(fh, "fastq"): |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
56 identifiers.append(seq_record.id) |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
57 seqs.append(seq_record.seq) |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
58 letter_annotations.append(seq_record.letter_annotations["phred_quality"]) |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
59 # Convert lists to Pandas series. |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
60 s1 = pandas.Series(identifiers, name='id') |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
61 s2 = pandas.Series(seqs, name='seq') |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
62 # Gather Series into a data frame. |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
63 fastq_df = pandas.DataFrame(dict(id=s1, seq=s2)).set_index(['id']) |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
64 # Starting at row 3, keep every 4 row |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
65 # random sample specified number of rows. |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
66 file_size = nice_size(os.path.getsize(fastq_file)) |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
67 total_reads = len(seqs) |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
68 # Mean Read Length |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
69 if sampling_size > total_reads: |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
70 sampling_size = total_reads |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
71 try: |
0
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
72 fastq_df = fastq_df.iloc[3::4].sample(sampling_size) |
1
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
73 except ValueError: |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
74 fastq_df = fastq_df.iloc[3::4].sample(sampling_size, replace=True) |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
75 dict_mean = {} |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
76 list_length = [] |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
77 i = 0 |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
78 for id, seq, in fastq_df.iterrows(): |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
79 dict_mean[id] = numpy.mean(letter_annotations[i]) |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
80 list_length.append(len(seq.array[0])) |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
81 i += 1 |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
82 mean_read_length = '%.1f' % numpy.mean(list_length) |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
83 # Mean Read Quality |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
84 df_mean = pandas.DataFrame.from_dict(dict_mean, orient='index', columns=['ave']) |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
85 mean_read_quality = '%.1f' % df_mean['ave'].mean() |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
86 # Reads Passing Q30 |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
87 reads_gt_q30 = len(df_mean[df_mean['ave'] >= 30]) |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
88 reads_passing_q30 = '{:10.2f}'.format(reads_gt_q30 / sampling_size) |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
89 stats = Statistics(dbkey, os.path.basename(fastq_file), file_size, total_reads, mean_read_length, |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
90 mean_read_quality, reads_passing_q30) |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
91 return stats |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
92 |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
93 |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
94 def accrue_statistics(dbkey, read1, read2, gzipped): |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
95 read1_stats = get_statistics(dbkey, read1, gzipped) |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
96 if read2 is None: |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
97 read2_stats = None |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
98 else: |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
99 read2_stats = get_statistics(dbkey, read2, gzipped) |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
100 return read1_stats, read2_stats |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
101 |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
102 |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
103 def output_statistics(read1_stats, read2_stats, idxstats_file, metrics_file, output_file): |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
104 paired_reads = read2_stats is not None |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
105 if paired_reads: |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
106 columns = ['Read1 FASTQ', 'File Size', 'Reads', 'Mean Read Length', 'Mean Read Quality', |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
107 'Reads Passing Q30', 'Read2 FASTQ', 'File Size', 'Reads', 'Mean Read Length', 'Mean Read Quality', |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
108 'Reads Passing Q30', 'Total Reads', 'All Mapped Reads', 'Unmapped Reads', |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
109 'Unmapped Reads Percentage of Total', 'Reference with Coverage', 'Average Depth of Coverage', |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
110 'Good SNP Count', 'Reference'] |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
111 else: |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
112 columns = ['FASTQ', 'File Size', 'Mean Read Length', 'Mean Read Quality', 'Reads Passing Q30', |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
113 'Total Reads', 'All Mapped Reads', 'Unmapped Reads', 'Unmapped Reads Percentage of Total', |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
114 'Reference with Coverage', 'Average Depth of Coverage', 'Good SNP Count', 'Reference'] |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
115 with open(output_file, "w") as outfh: |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
116 # Make sure the header starts with a # so |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
117 # MultiQC can properly handle the output. |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
118 outfh.write("%s\n" % "\t".join(columns)) |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
119 line_items = [] |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
120 # Get the current stats and associated files. |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
121 # Get and output the statistics. |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
122 line_items.append(read1_stats.fastq_file) |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
123 line_items.append(read1_stats.file_size) |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
124 if paired_reads: |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
125 line_items.append(read1_stats.total_reads) |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
126 line_items.append(read1_stats.mean_read_length) |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
127 line_items.append(read1_stats.mean_read_quality) |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
128 line_items.append(read1_stats.reads_passing_q30) |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
129 if paired_reads: |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
130 line_items.append(read2_stats.fastq_file) |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
131 line_items.append(read2_stats.file_size) |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
132 line_items.append(read2_stats.total_reads) |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
133 line_items.append(read2_stats.mean_read_length) |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
134 line_items.append(read2_stats.mean_read_quality) |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
135 line_items.append(read2_stats.reads_passing_q30) |
0
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
136 # Total Reads |
1
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
137 if paired_reads: |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
138 total_reads = read1_stats.total_reads + read2_stats.total_reads |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
139 else: |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
140 total_reads = read1_stats.total_reads |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
141 line_items.append(total_reads) |
0
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
142 # All Mapped Reads |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
143 all_mapped_reads, unmapped_reads = process_idxstats_file(idxstats_file) |
1
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
144 line_items.append(all_mapped_reads) |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
145 line_items.append(unmapped_reads) |
0
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
146 # Unmapped Reads Percentage of Total |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
147 if unmapped_reads > 0: |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
148 unmapped_reads_percentage = '{:10.2f}'.format(unmapped_reads / total_reads) |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
149 else: |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
150 unmapped_reads_percentage = 0 |
1
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
151 line_items.append(unmapped_reads_percentage) |
0
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
152 # Reference with Coverage |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
153 ref_with_coverage, avg_depth_of_coverage, good_snp_count = process_metrics_file(metrics_file) |
1
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
154 line_items.append(ref_with_coverage) |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
155 line_items.append(avg_depth_of_coverage) |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
156 line_items.append(good_snp_count) |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
157 line_items.append(read1_stats.reference) |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
158 outfh.write('%s\n' % '\t'.join(str(x) for x in line_items)) |
0
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
159 |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
160 |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
161 def process_idxstats_file(idxstats_file): |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
162 all_mapped_reads = 0 |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
163 unmapped_reads = 0 |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
164 with open(idxstats_file, "r") as fh: |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
165 for i, line in enumerate(fh): |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
166 line = line.rstrip('\r\n') |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
167 items = line.split("\t") |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
168 if i == 0: |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
169 # NC_002945.4 4349904 213570 4047 |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
170 all_mapped_reads = int(items[2]) |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
171 elif i == 1: |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
172 # * 0 0 82774 |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
173 unmapped_reads = int(items[3]) |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
174 return all_mapped_reads, unmapped_reads |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
175 |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
176 |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
177 def process_metrics_file(metrics_file): |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
178 ref_with_coverage = '0%' |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
179 avg_depth_of_coverage = 0 |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
180 good_snp_count = 0 |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
181 with open(metrics_file, "r") as ifh: |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
182 for i, line in enumerate(ifh): |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
183 if i == 0: |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
184 # Skip comments. |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
185 continue |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
186 line = line.rstrip('\r\n') |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
187 items = line.split("\t") |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
188 if i == 1: |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
189 # MarkDuplicates 10.338671 98.74% |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
190 ref_with_coverage = items[3] |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
191 avg_depth_of_coverage = items[2] |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
192 elif i == 2: |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
193 # VCFfilter 611 |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
194 good_snp_count = items[1] |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
195 return ref_with_coverage, avg_depth_of_coverage, good_snp_count |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
196 |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
197 |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
198 parser = argparse.ArgumentParser() |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
199 |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
200 parser.add_argument('--dbkey', action='store', dest='dbkey', help='Reference dbkey') |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
201 parser.add_argument('--gzipped', action='store_true', dest='gzipped', required=False, default=False, help='Input files are gzipped') |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
202 parser.add_argument('--output', action='store', dest='output', help='Output Excel statistics file') |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
203 parser.add_argument('--read1', action='store', dest='read1', help='Required: single read') |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
204 parser.add_argument('--read2', action='store', dest='read2', required=False, default=None, help='Optional: paired read') |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
205 parser.add_argument('--samtools_idxstats', action='store', dest='samtools_idxstats', help='Output of samtools_idxstats') |
1
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
206 parser.add_argument('--vsnp_azc_metrics', action='store', dest='vsnp_azc_metrics', help='Output of vsnp_add_zero_coverage') |
0
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
207 |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
208 args = parser.parse_args() |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
209 |
1
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
210 stats_list = [] |
0
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
211 idxstats_files = [] |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
212 metrics_files = [] |
ec6e02f4eab7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 95b221f68d19702681babd765c67caeeb24e7f1d"
iuc
parents:
diff
changeset
|
213 # Accumulate inputs. |
1
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
214 read1_stats, read2_stats = accrue_statistics(args.dbkey, args.read1, args.read2, args.gzipped) |
9ac0b1d5560d
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/vsnp commit 2a94c64d6c7236550bf483d2ffc4e86248c63aab"
iuc
parents:
0
diff
changeset
|
215 output_statistics(read1_stats, read2_stats, args.samtools_idxstats, args.vsnp_azc_metrics, args.output) |