So which is it? Does STAR perform strand-aware mapping, which we can use downstream to get antisense transcripts, or if not, then what is the best way to achieve that? I am working with Tru-Seq Stranded Total RNA library, which apparently maps to the opposite strand of the genome (opposite to what you would normally expect).
I am primarily interested in finding novel non-coding transcripts in my data
There is no such thing. There are strand-specific library preparations, though, which generate strand-specific (relative to the mRNA) reads, which is probably what you mean.
Does STAR perform strand-aware mapping, which we can use downstream to get antisense transcripts
You can't get transcripts, sense or antisense - you can get mappings and counts from STAR. What are the downstream analyses you intend to perform?
STAR maps reads to an indexed (most commonly annotated) reference genome, and it doesn't care about transcript strandedness. From these mappings, it can output many different things, which can be used for several downstream analyses. The three most commonly used outputs from STAR are:
read mappings to the genome, in BAM format. By default, strandedness has no importance: STAR maps the reads to the best location, regardless of strand, gene location or whatever. However, the parameter --outSAMstrandField intronMotif - which should be used only if you want to analyse downstream with Cufflinks, and have unstranded RNAseq dara - alters the default behaviour and adds XS strand attribute. Read the section Compatibility with Cufflinks/Cuffdiff from STAR's manual. If you have stranded data, you don't have to change anything in STAR.
read mappings to the transcriptome, in BAM format. Those are to be used with RSEM, mostly.
counts of reads mapping to genes, similar to HTSeq or featureCounts. Here STAR outputs three columns of counts, one for unstranded, one for stranded, and one for reverse stranded.
Counting number of reads per gene. With --quantMode GeneCounts option
STAR will count number reads per gene while mapping. A read is counted
if it overlaps (1nt or more) one and only one gene. Both ends of the
pairedend read are checked for overlaps. The counts coincide with
those produced by htseq-count with default parameters. This option
requires annotations (GTF or GFF with –sjdbGTFfile option) used at the
genome generation step, or at the mapping step. STAR outputs read
counts per gene into ReadsPerGene.out.tab file with 4 columns which
correspond to different strandedness options:
column 1: gene ID
column 2: counts for unstranded RNA-seq
column 3: counts for the 1st read strand aligned with RNA (htseq-count
option -s yes)
column 4: counts for the 2nd read strand aligned with RNA (htseq-count
option -s reverse)
Select the output according to the strandedness of your data. Note,
that if you have stranded data and choose one of the columns 3 or 4,
the other column (4 or 3) will give you the count of antisense reads.
With --quantMode TranscriptomeSAM GeneCounts, and get both the
Aligned.toTranscriptome.out.bam and ReadsPerGene.out.tab outputs.
You should look at column 4 for your counts (i.e. anti-sense reads to the given genomic feature).