annotate MIRUReader/MIRUReader.py @ 0:f0e3646a4e45 draft

Uploaded
author dcouvin
date Tue, 17 Aug 2021 19:15:15 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
1 #!/usr/bin/python3
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
2
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
3 #Copyright 2019 NUS pathogen genomics
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
4 #Written by Cheng Yee Tang (chengyee.tang@nus.edu.sg)
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
5 #former python tag !/usr/bin/env python
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
6
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
7 import os
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
8 import sys
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
9 import gzip
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
10 import argparse
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
11 import pandas as pd
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
12 import statistics
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
13 import subprocess
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
14 from statistics import mode
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
15 from collections import Counter
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
16
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
17
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
18 #function to determine repeat number based on total number of mismatches in primer sequence
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
19 def chooseMode(name, table, CounterList):
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
20 maxcount = max(CounterList.values())
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
21 repeatToCheck = []
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
22 for k, v in CounterList.items():
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
23 if v == maxcount:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
24 repeatToCheck.append(k)
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
25 x = 0
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
26 for i, j in table.items():
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
27 if name in i:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
28 x += 1
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
29 mismatchDict = {}
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
30 for rp in repeatToCheck:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
31 mismatchDict[rp] = 0
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
32 for i in range(x):
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
33 string = name + '_' + str(i+1)
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
34 if table[string][1] in repeatToCheck:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
35 mismatchDict[table[string][1]] += table[string][0]
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
36 checklist2 = []
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
37 for m, n in mismatchDict.items():
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
38 checklist2.append(n)
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
39 duplicates = ''
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
40 for item in checklist2:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
41 if checklist2.count(item) > 1:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
42 duplicates = 'yes'
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
43 finalMode = ''
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
44 if duplicates == 'yes':
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
45 finalMode = '/'.join(str(r) for min_value in (min(mismatchDict.values()),) for r in mismatchDict if mismatchDict[r]==min_value)
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
46 else:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
47 finalMode = min(mismatchDict.keys(), key=(lambda k: mismatchDict[k]))
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
48 return finalMode
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
49
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
50 '''
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
51 Main function
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
52 '''
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
53
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
54 script_dir = os.path.dirname(os.path.abspath(sys.argv[0]))
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
55 MIRU_table = script_dir + "/MIRU_table"
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
56 MIRU_table_0580 = script_dir + "/MIRU_table_0580"
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
57 MIRU_primers = script_dir + "/MIRU_primers"
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
58
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
59 parser = argparse.ArgumentParser()
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
60 main_group = parser.add_argument_group('Main options')
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
61 main_group.add_argument('-r', '--reads', required=True, help='input reads file in fastq/fasta format (required)')
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
62 main_group.add_argument('-p', '--prefix', required=True, help='sample ID (required)')
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
63 main_group.add_argument('--table', type=str, default=MIRU_table, help='allele calling table')
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
64 main_group.add_argument('--primers', type=str, default=MIRU_primers, help='primers sequences')
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
65 optional_group = parser.add_argument_group('Optional options')
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
66 optional_group.add_argument('--amplicons', help='provide output from primersearch and summarize MIRU profile directly', action='store_true')
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
67 optional_group.add_argument('--details', help='for inspection', action='store_true')
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
68 optional_group.add_argument('--nofasta', help='delete the fasta reads file generated if your reads are in fastq format', action='store_true')
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
69 args = parser.parse_args()
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
70
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
71 if not os.path.exists(args.reads):
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
72 sys.exit('Error: ' + args.reads + ' is not found!')
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
73
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
74 sample_prefix = args.prefix
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
75 sample_dir = os.path.dirname(os.path.abspath(args.reads))
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
76 mismatch_allowed = 18
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
77 psearchOut = sample_dir + '/' + sample_prefix + '.' + str(mismatch_allowed) + '.primersearch.out'
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
78
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
79 df = pd.read_csv(MIRU_table, sep='\t')
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
80 df_0580 = pd.read_csv(MIRU_table_0580, sep='\t')
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
81 miru = []
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
82 with open(args.primers) as primerFile:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
83 for line in primerFile:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
84 miru.append(line.split()[0])
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
85
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
86 #auto detect .fastq, .fastq.gz, .fasta, .fasta.gz
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
87 #convert fastq to fasta
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
88
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
89 fastaReads = sample_dir + '/' + sample_prefix + '.fasta'
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
90 if not args.amplicons:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
91 if '.fastq' in args.reads:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
92 if '.gz' in args.reads:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
93 tmpH = open(fastaReads, 'w')
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
94 p1 = subprocess.Popen(['zcat', args.reads], stdout=subprocess.PIPE)
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
95 subprocess_args1 = ['sed', '-n', '1~4s/^@/>/p;2~4p']
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
96 subprocess.call(subprocess_args1, stdin=p1.stdout, stdout=tmpH)
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
97 tmpH.close()
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
98 else:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
99 tmpH = open(fastaReads, 'w')
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
100 subprocess_args1 = ['sed', '-n', '1~4s/^@/>/p;2~4p', args.reads]
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
101 subprocess.call(subprocess_args1, stdout=tmpH)
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
102 tmpH.close()
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
103 elif '.fasta' in args.reads:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
104 if '.gz' in args.reads:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
105 with open(fastaReads, 'w') as f:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
106 for line in gzip.open(args.reads, 'rb').readlines():
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
107 f.write(line)
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
108 else:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
109 fastaReads = args.reads
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
110
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
111 if not args.amplicons:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
112 try:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
113 subprocess_args = ['primersearch', '-seqall', fastaReads, '-infile', args.primers, '-mismatchpercent', str(mismatch_allowed), '-outfile', psearchOut]
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
114 subprocess.call(subprocess_args)
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
115 except OSError:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
116 print('OSError: primersearch command is not found.')
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
117 sys.exit()
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
118
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
119 if not os.path.exists(psearchOut):
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
120 sys.exit('Error: ' + psearchOut + ' is not found!')
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
121
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
122 lookup = {}
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
123 repeats = {}
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
124 with open(psearchOut, 'r') as infile:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
125 for line in infile.read().splitlines():
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
126 if line.startswith('Primer'):
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
127 col = line.split(' ')
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
128 loci = str(col[2])
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
129 repeats.setdefault(loci, [])
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
130 elif (line.startswith('Amplimer') and len(line) < 12):
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
131 col = line.split(' ')
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
132 primerID = loci + '_' + str(col[1])
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
133 lookup.setdefault(primerID, [])
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
134 mm = 0
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
135 elif 'mismatches' in line:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
136 mm += int(line.partition('with ')[2].rstrip(' mismatches'))
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
137 elif 'Amplimer length' in line:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
138 field = line.split(':')
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
139 amplicon = int(field[1].strip(' ').rstrip(' bp'))
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
140 lookup.setdefault(primerID).append(mm)
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
141 if amplicon > 1828:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
142 lookup.setdefault(primerID).append('NA')
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
143 elif loci == '0580':
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
144 if amplicon > df_0580[loci][25]:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
145 lookup.setdefault(primerID).append('NA')
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
146 else:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
147 for i in range(26):
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
148 if amplicon < df_0580[loci][i]:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
149 if i != 0:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
150 first = df_0580[loci][i-1]
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
151 second = df_0580[loci][i]
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
152 if abs(amplicon - first) > abs(amplicon - second):
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
153 repeats.setdefault(loci).append(df_0580['No.'][i])
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
154 lookup.setdefault(primerID).append(df_0580['No.'][i])
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
155 break
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
156 else:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
157 repeats.setdefault(loci).append(df_0580['No.'][i-1])
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
158 lookup.setdefault(primerID).append(df_0580['No.'][i-1])
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
159 break
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
160 else:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
161 repeats.setdefault(loci).append(0)
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
162 lookup.setdefault(primerID).append(0)
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
163
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
164 else:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
165 if amplicon > df[loci][15]:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
166 lookup.setdefault(primerID).append('NA')
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
167 else:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
168 for i in range(16):
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
169 if amplicon < df[loci][i]:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
170 if i != 0:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
171 first = df[loci][i-1]
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
172 second = df[loci][i]
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
173 if abs(amplicon - first) > abs(amplicon - second):
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
174 repeats.setdefault(loci).append(i)
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
175 lookup.setdefault(primerID).append(i)
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
176 break
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
177 else:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
178 repeats.setdefault(loci).append(i-1)
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
179 lookup.setdefault(primerID).append(i-1)
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
180 break
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
181 else:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
182 repeats.setdefault(loci).append(0)
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
183 lookup.setdefault(primerID).append(0)
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
184
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
185 if args.details:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
186 myLookUp = pd.DataFrame(columns=["loci", "hit_index", "repeat_no", "error_no"])
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
187 for key, value in lookup.items():
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
188 #example: lookup = {'0154_1':[2,4]} total no. of mismatches, repeat number
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
189 myLookUp = myLookUp.append({"loci":key.split("_")[0], "hit_index":int(key.split("_")[1]), "repeat_no":lookup[key][1], "error_no":lookup[key][0]}, ignore_index=True)
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
190 sortedLookUp = myLookUp.sort_values(by=["loci", "hit_index"])
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
191 print(sortedLookUp.to_csv(sep='\t', index=False))
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
192 for item in miru:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
193 #array that used to determine repeat number
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
194 print(Counter(repeats[item]))
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
195
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
196 miru_repeats = pd.DataFrame(columns = ['sample_prefix'] + miru, index = range(1))
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
197 miru_repeats['sample_prefix'] = sample_prefix
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
198 for item in miru:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
199 if repeats[item] != []:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
200 try:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
201 repeat = mode(repeats[item])
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
202 miru_repeats[item][0] = repeat
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
203 except statistics.StatisticsError:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
204 repeat = chooseMode(item, lookup, Counter(repeats[item]))
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
205 miru_repeats[item][0] = repeat
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
206 else:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
207 miru_repeats[item][0] = "ND"
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
208
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
209 if args.nofasta:
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
210 if ('.fastq' in args.reads) or ('.gz' in args.reads):
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
211 os.remove(fastaReads)
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
212
f0e3646a4e45 Uploaded
dcouvin
parents:
diff changeset
213 print(miru_repeats.to_csv(sep='\t', index=False, header=True))