diff --git a/src/main/java/com/github/kleinsamuel/gtfutils/GtfFile.java b/src/main/java/com/github/kleinsamuel/gtfutils/GtfFile.java index 382cf44..f6d6ebe 100644 --- a/src/main/java/com/github/kleinsamuel/gtfutils/GtfFile.java +++ b/src/main/java/com/github/kleinsamuel/gtfutils/GtfFile.java @@ -557,7 +557,7 @@ private void groupFeatures() { // generate the parent transcript if it does not exist if (parentTranscript == null) { GtfFeature feature = transcriptId2child.get(transcriptId).getFirst(); - parentTranscript = this.generateDummyTranscriptFeature(feature); + parentTranscript = this.generateDummyTranscriptFeature(feature, parentGeneId); this.id2transcript.put(transcriptId, parentTranscript); } @@ -598,7 +598,7 @@ private GeneFeature generateDummyGeneFeature(GtfFeature baseFeature, String pare return new GeneFeature(geneBaseData, true); } - private TranscriptFeature generateDummyTranscriptFeature(GtfFeature baseFeature) { + private TranscriptFeature generateDummyTranscriptFeature(GtfFeature baseFeature, String parentGeneId) { HashMap> transcriptAttributes = new HashMap<>(); @@ -606,6 +606,8 @@ private TranscriptFeature generateDummyTranscriptFeature(GtfFeature baseFeature) transcriptAttributes.put(key, baseFeature.getBaseData().getAttributes(key)); } + transcriptAttributes.computeIfAbsent(GtfConstants.GENE_ID_ATTRIBUTE_KEY, k -> Collections.singletonList(parentGeneId)); + GtfBaseData transcriptBaseData = new GtfBaseData(baseFeature.getBaseData().getContig(), baseFeature.getBaseData().getSource(), GtfConfig.TYPE_TRANSCRIPT_DEFAULT, -1, -1, null,