Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
4637f80
support tars alignments via XA multimap fan-out and 60 single-map MAP…
shiv-hartwig Jul 8, 2026
b83d6c7
Isofox: support tars alignments via XA multimap fan-out and 60 single…
shiv-hartwig Jul 8, 2026
cbdab7b
base multimapper detection on XA loci and drop STAR references (AUS-418)
shiv-hartwig Jul 13, 2026
725306d
Isofox: base multimapper detection on XA loci and drop STAR reference…
shiv-hartwig Jul 13, 2026
bfe5b41
minor nits addressed
shiv-hartwig Jul 13, 2026
a3ab8f4
Isofox: minor nits addressed
shiv-hartwig Jul 13, 2026
2642df0
rename LOW_MAP_QUAL fragment type to MULTI_MAPPED (AUS-418)
shiv-hartwig Jul 13, 2026
797a746
Isofox: rename LOW_MAP_QUAL fragment type to MULTI_MAPPED (AUS-418)
shiv-hartwig Jul 13, 2026
46749b1
exon-gate and category-correct XA multimap fan-out (AUS-418)
shiv-hartwig Jul 14, 2026
f084ff7
Isofox: exon-gate and category-correct XA multimap fan-out (AUS-418)
shiv-hartwig Jul 14, 2026
e2eb019
more tests
shiv-hartwig Jul 14, 2026
eeea846
Isofox: more tests
shiv-hartwig Jul 14, 2026
2d76312
clean up
shiv-hartwig Jul 15, 2026
29de024
Isofox: clean up
shiv-hartwig Jul 15, 2026
9a5122f
add -aligner flag for star and bwa-tars
shiv-hartwig Jul 21, 2026
873fa88
Isofox: add -aligner flag for star and bwa-tars
shiv-hartwig Jul 21, 2026
e55c46a
fix star multimap exclusion in alt-SJ and retained-intron finders
shiv-hartwig Jul 21, 2026
d7b8e42
Isofox: fix star multimap exclusion in alt-SJ and retained-intron fin…
shiv-hartwig Jul 21, 2026
39bed85
Isofox: make 'star_aligner' a config flag item, still assumes bwa+tar…
charlesshale Jul 21, 2026
c5b09d7
Isofox: consensus reads not counted towards expression or total fragm…
charlesshale Jul 21, 2026
03895b1
Isofox: merged changes
charlesshale Jul 21, 2026
2babc13
Isofox:
shiv-hartwig Jul 24, 2026
211d50c
Isofox: rename LowMapQualFrags to MultiMappedFragments & record multi…
shiv-hartwig Jul 28, 2026
eaa7c7b
Isofox: fusion check for position adjustment from junction base overlap
charlesshale Aug 17, 2026
b47121d
Isofox: fix junction position adjustment and splice bases
shiv-hartwig Aug 25, 2026
c4c9f34
Isofox:
charlesshale Aug 28, 2026
89f0167
Isofox: fusion adjust split junc position from overlap with with know…
charlesshale Aug 28, 2026
e2333e7
Isofox: set junction types on fusion in addition to fusion fragment, …
charlesshale Aug 31, 2026
819a9d7
Common: Ensembl cache data files now expect ref genome version in name
charlesshale Aug 26, 2026
cf1bda7
Common: ensembl data file loading checks for old filename
charlesshale Aug 31, 2026
e0231c4
Isofox: check for canonical splice motif after homology position adju…
charlesshale Sep 1, 2026
b1e5bb7
Isofox: minor fixes
charlesshale Sep 1, 2026
4f5bc3e
Isofox: fusion position adjustment more careful check of known exon b…
charlesshale Sep 3, 2026
b1c03a2
Isofox: removed old code, add unit test for shifting position to know…
charlesshale Sep 3, 2026
1b36e43
Isofox: fixed same-orientation base overlap test
charlesshale Sep 3, 2026
6beabb4
Isofox: fixed junction type comparison when setting canonical
charlesshale Sep 3, 2026
bb9664c
Isofox: protect against finding no split junction for read with split…
charlesshale Sep 3, 2026
03ab111
Isofox: simplied method for finding junction positions
charlesshale Sep 3, 2026
e5455df
Isofox: canonical junction may be reverted to unknown after position …
charlesshale Sep 3, 2026
4f9113b
Isofox: filter fusions based on supplementaries if no reads are aboev…
charlesshale Sep 10, 2026
e0ac2c6
Isofox: removed support for STAR alignments
charlesshale Sep 10, 2026
ed437f6
Isofox: removed exlcuded region file loading and read filtering
charlesshale Sep 10, 2026
e61ffa4
Isofox: fusion hard filter on supp map qual ignores known pairs and p…
charlesshale Sep 10, 2026
18ff4df
Isofox: removed all enriched gene logic, and enriched gene perc from …
charlesshale Sep 11, 2026
8f9aaee
Isofox: moved fusion read writing into fusion writer
charlesshale Sep 11, 2026
2c19532
Isofox: fusion reads are more permissive keeping trans-exon refs rela…
charlesshale Sep 11, 2026
cad084d
Isofox: fusion supporting fragments include junction and discordant, …
charlesshale Sep 14, 2026
2cc6033
Isofox: fusion soft-clips reads no longer have a max bases of 10
charlesshale Sep 14, 2026
bfa9878
Isofox:
charlesshale Sep 14, 2026
4ae985c
Isofox: fusion re-added discordant frags for support count
charlesshale Sep 15, 2026
c6b19de
Isofox: removed duplicate status from fusion reads since not required…
charlesshale Sep 15, 2026
c6440a8
Isofox: clearer exclusion of duplicate from all routines except trans…
charlesshale Sep 15, 2026
3efe2f5
Isofox: alt-sj check splice junctions vs known to ensure novel is sel…
charlesshale Sep 15, 2026
90ee253
Isofox: trim adapter sequences prior to testing exon boundaries
charlesshale Sep 15, 2026
289c54a
Isofox: method rename only
charlesshale Sep 15, 2026
257c6e8
Isofox: remove proper pair condition for chimeric test, trim adapters…
charlesshale Sep 16, 2026
14e0b0b
Isofox: adatper trimming check soft-clip length earlier
charlesshale Sep 17, 2026
e510512
Isofox: alt-SJs check for exon boundary match on both ends of same tr…
charlesshale Sep 17, 2026
f2d3a71
Isofox: formatting only (removed final in methods, whitespace)
charlesshale Sep 17, 2026
bf2fa28
Isofox: read caches and uses BAM record directly to avoid copying mem…
charlesshale Sep 18, 2026
7dc79a2
Isofox: added MappedCoord class for read alignments and related state
charlesshale Sep 19, 2026
8697395
Isofox: added missing call for supplementary reads to set intronic ge…
charlesshale Sep 19, 2026
89bfaf0
Isofox: remove commented out code from mapped-coords refactor
charlesshale Sep 19, 2026
86cae28
Isofox: converted more writers to tsv output
charlesshale Sep 20, 2026
83718fc
Isofox: dropped chimeric read writing
charlesshale Sep 20, 2026
396e495
Isofox: clean-up read soft-clip methods
charlesshale Sep 21, 2026
7614e24
Isofox: removed local final only
charlesshale Sep 21, 2026
d9e56f3
Isofox: allow frag size distribution to run on any gene in specific r…
charlesshale Sep 21, 2026
c478237
Isofox: no slice of duplicates but extract duplicate count from conse…
charlesshale Sep 21, 2026
1c34ad2
Isofox: minor fixes
shiv-hartwig Sep 22, 2026
67c4547
Isofox: minor clean-ups and fixes
charlesshale Sep 22, 2026
b8ef35d
Isofox: resolved conflicts
charlesshale Sep 22, 2026
6c90a41
Isofox: refactored transcript region related methods into utility class
charlesshale Sep 23, 2026
01e4cbd
Merge branch 'master' into AUS418-isofox-tars
charlesshale Sep 23, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import static com.hartwig.hmftools.compar.isofox.IsofoxSummaryData.FLD_ALT_FRAG_PERC;
import static com.hartwig.hmftools.compar.isofox.IsofoxSummaryData.FLD_CHIMERIC_FRAG_PERC;
import static com.hartwig.hmftools.compar.isofox.IsofoxSummaryData.FLD_DUPLICATE_FRAGS;
import static com.hartwig.hmftools.compar.isofox.IsofoxSummaryData.FLD_ENRICHED_GENE_PERC;
import static com.hartwig.hmftools.compar.isofox.IsofoxSummaryData.FLD_FORWARD_STRAND_PERC;
import static com.hartwig.hmftools.compar.isofox.IsofoxSummaryData.FLD_FRAG_LENGTH_50TH;
import static com.hartwig.hmftools.compar.isofox.IsofoxSummaryData.FLD_FRAG_LENGTH_5TH;
Expand Down Expand Up @@ -71,7 +70,6 @@ public void registerThresholds(final DiffThresholds thresholds)
thresholds.addFieldThreshold(FLD_FRAG_LENGTH_5TH, -1, 0.05);
thresholds.addFieldThreshold(FLD_FRAG_LENGTH_50TH, -1, 0.05);
thresholds.addFieldThreshold(FLD_FRAG_LENGTH_95TH, -1, 0.05);
thresholds.addFieldThreshold(FLD_ENRICHED_GENE_PERC, 0.01, -1);
thresholds.addFieldThreshold(FLD_MEDIAN_GC_RATIO, 0.01, -1);
thresholds.addFieldThreshold(FLD_FORWARD_STRAND_PERC, 0.01, -1);
}
Expand All @@ -81,8 +79,7 @@ public List<String> comparedFieldNames()
{
return List.of(
FLD_QC_STATUS, FLD_TOTAL_FRAGS, FLD_DUPLICATE_FRAGS, FLD_SPLICED_FRAG_PERC, FLD_UNSPLICED_FRAG_PERC, FLD_ALT_FRAG_PERC,
FLD_CHIMERIC_FRAG_PERC, FLD_READ_LENGTH, FLD_FRAG_LENGTH_5TH, FLD_FRAG_LENGTH_50TH, FLD_FRAG_LENGTH_95TH,
FLD_ENRICHED_GENE_PERC
FLD_CHIMERIC_FRAG_PERC, FLD_READ_LENGTH, FLD_FRAG_LENGTH_5TH, FLD_FRAG_LENGTH_50TH, FLD_FRAG_LENGTH_95TH
);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ public record IsofoxSummaryData(RnaStatistics RnaStatistics) implements Comparab
static final String FLD_FRAG_LENGTH_5TH = Column.FragLength5th.toString();
static final String FLD_FRAG_LENGTH_50TH = Column.FragLength50th.toString();
static final String FLD_FRAG_LENGTH_95TH = Column.FragLength95th.toString();
static final String FLD_ENRICHED_GENE_PERC = Column.EnrichedGenePercent.toString();
static final String FLD_MEDIAN_GC_RATIO = Column.MedianGCRatio.toString();
static final String FLD_FORWARD_STRAND_PERC = Column.ForwardStrandPercent.toString();

Expand Down Expand Up @@ -63,7 +62,6 @@ public List<String> displayValues()
values.add(format("%.1f", RnaStatistics.fragmentLength5thPercent()));
values.add(format("%.1f", RnaStatistics.fragmentLength50thPercent()));
values.add(format("%.1f", RnaStatistics.fragmentLength95thPercent()));
values.add(format("%.2f", RnaStatistics.enrichedGenePercent()));
return values;
}

