Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
a8e2aee281 | |||
13adb479d3 | |||
8ba7acdfe1 | |||
38051b1e4f |
@ -24,10 +24,6 @@ from cpython.exc cimport PyErr_CheckSignals
|
|||||||
from io import BufferedWriter
|
from io import BufferedWriter
|
||||||
|
|
||||||
|
|
||||||
#REVERSE_SEQ_COLUMN_NAME = b"REVERSE_SEQUENCE" # used by alignpairedend tool
|
|
||||||
#REVERSE_QUALITY_COLUMN_NAME = b"REVERSE_QUALITY" # used by alignpairedend tool
|
|
||||||
|
|
||||||
|
|
||||||
__title__="Assigns sequence records to the corresponding experiment/sample based on DNA tags and primers"
|
__title__="Assigns sequence records to the corresponding experiment/sample based on DNA tags and primers"
|
||||||
|
|
||||||
|
|
||||||
|
@ -23,9 +23,8 @@ cdef class TabFormat:
|
|||||||
if self.first_line:
|
if self.first_line:
|
||||||
self.tags = [k for k in data.keys()]
|
self.tags = [k for k in data.keys()]
|
||||||
|
|
||||||
for k in self.tags:
|
if self.header and self.first_line:
|
||||||
|
for k in self.tags:
|
||||||
if self.header and self.first_line:
|
|
||||||
if isinstance(data.view[k], Column_multi_elts):
|
if isinstance(data.view[k], Column_multi_elts):
|
||||||
keys = data.view[k].keys()
|
keys = data.view[k].keys()
|
||||||
keys.sort()
|
keys.sort()
|
||||||
@ -33,27 +32,36 @@ cdef class TabFormat:
|
|||||||
line.append(tobytes(k)+b':'+tobytes(k2))
|
line.append(tobytes(k)+b':'+tobytes(k2))
|
||||||
else:
|
else:
|
||||||
line.append(tobytes(k))
|
line.append(tobytes(k))
|
||||||
else:
|
r = self.sep.join(value for value in line)
|
||||||
value = data[k]
|
r += b'\n'
|
||||||
if isinstance(data.view[k], Column_multi_elts):
|
line = []
|
||||||
keys = data.view[k].keys()
|
|
||||||
keys.sort()
|
for k in self.tags:
|
||||||
if value is None: # all keys at None
|
value = data[k]
|
||||||
for k2 in keys: # TODO could be much more efficient
|
if isinstance(data.view[k], Column_multi_elts):
|
||||||
line.append(self.NAString)
|
keys = data.view[k].keys()
|
||||||
else:
|
keys.sort()
|
||||||
for k2 in keys: # TODO could be much more efficient
|
if value is None: # all keys at None
|
||||||
if value[k2] is not None:
|
for k2 in keys: # TODO could be much more efficient
|
||||||
line.append(str2bytes(str(bytes2str_object(value[k2])))) # genius programming
|
|
||||||
else:
|
|
||||||
line.append(self.NAString)
|
|
||||||
else:
|
|
||||||
if value is not None:
|
|
||||||
line.append(str2bytes(str(bytes2str_object(value))))
|
|
||||||
else:
|
|
||||||
line.append(self.NAString)
|
line.append(self.NAString)
|
||||||
|
else:
|
||||||
|
for k2 in keys: # TODO could be much more efficient
|
||||||
|
if value[k2] is not None:
|
||||||
|
line.append(str2bytes(str(bytes2str_object(value[k2])))) # genius programming
|
||||||
|
else:
|
||||||
|
line.append(self.NAString)
|
||||||
|
else:
|
||||||
|
if value is not None:
|
||||||
|
line.append(str2bytes(str(bytes2str_object(value))))
|
||||||
|
else:
|
||||||
|
line.append(self.NAString)
|
||||||
|
|
||||||
|
if self.header and self.first_line:
|
||||||
|
r += self.sep.join(value for value in line)
|
||||||
|
else:
|
||||||
|
r = self.sep.join(value for value in line)
|
||||||
|
|
||||||
if self.first_line:
|
if self.first_line:
|
||||||
self.first_line = False
|
self.first_line = False
|
||||||
|
|
||||||
return self.sep.join(value for value in line)
|
return r
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
major = 3
|
major = 3
|
||||||
minor = 0
|
minor = 0
|
||||||
serial= '0b38'
|
serial= '0b40'
|
||||||
|
|
||||||
version ="%d.%d.%s" % (major,minor,serial)
|
version ="%d.%d.%s" % (major,minor,serial)
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
* @author Celine Mercier (celine.mercier@metabarcoding.org)
|
* @author Celine Mercier (celine.mercier@metabarcoding.org)
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
bool volatile keep_running;
|
extern bool volatile keep_running;
|
||||||
void sig_handler(int signum);
|
void sig_handler(int signum);
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user