三代数据分析,用Minimap2分析出结果,生成了gff文件,想继续用为了想用到MatchAnno去,但是MatchAnno需求是gtf文件,所以想找大家都推荐的cufflinks中的脚本gffread来做。寻找过程中发现gffread有官网直接下载
http://ccb.jhu.edu/software/stringtie/gff.shtml
http://www.bioinfo-scrounger.com/archives/293参考 gffcompare和gffread
然后
conda install gffread
也直接支持下载,类似的还有gffcompare
,可以用来compare, merge, annotate and estimate accuracy of one or more GFF files,并且这个软件是基于cuffcompare开发的,所以gffcompare很多输入和输出文件都与cuffcompare相同
http://cole-trapnell-lab.github.io/cufflinks/cuffcompare/
gffread主要用途:
- gff 2 gtf
gffread gencode.vM13.annotation.gff3 -T -o tmp.gtf
- gtf 2 gff
gffread gencode.vM13.annotation.gtf -o tmp.gff3
- 从参考基因组提取转录本
gffread -w transcripts.fa -g mm10.fa stringtie_merged.gtf
帮助文件
gffread v0.11.4. Usage:
gffread [-g | ][-s ]
[-o ] [-t ] [-r [[]:].. [-R]]
[-CTVNJMKQAFPGUBHZWTOLE] [-w ] [-x ] [-y ]
[-i ] [--bed] [--table ] [--sort-by ]
Filter, convert or cluster GFF/GTF/BED records, extract the sequence of
transcripts (exon or CDS) and more.
By default (i.e. without -O) only transcripts are processed, discarding any
other non-transcript features. Default output is a simplified GFF3 with only
the basic attributes.
is a GFF file, use '-' for stdin
Options:
-i discard transcripts having an intron larger than
-l discard transcripts shorter than bases
-r only show transcripts overlapping coordinate range ..
(on chromosome/contig , strand if provided)
-R for -r option, discard all transcripts that are not fully
contained within the given range
-U discard single-exon transcripts
-C coding only: discard mRNAs that have no CDS features
--nc non-coding only: discard mRNAs that have CDS features
--ignore-locus : discard locus features and attributes found in the input
-A use the description field from and add it
as the value for a 'descr' attribute to the GFF record
-s is a tab-delimited file providing this info
for each of the mapped sequences:
(useful for -A option with mRNA/EST/protein mappings)
Sorting: (by default, chromosomes are kept in the order they were found)
--sort-alpha : chromosomes (reference sequences) are sorted alphabetically
--sort-by : sort the reference sequences by the order in which their
names are given in the file
Misc options:
-F preserve all GFF attributes (for non-exon features)
--keep-exon-attrs : for -F option, do not attempt to reduce redundant
exon/CDS attributes
-G do not keep exon attributes, move them to the transcript feature
(for GFF3 output)
--keep-genes : in transcript-only mode (default), also preserve gene records
--keep-comments: for GFF3 input/output, try to preserve comments
-O process other non-transcript GFF records (by default non-transcript
records are ignored)
-V discard any mRNAs with CDS having in-frame stop codons (requires -g)
-H for -V option, check and adjust the starting CDS phase
if the original phase leads to a translation with an
in-frame stop codon
-B for -V option, single-exon transcripts are also checked on the
opposite strand (requires -g)
-P add transcript level GFF attributes about the coding status of each
transcript, including partialness or in-frame stop codons (requires -g)
--add-hasCDS : add a "hasCDS" attribute with value "true" for transcripts
that have CDS features
--adj-stop stop codon adjustment: enables -P and performs automatic
adjustment of the CDS stop coordinate if premature or downstream
-N discard multi-exon mRNAs that have any intron with a non-canonical
splice site consensus (i.e. not GT-AG, GC-AG or AT-AC)
-J discard any mRNAs that either lack initial START codon
or the terminal STOP codon, or have an in-frame stop codon
(i.e. only print mRNAs with a complete CDS)
--no-pseudo: filter out records matching the 'pseudo' keyword
--in-bed: input should be parsed as BED format (automatic if the input
filename ends with .bed*)
--in-tlf: input GFF-like one-line-per-transcript format without exon/CDS
features (see --tlf option below); automatic if the input
filename ends with .tlf)
Clustering:
-M/--merge : cluster the input transcripts into loci, discarding
"duplicated" transcripts (those with the same exact introns
and fully contained or equal boundaries)
-d : for -M option, write duplication info to file
--cluster-only: same as -M/--merge but without discarding any of the
"duplicate" transcripts, only create "locus" features
-K for -M option: also discard as redundant the shorter, fully contained
transcripts (intron chains matching a part of the container)
-Q for -M option, no longer require boundary containment when assessing
redundancy (can be combined with -K); only introns have to match for
multi-exon transcripts, and >=80% overlap for single-exon transcripts
-Y for -M option, enforce -Q but also discard overlapping single-exon
transcripts, even on the opposite strand (can be combined with -K)
Output options:
--force-exons: make sure that the lowest level GFF features are considered
"exon" features
--gene2exon: for single-line genes not parenting any transcripts, add an
exon feature spanning the entire gene (treat it as a transcript)
--t-adopt: try to find a parent gene overlapping/containing a transcript
that does not have any explicit gene Parent
-D decode url encoded characters within attributes
-Z merge very close exons into a single exon (when intron size<4)
-g full path to a multi-fasta file with the genomic sequences
for all input mappings, OR a directory with single-fasta files
(one per genomic sequence, with file names matching sequence names)
-w write a fasta file with spliced exons for each GFF transcript
-x write a fasta file with spliced CDS for each GFF transcript
-y write a protein fasta file with the translation of CDS for each record
-W for -w and -x options, write in the FASTA defline the exon
coordinates projected onto the spliced sequence;
for -y option, write transcript attributes in the FASTA defline
-S for -y option, use '*' instead of '.' as stop codon translation
-L Ensembl GTF to GFF3 conversion (implies -F; should be used with -m)
-m is a name mapping table for converting reference
sequence names, having this 2-column format:
WARNING: all GFF records on reference sequences whose original IDs
are not found in the 1st column of this table will be discarded!
-t use in the 2nd column of each GFF/GTF output line
-o write the records into instead of stdout
-T main output will be GTF instead of GFF3
--bed output records in BED format instead of default GFF3
--tlf output "transcript line format" which is like GFF
but exons, CDS features and related data are stored as GFF
attributes in the transcript feature line, like this:
exoncount=N;exons=;CDSphase=;CDS=
is a comma-delimited list of exon_start-exon_end coordinates;
is CDS_start:CDS_end coordinates or a list like
--table output a simple tab delimited format instead of GFF, with columns
having the values of GFF attributes given in ; special
pseudo-attributes (prefixed by @) are recognized:
@chr, @start, @end, @strand, @numexons, @exons, @cds, @covlen, @cdslen
-v,-E expose (warn about) duplicate transcript IDs and other potential
problems with the given GFF/GTF records
另外的gff转gtf的方法
26 #把gmap产生的GFF文件转换为Gtf文件
27 (1)
28 cd /zs32_2/Linglhuang/Alzheimer_final_confident
29 grep -E "mRNA|exon" AD_rep_uniqueM.fa.gff | cut -d ';' -f 1,2 > AD_rep_uniqueM.R.gff
30 sed -i 's/mRNA/transcript/;s/ID=/gene_id /;s/Name=/transcript_id /g' AD_rep_uniqueM.R.gff
31 sed -i 's/[.][0-9]*[.]mrna1.exon[0-9]*//' AD_rep_uniqueM.R.gff
32 sed -i 's/[.][0-9]*[.]mrna1//' AD_rep_uniqueM.R.gff
33 sed -i 's/PB/"PB/g;s/;/"; /' AD_rep_uniqueM.R.gff
34 sed -i 's/$/";/' AD_rep_uniqueM.R.gff
35 sed -i 's/Gmapindexhg19-2017/PacBio/g' AD_rep_uniqueM.R.gff
36 awk 'BEGIN{FS="\t"}{printf "%s\t%s\t%s\t%s\t%s\t.\t%s\t%s\t%s\n",$1,$2,$3,$4,$5,$7,$8,$9}' AD_rep_uniqueM.R.gff > AD_rep_uniqueM.gtf
37
38 (2)#gffread
39 cd /zs32_2/Linglhuang/ALL_datasets/AD
40 /opt/tools/seq-analysis/cufflinks-2.2.1.Linux_x86_64/gffread AD_rep.gff -T -o AD_rep.R2.gff
41 sed 's/.mrna1//;s/[.][0-9]*[.]path1//;s/ gene_name "PB[.][0-9]*[.][0-9]*";//' AD_rep.R2.gff > AD_rep2.gtf
42 sed -i 's/Gmapindexhg19-2017/PacBio/g' AD_rep2.gtf
43 awk 'BEGIN{FS="\t"}{printf "%s\t%s\t%s\t%s\t%s\t.\t%s\t%s\t%s\n",$1,$2,$3,$4,$5,$7,$8,$9}' AD_rep2.gtf > Isoseq_rep2.gtf