diff --git a/askomics/libaskomics/BedFile.py b/askomics/libaskomics/BedFile.py index 0d3be5ff..0c4a9ee5 100644 --- a/askomics/libaskomics/BedFile.py +++ b/askomics/libaskomics/BedFile.py @@ -329,9 +329,11 @@ def generate_rdf_content(self): block_reference = self.rdfize(self.format_uri("{}_{}".format(feature.chrom, slice_block))) self.graph_chunk.add((entity, self.namespace_internal["includeInReference"], block_reference)) if faldo_strand: - self.graph_chunk.add((entity, self.namespace_internal["includeInStrand"], faldo_strand)) strand_ref = self.get_reference_strand_uri(feature.chrom, faldo_strand, slice_block) for sref in strand_ref: self.graph_chunk.add((entity, self.namespace_internal["includeInReferenceStrand"], sref)) + strand_ref = self.get_reference_strand_uri(None, faldo_strand, slice_block) + for sref in strand_ref: + self.graph_chunk.add((entity, self.namespace_internal["includeInStrand"], sref)) yield diff --git a/askomics/libaskomics/CsvFile.py b/askomics/libaskomics/CsvFile.py index ff142f71..064c814a 100644 --- a/askomics/libaskomics/CsvFile.py +++ b/askomics/libaskomics/CsvFile.py @@ -737,9 +737,8 @@ def generate_rdf_content(self): for sref in strand_ref: self.graph_chunk.add((entity, self.namespace_internal["includeInReferenceStrand"], sref)) if faldo_strand: - self.graph_chunk.add((entity, self.namespace_internal["includeInStrand"], faldo_strand)) - if faldo_strand == self.faldo.BothStrandPosition: - self.graph_chunk.add((entity, self.namespace_internal["includeInStrand"], self.faldo.ForwardStrandPosition)) - self.graph_chunk.add((entity, self.namespace_internal["includeInStrand"], self.faldo.ReverseStrandPosition)) + strand_ref = self.get_reference_strand_uri(None, faldo_strand, slice_block) + for sref in strand_ref: + self.graph_chunk.add((entity, self.namespace_internal["includeInStrand"], sref)) yield diff --git a/askomics/libaskomics/File.py b/askomics/libaskomics/File.py index ea32ea71..83276fb0 100644 --- a/askomics/libaskomics/File.py +++ b/askomics/libaskomics/File.py @@ -464,6 +464,12 @@ def get_reference_strand_uri(self, reference, strand, block=None): self.faldo.ReverseStrandPosition: "ReverseStrand", self.faldo.BothStrandPosition: "BothStrand" } + if reference is None: + if strand == self.faldo.BothStrandPosition: + return [self.rdfize(self.format_uri("s{}_{}".format(dstrand, block))) for dstrand in faldo_dict.values()] + + return [self.rdfize(self.format_uri("s{}_{}".format(faldo_dict[strand], block)))] + if block is None: if strand == self.faldo.BothStrandPosition: return [self.rdfize(self.format_uri("{}_s{}s".format(reference, dstrand))) for dstrand in faldo_dict.values()] diff --git a/askomics/libaskomics/GffFile.py b/askomics/libaskomics/GffFile.py index dcadac28..d87d7d9c 100644 --- a/askomics/libaskomics/GffFile.py +++ b/askomics/libaskomics/GffFile.py @@ -434,10 +434,12 @@ def generate_rdf_content(self): block_reference = self.rdfize(self.format_uri("{}_{}".format(rec.id, slice_block))) self.graph_chunk.add((entity, self.namespace_internal["includeInReference"], block_reference)) if faldo_strand: - self.graph_chunk.add((entity, self.namespace_internal["includeInStrand"], faldo_strand)) strand_ref = self.get_reference_strand_uri(rec.id, faldo_strand, slice_block) for sref in strand_ref: self.graph_chunk.add((entity, self.namespace_internal["includeInReferenceStrand"], sref)) + strand_ref = self.get_reference_strand_uri(None, faldo_strand, slice_block) + for sref in strand_ref: + self.graph_chunk.add((entity, self.namespace_internal["includeInStrand"], sref)) yield