Expand Down Expand Up @@ -101,7 +99,6 @@ public Mismatch findMismatch(
checkDiff(diffs, FLD_FRAG_LENGTH_5TH, ref.fragmentLength5thPercent(), otherData.fragmentLength5thPercent(), thresholds);
checkDiff(diffs, FLD_FRAG_LENGTH_50TH, ref.fragmentLength50thPercent(), otherData.fragmentLength50thPercent(), thresholds);
checkDiff(diffs, FLD_FRAG_LENGTH_95TH, ref.fragmentLength95thPercent(), otherData.fragmentLength95thPercent(), thresholds);
checkDiff(diffs, FLD_ENRICHED_GENE_PERC, ref.enrichedGenePercent(), otherData.enrichedGenePercent(), thresholds);
checkDiff(diffs, FLD_MEDIAN_GC_RATIO, ref.medianGCRatio(), otherData.medianGCRatio(), thresholds);
checkDiff(diffs, FLD_FORWARD_STRAND_PERC, ref.forwardStrandPercent(), otherData.forwardStrandPercent(), thresholds);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import static com.hartwig.hmftools.compar.isofox.IsofoxSummaryData.FLD_ALT_FRAG_PERC;
import static com.hartwig.hmftools.compar.isofox.IsofoxSummaryData.FLD_CHIMERIC_FRAG_PERC;
import static com.hartwig.hmftools.compar.isofox.IsofoxSummaryData.FLD_DUPLICATE_FRAGS;
import static com.hartwig.hmftools.compar.isofox.IsofoxSummaryData.FLD_ENRICHED_GENE_PERC;
import static com.hartwig.hmftools.compar.isofox.IsofoxSummaryData.FLD_FORWARD_STRAND_PERC;
import static com.hartwig.hmftools.compar.isofox.IsofoxSummaryData.FLD_FRAG_LENGTH_50TH;
import static com.hartwig.hmftools.compar.isofox.IsofoxSummaryData.FLD_FRAG_LENGTH_5TH;
Expand Down Expand Up @@ -45,7 +44,6 @@ public void setUp()
Map.entry(FLD_FRAG_LENGTH_5TH, b -> b.fragmentLength5thPercent = alternateValueSource.RnaStatistics().fragmentLength5thPercent()),
Map.entry(FLD_FRAG_LENGTH_50TH, b -> b.fragmentLength50thPercent = alternateValueSource.RnaStatistics().fragmentLength50thPercent()),
Map.entry(FLD_FRAG_LENGTH_95TH, b -> b.fragmentLength95thPercent = alternateValueSource.RnaStatistics().fragmentLength95thPercent()),
Map.entry(FLD_ENRICHED_GENE_PERC, b -> b.enrichedGenePercent = alternateValueSource.RnaStatistics().enrichedGenePercent()),
Map.entry(FLD_MEDIAN_GC_RATIO, b -> b.medianGCRatio = alternateValueSource.RnaStatistics().medianGCRatio()),
Map.entry(FLD_FORWARD_STRAND_PERC, b -> b.forwardStrandPercent = alternateValueSource.RnaStatistics().forwardStrandPercent())
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ public class TestIsofoxSummaryDataBuilder
public double fragmentLength5thPercent = 31;
public double fragmentLength50thPercent = 100;
public double fragmentLength95thPercent = 150;
public double enrichedGenePercent = 0.2;
public double medianGCRatio = 0.5;
public double forwardStrandPercent = 0.9;

Expand All @@ -38,7 +37,6 @@ public class TestIsofoxSummaryDataBuilder
b.fragmentLength5thPercent = 25;
b.fragmentLength50thPercent = 80;
b.fragmentLength95thPercent = 120;
b.enrichedGenePercent = 0.4;
b.medianGCRatio = 0.6;
b.forwardStrandPercent = 0.5;
};
Expand All @@ -61,7 +59,6 @@ private IsofoxSummaryData build()
.fragmentLength5thPercent(fragmentLength5thPercent)
.fragmentLength50thPercent(fragmentLength50thPercent)
.fragmentLength95thPercent(fragmentLength95thPercent)
.enrichedGenePercent(enrichedGenePercent)
.medianGCRatio(medianGCRatio)
.forwardStrandPercent(forwardStrandPercent)
.build();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ public final class SamRecordUtils
public static final String READ_GROUP_ATTRIBUTE = SAMTag.RG.name();

