Add a script which takes intron-chain filtered transcripts and applies additional filters to check their predicted 3'ends show evidence of being a genuine cleavage event:
Does predicted 3'end fall within x nt of an polyA site from PolyASite / PAS atlas?
x is a maximum distance cut-off supplied at command line
So far I've only considered nearest upstream site. Should also consider nearest in either direction (if anything expect more likely for nearby site to be downstream (as coverage close to 3'end in SR data drops sharply due to fragment-size selection).
Take the 3'most x nucleotides from last exons - do they have at least 1 of the conserved PAS motifs?
x is a target region length (i.e. last 100nt of each last exon). Note that pr.three_end() returns the final nucleotide of each range, so the actual 3'end 'upstream extension' should be target length -1.
Inbuilt motifs should be 12 from Beaudoing 2000 and 18 from Gruber 2016 (PolyASite v1.0). Also have option to provide a text file of motifs at CL
The distance/position should ideally be from the 3'end - this would mean reversing the order of the nucleotide sequence of regions on the plus strand (so left-most nucleotide is the most 3'/final nucleotide).
The script should take as input:
GTF file of intron-chain filtered transcripts
'match class' TSV file produced by filter_tx_by_intron_chain.py. Valid spliced 3'UTR-intron isoforms are not polyadenylation events and so should be excluded from these filters (but still retained in final GTF file)
Genome FASTA file
BED file of reference polyA sites (e.g. PolyASite)
The script should output:
GTF file of transcripts passing either of these filters (nearby atlas site or PAS motif)
'summary class' TSV file, reporting for each transcript ID in input file its 'filter_class/match_class' (valid/not_valid) distance to nearest atlas site, n_motifs found, motifs found (with position & motif string combined for each occurrence).
Add a script which takes intron-chain filtered transcripts and applies additional filters to check their predicted 3'ends show evidence of being a genuine cleavage event:
The script should take as input:
The script should output: