Skip to content

Commit

Permalink
v1.7.1
Browse files Browse the repository at this point in the history
  • Loading branch information
yjx1217 committed Jan 28, 2023
1 parent 1d89941 commit ee9d9b0
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 2 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).

## [1.7.1] - 2023-01-28
### Fixed
- A bug leading to the loss of detailed TE subtype info in the final annotation GFF3 file.

## [1.7.0] - 2022-12-31
### Changed
- Better robunsteness for the dependency installation script.
Expand Down
Binary file modified Example_Outputs/CPG_1a.nuclear_genome.tidy.gff3.gz
Binary file not shown.
Binary file renamed Manual_20221231.docx → Manual_20230128.docx
Binary file not shown.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ Jia-Xing Yue & Gianni Liti. (2018) Long-read sequencing data analysis for yeasts
Jia-Xing Yue, Jing Li, Louise Aigrain, Johan Hallin, Karl Persson, Karen Oliver, Anders Bergström, Paul Coupland, Jonas Warringer, Marco Cosentino Lagomarsino, Gilles Fischer, Richard Durbin, Gianni Liti. (2017) Contrasting evolutionary genome dynamics between domesticated and wild yeasts. *Nature Genetics*, 49:913-924.

## Release history
* v1.7.1 Released on 2022/01/28
* v1.7.0 Released on 2022/12/31
* v1.6.0 Released on 2019/10/03
* v1.5.0 Released on 2019/05/13
Expand Down
23 changes: 21 additions & 2 deletions scripts/sort_gff3.pl
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
##############################################################
# script: sort_gff3.pl
# author: Jia-Xing Yue (GitHub ID: yjx1217)
# last edited: 2022.12.11
# last edited: 2023.01.28
# description: sort gff3 file by the input multi-fasta genome file
# example: perl sort_gff3.pl -i raw.gff3 -t genome_tag -o sorted.gff3 -r genome.fa(.gz)
##############################################################
Expand Down Expand Up @@ -46,12 +46,17 @@
foreach my $gene_id (sort {$gff{$a}{'gene_start'} <=> $gff{$b}{'gene_start'} or $gff{$a}{'gene_end'} <=> $gff{$b}{'gene_end'}} @genes_on_chr) {
my $gene_name = $gff{$gene_id}{'gene_name'};
my $gene_type = $gff{$gene_id}{'gene_type'};
my $mobile_element_type = $gff{$gene_id}{'mobile_element_type'};
my $gene_start = $gff{$gene_id}{'gene_start'};
my $gene_end = $gff{$gene_id}{'gene_end'};
my $gene_score = $gff{$gene_id}{'gene_score'};
my $gene_strand = $gff{$gene_id}{'gene_strand'};
my $gene_phase = $gff{$gene_id}{'gene_phase'};
print $output_fh "$chr\t$tag\t$gene_type\t$gene_start\t$gene_end\t$gene_score\t$gene_strand\t$gene_phase\tID=$gene_id;Name=$gene_name\n";
if ($gene_type eq "mobile_element") {
print $output_fh "$chr\t$tag\t$gene_type\t$gene_start\t$gene_end\t$gene_score\t$gene_strand\t$gene_phase\tID=$gene_id;Name=$gene_name;mobile_element_type=$mobile_element_type\n";
} else {
print $output_fh "$chr\t$tag\t$gene_type\t$gene_start\t$gene_end\t$gene_score\t$gene_strand\t$gene_phase\tID=$gene_id;Name=$gene_name\n";
}
if ($gene_type eq "gene") {
foreach my $mRNA_id (sort {$gff{$gene_id}{'mRNA'}{$a}{'mRNA_index'} <=> $gff{$gene_id}{'mRNA'}{$b}{'mRNA_index'}} keys %{$gff{$gene_id}{'mRNA'}}) {
my $mRNA_index = $gff{$gene_id}{'mRNA'}{$mRNA_id}{'mRNA_index'};
Expand Down Expand Up @@ -162,6 +167,7 @@ sub parse_gff_file {
my $gene_id;
my $gene_name;
my $gene_type;
my $mobile_element_type;
my $mRNA_index;
while (<$fh>) {
chomp;
Expand Down Expand Up @@ -201,6 +207,19 @@ sub parse_gff_file {
$gff{$gene_id}{'gene_source'} = $source;
$gff{$gene_id}{'gene_score'} = $score;
$gff{$gene_id}{'gene_phase'} = $phase;
} elsif ($type =~ /(mobile_element)/) {
$gene_type = $type;
($gene_id, $gene_name, $mobile_element_type) = ($attributes =~ /ID=([^;]+);\S*Name=([^;]+);mobile_element_type=([^;]+)/);
$gff{$gene_id}{'gene_name'} = $gene_name;
$gff{$gene_id}{'gene_type'} = $gene_type;
$gff{$gene_id}{'mobile_element_type'} = $mobile_element_type;
$gff{$gene_id}{'gene_chr'} = $chr;
$gff{$gene_id}{'gene_start'} = $start;
$gff{$gene_id}{'gene_end'} = $end;
$gff{$gene_id}{'gene_strand'} = $strand;
$gff{$gene_id}{'gene_source'} = $source;
$gff{$gene_id}{'gene_score'} = $score;
$gff{$gene_id}{'gene_phase'} = $phase;
} elsif ($type !~ /(exon|CDS|mRNA|UTR)/) {
# e.g. type = TY, X_element, Y_prime_element ...
$gene_type = $type;
Expand Down

0 comments on commit ee9d9b0

Please sign in to comment.