mirror of
https://github.com/metabarcoding/obitools4.git
synced 2025-06-29 16:20:46 +00:00
Patch reading of annotation from stdin
This commit is contained in:
@ -52,6 +52,7 @@ fast_kseq_p open_fast_sek_fd(int fd, bool keep_open, int shift) {
|
||||
fd = dup(fd);
|
||||
|
||||
fp = gzdopen(fd, "r");
|
||||
|
||||
return _open_fast_sek(fp, shift);
|
||||
}
|
||||
|
||||
@ -67,8 +68,11 @@ int64_t next_fast_sek(fast_kseq_t* iterator) {
|
||||
return -3;
|
||||
|
||||
l = kseq_read(iterator->seq);
|
||||
if (l < 0) l = 0;
|
||||
|
||||
iterator->finished = l==0;
|
||||
if (l>0) l = gzoffset(iterator->filez);
|
||||
|
||||
return l;
|
||||
}
|
||||
|
||||
|
@ -26,8 +26,7 @@ func _FastseqReader(seqfile C.fast_kseq_p,
|
||||
|
||||
slice := obiseq.MakeBioSequenceSlice()
|
||||
|
||||
for l := int64(C.next_fast_sek(seqfile)); l > 0; l = int64(C.next_fast_sek(seqfile)) {
|
||||
|
||||
for l := int64(C.next_fast_sek(seqfile)); l != 0; l = int64(C.next_fast_sek(seqfile)) {
|
||||
s := seqfile.seq
|
||||
|
||||
sequence := C.GoBytes(unsafe.Pointer(s.seq.s), C.int(s.seq.l))
|
||||
@ -77,6 +76,9 @@ func _FastseqReader(seqfile C.fast_kseq_p,
|
||||
i++
|
||||
ii = 0
|
||||
}
|
||||
|
||||
// log.Println("longueur : ",l,rep.Length())
|
||||
|
||||
}
|
||||
if len(slice) > 0 {
|
||||
iterator.Push(obiiter.MakeBioSequenceBatch(i, slice))
|
||||
@ -148,6 +150,12 @@ func ReadFastSeqBatchFromStdin(options ...WithOption) obiiter.IBioSequenceBatch
|
||||
go _FastseqReader(C.open_fast_sek_stdin(C.int32_t(opt.QualityShift())),
|
||||
newIter, opt.BatchSize())
|
||||
|
||||
parser := opt.ParseFastSeqHeader()
|
||||
|
||||
if parser != nil {
|
||||
return IParseFastSeqHeaderBatch(newIter, options...)
|
||||
}
|
||||
|
||||
return newIter
|
||||
}
|
||||
|
||||
|
@ -82,7 +82,7 @@ func ReadBioSequencesBatch(filenames ...string) (obiiter.IBioSequenceBatch, erro
|
||||
opts = append(opts, obiformats.OptionsFastSeqHeaderParser(obiformats.ParseGuessedFastSeqHeader))
|
||||
}
|
||||
|
||||
nworkers := obioptions.CLIParallelWorkers() / 4
|
||||
nworkers := obioptions.CLIParallelWorkers() // / 4
|
||||
if nworkers < 2 {
|
||||
nworkers = 2
|
||||
}
|
||||
@ -94,7 +94,7 @@ func ReadBioSequencesBatch(filenames ...string) (obiiter.IBioSequenceBatch, erro
|
||||
opts = append(opts, obiformats.OptionsQualityShift(CLIInputQualityShift()))
|
||||
|
||||
if len(filenames) == 0 {
|
||||
|
||||
log.Printf("Reading sequences from stdin in %s\n", CLIInputFormat())
|
||||
switch CLIInputFormat() {
|
||||
case "ecopcr":
|
||||
iterator = obiformats.ReadEcoPCRBatch(os.Stdin, opts...)
|
||||
@ -129,7 +129,7 @@ func ReadBioSequencesBatch(filenames ...string) (obiiter.IBioSequenceBatch, erro
|
||||
if CLINoInputOrder() {
|
||||
nreader = obioptions.CLIParallelWorkers()
|
||||
}
|
||||
|
||||
|
||||
iterator = obiformats.ReadSequencesBatchFromFiles(
|
||||
filenames,
|
||||
reader,
|
||||
|
Reference in New Issue
Block a user