public static final String XS_ATTRIBUTE = "XS";
public static final String XA_ATTRIBUTE = "XA";

// Redux tags
public static final String CONSENSUS_READ_ATTRIBUTE = "CR";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@ public enum Column
FragLength5th,
FragLength50th,
FragLength95th,
EnrichedGenePercent,
MedianGCRatio,
ForwardStrandPercent;
}
Expand Down Expand Up @@ -84,7 +83,6 @@ public static String writeLine(final String sampleId, final RnaStatistics statis
sj.add(String.format("%.0f", statistics.fragmentLength5thPercent()));
sj.add(String.format("%.0f", statistics.fragmentLength50thPercent()));
sj.add(String.format("%.0f", statistics.fragmentLength95thPercent()));
sj.add(String.format("%.3f", statistics.enrichedGenePercent()));
sj.add(String.format("%.3f", statistics.medianGCRatio()));
sj.add(String.format("%.3f", statistics.forwardStrandPercent()));
return sj.toString();
Expand Down Expand Up @@ -128,7 +126,6 @@ public static RnaStatistics fromLines(final List<String> lines)
.fragmentLength5thPercent(getDoubleValue(fieldsIndexMap, Column.FragLength5th.toString(), values))
.fragmentLength50thPercent(getDoubleValue(fieldsIndexMap, Column.FragLength50th.toString(), values))
.fragmentLength95thPercent(getDoubleValue(fieldsIndexMap, Column.FragLength95th.toString(), values))
.enrichedGenePercent(getDoubleValue(fieldsIndexMap, Column.EnrichedGenePercent.toString(), values))
.medianGCRatio(getDoubleValue(fieldsIndexMap, Column.MedianGCRatio.toString(), values))
.forwardStrandPercent(getDoubleValue(fieldsIndexMap, Column.ForwardStrandPercent.toString(), values))
.build();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,6 @@ public abstract class RnaStatistics
public abstract double fragmentLength50thPercent();
public abstract double fragmentLength95thPercent();

// proportion of fragments in 7 highly expressed genes
public abstract double enrichedGenePercent();

// Median GC (excluding 7 highly expressed genes)
public abstract double medianGCRatio();

public abstract double forwardStrandPercent();
Expand Down
23 changes: 7 additions & 16 deletions isofox/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ For transcript abundance, Isofox uses a similar methodology to several previous
* Avoids overfitting of 'retained intron' transcripts which may simply be intronic reads
* Individual or combinations of splice junctions which are unique to a transcript will be weighed strongly. Does not overfit variability of coverage within exons

The input for Isofox is mapped paired end reads (we use STAR for our aligner).
The input for Isofox is mapped paired end reads. We align with bwa-mem2 against a transcriptome-augmented reference and lift the alignments back to genomic coordinates with tars, then mark duplicates with redux; Isofox takes the resulting post-tars, post-redux BAM.


### A note on duplicates, highly expressed genes, raw and adjusted TPM
Expand All @@ -22,19 +22,9 @@ We find that 6 genes in particular (RN7SL2, RN7SL1, RN7SL3, RN7SL4P, RN7SL5P & R
In addition, any junction which maps in the Poly-G region of LINC00486 is filtered from all analyses (v38: chr2:32,916,190-32,916,630; v37: 2:33,141,260-33,141,700) as they are likely the result of Poly-G sequencer artefacts.

### A note on alignment and multi-mapping
We use STAR as our aligner. ISOFOX expects BAM output with chimeric reads in the BAM itself, so it is essential when using STAR to set the outSAMtype to 'BAM Unsorted' and the chimOutType to 'WithinBAM'
Reads are aligned with bwa-mem2 against a transcriptome-augmented reference and lifted back to genomic coordinates by tars, then duplicate-marked by redux. Chimeric and supplementary alignments are retained in the BAM.

The full list of non default parameters we use internally is:

```
--outSAMtype BAM Unsorted --outSAMunmapped Within --outBAMcompression 0 --outSAMattributes All --outFilterMultimapNmax 10
--outFilterMismatchNmax 3 limitOutSJcollapsed 3000000 -chimSegmentMin 10 --chimOutType WithinBAM SoftClip
--chimJunctionOverhangMin 10 --chimSegmentReadGapMax 3 --chimScoreMin 1 --chimScoreDropMax 30 --chimScoreJunctionNonGTAG 0
--chimScoreSeparation 1 --outFilterScoreMinOverLread 0.33 --outFilterMatchNminOverLread 0.33 --outFilterMatchNmin 35
--alignSplicedMateMapLminOverLmate 0.33 --alignSplicedMateMapLmin 35 --alignSJstitchMismatchNmax 5 -1 5 5
```

STAR allows setting of the `—outFilterMultimapNmax` parameter to specify the maximum number of multimaps to allow for an alignment, and we use the default value (10). STAR will mark one of the multi-mappable reads as primary and the remainder as secondary reads. By default, STAR sets MAPQ for mappable reads to 255, whereas multi-mappable reads will have qual scores of 3 or less. For transcript abundance only, Isofox counts both primary and secondary reads at all locations, but reduces the weight of the reads to reflect the multi-mapping (MAPQ 3 = 50%, MAPQ 2 = 33%, MAPQ 1 = 20%, MAPQ 0 => 10%). Reads with MAPQ of <10 are excluded from novel splice junction and chimeric analysis
Isofox supports both bwa-tars and STAR alignments, selected by `-aligner` (`bwa-tars` is the default, or `star`); the flag only affects how multi-mapped fragments are handled, which is the one place the two aligners differ. Under `bwa-tars` a multi-mapped read is a single primary alignment carrying its alternate loci in the bwa `XA` tag (no secondary records; map qualities 0 to 60, with a confident single-locus read at 60), and the fragment is counted once at its primary locus and flagged multi-mapped. Under `star` the alternate mappings are separate secondary records and ambiguity is encoded in the map quality (255 unique, 3 or lower multi-mapped); a multi-mapped fragment is down-weighted by map-quality tier so its mass is shared across the loci it maps to, reproducing pre-tars behaviour. Under either aligner, multi-mapped reads are excluded from novel splice junction and chimeric analysis. The optional `MULTI_MAP_LOCI` write type emits a tsv of each multi-mapped read's primary and XA alternate loci per gene collection for auditing (bwa-tars only).

## Configuration
The functions of Isofox are controlled by the 'functions' argument:
Expand Down Expand Up @@ -74,7 +64,7 @@ excluded_regions | Drop reads in regions of high multi-mappability
excluded_gene_id_file | Exclude genes in file, format EnsemblGeneId,GeneName
enriched_gene_ids | List of EnsemblGeneIds separated by ';', see Enriched Genes information below
drop_dups | Default is false. By default duplicate fragments will be counted towards transcript expression.
write_type | Debug only: EXON, SPLICE_JUNC, FRAG_LENGTH, FRAG_LENGTH_BY_GENE, READ, CHIMERIC_READ, CHIMERIC_POSITION_DATA, SPLICE_SITE, TRANS_COMBO;GC_RATIO, separated by ';'
write_type | Debug only, separated by ';': EXON, SPLICE_JUNC, FRAG_LENGTH, FRAG_LENGTH_BY_GENE, READ, CHIMERIC_READ, CHIMERIC_POSITION_DATA, SPLICE_SITE, TRANS_COMBO, GC_RATIO, MULTI_MAP_LOCI

### Reference Files

Expand All @@ -98,7 +88,8 @@ frag_length_min_count | Minimum number of fragments to observe for length distri
exp_rate_frag_lengths | Discrete buckets for fragment lengths, either with frequency specified or left as zero if to be calculated (ie with -apply_calc_frag_lengths). eg '50-0;75-0;100-0;125-0;150-0;200-0;250-0;300-0;400-0;550-0'
read_length | Expected RNA read length (eg 76 or 151), will be computed if not provided
long_frag_limit | Default 550 bases, fragments longer than this without a splice junction are not considered to support a gene for the purposes of expression
single_map_qual | Default 255, discard reads with map quality below this unless using the config 'apply_map_qual_adjust'
single_map_qual | Default 60, or 255 when 'star_aligner' is set. Discard reads with map quality below this.
star_aligner | Flag, off by default. Off assumes the bwa-tars + REDUX pipeline; set it to apply STAR-aligner settings (raises the default single_map_qual to 255).
enriched_gene_ids | By default includes: ENSG00000265150;ENSG00000258486;ENSG00000202198;ENSG00000266037;ENSG00000263740;ENSG00000265735

### Optional output files:
Expand Down Expand Up @@ -236,7 +227,7 @@ Each fragment is assigned to a 'category' based on the set of transcripts that i

Any fragment which does not contain a splice junction, is wholly contained within the bounds of a gene, and with fragment size <= maximum insert size distribution is also allowed to map to an ‘UNSPLICED’ transcript of that gene.

Note that reads which are partially exonic, but marginally overhang an exon boundary or are soft clipped at or beyond an exon boundary have special treatment. This is particularly relevant for reads that have an overhang of 1 or 2 bases which will not be mapped by STAR with default parameters. If the overhanging section can be uniquely mapped either to the reference or to the other side of only a single known spliced junction, then the fragment is deemed to be supporting that splice junction or in the case of supporting just the reference is deemed to be supporting the UNSPLICED transcript. If multiple mappings are possible or the fragment length < unclipped read length (indicating likely adapter sequence) it is truncated at the exon boundary. If no mapping is possible then the fragment is treated as not supporting any known transcript.
Note that reads which are partially exonic, but marginally overhang an exon boundary or are soft clipped at or beyond an exon boundary have special treatment. This is particularly relevant for reads that have an overhang of 1 or 2 bases which may not be mapped across the exon boundary by the aligner. If the overhanging section can be uniquely mapped either to the reference or to the other side of only a single known spliced junction, then the fragment is deemed to be supporting that splice junction or in the case of supporting just the reference is deemed to be supporting the UNSPLICED transcript. If multiple mappings are possible or the fragment length < unclipped read length (indicating likely adapter sequence) it is truncated at the exon boundary. If no mapping is possible then the fragment is treated as not supporting any known transcript.

### 5. Fit abundance estimate per transcript

Expand Down
Loading
Loading